/*! normalize.css v2.1.1 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Coherent box-sizing
 */
html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

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

/**
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

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

/**
 * Address styling not present in IE 8/9.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Prevent system color scheme's background color being used in Firefox, IE,
 *    and Opera.
 * 2. Prevent system color scheme's text color being used in Firefox, IE, and
 *    Opera.
 * 3. Set default font family to sans-serif.
 * 4. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  background: #fff;
  /* 1 */
  color: #000;
  /* 2 */
  font-family: sans-serif;
  /* 3 */
  -ms-text-size-adjust: 100%;
  /* 4 */
  -webkit-text-size-adjust: 100%;
  /* 4 */ }

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

/* ==========================================================================
   Links
   ========================================================================== */
/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

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

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

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

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

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

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

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre-wrap; }

/**
 * Set consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/**
 * 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.
 */
img {
  border: 0; }

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

/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * 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.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

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

/**
 * 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 Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */
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; }

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

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

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

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

/**
 * Import Functions
 */
/**
 * Mixins
 */
/**
 * Carousel arrows
 */
/**
 * Proximus gradient as a background
 */
/**
 * Replaces default scrollbar with a better looking one
 * Works on Webkit
 */
/**
 * Defines responsive font-sizes
 */
/**
 * Create an animated Hamburger button for the mobile menu
 * Based on: https://jonsuh.com/hamburgers/
 * To work, it requires the container to have <div><span></span></div> in it
 *
 */
/**
 * The global hover effect for links
 */
/**
 * Wraps content in a media query defined in the $breakpoints
 */
/**
 * Create a little line before/after the <li> element
 */
/**
 * The Grid
 *
 * This grid system is mostly based on the Foundation grid (http://foundation.zurb.com/sites/docs/flex-grid.html)
 * The class "row" has been adapted to just work as container/clearfix for the colums
 * While a class "container" has been added to define the maximum width (like Bootstrap does)
 */
.row {
  margin-left: -7px;
  margin-right: -7px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }
  @media screen and (min-width: 640px) {
    .row {
      margin-left: -12px;
      margin-right: -12px; } }
  .row .row {
    margin-left: -7px;
    margin-right: -7px; }
    @media screen and (min-width: 640px) {
      .row .row {
        margin-left: -12px;
        margin-right: -12px; } }
  .row.expanded {
    max-width: none; }
  .row.collapse > .column {
    padding-left: 0;
    padding-right: 0; }

.column {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-left: 0.4375rem;
  padding-right: 0.4375rem; }
  @media screen and (min-width: 40em) {
    .column {
      padding-left: 0.75rem;
      padding-right: 0.75rem; } }

.column.row.row {
  float: none; }
  .row .column.row.row {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0; }

.small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 8.33333%;
          flex: 0 0 8.33333%;
  max-width: 8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
  max-width: 16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66667%;
          flex: 0 0 41.66667%;
  max-width: 41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333%;
          flex: 0 0 58.33333%;
  max-width: 58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 83.33333%;
          flex: 0 0 83.33333%;
  max-width: 83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 91.66667%;
          flex: 0 0 91.66667%;
  max-width: 91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1; }

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-1 > .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2; }

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-2 > .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3; }

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-3 > .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4; }

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-4 > .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5; }

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-5 > .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%; }

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6; }

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-6 > .column {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.small-up-1 > .column {
  width: 100%;
  float: left; }
  .small-up-1 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child {
    float: left; }

.small-up-2 > .column {
  width: 50%;
  float: left; }
  .small-up-2 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child {
    float: left; }

.small-up-3 > .column {
  width: 33.33333%;
  float: left; }
  .small-up-3 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child {
    float: left; }

.small-up-4 > .column {
  width: 25%;
  float: left; }
  .small-up-4 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child {
    float: left; }

.small-up-5 > .column {
  width: 20%;
  float: left; }
  .small-up-5 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child {
    float: left; }

.small-up-6 > .column {
  width: 16.66667%;
  float: left; }
  .small-up-6 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child {
    float: left; }

.small-up-7 > .column {
  width: 14.28571%;
  float: left; }
  .small-up-7 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child {
    float: left; }

.small-up-8 > .column {
  width: 12.5%;
  float: left; }
  .small-up-8 > .column:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child {
    float: left; }

@media screen and (min-width: 30em) {
  .smedium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .smedium-offset-0 {
    margin-left: 0%; }
  .smedium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .smedium-offset-1 {
    margin-left: 8.33333%; }
  .smedium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .smedium-offset-2 {
    margin-left: 16.66667%; }
  .smedium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .smedium-offset-3 {
    margin-left: 25%; }
  .smedium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .smedium-offset-4 {
    margin-left: 33.33333%; }
  .smedium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .smedium-offset-5 {
    margin-left: 41.66667%; }
  .smedium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .smedium-offset-6 {
    margin-left: 50%; }
  .smedium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .smedium-offset-7 {
    margin-left: 58.33333%; }
  .smedium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .smedium-offset-8 {
    margin-left: 66.66667%; }
  .smedium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .smedium-offset-9 {
    margin-left: 75%; }
  .smedium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .smedium-offset-10 {
    margin-left: 83.33333%; }
  .smedium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .smedium-offset-11 {
    margin-left: 91.66667%; }
  .smedium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .smedium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .smedium-up-1 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .smedium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .smedium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .smedium-up-2 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .smedium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .smedium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .smedium-up-3 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .smedium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .smedium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .smedium-up-4 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .smedium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .smedium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .smedium-up-5 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .smedium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .smedium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .smedium-up-6 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .smedium-up-1 > .column {
    width: 100%;
    float: left; }
    .smedium-up-1 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-1 > .column:nth-of-type(1n+1) {
      clear: both; }
    .smedium-up-1 > .column:last-child {
      float: left; }
  .smedium-up-2 > .column {
    width: 50%;
    float: left; }
    .smedium-up-2 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-2 > .column:nth-of-type(2n+1) {
      clear: both; }
    .smedium-up-2 > .column:last-child {
      float: left; }
  .smedium-up-3 > .column {
    width: 33.33333%;
    float: left; }
    .smedium-up-3 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-3 > .column:nth-of-type(3n+1) {
      clear: both; }
    .smedium-up-3 > .column:last-child {
      float: left; }
  .smedium-up-4 > .column {
    width: 25%;
    float: left; }
    .smedium-up-4 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-4 > .column:nth-of-type(4n+1) {
      clear: both; }
    .smedium-up-4 > .column:last-child {
      float: left; }
  .smedium-up-5 > .column {
    width: 20%;
    float: left; }
    .smedium-up-5 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-5 > .column:nth-of-type(5n+1) {
      clear: both; }
    .smedium-up-5 > .column:last-child {
      float: left; }
  .smedium-up-6 > .column {
    width: 16.66667%;
    float: left; }
    .smedium-up-6 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-6 > .column:nth-of-type(6n+1) {
      clear: both; }
    .smedium-up-6 > .column:last-child {
      float: left; }
  .smedium-up-7 > .column {
    width: 14.28571%;
    float: left; }
    .smedium-up-7 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-7 > .column:nth-of-type(7n+1) {
      clear: both; }
    .smedium-up-7 > .column:last-child {
      float: left; }
  .smedium-up-8 > .column {
    width: 12.5%;
    float: left; }
    .smedium-up-8 > .column:nth-of-type(1n) {
      clear: none; }
    .smedium-up-8 > .column:nth-of-type(8n+1) {
      clear: both; }
    .smedium-up-8 > .column:last-child {
      float: left; } }

@media screen and (min-width: 30em) and (min-width: 30em) {
  .smedium-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

.row.smedium-unstack .column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media screen and (min-width: 30em) {
    .row.smedium-unstack .column {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media screen and (min-width: 30em) {
  .smedium-collapse > .column {
    padding-left: 0;
    padding-right: 0; }
  .smedium-uncollapse > .column {
    padding-left: 0.4375rem;
    padding-right: 0.4375rem; } }

@media screen and (min-width: 40em) {
  .medium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-1 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-2 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-3 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-4 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-5 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-6 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-1 > .column {
    width: 100%;
    float: left; }
    .medium-up-1 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child {
      float: left; }
  .medium-up-2 > .column {
    width: 50%;
    float: left; }
    .medium-up-2 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child {
      float: left; }
  .medium-up-3 > .column {
    width: 33.33333%;
    float: left; }
    .medium-up-3 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child {
      float: left; }
  .medium-up-4 > .column {
    width: 25%;
    float: left; }
    .medium-up-4 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child {
      float: left; }
  .medium-up-5 > .column {
    width: 20%;
    float: left; }
    .medium-up-5 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child {
      float: left; }
  .medium-up-6 > .column {
    width: 16.66667%;
    float: left; }
    .medium-up-6 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child {
      float: left; }
  .medium-up-7 > .column {
    width: 14.28571%;
    float: left; }
    .medium-up-7 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child {
      float: left; }
  .medium-up-8 > .column {
    width: 12.5%;
    float: left; }
    .medium-up-8 > .column:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child {
      float: left; } }

@media screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

.row.medium-unstack .column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media screen and (min-width: 40em) {
    .row.medium-unstack .column {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media screen and (min-width: 40em) {
  .medium-collapse > .column {
    padding-left: 0;
    padding-right: 0; }
  .medium-uncollapse > .column {
    padding-left: 0.75rem;
    padding-right: 0.75rem; } }

@media screen and (min-width: 64em) {
  .large-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-1 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-2 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-3 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-4 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-5 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-6 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-1 > .column {
    width: 100%;
    float: left; }
    .large-up-1 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child {
      float: left; }
  .large-up-2 > .column {
    width: 50%;
    float: left; }
    .large-up-2 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child {
      float: left; }
  .large-up-3 > .column {
    width: 33.33333%;
    float: left; }
    .large-up-3 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child {
      float: left; }
  .large-up-4 > .column {
    width: 25%;
    float: left; }
    .large-up-4 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child {
      float: left; }
  .large-up-5 > .column {
    width: 20%;
    float: left; }
    .large-up-5 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child {
      float: left; }
  .large-up-6 > .column {
    width: 16.66667%;
    float: left; }
    .large-up-6 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child {
      float: left; }
  .large-up-7 > .column {
    width: 14.28571%;
    float: left; }
    .large-up-7 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child {
      float: left; }
  .large-up-8 > .column {
    width: 12.5%;
    float: left; }
    .large-up-8 > .column:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child {
      float: left; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

.row.large-unstack .column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media screen and (min-width: 64em) {
    .row.large-unstack .column {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media screen and (min-width: 64em) {
  .large-collapse > .column {
    padding-left: 0;
    padding-right: 0; }
  .large-uncollapse > .column {
    padding-left: 0.75rem;
    padding-right: 0.75rem; } }

@media screen and (min-width: 84.375em) {
  .xlarge-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .xlarge-offset-0 {
    margin-left: 0%; }
  .xlarge-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .xlarge-offset-1 {
    margin-left: 8.33333%; }
  .xlarge-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .xlarge-offset-2 {
    margin-left: 16.66667%; }
  .xlarge-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .xlarge-offset-3 {
    margin-left: 25%; }
  .xlarge-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .xlarge-offset-4 {
    margin-left: 33.33333%; }
  .xlarge-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .xlarge-offset-5 {
    margin-left: 41.66667%; }
  .xlarge-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .xlarge-offset-6 {
    margin-left: 50%; }
  .xlarge-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .xlarge-offset-7 {
    margin-left: 58.33333%; }
  .xlarge-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .xlarge-offset-8 {
    margin-left: 66.66667%; }
  .xlarge-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .xlarge-offset-9 {
    margin-left: 75%; }
  .xlarge-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .xlarge-offset-10 {
    margin-left: 83.33333%; }
  .xlarge-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .xlarge-offset-11 {
    margin-left: 91.66667%; }
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
  .xlarge-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .xlarge-up-1 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
  .xlarge-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .xlarge-up-2 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .xlarge-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .xlarge-up-3 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4; }
  .xlarge-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .xlarge-up-4 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5; }
  .xlarge-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .xlarge-up-5 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6; }
  .xlarge-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .xlarge-up-6 > .column {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .xlarge-up-1 > .column {
    width: 100%;
    float: left; }
    .xlarge-up-1 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-1 > .column:nth-of-type(1n+1) {
      clear: both; }
    .xlarge-up-1 > .column:last-child {
      float: left; }
  .xlarge-up-2 > .column {
    width: 50%;
    float: left; }
    .xlarge-up-2 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-2 > .column:nth-of-type(2n+1) {
      clear: both; }
    .xlarge-up-2 > .column:last-child {
      float: left; }
  .xlarge-up-3 > .column {
    width: 33.33333%;
    float: left; }
    .xlarge-up-3 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-3 > .column:nth-of-type(3n+1) {
      clear: both; }
    .xlarge-up-3 > .column:last-child {
      float: left; }
  .xlarge-up-4 > .column {
    width: 25%;
    float: left; }
    .xlarge-up-4 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-4 > .column:nth-of-type(4n+1) {
      clear: both; }
    .xlarge-up-4 > .column:last-child {
      float: left; }
  .xlarge-up-5 > .column {
    width: 20%;
    float: left; }
    .xlarge-up-5 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-5 > .column:nth-of-type(5n+1) {
      clear: both; }
    .xlarge-up-5 > .column:last-child {
      float: left; }
  .xlarge-up-6 > .column {
    width: 16.66667%;
    float: left; }
    .xlarge-up-6 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-6 > .column:nth-of-type(6n+1) {
      clear: both; }
    .xlarge-up-6 > .column:last-child {
      float: left; }
  .xlarge-up-7 > .column {
    width: 14.28571%;
    float: left; }
    .xlarge-up-7 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-7 > .column:nth-of-type(7n+1) {
      clear: both; }
    .xlarge-up-7 > .column:last-child {
      float: left; }
  .xlarge-up-8 > .column {
    width: 12.5%;
    float: left; }
    .xlarge-up-8 > .column:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-8 > .column:nth-of-type(8n+1) {
      clear: both; }
    .xlarge-up-8 > .column:last-child {
      float: left; } }

@media screen and (min-width: 84.375em) and (min-width: 84.375em) {
  .xlarge-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

.row.xlarge-unstack .column {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media screen and (min-width: 84.375em) {
    .row.xlarge-unstack .column {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media screen and (min-width: 84.375em) {
  .xlarge-collapse > .column {
    padding-left: 0;
    padding-right: 0; }
  .xlarge-uncollapse > .column {
    padding-left: 0.75rem;
    padding-right: 0.75rem; } }

/**
 * Body
 */
body {
  background: #eceff6; }
  @media screen and (min-width: 640px) {
    body {
      background: #fbfcfd; } }

/**
 * Wrapper
 */
.wrapper {
  background-color: #fbfcfd;
  background-image: -webkit-linear-gradient(top, #fbfcfd 0%, #fbfcfd 11%, #dde2ef 34%, #dde2ef 49%, #fbfcfd 96%, #fbfcfd 100%);
  background-image: -webkit-gradient(linear,left top, left bottom,from(#fbfcfd), color-stop(11%, #fbfcfd), color-stop(34%, #dde2ef), color-stop(49%, #dde2ef), color-stop(96%, #fbfcfd), to(#fbfcfd));
  background-image: -webkit-linear-gradient(top,#fbfcfd 0%, #fbfcfd 11%, #dde2ef 34%, #dde2ef 49%, #fbfcfd 96%, #fbfcfd 100%);
  background-image: linear-gradient(to bottom,#fbfcfd 0%, #fbfcfd 11%, #dde2ef 34%, #dde2ef 49%, #fbfcfd 96%, #fbfcfd 100%);
  background-repeat: repeat-x;
  -webkit-background-size: auto 44.375rem;
          background-size: auto 44.375rem;
  width: 100%; }
  @media screen and (min-width: 640px) {
    .wrapper {
      background-position: 0 3.75rem; } }

.wrapper-inner {
  padding: 0 10px;
  margin: 0;
  padding: 0; }
  @media screen and (min-width: 1024px) {
    .takeover .wrapper-inner {
      padding-left: 10rem;
      padding-right: 10rem; } }
  @media screen and (min-width: 1350px) {
    .wrapper-inner {
      padding-left: 7.5rem;
      padding-right: 7.5rem; } }

/**
 * Container
 */
.container {
  display: block;
  margin: 0 auto;
  max-width: 1440px;
  width: 100%; }
  @media screen and (min-width: 1024px) {
    .container {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-flow: row nowrap;
              flex-flow: row nowrap; } }
  .container::after {
    clear: both;
    content: "";
    display: table; }

/**
 * Rows
 */
.row.collapsed {
  margin-left: 0;
  margin-right: 0; }

/**
 * Inner elements (Main, Aside)
 */
.main,
.aside {
  float: left;
  position: relative;
  width: 100%; }
  .main::after,
  .aside::after {
    clear: both;
    content: "";
    display: table; }

@media screen and (min-width: 1024px) {
  .main {
    width: calc(100% - 320px - 40px); } }

/**
 * Aside
 */
.aside > .row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0; }
  .aside > .row::after {
    clear: both;
    content: "";
    display: table; }

@media screen and (min-width: 1024px) {
  .aside {
    margin-left: 2.5rem;
    padding-top: 1.875rem;
    width: 320px; }
    .aside > .row {
      margin: 0; } }

.aside__item {
  float: left;
  width: 100%; }
  .aside__item--miniTV, .aside__item--miniFoot, .aside__item--contest, .aside__item--eServices {
    display: none; }
  @media screen and (min-width: 640px) {
    .aside__item {
      padding-left: 0.75rem;
      padding-right: 0.75rem;
      width: 50%; }
      .aside__item--miniTV, .aside__item--miniFoot, .aside__item--contest, .aside__item--eServices {
        display: block; }
      .aside__item--miniTV {
        -webkit-box-ordinal-group: 2;
            -ms-flex-order: 1;
                order: 1; }
      .aside__item--miniFoot {
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2; }
      .aside__item--contest {
        -webkit-box-ordinal-group: 4;
            -ms-flex-order: 3;
                order: 3; }
      .aside__item--eServices {
        -webkit-box-ordinal-group: 5;
            -ms-flex-order: 4;
                order: 4; }
      .aside__item--imu {
        -webkit-box-ordinal-group: 6;
            -ms-flex-order: 5;
                order: 5; }
      .aside__item--imuTelco {
        -webkit-box-ordinal-group: 7;
            -ms-flex-order: 6;
                order: 6; } }
  @media screen and (min-width: 1024px) {
    .aside__item {
      padding: 0;
      width: 100%; }
      .aside__item--contest {
        -webkit-box-ordinal-group: 2;
            -ms-flex-order: 1;
                order: 1; }
      .aside__item--miniTV {
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2; }
      .aside__item--imu {
        -webkit-box-ordinal-group: 4;
            -ms-flex-order: 3;
                order: 3; }
      .aside__item--miniFoot {
        -webkit-box-ordinal-group: 5;
            -ms-flex-order: 4;
                order: 4; }
      .aside__item--imuTelco {
        -webkit-box-ordinal-group: 6;
            -ms-flex-order: 5;
                order: 5; }
      .aside__item--eServices {
        -webkit-box-ordinal-group: 7;
            -ms-flex-order: 6;
                order: 6; }
      .aside__item--topup {
        -webkit-box-ordinal-group: 8;
            -ms-flex-order: 7;
                order: 7; } }

/**
 * Scaffolding
 */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #4f556b;
  font-family: "proximus";
  font-size: 100%;
  text-rendering: optimizeLegibility; }

dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

/**
 * Headings
 */
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #3d3d3d;
  line-height: 1.4;
  margin-bottom: 1rem; }

h1 {
  font-size: 1.5rem;
  font-weight: lighter; }
  @media screen and (min-width: 640px) {
    h1 {
      font-size: 1.875rem; } }
  @media screen and (min-width: 1024px) {
    h1 {
      font-size: 2.5rem; } }
  @media screen and (min-width: 1350px) {
    h1 {
      font-size: 2.5rem; } }

h2 {
  font-size: 1.25rem;
  font-weight: lighter;
  letter-spacing: 1px; }
  @media screen and (min-width: 640px) {
    h2 {
      font-size: 1.5rem; } }
  @media screen and (min-width: 1024px) {
    h2 {
      font-size: 1.75rem; } }
  @media screen and (min-width: 1350px) {
    h2 {
      font-size: 1.75rem; } }

h3 {
  font-size: 1.25rem;
  font-weight: lighter;
  letter-spacing: 1px; }
  @media screen and (min-width: 640px) {
    h3 {
      font-size: 1.5rem; } }
  @media screen and (min-width: 1024px) {
    h3 {
      font-size: 1.5rem; } }
  @media screen and (min-width: 1350px) {
    h3 {
      font-size: 1.75rem; } }

/**
 * Paragraphs
 */
p {
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 1rem; }

/**
 * Inline elements
 */
em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

/**
 * Anchors
 */
a {
  line-height: inherit;
  text-decoration: none; }
  a:focus {
    outline: none; }

/**
 * Owl
 */
.owl-loaded {
  position: relative;
  width: 100%; }

.owl-stage-outer {
  overflow: hidden; }

.owl-stage::after {
  clear: both;
  content: "";
  display: table; }

.owl-item {
  float: left;
  width: 100%; }

.owl-nav {
  display: block; }
  .owl-nav .owl-prev {
    left: 0;
    background: rgba(93, 46, 143, 0.7);
    border-bottom-right-radius: 10px;
    color: #fff;
    cursor: pointer;
    font-size: 22px;
    height: 70px;
    line-height: 70px;
    padding-top: 2px;
    position: absolute;
    text-align: center;
    top: 40%;
    -webkit-transition: all 300ms ease-out;
    transition: all 300ms ease-out;
    width: 30px;
    background: rgba(255, 255, 255, 0.6);
    color: #5C2D91;
    top: 40px; }
    .owl-nav .owl-prev:hover {
      background: #5C2D91;
      color: #fff;
      opacity: 1; }
  .owl-nav .owl-next {
    right: 0;
    background: rgba(93, 46, 143, 0.7);
    border-bottom-left-radius: 10px;
    color: #fff;
    cursor: pointer;
    font-size: 22px;
    height: 70px;
    line-height: 70px;
    padding-top: 2px;
    position: absolute;
    text-align: center;
    top: 40%;
    -webkit-transition: all 300ms ease-out;
    transition: all 300ms ease-out;
    width: 30px;
    background: rgba(255, 255, 255, 0.6);
    color: #5C2D91;
    top: 40px; }
    .owl-nav .owl-next:hover {
      background: #5C2D91;
      color: #fff;
      opacity: 1; }
  .owl-nav .disabled {
    display: none; }

/**
 * Article item
 */
.article__item {
  border-bottom: 1px solid rgba(55, 25, 84, 0.2);
  display: block;
  margin-bottom: 0.9375rem;
  min-height: 5rem;
  position: relative;
  /**
     * Featured
     */ }
  .article__item::after {
    clear: both;
    content: "";
    display: table; }
  .article__item:hover .article__item__title {
    color: #00bcee;
    text-decoration: underline; }
  .article__item__image {
    left: 0;
    position: absolute;
    width: 5.3125rem; }
  .article__item__title {
    color: #242b46;
    font-size: 1rem;
    line-height: 1.4;
    margin: 0;
    width: 100%; }
  .article__item__image + .article__item__title {
    padding-left: 6.25rem; }
  .article__item--featured {
    background: #c7cce2;
    border: 0;
    position: relative; }
    .article__item--featured:before {
      background-color: transparent;
      background-image: -webkit-linear-gradient(top, transparent 40%, rgba(0, 0, 0, 0.8) 100%);
      background-image: -webkit-gradient(linear,left top, left bottom,color-stop(40%, transparent), to(rgba(0, 0, 0, 0.8)));
      background-image: -webkit-linear-gradient(top,transparent 40%, rgba(0, 0, 0, 0.8) 100%);
      background-image: linear-gradient(to bottom,transparent 40%, rgba(0, 0, 0, 0.8) 100%);
      bottom: 0;
      content: '';
      left: 0;
      pointer-events: none;
      position: absolute;
      right: 0;
      top: 0;
      z-index: 20; }
    .article__item--featured .article__item__image {
      display: block;
      position: relative;
      width: 100%; }
    .article__item--featured .article__item__title {
      bottom: 0;
      color: #fff;
      font-family: "proximus";
      font-size: 1.125rem;
      font-weight: bold;
      left: 0;
      padding: 0.875rem;
      position: absolute;
      right: 0;
      z-index: 25; }

/**
 * Default img
 */
.icon--default-bg:after {
  color: #fff;
  content: '\e95b';
  font-family: 'skynet-icons';
  font-size: 5.625rem;
  left: 35%;
  position: absolute;
  top: 20%;
  -webkit-transition: -webkit-transform 300ms ease-out;
  transition: -webkit-transform 300ms ease-out;
  transition: transform 300ms ease-out;
  transition: transform 300ms ease-out, -webkit-transform 300ms ease-out; }

body {
  overflow: visible !important; }

/**
 * Removes empty space between the menu and content on Skynet HP 
 */
.adops-splash,
.adops--out-of-page {
  position: absolute;
  top: 0; }

/**
 * Top Leaderboard 
 */
.topLeaderBoard,
.bottomLeaderBoard {
  line-height: 0;
  margin: 0 auto;
  text-align: center; }

.topLeaderBoard {
  margin: 0 auto; }
  .topLeaderBoard > div {
    padding-top: 20px; }
  .topLeaderBoard div {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important; }
    .topLeaderBoard div table {
      width: 100%; }

.bottomLeaderBoard {
  margin-top: 30px; }

[class$='_ad_container'] > div {
  margin: 0 auto; }

/**
 * Telco
 */
.wrapper-telco {
  background: #c8cce2; }
  .wrapper-telco .bottomLeaderBoard > div {
    padding-top: 3.125rem;
    padding-bottom: 4.375rem; }

/**
 * Sidebar
 */
.imu.pub > div {
  margin: 0 auto 2.8125rem 0;
  display: block !important; }
  .imu.pub > div > a {
    display: block;
    text-align: center; }

.imu.pub ins {
  display: block !important;
  margin: 0 auto; }

.imu.pub iframe {
  margin: 0 auto !important;
  display: block !important; }

.imu.pub div {
  margin: 0 auto 0 auto !important;
  display: block !important; }

.imu.pub > div {
  margin-bottom: 2.8125rem !important; }

@media screen and (min-width: 640px) {
  .imu.pub ins {
    display: inline-block !important; }
  .imu.pub iframe {
    margin: 0 !important; }
  .imu.pub div {
    display: inline-block !important; } }

.back-to-top {
  bottom: 6.25rem;
  display: none;
  position: fixed;
  right: 0;
  z-index: 5000; }
  .back-to-top a {
    background: rgba(92, 45, 145, 0.5);
    border-bottom-left-radius: 0.375rem;
    display: block;
    padding: 0.625rem 1.25rem;
    -webkit-transition: opacity 300ms ease-out;
    transition: opacity 300ms ease-out; }
    .back-to-top a:hover {
      background: #00bcee; }
    .back-to-top a span {
      color: #fff;
      display: block; }
    .back-to-top a .icon {
      font-size: 1.5625rem;
      margin-bottom: 0.1875rem; }
  .back-to-top__text {
    font-size: 0.75rem;
    margin-left: 0.1875rem; }

.message-collection {
  position: fixed;
  z-index: 1001;
  bottom: 0;
  left: 0;
  right: 0; }
  .message-collection .message {
    position: relative;
    background-color: #fff;
    padding: 1.25rem;
    color: #283451;
    font-size: 0.75rem;
    /*&:before,
        &:not(#messageCookie) {
             font-size: rem(35);
             color: $color-blue-light;
             position: absolute;
             left: 8px;
        }*/ }
    .message-collection .message .icon-cross-o {
      position: absolute;
      top: 10px;
      right: 10px;
      font-size: 0.9375rem;
      color: #37205d;
      text-decoration: none; }
    .message-collection .message p {
      font-family: 'proximus';
      margin: 0; }
      .message-collection .message p a {
        color: #283451;
        text-decoration: underline; }
      .message-collection .message p span {
        color: #592c91;
        font-size: 16px;
        font-weight: bold; }

@media screen and (min-width: 640px) {
  .message-collection {
    position: fixed; }
    .message-collection .message {
      font-size: 0.8125rem;
      padding: 0.9375rem 5.3125rem; }
      .message-collection .message:before {
        font-size: 2.375rem;
        left: 1.5625rem; } }

@media screen and (min-width: 1024px) {
  .message-collection .message {
    padding: 0.9375rem 7.8125rem;
    line-height: 1.375rem; }
    .message-collection .message:before {
      font-size: 3.5625rem;
      top: 3.125rem;
      right: 2.0625rem; } }

/**
 * Mixin: overlay
 */
/**
 * Mixin: vertically center
 */
/**
 * Survey: wrapper
 */
.survey-wrapper {
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 5; }

.survey-wrapper:before,
.survey-wrapper:after {
  background: #fff;
  content: "";
  left: 0;
  position: fixed;
  right: 0; }

.survey-wrapper:after {
  bottom: 0; }

.survey-wrapper:before {
  top: 0; }

/**
 * Survey
 */
.survey {
  display: none; }
  .survey.open {
    display: block; }
  .survey-content {
    height: 100vh;
    width: 100%; }
    .survey-content:after {
      background: rgba(0, 0, 0, 0.7);
      content: '';
      height: 100%;
      left: 0;
      position: absolute;
      top: 0;
      width: 100%;
      z-index: 0; }
    .survey-content .survey__overlay {
      position: relative;
      z-index: 2; }
  .survey__overlay {
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    position: relative;
    top: 50%; }
    .survey__overlay h3 {
      color: #5c2d91;
      font-size: 1.2rem;
      font-weight: bold;
      margin: 0;
      padding: 0; }
    .survey__overlay p {
      color: #000;
      margin: 0 auto;
      padding: 10px 0; }
  .survey__inner {
    background: #fff;
    display: block;
    margin: 0 auto;
    overflow: hidden;
    padding: 20px;
    position: relative;
    width: 40%; }
  .survey__link {
    background-color: #5c2d91;
    border-bottom-right-radius: 15px;
    color: #fff;
    cursor: pointer;
    float: right;
    font-size: 13px;
    padding: 10px 20px;
    -webkit-transition: 300ms ease-out;
    transition: 300ms ease-out; }
    .survey__link:hover {
      text-decoration: none;
      background: #00bcee; }
    .survey__link .icon {
      padding-left: 5px;
      position: relative;
      top: 2px; }
  .survey__btn--close {
    height: 20px;
    cursor: pointer;
    opacity: 0.3;
    position: absolute;
    right: 20px;
    top: 20px;
    width: 20px; }
    .survey__btn--close:hover {
      opacity: 1; }
    .survey__btn--close:before, .survey__btn--close:after {
      background-color: #5c2d91;
      content: ' ';
      height: 20px;
      left: 8px;
      position: absolute;
      width: 2px; }
    .survey__btn--close:before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .survey__btn--close:after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }

/**
 * Manchette
 */
.manchette {
  height: 120px;
  margin: 1.875rem auto 0;
  opacity: 0;
  position: relative;
  -webkit-transition: opacity 300ms ease-out;
  transition: opacity 300ms ease-out;
  width: calc(100% - 74px); }
  .manchette::after {
    clear: both;
    content: "";
    display: table; }
  .manchette.owl-loaded {
    opacity: 1; }
  .manchette .owl-nav > div {
    background: #37205d;
    border-radius: 0;
    color: #fff;
    height: 120px;
    line-height: 120px;
    margin-top: 0;
    opacity: 1;
    top: 0;
    width: 30px; }
    .manchette .owl-nav > div:hover {
      background: #00bcee; }
  .manchette .owl-nav .owl-prev {
    left: -37px; }
  .manchette .owl-nav .owl-next {
    right: -37px; }
  .manchette .owl-nav > .disabled {
    background: #eceff6;
    display: block; }
    .manchette .owl-nav > .disabled:hover {
      background: #eceff6; }

/**
 * Item
 */
.manchette__item {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
          box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
  color: #000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 120px;
  width: 100%; }
  .manchette__item::after {
    clear: both;
    content: "";
    display: table; }
  .manchette__item:hover p {
    color: #00bcee;
    text-decoration: underline; }
  .manchette__item__image, .manchette__item__title {
    float: left;
    font-weight: bold; }
  .manchette__item__image {
    height: 100%;
    max-width: none; }
  .manchette__item__title {
    font-size: 0.9375rem;
    letter-spacing: 0.5px;
    line-height: 1.3;
    margin: 0;
    opacity: .7;
    padding: 0 0.875rem;
    position: relative;
    width: 100%; }

@media screen and (min-width: 640px) {
  /**
     * Manchette
     */ }

/**
 * Mixins
 */
/**
 * General
 */
/**
* General
* NOTE: 'chnls' stands for channels
* NOTE: 'chnl' stands for channel
*/
.wrapper-channels {
  background: #eceff6;
  padding-bottom: 3.75rem;
  padding-top: 3.75rem; }

.chnls {
  width: 100%; }
  .chnls .owl-nav .owl-next,
  .chnls .owl-nav .owl-prev {
    top: 95px; }

.chnl__title {
  font-size: 1.875rem; }
  .chnl__title.tv {
    color: #a489c1; }
  .chnl__title.football {
    color: #3c70b6; }
  .chnl__title.music {
    color: #eb2d5e; }
  .chnl__title.news {
    color: #00bcee; }

/**
 * Accordion for the mobile version only
 * NOTE: idea cancelled by business. Can be deleted (maybe)
 */
@media screen and (min-width: 1024px) {
  /**
    * Article inner
    */
  .article__inner--first .article__item__title {
    font-size: 1.125rem; }
  .article__item__title {
    font-size: 0.9375rem; } }

/**
 * General
 */
.wrapper-dossiers {
  background: #c8cce2;
  padding-bottom: 3.75rem;
  padding-top: 3.75rem; }

.dossiers {
  width: 100%; }
  .dossiers h1 {
    font-size: 2.5rem;
    font-weight: light;
    letter-spacing: 2px; }

/**
 * Mixins
 */
/**
 * Carousel videos
 */
.wrapper-videos {
  background: #c8cce2;
  padding-bottom: 3.75rem;
  padding-top: 3.75rem; }

.videos {
  width: 100%; }
  .videos h1 {
    font-size: 2.5rem;
    font-weight: light; }
  .videos .article__item {
    border: 0; }
    .videos .article__item:hover .icon-video {
      color: #00bcee; }
    .videos .article__item:hover .video__thumbnail:before {
      opacity: 1; }
    .videos .article__item__title {
      font-size: 0.875rem;
      line-height: 1.2;
      margin-top: 0.5rem; }

.video__thumbnail {
  position: relative; }
  .video__thumbnail:before {
    background: rgba(0, 0, 0, 0.5);
    bottom: 0;
    content: '';
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    top: 0;
    -webkit-transition: opacity 300ms ease-out;
    transition: opacity 300ms ease-out; }
  .video__thumbnail > span {
    display: block; }
  .video__thumbnail img {
    display: block; }
  .video__thumbnail .icon-video {
    color: #fff;
    font-size: 2.5rem;
    left: 50%;
    margin-left: -20px;
    margin-top: -20px;
    position: absolute;
    top: 50%;
    -webkit-transition: all 300ms ease-out;
    transition: all 300ms ease-out; }

@media screen and (min-width: 1350px) {
  /**
     * Carousel videos
     */
  .videos .article__item__title {
    font-size: 0.9375rem;
    line-height: 1.4;
    margin-top: 1.25rem; }
  .videos .owl-nav > div {
    top: 1.25rem; } }

/**
 * Variables
 *
 * Table of Contents:
 *
 * - Colours
 */
.match-overview {
  margin-bottom: 2.8125rem;
  /**
     * Container
     */
  /**
     * Scroll bar
     * This scroll bar has some inline style given by Javascript
     * We need !important to override them
     */
  /**
    * Tabs
    */
  /**
     * Option picker
     */
  /*
    * Scrollable
    */
  /*
    * Section table
    */ }
  .match-overview .match-overview__list__tabs {
    background-color: #1d0f2e;
    background-image: -webkit-linear-gradient(-450deg, #1d0f2e 15%, #37205d 35%, #2662a1 80%, #1e73af 86%, #1e73af 100%);
    background-image: -webkit-gradient(linear,left top, left bottom,color-stop(15%, #1d0f2e), color-stop(35%, #37205d), color-stop(80%, #2662a1), color-stop(86%, #1e73af), to(#1e73af));
    background-image: -webkit-linear-gradient(top,#1d0f2e 15%, #37205d 35%, #2662a1 80%, #1e73af 86%, #1e73af 100%);
    background-image: linear-gradient(180deg,#1d0f2e 15%, #37205d 35%, #2662a1 80%, #1e73af 86%, #1e73af 100%);
    position: relative; }
    .match-overview .match-overview__list__tabs:after {
      background-color: transparent;
      background-image: -webkit-linear-gradient(transparent, #00bcee 90%);
      background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(90%, #00bcee));
      background-image: linear-gradient(transparent, #00bcee 90%);
      bottom: 0;
      content: '';
      height: 10%;
      left: 0;
      pointer-events: none;
      position: absolute;
      right: 0; }
  .match-overview .iScrollVerticalScrollbar {
    height: calc(100% - 50px) !important;
    position: absolute !important;
    right: 5px !important;
    top: 2.8125rem !important;
    width: 4px !important; }
  .match-overview .iScrollIndicator {
    background: rgba(255, 255, 255, 0.4) !important;
    border: 0 !important;
    border-radius: 5px !important;
    pointer-events: auto !important;
    position: absolute !important;
    right: 0 !important;
    width: 4px !important; }
  .match-overview .tab-collection {
    padding: 0.875rem; }
    .match-overview .tab-collection > li {
      border-bottom: 2px solid transparent;
      display: inline;
      margin: 0 0.4375rem;
      padding-bottom: 0.4375rem; }
      .match-overview .tab-collection > li:first-child {
        margin-left: 0; }
      .match-overview .tab-collection > li.ui-state-active {
        border-color: #00bcee; }
      .match-overview .tab-collection > li > a {
        color: #fff; }
  .match-overview .option-picker__selected {
    display: none; }
  .match-overview .scrollable {
    height: 595px;
    overflow-x: hidden;
    overflow-y: auto; }
    .match-overview .scrollable > div {
      padding-bottom: 3.125rem; }
  .match-overview .section-table {
    width: 100%;
    /**
        * Team FULL & SHORT name
        */
    /**
         * Channel
         */
    /**
         * Team logo
         */
    /**
         * Numb
         */
    /**
        * Icon wrraper
        */
    /**
        * Channel collection
        */ }
    .match-overview .section-table tr {
      border-top: 1px solid #5d659a; }
      .match-overview .section-table tr:first-child {
        border: 0; }
    .match-overview .section-table th,
    .match-overview .section-table td {
      padding: 0.3125rem; }
      .match-overview .section-table th:first-child,
      .match-overview .section-table td:first-child {
        border-right: 1px solid #5d659a; }
    .match-overview .section-table td {
      color: #d1d1dc; }
      .match-overview .section-table td a {
        color: #d1d0dc;
        font-size: 0.75rem;
        text-decoration: none; }
      .match-overview .section-table td.extra-info {
        font-weight: normal; }
        .match-overview .section-table td.extra-info a:after {
          background: transparent url("../images/mini-foot/icon-arrow-left.png") center center no-repeat;
          content: "";
          display: inline-block;
          height: 12px;
          margin: 0 0.375rem;
          position: relative;
          top: 2px;
          width: 8px; }
    .match-overview .section-table .team-name__full,
    .match-overview .section-table .team-name__short,
    .match-overview .section-table .weekday__day {
      display: none; }
    .match-overview .section-table .channel {
      font-size: 1.0625rem;
      font-weight: bold;
      text-align: center;
      vertical-align: top; }
    .match-overview .section-table .team-logo {
      padding: 0.9375rem 0.625rem;
      text-align: center; }
      .match-overview .section-table .team-logo img {
        margin: 0 auto;
        width: auto; }
    .match-overview .section-table .numb {
      color: #fff;
      font-size: 1.375rem;
      font-weight: bold;
      text-align: center; }
      .match-overview .section-table .numb span {
        display: block;
        font-size: 0.8125rem;
        margin: 0; }
    .match-overview .section-table .icon-wrapper {
      display: inline-block;
      position: relative; }
      .match-overview .section-table .icon-wrapper img {
        display: none; }
      .match-overview .section-table .icon-wrapper.display-no-icon .icon {
        color: #fff;
        display: block; }
      .match-overview .section-table .icon-wrapper .icon {
        color: transparent; }
        .match-overview .section-table .icon-wrapper .icon.icon-logo-11-bg {
          border: 2px solid #e5e4ec;
          border-radius: 50%;
          display: block;
          height: 20px;
          width: 20px; }
      .match-overview .section-table .icon-wrapper .icon-color {
        color: #e5e4ec; }
        .match-overview .section-table .icon-wrapper .icon-color:before {
          left: 2px;
          position: absolute;
          text-indent: 0;
          top: 1px;
          white-space: normal; }
    .match-overview .section-table .channel-collection {
      margin-top: 0.3125rem; }
      .match-overview .section-table .channel-collection .channel__item {
        font-size: 0.75rem;
        font-weight: bold; }

@media screen and (min-width: 1024px) {
  /*
    * Scrollable
    */
  .scrollable {
    height: 548px; } }

.epg-overview {
  margin-bottom: 2.8125rem;
  /**
     * Container
     */
  /**
     * Scroll bar
     */
  /**
    * Tabs
    */
  /**
     * Option picker
     */
  /**
     * Panel
     */
  /**
     * Item
     */
  /**
     * Image
     */
  /**
     * Info
     */
  /**
     * Button
     */
  /**
     * Full programme button
     */
  /**
     * Partner
     */ }
  .epg-overview .epg-overview__tabs {
    background-color: #130d46;
    background-image: -webkit-radial-gradient(50% 60% ellipse, rgba(8, 79, 126, 0.9) 0%, rgba(8, 79, 126, 0.2) 90%);
    background-image: radial-gradient(50% 60% ellipse, rgba(8, 79, 126, 0.9) 0%, rgba(8, 79, 126, 0.2) 90%);
    padding: 0 0.875rem;
    position: relative; }
  .epg-overview .iScrollVerticalScrollbar {
    bottom: 3.125rem;
    height: calc(100% - 50px);
    position: absolute;
    right: 5px;
    top: 0.9375rem;
    width: 4px; }
  .epg-overview .iScrollIndicator {
    background: rgba(255, 255, 255, 0.4);
    border-radius: 5px;
    position: absolute;
    right: 0;
    top: 0;
    width: 4px; }
  .epg-overview .tab-collection {
    padding: 0.875rem 0; }
    .epg-overview .tab-collection > li {
      border-bottom: 2px solid transparent;
      display: inline;
      margin: 0 0.4375rem;
      padding-bottom: 0.4375rem; }
      .epg-overview .tab-collection > li:first-child {
        margin-left: 0; }
      .epg-overview .tab-collection > li.ui-state-active {
        border-color: #00bcee; }
      .epg-overview .tab-collection > li > a {
        color: #fff; }
  .epg-overview .option-picker {
    position: relative; }
    .epg-overview .option-picker--open .option-picker__collection {
      display: block; }
  .epg-overview .option-picker__selected {
    background: #eceff6;
    border: 1px solid #667d94;
    border-radius: 1px;
    cursor: pointer;
    margin: 0.4375rem 0;
    padding: 0.4375rem; }
    .epg-overview .option-picker__selected:after {
      content: '\e901';
      float: right;
      font-family: 'skynet-icons';
      font-size: 0.75rem;
      padding-top: 0.3125rem; }
  .epg-overview .option-picker__collection {
    background: #eceff6;
    border: 1px solid #667d94;
    border-bottom-left-radius: 1px;
    border-bottom-right-radius: 1px;
    display: none;
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 5; }
  .epg-overview .option-picker__item a {
    color: #667d94;
    display: block;
    padding: 0.4375rem;
    -webkit-transition: all 300ms ease-out;
    transition: all 300ms ease-out; }
    .epg-overview .option-picker__item a:hover {
      background: #00bcee;
      color: #fff; }
  .epg-overview .option-picker__item--active a {
    background: #00bcee;
    color: #fff; }
  .epg-overview__panel__content {
    height: 500px;
    overflow: hidden; }
  .epg-overview .item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    padding: 0.875rem 0; }
    .epg-overview .item::after {
      clear: both;
      content: "";
      display: table; }
    .epg-overview .item:last-child {
      border-bottom: 0;
      padding-bottom: 3.125rem; }
  .epg-overview .item__visual {
    float: left;
    width: 30%; }
  .epg-overview .item__info {
    color: #fff;
    float: left;
    padding-left: 0.875rem;
    width: 70%; }
    .epg-overview .item__info p {
      margin-bottom: 0; }
  .epg-overview .item__info__title {
    line-height: 1rem;
    margin-bottom: 0.625rem; }
    .epg-overview .item__info__title .link {
      color: #fff;
      font-size: 1rem; }
  .epg-overview .play-button,
  .epg-overview .replay-button,
  .epg-overview .record-button {
    background: rgba(108, 65, 156, 0.9);
    border-bottom-right-radius: 10px;
    color: #fff;
    float: left;
    margin-left: calc(30% + 14px);
    margin-top: 0.625rem;
    padding: 0.625rem 0;
    text-align: center;
    -webkit-transition: background 300ms ease-out;
    transition: background 300ms ease-out;
    width: 9.6875rem; }
    .epg-overview .play-button:hover,
    .epg-overview .replay-button:hover,
    .epg-overview .record-button:hover {
      background: rgba(255, 255, 255, 0.5); }
  .epg-overview .button-three--urls {
    font-size: 0.875rem;
    padding: 0.875rem 0;
    text-align: center; }
    .epg-overview .button-three--urls a {
      color: #fff; }
      .epg-overview .button-three--urls a:nth-child(1), .epg-overview .button-three--urls a:nth-child(2) {
        padding-right: 1.125rem; }
      .epg-overview .button-three--urls a:hover {
        text-decoration: underline; }
  .epg-overview .button__text {
    font-family: "proximus";
    font-size: 0.875rem;
    padding-left: 0.625rem; }
  .epg-overview__tabs + .layout-inception-button {
    background: #091e41;
    padding: 0 0.875rem; }
    .epg-overview__tabs + .layout-inception-button .seperator-button {
      border-top: 1px solid rgba(255, 255, 255, 0.25); }
    .epg-overview__tabs + .layout-inception-button .complete {
      color: #fff;
      display: block;
      padding: 0.875rem 0;
      text-align: right; }
      .epg-overview__tabs + .layout-inception-button .complete:hover .button__text {
        text-decoration: underline; }
      .epg-overview__tabs + .layout-inception-button .complete:after {
        content: '\e903';
        font-family: 'skynet-icons';
        padding-left: 0.3125rem; }
      .epg-overview__tabs + .layout-inception-button .complete .icon-arrow-right:before {
        display: none; }
  .epg-overview__partner {
    display: none; }

/**
 * General
 * NOTE: 'rn' stands for recent-news
 */
.rn {
  margin: 5rem 0; }
  .rn h1 {
    font-size: 2.5rem;
    font-weight: light; }

/**
 * Tabs
 */
.rn__tabs {
  padding: 0.625rem 0 1.875rem; }

.rn__tab-item {
  color: #667d94;
  cursor: pointer;
  display: inline-block;
  font-size: 1.125rem;
  font-weight: bold;
  margin: 0 0.875rem;
  padding: 0.625rem 0;
  position: relative;
  -webkit-transition: color 300ms ease-out;
  transition: color 300ms ease-out; }
  .rn__tab-item:hover {
    color: #00bcee; }
  .rn__tab-item.active {
    border-bottom: 2px solid #00bcee;
    color: #00bcee; }
  .rn__tab-item:first-child {
    margin-left: 0; }
  .rn__tab-item:not(:last-child) {
    position: relative; }
    .rn__tab-item:not(:last-child):after {
      background: #667d94;
      content: "";
      height: 24px;
      opacity: 0.4;
      position: absolute;
      top: 18px;
      width: 1px;
      right: 0; }
    .rn__tab-item:not(:last-child):after {
      right: -16px;
      top: 7px; }

/**
 * Tab content
 */
.rn__tab-content.hidden-tab {
  display: none; }

.rn__subtitle {
  font-size: 1.5rem;
  font-weight: light;
  letter-spacing: 2px; }

/**
 * News list
 */
.rn__newslist {
  list-style-type: none;
  margin-bottom: 1.25rem; }

.rn__newslist__item {
  border-left: 6px solid #00bcee;
  line-height: 1.3;
  margin-bottom: 0.1875rem;
  padding: 0.0625rem 0 0 4.625rem;
  position: relative; }
  .rn__newslist__item.football {
    border-color: #3c70b6; }
  .rn__newslist__item.news {
    border-color: #00bcee; }
  .rn__newslist__item.tv {
    border-color: #a489c1; }
  .rn__newslist__item.music {
    border-color: #eb2d5e; }
  .rn__newslist__item a {
    color: #3d3d3d;
    font-size: 0.9375rem;
    line-height: 0.875rem; }
    .rn__newslist__item a:hover {
      color: #00bcee;
      text-decoration: underline; }
  .rn__newslist__item time {
    color: #838897;
    font-size: 0.875rem;
    left: 0.875rem;
    position: absolute;
    top: 0.3125rem; }

@media screen and (min-width: 1024px) {
  .rn h1 {
    float: left; }
  .rn__header::after {
    clear: both;
    content: "";
    display: table; }
  .rn__tabs {
    float: right;
    padding-bottom: 0;
    position: relative;
    top: -3px; } }

/**
 * Carousel contest
 */
.contest {
  margin-bottom: 2.8125rem;
  /**
     * Owl
     */
  /**
     * Btn more
     */ }
  .contest__highlight {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background: #283451;
    border-radius: 2px;
    -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
            box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    overflow: hidden; }
    .contest__highlight.owl-loaded {
      opacity: 1; }
  .contest .owl-nav .owl-prev {
    padding-right: 0.1875rem; }
  .contest .owl-nav .owl-next {
    padding-left: 0.1875rem; }
  .contest .owl-nav .owl-prev,
  .contest .owl-nav .owl-next {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    font-size: 1.125rem;
    height: 3.125rem;
    line-height: 3.125rem;
    margin-top: -1.875rem;
    top: 35%;
    width: 1.25rem; }
  .contest .btn-more--white {
    bottom: 0;
    margin: 0 1.5625rem 1.25rem 1.5625rem;
    position: relative; }

/**
 * Item
 */
.contest__item {
  background: #283451;
  display: block;
  position: relative; }
  .contest__item:before {
    bottom: 0;
    content: '';
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 20; }
  .contest__item:hover .contest__item__title {
    color: #c7cce1; }
  .contest__item__image {
    display: block;
    position: relative;
    width: 100%; }
  .contest__item__info {
    color: #c7cce1;
    display: block;
    font-size: 0.75rem;
    letter-spacing: 2px;
    opacity: 0.8;
    padding: 1.25rem 1.5625rem 0 1.5625rem;
    position: relative;
    text-transform: capitalize; }
  .contest__item__title {
    color: #fff;
    font-size: 1.125rem;
    font-weight: bold;
    letter-spacing: 0.01875rem;
    line-height: 1.5625rem;
    margin: 0;
    min-height: 115px;
    overflow: hidden;
    padding: 1.25rem 1.5625rem 1.25rem;
    -webkit-transition: color 300ms ease-out;
    transition: color 300ms ease-out;
    z-index: 25; }

@media screen and (min-width: 1024px) {
  .contest__highlight {
    position: relative;
    top: 3px; } }

/**
 * General
 */
.e-services {
  margin-bottom: 0.9375rem; }
  .e-services > .row > .column {
    margin-bottom: 0.75rem; }
    .e-services > .row > .column:nth-child(odd) {
      padding-right: 0.375rem; }
    .e-services > .row > .column:nth-child(even) {
      padding-left: 0.375rem; }

/**
 * Items
 */
.e-services__item {
  background: #5c2d91;
  border-bottom-right-radius: 10px;
  color: #fff;
  display: block;
  height: 8.75rem;
  padding: 1.125rem 0.9375rem 0.9375rem;
  position: relative;
  -webkit-transition: background 300ms ease-out;
  transition: background 300ms ease-out; }
  .e-services__item__title,
  .e-services__item .icon {
    opacity: .8; }
    .e-services__item__title:hover,
    .e-services__item .icon:hover {
      opacity: 1; }
  .e-services__item__title {
    font-size: 1.125rem;
    line-height: 1.125rem; }
  .e-services__item .icon {
    bottom: 15px;
    font-size: 3.125rem;
    left: 20px;
    position: absolute; }
  .e-services__item:hover {
    background: #00bcee; }

/**
 * Topup
 */
.topup {
  background-color: #5c2c8f;
  background-image: -webkit-linear-gradient(top, #5c2c8f 0%, #4f479d 57%, #00bcee 100%);
  background-image: -webkit-gradient(linear,left top, left bottom,from(#5c2c8f), color-stop(57%, #4f479d), to(#00bcee));
  background-image: -webkit-linear-gradient(top,#5c2c8f 0%, #4f479d 57%, #00bcee 100%);
  background-image: linear-gradient(to bottom,#5c2c8f 0%, #4f479d 57%, #00bcee 100%);
  margin-bottom: 2.8125rem;
  padding: 1.5625rem 0.9375rem; }
  .topup .icon-mobile-o {
    color: #fff;
    display: inline-block;
    font-size: 4.375rem;
    margin-top: 0.03125rem;
    vertical-align: top; }
  .topup__content {
    display: inline-block;
    margin: 0 0 0 0.625rem;
    width: 78%; }
  .topup__title {
    color: #fff;
    font-size: 1.125rem;
    font-weight: bold;
    letter-spacing: 0.01875rem;
    line-height: 1.5625rem;
    margin: 0;
    margin-bottom: 0.625rem;
    vertical-align: middle; }
  .topup__form-title {
    color: #fff;
    font-size: 0.875rem;
    margin-bottom: 0.9375rem; }
  .topup__phone-number {
    color: #3d3d3d;
    float: left;
    height: 40px;
    margin: 0;
    padding: 0 0.625rem;
    width: 70%; }
  .topup__submit-button {
    background: #5b2d90;
    border: 0;
    border-bottom-right-radius: 10px;
    color: #fff;
    float: left;
    height: 40px;
    margin: 0;
    padding: 0 0.9375rem;
    -webkit-transition: background 300ms ease-out 0s;
    transition: background 300ms ease-out 0s; }
    .topup__submit-button:hover {
      background: #00bcee; }

/**
 * Wall default/card view
 */
.wrapper-wall .main {
  padding: 0 10px; }

/**
 * Title
 */
.wall__item__excerpt {
  border: 2px solid red;
  color: rgba(255, 255, 255, 0.5);
  display: block;
  margin-top: 10px; }

@media screen and (min-width: 640px) {
  .wrapper-wall .main {
    padding: 0; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvX25vcm1hbGl6ZS5zY3NzIiwic3R5bGUuY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvbWl4aW5zL19hcnJvdy1jYXJvdXNlbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9taXhpbnMvX2JnLXByb3hpbXVzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL21peGlucy9fY3VzdG9tLXNjcm9sbGJhci5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9taXhpbnMvX2ZvbnQtc2l6ZXMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvbWl4aW5zL19oYW1idXJnZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvbWl4aW5zL19saW5rLWhvdmVyLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL21peGlucy9fcmVzcG9uZC10by5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9taXhpbnMvX3NlcGFyYXRvcnMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvZ3JpZC1mbGV4L19mbGV4LWdyaWQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvZ3JpZC1mbGV4L19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvZ3JpZC1mbGV4L191dGlsLWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvZ3JpZC1mbGV4L19jb2x1bW4uc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvZ3JpZC1mbGV4L19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9ncmlkLWZsZXgvX3V0aWwtZmxleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9ncmlkLWZsZXgvX2xheW91dC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9ncmlkLWZsZXgvX3ZhcmlhYmxlcy5zY3NzIiwiY3NzL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9CdW5kbGUvUmVib3JuL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9ib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0J1bmRsZS9SZWJvcm4vc2Nzcy9mdW5jdGlvbnMvcmVtLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL2JvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiY3NzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL21peGlucy9fZm9udC1zbW9vdGhpbmcuc2NzcyIsImNzcy9fY2Fyb3VzZWxzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL19hZHMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9FbGVtZW50L0JhY2tUb1RvcC9zY3NzL2Nzcy9zbWFsbC5zY3NzIiwiY3NzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvY29tbW9uL2xpYnJhcnkvQmdjL0NvbW1vbi9FbGVtZW50L0Nvb2tpZUFsZXJ0L3Njc3MvY3NzL19zbWFsbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0VsZW1lbnQvQ29va2llQWxlcnQvc2Nzcy9jc3MvX21lZGl1bS5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9jb21tb24vbGlicmFyeS9CZ2MvQ29tbW9uL0VsZW1lbnQvQ29va2llQWxlcnQvc2Nzcy9jc3MvX2xhcmdlLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vRWxlbWVudC9TdXJ2ZXlPdmVybGF5L3Njc3MvY3NzL3NtYWxsLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2NvbW1vbi9saWJyYXJ5L0JnYy9Db21tb24vQnVuZGxlL1JlYm9ybi9zY3NzL2JvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vbGlicmFyeS9Ib21lcGFnZS9FbGVtZW50L0Nhcm91c2VsTWFuY2hldHRlL3Njc3MvY3NzL19zbWFsbC5zY3NzIiwiLi4vLi4vLi4vbGlicmFyeS9Ib21lcGFnZS9FbGVtZW50L0Nhcm91c2VsTWFuY2hldHRlL3Njc3MvY3NzL19tZWRpdW0uc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9DYXJvdXNlbENoYW5uZWxzL3Njc3MvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9DYXJvdXNlbENoYW5uZWxzL3Njc3MvY3NzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9DYXJvdXNlbENoYW5uZWxzL3Njc3MvY3NzL19zbWFsbC5zY3NzIiwiLi4vLi4vLi4vbGlicmFyeS9Ib21lcGFnZS9FbGVtZW50L0Nhcm91c2VsQ2hhbm5lbHMvc2Nzcy9jc3MvX2xhcmdlLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvQ2Fyb3VzZWxEb3NzaWVycy9zY3NzL2Nzcy9fc21hbGwuc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9DYXJvdXNlbFZpZGVvcy9zY3NzL19iYXNlLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvQ2Fyb3VzZWxWaWRlb3Mvc2Nzcy9jc3MvX3NtYWxsLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvQ2Fyb3VzZWxWaWRlb3Mvc2Nzcy9jc3MvX3hsYXJnZS5zY3NzIiwiLi4vLi4vLi4vbGlicmFyeS9Ib21lcGFnZS9FbGVtZW50L01pbmlGb290L3Njc3MvY3NzL01hdGNoL092ZXJ2aWV3L2Nzcy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvTWluaUZvb3Qvc2Nzcy9jc3MvTWF0Y2gvT3ZlcnZpZXcvY3NzL19zbWFsbC5zY3NzIiwiLi4vLi4vLi4vbGlicmFyeS9Ib21lcGFnZS9FbGVtZW50L01pbmlGb290L3Njc3MvY3NzL01hdGNoL092ZXJ2aWV3L2Nzcy9fbGFyZ2Uuc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9NaW5pVHYvc2Nzcy9jc3MvX3NtYWxsLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvTW9zdFJlY2VudE5ld3Mvc2Nzcy9jc3MvX3NtYWxsLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvTW9zdFJlY2VudE5ld3Mvc2Nzcy9jc3MvX2xhcmdlLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvQ2Fyb3VzZWxDb250ZXN0L3Njc3MvY3NzL19zbWFsbC5zY3NzIiwiLi4vLi4vLi4vbGlicmFyeS9Ib21lcGFnZS9FbGVtZW50L0Nhcm91c2VsQ29udGVzdC9zY3NzL2Nzcy9fbGFyZ2Uuc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9FbGVjdHJvbmljU2VydmljZXMvc2Nzcy9jc3MvX3NtYWxsLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvVG9wdXAvc2Nzcy9jc3MvX3NtYWxsLnNjc3MiLCIuLi8uLi8uLi9saWJyYXJ5L0hvbWVwYWdlL0VsZW1lbnQvV2FsbC9zY3NzL2Nzcy9fc21hbGwuc2NzcyIsIi4uLy4uLy4uL2xpYnJhcnkvSG9tZXBhZ2UvRWxlbWVudC9XYWxsL3Njc3MvY3NzL19tZWRpdW0uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFFNUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0ksK0JBQXVCO1VBQXZCLHVCQUF1QixFQUMxQjs7QUFDRDtFQUNJLDRCQUFvQjtVQUFwQixvQkFBb0IsRUFDdkI7O0FBRUQ7O0dBRUc7QUFFSDs7Ozs7Ozs7Ozs7O0VBWUksZUFBZSxFQUNsQjs7QUFFRDs7R0FFRztBQUVIOzs7RUFHSSxzQkFBc0IsRUFDekI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDSSxjQUFjO0VBQ2QsVUFBVSxFQUNiOztBQUVEOztHQUVHO0FDVEg7RURZSSxjQUFjLEVBQ2pCOztBQUVEOztnRkFFZ0Y7QUFFaEY7Ozs7Ozs7O0dBUUc7QUFFSDtFQUNJLGlCQUFpQjtFQUFFLE9BQU87RUFDMUIsWUFBWTtFQUFFLE9BQU87RUFDckIsd0JBQXdCO0VBQUUsT0FBTztFQUNqQywyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLCtCQUErQjtFQUFFLE9BQU8sRUFDM0M7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLFVBQVUsRUFDYjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSxxQkFBcUIsRUFDeEI7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFSSxXQUFXLEVBQ2Q7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7O0dBR0c7QUFFSDtF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QixFQXdJMUIsRUFBQTtFQU5IO0lBVUksZ0JBQWdCLEVBQ2pCO0VBWEg7SUNySkEsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFRGtLNkI7O0FBSzlDO0VBeEZBLG9CQXJCYztNQXFCZCxrQkFyQmM7VUFxQmQsY0FyQmM7RUE2QlIsd0JBSGdCO0VBSWhCLHlCQUpnQixFQXFGckI7RUVuQ0M7SUZpQ0Y7TUFoRk0sc0JBSGdCO01BSWhCLHVCQUpnQixFQXFGckIsRUFBQTs7QUFJRDtFQUNFLFlBQVksRUFTYjtFQVZVO0lBS1AsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsZ0JBQWdCLEVBQ2pCOztBQU1DO0VBQ0Usb0JHM0tnQjtNSDJLaEIsdUJHM0tnQjtVSDJLaEIsbUJHM0tnQjtFSDRLaEIsb0JHNUtnQixFSDZLakI7O0FBS0Q7RUl4S0osZ0JEYnNCLEVIdUxqQjs7QUFWRDtFQUNFLG9CRzNLZ0I7TUgyS2hCLHdCRzNLZ0I7VUgyS2hCLG9CRzNLZ0I7RUg0S2hCLHFCRzVLZ0IsRUg2S2pCOztBQUtEO0VJeEtKLHNCRFZzQixFSG9MakI7O0FBVkQ7RUFDRSxvQkczS2dCO01IMktoQixrQkczS2dCO1VIMktoQixjRzNLZ0I7RUg0S2hCLGVHNUtnQixFSDZLakI7O0FBS0Q7RUl4S0osdUJEVnNCLEVIb0xqQjs7QUFWRDtFQUNFLG9CRzNLZ0I7TUgyS2hCLHdCRzNLZ0I7VUgyS2hCLG9CRzNLZ0I7RUg0S2hCLHFCRzVLZ0IsRUg2S2pCOztBQUtEO0VJeEtKLGlCRFZzQixFSG9MakI7O0FBVkQ7RUFDRSxvQkczS2dCO01IMktoQix3QkczS2dCO1VIMktoQixvQkczS2dCO0VINEtoQixxQkc1S2dCLEVINktqQjs7QUFLRDtFSXhLSix1QkRWc0IsRUhvTGpCOztBQVZEO0VBQ0Usb0JHM0tnQjtNSDJLaEIsa0JHM0tnQjtVSDJLaEIsY0czS2dCO0VINEtoQixlRzVLZ0IsRUg2S2pCOztBQUtEO0VJeEtKLHVCRFZzQixFSG9MakI7O0FBVkQ7RUFDRSxvQkczS2dCO01IMktoQix3QkczS2dCO1VIMktoQixvQkczS2dCO0VINEtoQixxQkc1S2dCLEVINktqQjs7QUFLRDtFSXhLSixpQkRWc0IsRUhvTGpCOztBQVZEO0VBQ0Usb0JHM0tnQjtNSDJLaEIsd0JHM0tnQjtVSDJLaEIsb0JHM0tnQjtFSDRLaEIscUJHNUtnQixFSDZLakI7O0FBS0Q7RUl4S0osdUJEVnNCLEVIb0xqQjs7QUFWRDtFQUNFLG9CRzNLZ0I7TUgyS2hCLGtCRzNLZ0I7VUgyS2hCLGNHM0tnQjtFSDRLaEIsZUc1S2dCLEVINktqQjs7QUFLRDtFSXhLSix1QkRWc0IsRUhvTGpCOztBQVZEO0VBQ0Usb0JHM0tnQjtNSDJLaEIsd0JHM0tnQjtVSDJLaEIsb0JHM0tnQjtFSDRLaEIscUJHNUtnQixFSDZLakI7O0FBS0Q7RUl4S0osaUJEVnNCLEVIb0xqQjs7QUFWRDtFQUNFLG9CRzNLZ0I7TUgyS2hCLHdCRzNLZ0I7VUgyS2hCLG9CRzNLZ0I7RUg0S2hCLHFCRzVLZ0IsRUg2S2pCOztBQUtEO0VJeEtKLHVCRFZzQixFSG9MakI7O0FBVkQ7RUFDRSxvQkczS2dCO01IMktoQixtQkczS2dCO1VIMktoQixlRzNLZ0I7RUg0S2hCLGdCRzVLZ0IsRUg2S2pCOztBQUtEO0VJeEtKLHVCRFZzQixFSG9MakI7O0FBS0Q7RUtwSkosNkJMbUpnQjtNS25KaEIsa0JMbUpnQjtVS25KaEIsU0xtSmdCLEVBR1g7O0FBRUQ7RUEvRkosb0JBQWdCO01BQWhCLGdCQUFnQixFQWlHWDtFQS9GSDtJQUdBLG9CQUZnQjtRQUVoQixtQkFGZ0I7WUFFaEIsZUFGZ0I7SUFHaEIsZ0JBSGdCLEVBSWpCOztBQW9GRztFS3BKSiw2QkxtSmdCO01LbkpoQixrQkxtSmdCO1VLbkpoQixTTG1KZ0IsRUFHWDs7QUFFRDtFQS9GSixvQkFBZ0I7TUFBaEIsZ0JBQWdCLEVBaUdYO0VBL0ZIO0lBR0Esb0JBRmdCO1FBRWhCLGtCQUZnQjtZQUVoQixjQUZnQjtJQUdoQixlQUhnQixFQUlqQjs7QUFvRkc7RUtwSkosNkJMbUpnQjtNS25KaEIsa0JMbUpnQjtVS25KaEIsU0xtSmdCLEVB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QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQixrQkczS2dCO1lIMktoQixjRzNLZ0I7SUg0S2hCLGVHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLGlCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsa0JHM0tnQjtZSDJLaEIsY0czS2dCO0lINEtoQixlRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSixpQkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLG1CRzNLZ0I7WUgyS2hCLGVHM0tnQjtJSDRLaEIsZ0JHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBS0Q7SUtwSkosNkJMbUpnQjtRS25KaEIsa0JMbUpnQjtZS25KaEIsU0xtSmdCLEVBR1g7RUFFRDtJQS9GSixvQkFBZ0I7UUFBaEIsZ0JBQWdCLEVBaUdYO0lBL0ZIO01BR0Esb0JBRmdCO1VBRWhCLG1CQUZnQjtjQUVoQixlQUZnQjtNQUdoQixnQkFIZ0IsRUFJakI7RUFvRkc7SUtwSkosNkJMbUpnQjtRS25KaEIsa0JMbUpnQjtZS25KaEIsU0xtSmdCLEVBR1g7RUFFRDtJQS9GSixvQkFBZ0I7UUFB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Z0JEYnNCLEVIdUxqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSixzQkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQixrQkczS2dCO1lIMktoQixjRzNLZ0I7SUg0S2hCLGVHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLGlCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsa0JHM0tnQjtZSDJLaEIsY0czS2dCO0lINEtoQixlRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSixpQkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLGtCRzNLZ0I7WUgyS2hCLGNHM0tnQjtJSDRLaEIsZUc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osaUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJL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QUNiO0lBVkM7TUFhQSxZQUFZLEVBQ2IsRUFBQTs7QUptSEQ7RUZ3Rkk7SUFDRSxvQkFyS007UUFxS04sa0JBcktNO1lBcUtOLGNBcktNLEVBc0tQLEVBQUE7O0FBS0Q7RUFFSSxvQkFBMkI7TUFBM0IsbUJBQTJCO1VBQTNCLGVBQTJCLEVBSzlCO0VFdEdMO0lGK0ZJO01BS00sb0JBaExFO1VBZ0xGLGtCQWhMRTtjQWdMRixjQWhMRSxFQWtMUCxFQUFBOztBRXRHTDtFRjJHQTtJQ2xQRixnQkFBZ0I7SUFDaEIsaUJBQWlCLEVEa1A2QjtFQUc1QztJQzdPRixzQkFEaUI7SUFFakIsdUJBRmlCLEVEaVB3QyxFQUFBOztBRWxIdkQ7RUZzREU7SUFDRSxvQkczS2dCO1FIMktoQix1QkczS2dCO1lIMktoQixtQkczS2dCO0lINEtoQixvQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLGdCRGJzQixFSHVMakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osc0JEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsa0JHM0tnQjtZSDJLaEIsY0czS2dCO0lINEtoQixlRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSixpQkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLGtCRzNLZ0I7WUgyS2hCLGNHM0tnQjtJSDRLaEIsZUc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osaUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQixrQkczS2dCO1lIMktoQixjRzNLZ0I7SUg0S2hCLGVHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLGlCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsbUJHM0tnQjtZSDJLaEIsZUczS2dCO0lINEtoQixnQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFLRDtJS3BKSiw2QkxtSmdCO1FLbkpoQixrQkxtSmdCO1lLbkpoQixTTG1KZ0IsRUFHWDtFQUVEO0lBL0ZKLG9CQUFnQjtRQUFoQixnQkFBZ0IsRUFpR1g7SUEvRkg7TUFHQSxvQkFGZ0I7VUFFaEIsbUJBRmdCO2NBRWhCLGVBRmdCO01BR2hCLGdCQUhnQixFQUlqQjtFQW9GRztJS3BKSiw2QkxtSmdCO1FLbkpoQixrQkxtSmdCO1lLbkpoQixTTG1KZ0IsRUFHWDtFQUVEO0lBL0ZKLG9CQUFnQjtRQUFoQixnQkFBZ0IsRUFpR1g7SUEvRkg7TUFHQSxvQkFGZ0I7VUFFaEIsa0JBRmdCO2NBRWhCLGNBRmdCO01BR2hCLGVBSGdCLEVBSWpCO0VBb0ZHO0lLcEpKLDZCTG1KZ0I7UUtuSmhCLGtCTG1KZ0I7WUtuSmhCLFNMbUpnQixFQUdYO0VBRUQ7SUEvRkosb0JBQWdCO1FBQWhCLGdCQUFnQixFQWlHWDtJQS9GSDtNQUdBLG9CQUZnQjtVQUVoQix3QkFGZ0I7Y0FFaEIsb0JBRmdCO01BR2hCLHFCQUhnQixFQUlqQjtFQW9GRztJS3BKSiw2QkxtSmdCO1FLbkpoQixrQkxtSmdCO1lLbkpoQixTTG1KZ0IsRUFHWDtFQUVEO0lBL0ZKLG9CQUFnQjtRQUFoQixnQkFBZ0IsRUFpR1g7SUEvRkg7TUFHQSxvQkFGZ0I7VUFFaEIsa0JBRmdCO2NBRWhCLGNBRmdCO01BR2hCLGVBSGdCLEVBSWpCO0VBb0ZHO0lLcEpKLDZCTG1KZ0I7UUtuSmhCLGtCTG1KZ0I7WUtuSmhCLFNMbUpnQixFQUdYO0VBRUQ7SUEvRkosb0JBQWdCO1FBQWhCLGdCQUFnQixFQWlHWDtJQS9GSDtNQUdBLG9CQUZnQjtVQUVoQixrQkFGZ0I7Y0FFaEIsY0FGZ0I7TUFHaEIsZUFIZ0IsRUFJakI7RUFvRkc7SUtwSkosNkJMbUpnQjtRS25KaEIsa0JMbUpnQjtZS25KaEIsU0xtSmdCLEVBR1g7RUFFRDtJQS9GSixvQkFBZ0I7UUFBaEIsZ0JBQWdCLEVBaUdYO0lBL0ZIO01BR0Esb0JBRmdCO1VBRWhCLHdCQUZnQjtjQUVoQixvQkFGZ0I7TUFHaEIscUJBSGdCLEVBSWpCO0VNbEhHO0lBQ0YsWUFBaUI7SUFDakIsWUNqQmMsRUQ4QmY7SUFmRztNQUtBLFlBQVksRUFDYjtJQU5DO01BU0EsWUFBWSxFQUNiO0lBVkM7TUFhQSxZQUFZLEVBQ2I7RUFkQztJQUNGLFdBQWlCO0lBQ2pCLFlDakJjLEVEOEJmO0lBZkc7TUFLQSxZQUFZLEVBQ2I7SUFOQztNQVNBLFlBQVksRUFDYjtJQVZDO01BYUEsWUFBWSxFQUNiO0VBZEM7SUFDRixpQkFBaUI7SUFDakIsWUNqQmMsRUQ4QmY7SUFmRztNQUtBLFlBQVksRUFDYjtJQU5DO01BU0EsWUFBWSxFQUNiO0lBVkM7TUFhQSxZQUFZLEVBQ2I7RUFkQztJQUNGLFdBQWlCO0lBQ2pCLFlDakJjLEVEOEJmO0lBZkc7TUFLQSxZQUFZLEVBQ2I7SUFOQztNQVNBLFlBQVksRUFDYjtJQVZDO01BYUEsWUFBWSxFQUNiO0VBZEM7SUFDRixXQUFpQjtJQUNqQixZQ2pCYyxFRDhCZjtJQWZHO01BS0EsWUFBWSxFQUNiO0lBTkM7TUFTQSxZQUFZLEVBQ2I7SUFWQztNQWFBLFlBQVksRUFDYjtFQWRDO0lBQ0YsaUJBQWlCO0lBQ2pCLFlDakJjLEVEOEJmO0lBZkc7TUFLQSxZQUFZLEVBQ2I7SUFOQztNQVNBLFlBQVksRUFDYjtJQVZDO01BYUEsWUFBWSxFQUNiO0VBZEM7SUFDRixpQkFBaUI7SUFDakIsWUNqQmMsRUQ4QmY7SUFmRztNQUtBLFlBQVksRUFDYjtJQU5DO01BU0EsWUFBWSxFQUNiO0lBVkM7TUFhQSxZQUFZLEVBQ2I7RUFkQztJQUNGLGFBQWlCO0lBQ2pCLFlDakJjLEVEOEJmO0lBZkc7TUFLQSxZQUFZLEVBQ2I7SUFOQztNQVNBLFlBQVksRUFDYjtJQVZDO01BYUEsWUFBWSxFQUNiLEVBQUE7O0FKbUhEO0VGd0ZJO0lBQ0Usb0JBcktNO1FBcUtOLGtCQXJLTTtZQXFLTixjQXJLTSxFQXNLUCxFQUFBOztBQUtEO0VBRUksb0JBQTJCO01BQTNCLG1CQUEyQjtVQUEzQixlQUEyQixFQUs5QjtFRXRHTDtJRitGSTtNQUtNLG9CQWhMRTtVQWdMRixrQkFoTEU7Y0FnTEYsY0FoTEUsRUFrTFAsRUFBQTs7QUV0R0w7RUYyR0E7SUNsUEYsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFRGtQNkI7RUFHNUM7SUM3T0Ysc0JBRGlCO0lBRWpCLHVCQUZpQixFRGlQd0MsRUFBQTs7QUVsSHZEO0VGc0RFO0lBQ0Usb0JHM0tnQjtRSDJLaEIsdUJHM0tnQjtZSDJLaEIsbUJHM0tnQjtJSDRLaEIsb0JHNUtnQixFSDZLakI7RUFLRDtJSXhLSixnQkRic0IsRUh1TGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHNCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLGtCRzNLZ0I7WUgyS2hCLGNHM0tnQjtJSDRLaEIsZUc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osaUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQixrQkczS2dCO1lIMktoQixjRzNLZ0I7SUg0S2hCLGVHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLGlCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLHdCRzNLZ0I7WUgyS2hCLG9CRzNLZ0I7SUg0S2hCLHFCRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsa0JHM0tnQjtZSDJLaEIsY0czS2dCO0lINEtoQixlRzVLZ0IsRUg2S2pCO0VBS0Q7SUl4S0osdUJEVnNCLEVIb0xqQjtFQVZEO0lBQ0Usb0JHM0tnQjtRSDJLaEIsd0JHM0tnQjtZSDJLaEIsb0JHM0tnQjtJSDRLaEIscUJHNUtnQixFSDZLakI7RUFLRDtJSXhLSixpQkRWc0IsRUhvTGpCO0VBVkQ7SUFDRSxvQkczS2dCO1FIMktoQix3QkczS2dCO1lIMktoQixvQkczS2dCO0lINEtoQixxQkc1S2dCLEVINktqQjtFQUtEO0lJeEtKLHVCRFZzQixFSG9MakI7RUFWRDtJQUNFLG9CRzNLZ0I7UUgyS2hCLG1CRzNLZ0I7WUgyS2hCLGVHM0tnQjtJSDRLaEIsZ0JHNUtnQixFSDZLakI7RUFLRDtJSXhLSix1QkRW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QVQsU0FBUyxFQUFJO01BeERwQztRQXlEdUIsNkJBQVM7WUFBVCxrQkFBUztnQkFBVCxTQUFTLEVBQUksRUFBQTs7QUt2S3BDOztHQUVHO0FBQ0g7RUNEUSxvQ0FBb0M7RUFDcEMsbUNBQW1DO0VERXZDLGVKcUUyQjtFSXBFM0Isd0JKWXlCO0VJWHpCLGdCSlVtQjtFSVRuQixtQ0FBbUMsRUFDdEM7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJJLFVBQVU7RUFDVixXQUFXLEVBQ2Q7O0FBRUQ7O0dBRUc7QUFDSDs7Ozs7O0VBTUksZUpzQjJCO0VJckIzQixpQko2RTJCO0VJNUUzQixvQkFBb0IsRUFDdkI7O0FBRUQ7RW5CdkNZLGtCaUI2Q1U7RUVKbEIscUJBQXFCLEVBQ3hCO0VoQjFDTztJZ0J1Q1I7TW5CbENnQixvQmlCd0NNLEVFSHJCLEVBQUE7RWhCMUNPO0lnQnVDUjtNbkJsQ2dCLGtCaUJ3Q00sRUVIckIsRUFBQTtFaEIxQ087SWdCdUNSO01uQmxDZ0Isa0JpQndDTSxFRUhyQixFQUFBOztBQUVEO0VuQjVDWSxtQmlCNkNVO0VFQ2xCLHFCQUFxQjtFQUNyQixvQkFBb0IsRUFDdkI7RWhCaERPO0lnQjRDUjtNbkJ2Q2dCLGtCaUJ3Q00sRUVHckIsRUFBQTtFaEJoRE87SWdCNENSO01uQnZDZ0IsbUJpQndDTSxFRUdyQixFQUFBO0VoQmhETztJZ0I0Q1I7TW5CdkNnQixtQmlCd0NNLEVFR3JCLEVBQUE7O0FBRUQ7RW5CbERZLG1CaUI2Q1U7RUVPbEIscUJBQXFCO0VBQ3JCLG9CQUFvQixFQUN2QjtFaEJ0RE87SWdCa0RSO01uQjdDZ0Isa0JpQndDTSxFRVNyQixFQUFBO0VoQnRETztJZ0JrRFI7TW5CN0NnQixrQmlCd0NNLEVFU3JCLEVBQUE7RWhCdERPO0lnQmtEUjtNbkI3Q2dCLG1CaUJ3Q00sRUVTckIsRUFBQTs7QUFFRDs7R0FFRztBQUNIO0VuQjNEWSxvQmlCNkNVO0VFZ0JsQixpQkpvRDJCO0VJbkQzQixvQkFBb0IsRUFDdkI7O0FBRUQ7O0dBRUc7QUFDSDs7RUFFSSxtQkFBbUI7RUFD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RWdDWXJCO0VBNUREO0lBTVEsWXpCbUNvQjtJeUJsQ3BCLHNCQUFzQjtJQUN0QixvQmhDd0NjO0lnQ3ZDZCx1QmhDdUNjO0lnQ3RDZCxvQkFBb0IsRUFDdkI7RUFYTDtJQWNRLHNCQUFzQjtJQUN0Qix1QmhDaUNjO0lnQ2hDZCxXQUFXLEVBQ2Q7RUFqQkw7SUFvQlEsWXpCcUJvQjtJeUJwQnBCLG9CaEMyQmM7SWdDMUJkLGtCQUFrQjtJQUNsQiwyQmhDeUJjO0lnQ3hCZCx1QmhDd0JjO0lnQ3ZCZCxVQUFVO0lBQ1Ysd0JoQ3NCYztJZ0NyQmQsdUJBQXVCLEVBQzFCO0VBNUJMO0lBK0JRLFl6QlVvQjtJeUJUcEIsb0JoQ2dCYztJZ0NmZCx5QmhDZWMsRWdDZGpCO0VBbENMO0lBcUNRLGV6QmlCdUI7SXlCaEJ2QixZQUFZO0lBQ1osYUFBYTtJQUNiLFVBQVU7SUFDVixvQmhDT2M7SWdDTmQsV0FBVyxFQUNkO0VBM0NMO0lBOENRLG9CQUFvQjtJQUNwQixVQUFVO0lBQ1YsaUNBQWlDO0lBQ2pDLFl6QlJvQjtJeUJTcEIsWUFBWTtJQUNaLGFBQWE7SUFDYixVQUFVO0lBQ1YscUJoQ0xjO0lnQ01kLGlEQUF5QztJQUF6Qyx5Q0FBeUMsRUFLNUM7SUEzREw7TUF5RFksb0J6QlZtQixFeUJXdEI7O0FDOURUOztHQUVHO0FBQ0g7RUFFUSxnQkFBZ0IsRUFDbkI7O0FBR0w7O0dBRUc7QUFDSDtFQUNJLHNCQUFzQjtFQUN0QixnQ0FBVztFQUNYLGVBQWU7RUFDZixpQkFBaUIsRUFDcEI7O0EvQ1ZPO0VnRExKO0lBRVEsV0FBVyxFQUNkLEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjIuMS4xIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQ29oZXJlbnQgYm94LXNpemluZ1xyXG4gKi9cclxuXHJcbmh0bWwge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG4qLCAqOmJlZm9yZSwgKjphZnRlciB7XHJcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxyXG4gKi9cclxuXHJcbmFydGljbGUsXHJcbmFzaWRlLFxyXG5kZXRhaWxzLFxyXG5maWdjYXB0aW9uLFxyXG5maWd1cmUsXHJcbmZvb3RlcixcclxuaGVhZGVyLFxyXG5oZ3JvdXAsXHJcbm1haW4sXHJcbm5hdixcclxuc2VjdGlvbixcclxuc3VtbWFyeSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXHJcbiAqL1xyXG5cclxuYXVkaW8sXHJcbmNhbnZhcyxcclxudmlkZW8ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cclxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cclxuICovXHJcblxyXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGhlaWdodDogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAqL1xyXG5cclxuW2hpZGRlbl0ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQmFzZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIFByZXZlbnQgc3lzdGVtIGNvbG9yIHNjaGVtZSdzIGJhY2tncm91bmQgY29sb3IgYmVpbmcgdXNlZCBpbiBGaXJlZm94LCBJRSxcclxuICogICAgYW5kIE9wZXJhLlxyXG4gKiAyLiBQcmV2ZW50IHN5c3RlbSBjb2xvciBzY2hlbWUncyB0ZXh0IGNvbG9yIGJlaW5nIHVzZWQgaW4gRmlyZWZveCwgSUUsIGFuZFxyXG4gKiAgICBPcGVyYS5cclxuICogMy4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cclxuICogNC4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXHJcbiAqICAgIHVzZXIgem9vbS5cclxuICovXHJcblxyXG5odG1sIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7IC8qIDEgKi9cclxuICAgIGNvbG9yOiAjMDAwOyAvKiAyICovXHJcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMyAqL1xyXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDQgKi9cclxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogNCAqL1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxyXG4gKi9cclxuXHJcbmJvZHkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMaW5rc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmE6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5hOmFjdGl2ZSxcclxuYTpob3ZlciB7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBUeXBvZ3JhcGh5XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxyXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5oMSB7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIG1hcmdpbjogMC42N2VtIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5hYmJyW3RpdGxlXSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYixcclxuc3Ryb25nIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuZGZuIHtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cclxuICovXHJcblxyXG5ociB7XHJcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxyXG4gKi9cclxuXHJcbm1hcmsge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmMDtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnByZSxcclxuc2FtcCB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG59XHJcblxyXG4vKipcclxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnByZSB7XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cclxuICovXHJcblxyXG5xIHtcclxuICAgIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnNtYWxsIHtcclxuICAgIGZvbnQtc2l6ZTogODAlO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnN1Yixcclxuc3VwIHtcclxuICAgIGZvbnQtc2l6ZTogNzUlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbnN1cCB7XHJcbiAgICB0b3A6IC0wLjVlbTtcclxufVxyXG5cclxuc3ViIHtcclxuICAgIGJvdHRvbTogLTAuMjVlbTtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxyXG4gKi9cclxuXHJcbnN2Zzpub3QoOnJvb3QpIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZpZ3VyZXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1LlxyXG4gKi9cclxuXHJcbmZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZvcm1zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gKi9cclxuXHJcbmZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XHJcbiAgICBtYXJnaW46IDAgMnB4O1xyXG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LlxyXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAqL1xyXG5cclxubGVnZW5kIHtcclxuICAgIGJvcmRlcjogMDsgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBmb250IGZhbWlseSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cclxuICogMi4gQ29ycmVjdCBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xyXG4gICAgZm9udC1zaXplOiAxMDAlOyAvKiAyICovXHJcbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cclxuICogdGhlIFVBIHN0eWxlc2hlZXQuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCB7XHJcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxyXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxyXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXHJcbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCA0KyBhbmQgT3BlcmEuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3Qge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxyXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxyXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxyXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXHJcbiAqL1xyXG5cclxuYnV0dG9uW2Rpc2FibGVkXSxcclxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS5cclxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxyXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcclxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcclxuICogb24gT1MgWC5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cclxuICovXHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LlxyXG4gKiAyLiBJbXByb3ZlIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnRleHRhcmVhIHtcclxuICAgIG92ZXJmbG93OiBhdXRvOyAvKiAxICovXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiAyICovXHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFRhYmxlc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cclxuICovXHJcblxyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjIuMS4xIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogQ29oZXJlbnQgYm94LXNpemluZ1xyXG4gKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG4vKipcclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxyXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXHJcbiAqIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXHJcbiAqL1xuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcclxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cclxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cclxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJhc2VcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiAxLiBQcmV2ZW50IHN5c3RlbSBjb2xvciBzY2hlbWUncyBiYWNrZ3JvdW5kIGNvbG9yIGJlaW5nIHVzZWQgaW4gRmlyZWZveCwgSUUsXHJcbiAqICAgIGFuZCBPcGVyYS5cclxuICogMi4gUHJldmVudCBzeXN0ZW0gY29sb3Igc2NoZW1lJ3MgdGV4dCBjb2xvciBiZWluZyB1c2VkIGluIEZpcmVmb3gsIElFLCBhbmRcclxuICogICAgT3BlcmEuXHJcbiAqIDMuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXHJcbiAqIDQuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xyXG4gKiAgICB1c2VyIHpvb20uXHJcbiAqL1xuaHRtbCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIC8qIDEgKi9cbiAgY29sb3I6ICMwMDA7XG4gIC8qIDIgKi9cbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDMgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDQgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiA0ICovIH1cblxuLyoqXHJcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cclxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIExpbmtzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogQWRkcmVzcyBgb3V0bGluZWAgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIENocm9tZSBhbmQgb3RoZXIgYnJvd3NlcnMuXHJcbiAqL1xuYTpmb2N1cyB7XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkOyB9XG5cbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cclxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFR5cG9ncmFwaHlcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXHJcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxyXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzksIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxyXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcclxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXHJcbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIDUgYW5kIENocm9tZS5cclxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cclxuICovXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxyXG4gKiBDb3JyZWN0IGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxyXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xucHJlIHtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9XG5cbi8qKlxyXG4gKiBTZXQgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cclxuICovXG5xIHtcbiAgcXVvdGVzOiBcIlxcMjAxQ1wiIFwiXFwyMDFEXCIgXCJcXDIwMThcIiBcIlxcMjAxOVwiOyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxyXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxyXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcclxuICogQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cclxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgRmlndXJlc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUuXHJcbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEZvcm1zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxyXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXHJcbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cclxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gKiAxLiBDb3JyZWN0IGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IGZvbnQgc2l6ZSBub3QgYmVpbmcgaW5oZXJpdGVkIGluIGFsbCBicm93c2Vycy5cclxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmkgNSwgYW5kIENocm9tZS5cclxuICovXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxyXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXHJcbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcclxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxyXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxyXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXHJcbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCA0KyBhbmQgT3BlcmEuXHJcbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXHJcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXHJcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxyXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXHJcbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXHJcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cclxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXHJcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXHJcbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LlxyXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LlxyXG4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxyXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcclxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXHJcbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuLyoqXHJcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXHJcbiAqIG9uIE9TIFguXHJcbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXHJcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cclxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcclxuICogMS4gUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS5cclxuICogMi4gSW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cclxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIC8qIDIgKi8gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBUYWJsZXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXHJcbiAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vKipcclxuICogSW1wb3J0IEZ1bmN0aW9uc1xyXG4gKi9cbi8qKlxuICogTWl4aW5zXG4gKi9cbi8qKlxyXG4gKiBDYXJvdXNlbCBhcnJvd3NcclxuICovXG4vKipcclxuICogUHJveGltdXMgZ3JhZGllbnQgYXMgYSBiYWNrZ3JvdW5kXHJcbiAqL1xuLyoqXHJcbiAqIFJlcGxhY2VzIGRlZmF1bHQgc2Nyb2xsYmFyIHdpdGggYSBiZXR0ZXIgbG9va2luZyBvbmVcclxuICogV29ya3Mgb24gV2Via2l0XHJcbiAqL1xuLyoqXHJcbiAqIERlZmluZXMgcmVzcG9uc2l2ZSBmb250LXNpemVzXHJcbiAqL1xuLyoqXHJcbiAqIENyZWF0ZSBhbiBhbmltYXRlZCBIYW1idXJnZXIgYnV0dG9uIGZvciB0aGUgbW9iaWxlIG1lbnVcclxuICogQmFzZWQgb246IGh0dHBzOi8vam9uc3VoLmNvbS9oYW1idXJnZXJzL1xyXG4gKiBUbyB3b3JrLCBpdCByZXF1aXJlcyB0aGUgY29udGFpbmVyIHRvIGhhdmUgPGRpdj48c3Bhbj48L3NwYW4+PC9kaXY+IGluIGl0XHJcbiAqXHJcbiAqL1xuLyoqXHJcbiAqIFRoZSBnbG9iYWwgaG92ZXIgZWZmZWN0IGZvciBsaW5rc1xyXG4gKi9cbi8qKlxyXG4gKiBXcmFwcyBjb250ZW50IGluIGEgbWVkaWEgcXVlcnkgZGVmaW5lZCBpbiB0aGUgJGJyZWFrcG9pbnRzXHJcbiAqL1xuLyoqXHJcbiAqIENyZWF0ZSBhIGxpdHRsZSBsaW5lIGJlZm9yZS9hZnRlciB0aGUgPGxpPiBlbGVtZW50XHJcbiAqL1xuLyoqXHJcbiAqIFRoZSBHcmlkXHJcbiAqXHJcbiAqIFRoaXMgZ3JpZCBzeXN0ZW0gaXMgbW9zdGx5IGJhc2VkIG9uIHRoZSBGb3VuZGF0aW9uIGdyaWQgKGh0dHA6Ly9mb3VuZGF0aW9uLnp1cmIuY29tL3NpdGVzL2RvY3MvZmxleC1ncmlkLmh0bWwpXHJcbiAqIFRoZSBjbGFzcyBcInJvd1wiIGhhcyBiZWVuIGFkYXB0ZWQgdG8ganVzdCB3b3JrIGFzIGNvbnRhaW5lci9jbGVhcmZpeCBmb3IgdGhlIGNvbHVtc1xyXG4gKiBXaGlsZSBhIGNsYXNzIFwiY29udGFpbmVyXCIgaGFzIGJlZW4gYWRkZWQgdG8gZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIChsaWtlIEJvb3RzdHJhcCBkb2VzKVxyXG4gKi9cbi5yb3cge1xuICBtYXJnaW4tbGVmdDogLTdweDtcbiAgbWFyZ2luLXJpZ2h0OiAtN3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEycHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4OyB9IH1cbiAgLnJvdyAucm93IHtcbiAgICBtYXJnaW4tbGVmdDogLTdweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC03cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMnB4OyB9IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uY29sdW1uIHtcbiAgZmxleDogMSAxIDBweDtcbiAgcGFkZGluZy1sZWZ0OiAwLjQzNzVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNDM3NXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbHVtbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtOyB9IH1cblxuLmNvbHVtbi5yb3cucm93IHtcbiAgZmxvYXQ6IG5vbmU7IH1cbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4uc21hbGwtMSB7XG4gIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7IH1cblxuLnNtYWxsLTIge1xuICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLTMge1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC00IHtcbiAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtNSB7XG4gIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLTYge1xuICBmbGV4OiAwIDAgNTAlO1xuICBtYXgtd2lkdGg6IDUwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC03IHtcbiAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtOCB7XG4gIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLTkge1xuICBmbGV4OiAwIDAgNzUlO1xuICBtYXgtd2lkdGg6IDc1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC0xMCB7XG4gIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLnNtYWxsLTExIHtcbiAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLTEyIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5zbWFsbC11cC0xIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7IH1cblxuLnNtYWxsLXVwLTIge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLXVwLTMge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vcmRlci00IHtcbiAgb3JkZXI6IDQ7IH1cblxuLnNtYWxsLXVwLTQge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7IH1cblxuLnNtYWxsLXVwLTUge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuLnNtYWxsLXVwLTYge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW4ge1xuICB3aWR0aDogNTAlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMzMuMzMzMzMlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW4ge1xuICB3aWR0aDogMjUlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4ge1xuICB3aWR0aDogMjAlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNiA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTYuNjY2NjclO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTQuMjg1NzElO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtOCA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTIuNSU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnNtZWRpdW0tMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLnNtZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuc21lZGl1bS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5zbWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLnNtZWRpdW0tMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAuc21lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAuc21lZGl1bS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5zbWVkaXVtLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLnNtZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnNtZWRpdW0tNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAuc21lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAuc21lZGl1bS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC5zbWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5zbWVkaXVtLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLnNtZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnNtZWRpdW0tOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAuc21lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAuc21lZGl1bS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuc21lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAuc21lZGl1bS0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuc21lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLnNtZWRpdW0tMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuc21lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLnNtZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnNtZWRpdW0tdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnNtZWRpdW0tdXAtMSA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnNtZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLnNtZWRpdW0tdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnNtZWRpdW0tdXAtMiA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5zbWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5zbWVkaXVtLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWVkaXVtLXVwLTMgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuc21lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAuc21lZGl1bS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuc21lZGl1bS11cC00ID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLnNtZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLnNtZWRpdW0tdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnNtZWRpdW0tdXAtNSA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5zbWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9XG4gIC5zbWVkaXVtLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5zbWVkaXVtLXVwLTYgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21lZGl1bS11cC0xID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtMiA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtMyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtNCA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtNSA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtNiA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtNyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc21lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAuc21lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5zbWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtZWRpdW0tdXAtOCA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5zbWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5zbWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnNtZWRpdW0tdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5zbWVkaXVtLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDsgfSB9XG5cbi5yb3cuc21lZGl1bS11bnN0YWNrIC5jb2x1bW4ge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgLnJvdy5zbWVkaXVtLXVuc3RhY2sgLmNvbHVtbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuc21lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5zbWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNDM3NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjQzNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5tZWRpdW0tMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm1lZGl1bS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5tZWRpdW0tdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubWVkaXVtLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAubWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9XG4gIC5tZWRpdW0tdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTMgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTYgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTYuNjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG4ucm93Lm1lZGl1bS11bnN0YWNrIC5jb2x1bW4ge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJvdy5tZWRpdW0tdW5zdGFjayAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWVkaXVtLXVuY29sbGFwc2UgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC43NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5sYXJnZS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5sYXJnZS0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5sYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5sYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5sYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfVxuICAubGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0yID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTQgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC01ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTcgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTQuMjg1NzElO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC04ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDsgfSB9XG5cbi5yb3cubGFyZ2UtdW5zdGFjayAuY29sdW1uIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5yb3cubGFyZ2UtdW5zdGFjayAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NC4zNzVlbSkge1xuICAueGxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAueGxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC54bGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAueGxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC54bGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAueGxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC54bGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAueGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAueGxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC54bGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAueGxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC54bGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAueGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC54bGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAueGxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC54bGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAueGxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC54bGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAueGxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAueGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC54bGFyZ2UtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAueGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC54bGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnhsYXJnZS11cC0yID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnhsYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAueGxhcmdlLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLnhsYXJnZS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTQgPiAuY29sdW1uIHtcbiAgICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAueGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC54bGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnhsYXJnZS11cC01ID4gLmNvbHVtbiB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLnhsYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfVxuICAueGxhcmdlLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW4ge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC54bGFyZ2UtdXAtMSA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueGxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAueGxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC0zID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueGxhcmdlLXVwLTQgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLnhsYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueGxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAueGxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC02ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueGxhcmdlLXVwLTcgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTQuMjg1NzElO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLnhsYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueGxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnhsYXJnZS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0LjM3NWVtKSBhbmQgKG1pbi13aWR0aDogODQuMzc1ZW0pIHtcbiAgLnhsYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG4ucm93LnhsYXJnZS11bnN0YWNrIC5jb2x1bW4ge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NC4zNzVlbSkge1xuICAgIC5yb3cueGxhcmdlLXVuc3RhY2sgLmNvbHVtbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQuMzc1ZW0pIHtcbiAgLnhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC54bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtOyB9IH1cblxuLyoqXHJcbiAqIEJvZHlcclxuICovXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogI2VjZWZmNjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGJvZHkge1xuICAgICAgYmFja2dyb3VuZDogI2ZiZmNmZDsgfSB9XG5cbi8qKlxyXG4gKiBXcmFwcGVyXHJcbiAqL1xuLndyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmY2ZkO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmYmZjZmQgMCUsICNmYmZjZmQgMTElLCAjZGRlMmVmIDM0JSwgI2RkZTJlZiA0OSUsICNmYmZjZmQgOTYlLCAjZmJmY2ZkIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmYmZjZmQgMCUsICNmYmZjZmQgMTElLCAjZGRlMmVmIDM0JSwgI2RkZTJlZiA0OSUsICNmYmZjZmQgOTYlLCAjZmJmY2ZkIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byA0NC4zNzVyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLndyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAzLjc1cmVtOyB9IH1cblxuLndyYXBwZXItaW5uZXIge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAudGFrZW92ZXIgLndyYXBwZXItaW5uZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTM1MHB4KSB7XG4gICAgLndyYXBwZXItaW5uZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiA3LjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA3LjVyZW07IH0gfVxuXG4vKipcclxuICogQ29udGFpbmVyXHJcbiAqL1xuLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jb250YWluZXIge1xuICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwOyB9IH1cbiAgLmNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cblxuLyoqXHJcbiAqIFJvd3NcclxuICovXG4ucm93LmNvbGxhcHNlZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLyoqXHJcbiAqIElubmVyIGVsZW1lbnRzIChNYWluLCBBc2lkZSlcclxuICovXG4ubWFpbixcbi5hc2lkZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5tYWluOjphZnRlcixcbiAgLmFzaWRlOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW4ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMjBweCAtIDQwcHgpOyB9IH1cblxuLyoqXHJcbiAqIEFzaWRlXHJcbiAqL1xuLmFzaWRlID4gLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMDsgfVxuICAuYXNpZGUgPiAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFzaWRlIHtcbiAgICBtYXJnaW4tbGVmdDogMi41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAxLjg3NXJlbTtcbiAgICB3aWR0aDogMzIwcHg7IH1cbiAgICAuYXNpZGUgPiAucm93IHtcbiAgICAgIG1hcmdpbjogMDsgfSB9XG5cbi5hc2lkZV9faXRlbSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuICAuYXNpZGVfX2l0ZW0tLW1pbmlUViwgLmFzaWRlX19pdGVtLS1taW5pRm9vdCwgLmFzaWRlX19pdGVtLS1jb250ZXN0LCAuYXNpZGVfX2l0ZW0tLWVTZXJ2aWNlcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5hc2lkZV9faXRlbSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1taW5pVFYsIC5hc2lkZV9faXRlbS0tbWluaUZvb3QsIC5hc2lkZV9faXRlbS0tY29udGVzdCwgLmFzaWRlX19pdGVtLS1lU2VydmljZXMge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1taW5pVFYge1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1taW5pRm9vdCB7XG4gICAgICAgIG9yZGVyOiAyOyB9XG4gICAgICAuYXNpZGVfX2l0ZW0tLWNvbnRlc3Qge1xuICAgICAgICBvcmRlcjogMzsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1lU2VydmljZXMge1xuICAgICAgICBvcmRlcjogNDsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1pbXUge1xuICAgICAgICBvcmRlcjogNTsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1pbXVUZWxjbyB7XG4gICAgICAgIG9yZGVyOiA2OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmFzaWRlX19pdGVtIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1jb250ZXN0IHtcbiAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgIC5hc2lkZV9faXRlbS0tbWluaVRWIHtcbiAgICAgICAgb3JkZXI6IDI7IH1cbiAgICAgIC5hc2lkZV9faXRlbS0taW11IHtcbiAgICAgICAgb3JkZXI6IDM7IH1cbiAgICAgIC5hc2lkZV9faXRlbS0tbWluaUZvb3Qge1xuICAgICAgICBvcmRlcjogNDsgfVxuICAgICAgLmFzaWRlX19pdGVtLS1pbXVUZWxjbyB7XG4gICAgICAgIG9yZGVyOiA1OyB9XG4gICAgICAuYXNpZGVfX2l0ZW0tLWVTZXJ2aWNlcyB7XG4gICAgICAgIG9yZGVyOiA2OyB9XG4gICAgICAuYXNpZGVfX2l0ZW0tLXRvcHVwIHtcbiAgICAgICAgb3JkZXI6IDc7IH0gfVxuXG4vKipcclxuICogU2NhZmZvbGRpbmdcclxuICovXG5ib2R5IHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbG9yOiAjNGY1NTZiO1xuICBmb250LWZhbWlseTogXCJwcm94aW11c1wiO1xuICBmb250LXNpemU6IDEwMCU7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucHJlLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxyXG4gKiBIZWFkaW5nc1xyXG4gKi9cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGNvbG9yOiAjM2QzZDNkO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbmgxIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgaDEge1xuICAgICAgZm9udC1zaXplOiAxLjg3NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTM1MHB4KSB7XG4gICAgaDEge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07IH0gfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNTBweCkge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfSB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDMge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzUwcHgpIHtcbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07IH0gfVxuXG4vKipcclxuICogUGFyYWdyYXBoc1xyXG4gKi9cbnAge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi8qKlxyXG4gKiBJbmxpbmUgZWxlbWVudHNcclxuICovXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXHJcbiAqIEFuY2hvcnNcclxuICovXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG5cbi8qKlxyXG4gKiBPd2xcclxuICovXG4ub3dsLWxvYWRlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLm93bC1zdGFnZS1vdXRlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm93bC1zdGFnZTo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLm93bC1pdGVtIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5vd2wtbmF2IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm93bC1uYXYgLm93bC1wcmV2IHtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOTMsIDQ2LCAxNDMsIDAuNyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBoZWlnaHQ6IDcwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvcDogNDAlO1xuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLW91dDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgY29sb3I6ICM1QzJEOTE7XG4gICAgdG9wOiA0MHB4OyB9XG4gICAgLm93bC1uYXYgLm93bC1wcmV2OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM1QzJEOTE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLm93bC1uYXYgLm93bC1uZXh0IHtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDkzLCA0NiwgMTQzLCAwLjcpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBoZWlnaHQ6IDcwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvcDogNDAlO1xuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLW91dDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgY29sb3I6ICM1QzJEOTE7XG4gICAgdG9wOiA0MHB4OyB9XG4gICAgLm93bC1uYXYgLm93bC1uZXh0OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM1QzJEOTE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLm93bC1uYXYgLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxyXG4gKiBBcnRpY2xlIGl0ZW1cclxuICovXG4uYXJ0aWNsZV9faXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDU1LCAyNSwgODQsIDAuMik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07XG4gIG1pbi1oZWlnaHQ6IDVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyoqXHJcbiAgICAgKiBGZWF0dXJlZFxyXG4gICAgICovIH1cbiAgLmFydGljbGVfX2l0ZW06OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5hcnRpY2xlX19pdGVtOmhvdmVyIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XG4gICAgY29sb3I6ICMwMGJjZWU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmFydGljbGVfX2l0ZW1fX2ltYWdlIHtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNS4zMTI1cmVtOyB9XG4gIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XG4gICAgY29sb3I6ICMyNDJiNDY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5hcnRpY2xlX19pdGVtX19pbWFnZSArIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA2LjI1cmVtOyB9XG4gIC5hcnRpY2xlX19pdGVtLS1mZWF0dXJlZCB7XG4gICAgYmFja2dyb3VuZDogI2M3Y2NlMjtcbiAgICBib3JkZXI6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmFydGljbGVfX2l0ZW0tLWZlYXR1cmVkOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgdHJhbnNwYXJlbnQgNDAlLCByZ2JhKDAsIDAsIDAsIDAuOCkgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDQwJSwgcmdiYSgwLCAwLCAwLCAwLjgpIDEwMCUpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDIwOyB9XG4gICAgLmFydGljbGVfX2l0ZW0tLWZlYXR1cmVkIC5hcnRpY2xlX19pdGVtX19pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmFydGljbGVfX2l0ZW0tLWZlYXR1cmVkIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcInByb3hpbXVzXCI7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcGFkZGluZzogMC44NzVyZW07XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDI1OyB9XG5cbi8qKlxyXG4gKiBEZWZhdWx0IGltZ1xyXG4gKi9cbi5pY29uLS1kZWZhdWx0LWJnOmFmdGVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGNvbnRlbnQ6ICdcXGU5NWInO1xuICBmb250LWZhbWlseTogJ3NreW5ldC1pY29ucyc7XG4gIGZvbnQtc2l6ZTogNS42MjVyZW07XG4gIGxlZnQ6IDM1JTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2Utb3V0OyB9XG5cbmJvZHkge1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyB9XG5cbi8qKlxyXG4gKiBSZW1vdmVzIGVtcHR5IHNwYWNlIGJldHdlZW4gdGhlIG1lbnUgYW5kIGNvbnRlbnQgb24gU2t5bmV0IEhQIFxyXG4gKi9cbi5hZG9wcy1zcGxhc2gsXG4uYWRvcHMtLW91dC1vZi1wYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IH1cblxuLyoqXHJcbiAqIFRvcCBMZWFkZXJib2FyZCBcclxuICovXG4udG9wTGVhZGVyQm9hcmQsXG4uYm90dG9tTGVhZGVyQm9hcmQge1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udG9wTGVhZGVyQm9hcmQge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICAudG9wTGVhZGVyQm9hcmQgPiBkaXYge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gIC50b3BMZWFkZXJCb2FyZCBkaXYge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC50b3BMZWFkZXJCb2FyZCBkaXYgdGFibGUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cblxuLmJvdHRvbUxlYWRlckJvYXJkIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG5bY2xhc3MkPSdfYWRfY29udGFpbmVyJ10gPiBkaXYge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4vKipcclxuICogVGVsY29cclxuICovXG4ud3JhcHBlci10ZWxjbyB7XG4gIGJhY2tncm91bmQ6ICNjOGNjZTI7IH1cbiAgLndyYXBwZXItdGVsY28gLmJvdHRvbUxlYWRlckJvYXJkID4gZGl2IHtcbiAgICBwYWRkaW5nLXRvcDogMy4xMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDQuMzc1cmVtOyB9XG5cbi8qKlxyXG4gKiBTaWRlYmFyXHJcbiAqL1xuLmltdS5wdWIgPiBkaXYge1xuICBtYXJnaW46IDAgYXV0byAyLjgxMjVyZW0gMDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaW11LnB1YiA+IGRpdiA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uaW11LnB1YiBpbnMge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uaW11LnB1YiBpZnJhbWUge1xuICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pbXUucHViIGRpdiB7XG4gIG1hcmdpbjogMCBhdXRvIDAgYXV0byAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pbXUucHViID4gZGl2IHtcbiAgbWFyZ2luLWJvdHRvbTogMi44MTI1cmVtICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmltdS5wdWIgaW5zIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaW11LnB1YiBpZnJhbWUge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5pbXUucHViIGRpdiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uYmFjay10by10b3Age1xuICBib3R0b206IDYuMjVyZW07XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDUwMDA7IH1cbiAgLmJhY2stdG8tdG9wIGEge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOTIsIDQ1LCAxNDUsIDAuNSk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4zNzVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC42MjVyZW0gMS4yNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2Utb3V0OyB9XG4gICAgLmJhY2stdG8tdG9wIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAwYmNlZTsgfVxuICAgIC5iYWNrLXRvLXRvcCBhIHNwYW4ge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5iYWNrLXRvLXRvcCBhIC5pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4xODc1cmVtOyB9XG4gIC5iYWNrLXRvLXRvcF9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjE4NzVyZW07IH1cblxuLm1lc3NhZ2UtY29sbGVjdGlvbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDsgfVxuICAubWVzc2FnZS1jb2xsZWN0aW9uIC5tZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjMjgzNDUxO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAvKiY6YmVmb3JlLFxyXG4gICAgICAgICY6bm90KCNtZXNzYWdlQ29va2llKSB7XHJcbiAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzNSk7XHJcbiAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtbGlnaHQ7XHJcbiAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICBsZWZ0OiA4cHg7XHJcbiAgICAgICAgfSovIH1cbiAgICAubWVzc2FnZS1jb2xsZWN0aW9uIC5tZXNzYWdlIC5pY29uLWNyb3NzLW8ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMHB4O1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgIGNvbG9yOiAjMzcyMDVkO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLm1lc3NhZ2UtY29sbGVjdGlvbiAubWVzc2FnZSBwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAncHJveGltdXMnO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAubWVzc2FnZS1jb2xsZWN0aW9uIC5tZXNzYWdlIHAgYSB7XG4gICAgICAgIGNvbG9yOiAjMjgzNDUxO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgLm1lc3NhZ2UtY29sbGVjdGlvbiAubWVzc2FnZSBwIHNwYW4ge1xuICAgICAgICBjb2xvcjogIzU5MmM5MTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAubWVzc2FnZS1jb2xsZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cbiAgICAubWVzc2FnZS1jb2xsZWN0aW9uIC5tZXNzYWdlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgcGFkZGluZzogMC45Mzc1cmVtIDUuMzEyNXJlbTsgfVxuICAgICAgLm1lc3NhZ2UtY29sbGVjdGlvbiAubWVzc2FnZTpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDIuMzc1cmVtO1xuICAgICAgICBsZWZ0OiAxLjU2MjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1lc3NhZ2UtY29sbGVjdGlvbiAubWVzc2FnZSB7XG4gICAgcGFkZGluZzogMC45Mzc1cmVtIDcuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07IH1cbiAgICAubWVzc2FnZS1jb2xsZWN0aW9uIC5tZXNzYWdlOmJlZm9yZSB7XG4gICAgICBmb250LXNpemU6IDMuNTYyNXJlbTtcbiAgICAgIHRvcDogMy4xMjVyZW07XG4gICAgICByaWdodDogMi4wNjI1cmVtOyB9IH1cblxuLyoqXG4gKiBNaXhpbjogb3ZlcmxheVxuICovXG4vKipcbiAqIE1peGluOiB2ZXJ0aWNhbGx5IGNlbnRlclxuICovXG4vKipcbiAqIFN1cnZleTogd3JhcHBlclxuICovXG4uc3VydmV5LXdyYXBwZXIge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDU7IH1cblxuLnN1cnZleS13cmFwcGVyOmJlZm9yZSxcbi5zdXJ2ZXktd3JhcHBlcjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7IH1cblxuLnN1cnZleS13cmFwcGVyOmFmdGVyIHtcbiAgYm90dG9tOiAwOyB9XG5cbi5zdXJ2ZXktd3JhcHBlcjpiZWZvcmUge1xuICB0b3A6IDA7IH1cblxuLyoqXG4gKiBTdXJ2ZXlcbiAqL1xuLnN1cnZleSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnN1cnZleS5vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc3VydmV5LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuc3VydmV5LWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiAwOyB9XG4gICAgLnN1cnZleS1jb250ZW50IC5zdXJ2ZXlfX292ZXJsYXkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjsgfVxuICAuc3VydmV5X19vdmVybGF5IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNTAlOyB9XG4gICAgLnN1cnZleV9fb3ZlcmxheSBoMyB7XG4gICAgICBjb2xvcjogIzVjMmQ5MTtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnN1cnZleV9fb3ZlcmxheSBwIHtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7IH1cbiAgLnN1cnZleV9faW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC5zdXJ2ZXlfX2xpbmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1YzJkOTE7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE1cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIHRyYW5zaXRpb246IDMwMG1zIGVhc2Utb3V0OyB9XG4gICAgLnN1cnZleV9fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDBiY2VlOyB9XG4gICAgLnN1cnZleV9fbGluayAuaWNvbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMnB4OyB9XG4gIC5zdXJ2ZXlfX2J0bi0tY2xvc2Uge1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjBweDtcbiAgICB0b3A6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7IH1cbiAgICAuc3VydmV5X19idG4tLWNsb3NlOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuc3VydmV5X19idG4tLWNsb3NlOmJlZm9yZSwgLnN1cnZleV9fYnRuLS1jbG9zZTphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWMyZDkxO1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgbGVmdDogOHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDJweDsgfVxuICAgIC5zdXJ2ZXlfX2J0bi0tY2xvc2U6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAgIC5zdXJ2ZXlfX2J0bi0tY2xvc2U6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKipcclxuICogTWFuY2hldHRlXHJcbiAqL1xuLm1hbmNoZXR0ZSB7XG4gIGhlaWdodDogMTIwcHg7XG4gIG1hcmdpbjogMS44NzVyZW0gYXV0byAwO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA3NHB4KTsgfVxuICAubWFuY2hldHRlOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAubWFuY2hldHRlLm93bC1sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1hbmNoZXR0ZSAub3dsLW5hdiA+IGRpdiB7XG4gICAgYmFja2dyb3VuZDogIzM3MjA1ZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGhlaWdodDogMTIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEyMHB4O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDMwcHg7IH1cbiAgICAubWFuY2hldHRlIC5vd2wtbmF2ID4gZGl2OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMGJjZWU7IH1cbiAgLm1hbmNoZXR0ZSAub3dsLW5hdiAub3dsLXByZXYge1xuICAgIGxlZnQ6IC0zN3B4OyB9XG4gIC5tYW5jaGV0dGUgLm93bC1uYXYgLm93bC1uZXh0IHtcbiAgICByaWdodDogLTM3cHg7IH1cbiAgLm1hbmNoZXR0ZSAub3dsLW5hdiA+IC5kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogI2VjZWZmNjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5tYW5jaGV0dGUgLm93bC1uYXYgPiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2VjZWZmNjsgfVxuXG4vKipcclxuICogSXRlbVxyXG4gKi9cbi5tYW5jaGV0dGVfX2l0ZW0ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb2xvcjogIzAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm1hbmNoZXR0ZV9faXRlbTo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLm1hbmNoZXR0ZV9faXRlbTpob3ZlciBwIHtcbiAgICBjb2xvcjogIzAwYmNlZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAubWFuY2hldHRlX19pdGVtX19pbWFnZSwgLm1hbmNoZXR0ZV9faXRlbV9fdGl0bGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5tYW5jaGV0dGVfX2l0ZW1fX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5tYW5jaGV0dGVfX2l0ZW1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBtYXJnaW46IDA7XG4gICAgb3BhY2l0eTogLjc7XG4gICAgcGFkZGluZzogMCAwLjg3NXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLyoqXHJcbiAgICAgKiBNYW5jaGV0dGVcclxuICAgICAqLyB9XG5cbi8qKlxuICogTWl4aW5zXG4gKi9cbi8qKlxuICogR2VuZXJhbFxuICovXG4vKipcbiogR2VuZXJhbFxuKiBOT1RFOiAnY2hubHMnIHN0YW5kcyBmb3IgY2hhbm5lbHNcbiogTk9URTogJ2NobmwnIHN0YW5kcyBmb3IgY2hhbm5lbFxuKi9cbi53cmFwcGVyLWNoYW5uZWxzIHtcbiAgYmFja2dyb3VuZDogI2VjZWZmNjtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gIHBhZGRpbmctdG9wOiAzLjc1cmVtOyB9XG5cbi5jaG5scyB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jaG5scyAub3dsLW5hdiAub3dsLW5leHQsXG4gIC5jaG5scyAub3dsLW5hdiAub3dsLXByZXYge1xuICAgIHRvcDogOTVweDsgfVxuXG4uY2hubF9fdGl0bGUge1xuICBmb250LXNpemU6IDEuODc1cmVtOyB9XG4gIC5jaG5sX190aXRsZS50diB7XG4gICAgY29sb3I6ICNhNDg5YzE7IH1cbiAgLmNobmxfX3RpdGxlLmZvb3RiYWxsIHtcbiAgICBjb2xvcjogIzNjNzBiNjsgfVxuICAuY2hubF9fdGl0bGUubXVzaWMge1xuICAgIGNvbG9yOiAjZWIyZDVlOyB9XG4gIC5jaG5sX190aXRsZS5uZXdzIHtcbiAgICBjb2xvcjogIzAwYmNlZTsgfVxuXG4vKipcbiAqIEFjY29yZGlvbiBmb3IgdGhlIG1vYmlsZSB2ZXJzaW9uIG9ubHlcbiAqIE5PVEU6IGlkZWEgY2FuY2VsbGVkIGJ5IGJ1c2luZXNzLiBDYW4gYmUgZGVsZXRlZCAobWF5YmUpXHJcbiAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC8qKlxuICAgICogQXJ0aWNsZSBpbm5lclxuICAgICovXG4gIC5hcnRpY2xlX19pbm5lci0tZmlyc3QgLmFydGljbGVfX2l0ZW1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG4gIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07IH0gfVxuXG4vKipcbiAqIEdlbmVyYWxcbiAqL1xuLndyYXBwZXItZG9zc2llcnMge1xuICBiYWNrZ3JvdW5kOiAjYzhjY2UyO1xuICBwYWRkaW5nLWJvdHRvbTogMy43NXJlbTtcbiAgcGFkZGluZy10b3A6IDMuNzVyZW07IH1cblxuLmRvc3NpZXJzIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmRvc3NpZXJzIGgxIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBmb250LXdlaWdodDogbGlnaHQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDsgfVxuXG4vKipcbiAqIE1peGluc1xuICovXG4vKipcbiAqIENhcm91c2VsIHZpZGVvc1xuICovXG4ud3JhcHBlci12aWRlb3Mge1xuICBiYWNrZ3JvdW5kOiAjYzhjY2UyO1xuICBwYWRkaW5nLWJvdHRvbTogMy43NXJlbTtcbiAgcGFkZGluZy10b3A6IDMuNzVyZW07IH1cblxuLnZpZGVvcyB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC52aWRlb3MgaDEge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBsaWdodDsgfVxuICAudmlkZW9zIC5hcnRpY2xlX19pdGVtIHtcbiAgICBib3JkZXI6IDA7IH1cbiAgICAudmlkZW9zIC5hcnRpY2xlX19pdGVtOmhvdmVyIC5pY29uLXZpZGVvIHtcbiAgICAgIGNvbG9yOiAjMDBiY2VlOyB9XG4gICAgLnZpZGVvcyAuYXJ0aWNsZV9faXRlbTpob3ZlciAudmlkZW9fX3RodW1ibmFpbDpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC52aWRlb3MgLmFydGljbGVfX2l0ZW1fX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG5cbi52aWRlb19fdGh1bWJuYWlsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC52aWRlb19fdGh1bWJuYWlsOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJvdHRvbTogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2Utb3V0OyB9XG4gIC52aWRlb19fdGh1bWJuYWlsID4gc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnZpZGVvX190aHVtYm5haWwgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAudmlkZW9fX3RodW1ibmFpbCAuaWNvbi12aWRlbyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2Utb3V0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNTBweCkge1xuICAvKipcclxuICAgICAqIENhcm91c2VsIHZpZGVvc1xyXG4gICAgICovXG4gIC52aWRlb3MgLmFydGljbGVfX2l0ZW1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07IH1cbiAgLnZpZGVvcyAub3dsLW5hdiA+IGRpdiB7XG4gICAgdG9wOiAxLjI1cmVtOyB9IH1cblxuLyoqXHJcbiAqIFZhcmlhYmxlc1xyXG4gKlxyXG4gKiBUYWJsZSBvZiBDb250ZW50czpcclxuICpcclxuICogLSBDb2xvdXJzXHJcbiAqL1xuLm1hdGNoLW92ZXJ2aWV3IHtcbiAgbWFyZ2luLWJvdHRvbTogMi44MTI1cmVtO1xuICAvKipcclxuICAgICAqIENvbnRhaW5lclxyXG4gICAgICovXG4gIC8qKlxyXG4gICAgICogU2Nyb2xsIGJhclxyXG4gICAgICogVGhpcyBzY3JvbGwgYmFyIGhhcyBzb21lIGlubGluZSBzdHlsZSBnaXZlbiBieSBKYXZhc2NyaXB0XHJcbiAgICAgKiBXZSBuZWVkICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgdGhlbVxyXG4gICAgICovXG4gIC8qKlxyXG4gICAgKiBUYWJzXHJcbiAgICAqL1xuICAvKipcclxuICAgICAqIE9wdGlvbiBwaWNrZXJcclxuICAgICAqL1xuICAvKlxyXG4gICAgKiBTY3JvbGxhYmxlXHJcbiAgICAqL1xuICAvKlxyXG4gICAgKiBTZWN0aW9uIHRhYmxlXHJcbiAgICAqLyB9XG4gIC5tYXRjaC1vdmVydmlldyAubWF0Y2gtb3ZlcnZpZXdfX2xpc3RfX3RhYnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxZDBmMmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoLTQ1MGRlZywgIzFkMGYyZSAxNSUsICMzNzIwNWQgMzUlLCAjMjY2MmExIDgwJSwgIzFlNzNhZiA4NiUsICMxZTczYWYgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE4MGRlZywjMWQwZjJlIDE1JSwgIzM3MjA1ZCAzNSUsICMyNjYyYTEgODAlLCAjMWU3M2FmIDg2JSwgIzFlNzNhZiAxMDAlKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAubWF0Y2gtb3ZlcnZpZXcgLm1hdGNoLW92ZXJ2aWV3X19saXN0X190YWJzOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMGJjZWUgOTAlKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgIzAwYmNlZSA5MCUpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDEwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwOyB9XG4gIC5tYXRjaC1vdmVydmlldyAuaVNjcm9sbFZlcnRpY2FsU2Nyb2xsYmFyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDUwcHgpICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDVweCAhaW1wb3J0YW50O1xuICAgIHRvcDogMi44MTI1cmVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDRweCAhaW1wb3J0YW50OyB9XG4gIC5tYXRjaC1vdmVydmlldyAuaVNjcm9sbEluZGljYXRvciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA0cHggIWltcG9ydGFudDsgfVxuICAubWF0Y2gtb3ZlcnZpZXcgLnRhYi1jb2xsZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjg3NXJlbTsgfVxuICAgIC5tYXRjaC1vdmVydmlldyAudGFiLWNvbGxlY3Rpb24gPiBsaSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBtYXJnaW46IDAgMC40Mzc1cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuNDM3NXJlbTsgfVxuICAgICAgLm1hdGNoLW92ZXJ2aWV3IC50YWItY29sbGVjdGlvbiA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgIC5tYXRjaC1vdmVydmlldyAudGFiLWNvbGxlY3Rpb24gPiBsaS51aS1zdGF0ZS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwMGJjZWU7IH1cbiAgICAgIC5tYXRjaC1vdmVydmlldyAudGFiLWNvbGxlY3Rpb24gPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAubWF0Y2gtb3ZlcnZpZXcgLm9wdGlvbi1waWNrZXJfX3NlbGVjdGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tYXRjaC1vdmVydmlldyAuc2Nyb2xsYWJsZSB7XG4gICAgaGVpZ2h0OiA1OTVweDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgIC5tYXRjaC1vdmVydmlldyAuc2Nyb2xsYWJsZSA+IGRpdiB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMy4xMjVyZW07IH1cbiAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKipcclxuICAgICAgICAqIFRlYW0gRlVMTCAmIFNIT1JUIG5hbWVcclxuICAgICAgICAqL1xuICAgIC8qKlxyXG4gICAgICAgICAqIENoYW5uZWxcclxuICAgICAgICAgKi9cbiAgICAvKipcclxuICAgICAgICAgKiBUZWFtIGxvZ29cclxuICAgICAgICAgKi9cbiAgICAvKipcclxuICAgICAgICAgKiBOdW1iXHJcbiAgICAgICAgICovXG4gICAgLyoqXHJcbiAgICAgICAgKiBJY29uIHdycmFwZXJcclxuICAgICAgICAqL1xuICAgIC8qKlxyXG4gICAgICAgICogQ2hhbm5lbCBjb2xsZWN0aW9uXHJcbiAgICAgICAgKi8gfVxuICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSB0ciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzVkNjU5YTsgfVxuICAgICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyOiAwOyB9XG4gICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIHRoLFxuICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSB0ZCB7XG4gICAgICBwYWRkaW5nOiAwLjMxMjVyZW07IH1cbiAgICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSB0aDpmaXJzdC1jaGlsZCxcbiAgICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM1ZDY1OWE7IH1cbiAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgdGQge1xuICAgICAgY29sb3I6ICNkMWQxZGM7IH1cbiAgICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSB0ZCBhIHtcbiAgICAgICAgY29sb3I6ICNkMWQwZGM7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgdGQuZXh0cmEtaW5mbyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIHRkLmV4dHJhLWluZm8gYTphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKFwiLi4vaW1hZ2VzL21pbmktZm9vdC9pY29uLWFycm93LWxlZnQucG5nXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICBtYXJnaW46IDAgMC4zNzVyZW07XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgIHdpZHRoOiA4cHg7IH1cbiAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLnRlYW0tbmFtZV9fZnVsbCxcbiAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLnRlYW0tbmFtZV9fc2hvcnQsXG4gICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIC53ZWVrZGF5X19kYXkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSAuY2hhbm5lbCB7XG4gICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSAudGVhbS1sb2dvIHtcbiAgICAgIHBhZGRpbmc6IDAuOTM3NXJlbSAwLjYyNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIC50ZWFtLWxvZ28gaW1nIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIC5udW1iIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLm51bWIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIC5pY29uLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLmljb24td3JhcHBlciBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLmljb24td3JhcHBlci5kaXNwbGF5LW5vLWljb24gLmljb24ge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSAuaWNvbi13cmFwcGVyIC5pY29uIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSAuaWNvbi13cmFwcGVyIC5pY29uLmljb24tbG9nby0xMS1iZyB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2U1ZTRlYztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMHB4OyB9XG4gICAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLmljb24td3JhcHBlciAuaWNvbi1jb2xvciB7XG4gICAgICAgIGNvbG9yOiAjZTVlNGVjOyB9XG4gICAgICAgIC5tYXRjaC1vdmVydmlldyAuc2VjdGlvbi10YWJsZSAuaWNvbi13cmFwcGVyIC5pY29uLWNvbG9yOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG4gICAgLm1hdGNoLW92ZXJ2aWV3IC5zZWN0aW9uLXRhYmxlIC5jaGFubmVsLWNvbGxlY3Rpb24ge1xuICAgICAgbWFyZ2luLXRvcDogMC4zMTI1cmVtOyB9XG4gICAgICAubWF0Y2gtb3ZlcnZpZXcgLnNlY3Rpb24tdGFibGUgLmNoYW5uZWwtY29sbGVjdGlvbiAuY2hhbm5lbF9faXRlbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC8qXHJcbiAgICAqIFNjcm9sbGFibGVcclxuICAgICovXG4gIC5zY3JvbGxhYmxlIHtcbiAgICBoZWlnaHQ6IDU0OHB4OyB9IH1cblxuLmVwZy1vdmVydmlldyB7XG4gIG1hcmdpbi1ib3R0b206IDIuODEyNXJlbTtcbiAgLyoqXHJcbiAgICAgKiBDb250YWluZXJcclxuICAgICAqL1xuICAvKipcclxuICAgICAqIFNjcm9sbCBiYXJcclxuICAgICAqL1xuICAvKipcclxuICAgICogVGFic1xyXG4gICAgKi9cbiAgLyoqXHJcbiAgICAgKiBPcHRpb24gcGlja2VyXHJcbiAgICAgKi9cbiAgLyoqXHJcbiAgICAgKiBQYW5lbFxyXG4gICAgICovXG4gIC8qKlxyXG4gICAgICogSXRlbVxyXG4gICAgICovXG4gIC8qKlxyXG4gICAgICogSW1hZ2VcclxuICAgICAqL1xuICAvKipcclxuICAgICAqIEluZm9cclxuICAgICAqL1xuICAvKipcclxuICAgICAqIEJ1dHRvblxyXG4gICAgICovXG4gIC8qKlxyXG4gICAgICogRnVsbCBwcm9ncmFtbWUgYnV0dG9uXHJcbiAgICAgKi9cbiAgLyoqXHJcbiAgICAgKiBQYXJ0bmVyXHJcbiAgICAgKi8gfVxuICAuZXBnLW92ZXJ2aWV3IC5lcGctb3ZlcnZpZXdfX3RhYnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzBkNDY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KDUwJSA2MCUgZWxsaXBzZSwgcmdiYSg4LCA3OSwgMTI2LCAwLjkpIDAlLCByZ2JhKDgsIDc5LCAxMjYsIDAuMikgOTAlKTtcbiAgICBwYWRkaW5nOiAwIDAuODc1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZXBnLW92ZXJ2aWV3IC5pU2Nyb2xsVmVydGljYWxTY3JvbGxiYXIge1xuICAgIGJvdHRvbTogMy4xMjVyZW07XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICB0b3A6IDAuOTM3NXJlbTtcbiAgICB3aWR0aDogNHB4OyB9XG4gIC5lcGctb3ZlcnZpZXcgLmlTY3JvbGxJbmRpY2F0b3Ige1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNHB4OyB9XG4gIC5lcGctb3ZlcnZpZXcgLnRhYi1jb2xsZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjg3NXJlbSAwOyB9XG4gICAgLmVwZy1vdmVydmlldyAudGFiLWNvbGxlY3Rpb24gPiBsaSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBtYXJnaW46IDAgMC40Mzc1cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuNDM3NXJlbTsgfVxuICAgICAgLmVwZy1vdmVydmlldyAudGFiLWNvbGxlY3Rpb24gPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAuZXBnLW92ZXJ2aWV3IC50YWItY29sbGVjdGlvbiA+IGxpLnVpLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzAwYmNlZTsgfVxuICAgICAgLmVwZy1vdmVydmlldyAudGFiLWNvbGxlY3Rpb24gPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAuZXBnLW92ZXJ2aWV3IC5vcHRpb24tcGlja2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZXBnLW92ZXJ2aWV3IC5vcHRpb24tcGlja2VyLS1vcGVuIC5vcHRpb24tcGlja2VyX19jb2xsZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5lcGctb3ZlcnZpZXcgLm9wdGlvbi1waWNrZXJfX3NlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlZmY2O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NjdkOTQ7XG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDAuNDM3NXJlbSAwO1xuICAgIHBhZGRpbmc6IDAuNDM3NXJlbTsgfVxuICAgIC5lcGctb3ZlcnZpZXcgLm9wdGlvbi1waWNrZXJfX3NlbGVjdGVkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXGU5MDEnO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgZm9udC1mYW1pbHk6ICdza3luZXQtaWNvbnMnO1xuICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDAuMzEyNXJlbTsgfVxuICAuZXBnLW92ZXJ2aWV3IC5vcHRpb24tcGlja2VyX19jb2xsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlZmY2O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NjdkOTQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMXB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgLmVwZy1vdmVydmlldyAub3B0aW9uLXBpY2tlcl9faXRlbSBhIHtcbiAgICBjb2xvcjogIzY2N2Q5NDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjQzNzVyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2Utb3V0OyB9XG4gICAgLmVwZy1vdmVydmlldyAub3B0aW9uLXBpY2tlcl9faXRlbSBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMGJjZWU7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuZXBnLW92ZXJ2aWV3IC5vcHRpb24tcGlja2VyX19pdGVtLS1hY3RpdmUgYSB7XG4gICAgYmFja2dyb3VuZDogIzAwYmNlZTtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuZXBnLW92ZXJ2aWV3X19wYW5lbF9fY29udGVudCB7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5lcGctb3ZlcnZpZXcgLml0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIHBhZGRpbmc6IDAuODc1cmVtIDA7IH1cbiAgICAuZXBnLW92ZXJ2aWV3IC5pdGVtOjphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAgIC5lcGctb3ZlcnZpZXcgLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDMuMTI1cmVtOyB9XG4gIC5lcGctb3ZlcnZpZXcgLml0ZW1fX3Zpc3VhbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMwJTsgfVxuICAuZXBnLW92ZXJ2aWV3IC5pdGVtX19pbmZvIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuODc1cmVtO1xuICAgIHdpZHRoOiA3MCU7IH1cbiAgICAuZXBnLW92ZXJ2aWV3IC5pdGVtX19pbmZvIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZXBnLW92ZXJ2aWV3IC5pdGVtX19pbmZvX190aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH1cbiAgICAuZXBnLW92ZXJ2aWV3IC5pdGVtX19pbmZvX190aXRsZSAubGluayB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZXBnLW92ZXJ2aWV3IC5wbGF5LWJ1dHRvbixcbiAgLmVwZy1vdmVydmlldyAucmVwbGF5LWJ1dHRvbixcbiAgLmVwZy1vdmVydmlldyAucmVjb3JkLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMDgsIDY1LCAxNTYsIDAuOSk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzAlICsgMTRweCk7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgcGFkZGluZzogMC42MjVyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtcyBlYXNlLW91dDtcbiAgICB3aWR0aDogOS42ODc1cmVtOyB9XG4gICAgLmVwZy1vdmVydmlldyAucGxheS1idXR0b246aG92ZXIsXG4gICAgLmVwZy1vdmVydmlldyAucmVwbGF5LWJ1dHRvbjpob3ZlcixcbiAgICAuZXBnLW92ZXJ2aWV3IC5yZWNvcmQtYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuICAuZXBnLW92ZXJ2aWV3IC5idXR0b24tdGhyZWUtLXVybHMge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgcGFkZGluZzogMC44NzVyZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZXBnLW92ZXJ2aWV3IC5idXR0b24tdGhyZWUtLXVybHMgYSB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmVwZy1vdmVydmlldyAuYnV0dG9uLXRocmVlLS11cmxzIGE6bnRoLWNoaWxkKDEpLCAuZXBnLW92ZXJ2aWV3IC5idXR0b24tdGhyZWUtLXVybHMgYTpudGgtY2hpbGQoMikge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjEyNXJlbTsgfVxuICAgICAgLmVwZy1vdmVydmlldyAuYnV0dG9uLXRocmVlLS11cmxzIGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuZXBnLW92ZXJ2aWV3IC5idXR0b25fX3RleHQge1xuICAgIGZvbnQtZmFtaWx5OiBcInByb3hpbXVzXCI7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIC5lcGctb3ZlcnZpZXdfX3RhYnMgKyAubGF5b3V0LWluY2VwdGlvbi1idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICMwOTFlNDE7XG4gICAgcGFkZGluZzogMCAwLjg3NXJlbTsgfVxuICAgIC5lcGctb3ZlcnZpZXdfX3RhYnMgKyAubGF5b3V0LWluY2VwdGlvbi1idXR0b24gLnNlcGVyYXRvci1idXR0b24ge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7IH1cbiAgICAuZXBnLW92ZXJ2aWV3X190YWJzICsgLmxheW91dC1pbmNlcHRpb24tYnV0dG9uIC5jb21wbGV0ZSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMC44NzVyZW0gMDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICAuZXBnLW92ZXJ2aWV3X190YWJzICsgLmxheW91dC1pbmNlcHRpb24tYnV0dG9uIC5jb21wbGV0ZTpob3ZlciAuYnV0dG9uX190ZXh0IHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgIC5lcGctb3ZlcnZpZXdfX3RhYnMgKyAubGF5b3V0LWluY2VwdGlvbi1idXR0b24gLmNvbXBsZXRlOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcZTkwMyc7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnc2t5bmV0LWljb25zJztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjMxMjVyZW07IH1cbiAgICAgIC5lcGctb3ZlcnZpZXdfX3RhYnMgKyAubGF5b3V0LWluY2VwdGlvbi1idXR0b24gLmNvbXBsZXRlIC5pY29uLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmVwZy1vdmVydmlld19fcGFydG5lciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcclxuICogR2VuZXJhbFxyXG4gKiBOT1RFOiAncm4nIHN0YW5kcyBmb3IgcmVjZW50LW5ld3NcclxuICovXG4ucm4ge1xuICBtYXJnaW46IDVyZW0gMDsgfVxuICAucm4gaDEge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBsaWdodDsgfVxuXG4vKipcclxuICogVGFic1xyXG4gKi9cbi5ybl9fdGFicyB7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDAgMS44NzVyZW07IH1cblxuLnJuX190YWItaXRlbSB7XG4gIGNvbG9yOiAjNjY3ZDk0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMCAwLjg3NXJlbTtcbiAgcGFkZGluZzogMC42MjVyZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtcyBlYXNlLW91dDsgfVxuICAucm5fX3RhYi1pdGVtOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwYmNlZTsgfVxuICAucm5fX3RhYi1pdGVtLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMGJjZWU7XG4gICAgY29sb3I6ICMwMGJjZWU7IH1cbiAgLnJuX190YWItaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJuX190YWItaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAucm5fX3RhYi1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzY2N2Q5NDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDE4cHg7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgcmlnaHQ6IDA7IH1cbiAgICAucm5fX3RhYi1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IC0xNnB4O1xuICAgICAgdG9wOiA3cHg7IH1cblxuLyoqXHJcbiAqIFRhYiBjb250ZW50XHJcbiAqL1xuLnJuX190YWItY29udGVudC5oaWRkZW4tdGFiIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucm5fX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBsaWdodDtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDsgfVxuXG4vKipcclxuICogTmV3cyBsaXN0XHJcbiAqL1xuLnJuX19uZXdzbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuXG4ucm5fX25ld3NsaXN0X19pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCAjMDBiY2VlO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW4tYm90dG9tOiAwLjE4NzVyZW07XG4gIHBhZGRpbmc6IDAuMDYyNXJlbSAwIDAgNC42MjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucm5fX25ld3NsaXN0X19pdGVtLmZvb3RiYWxsIHtcbiAgICBib3JkZXItY29sb3I6ICMzYzcwYjY7IH1cbiAgLnJuX19uZXdzbGlzdF9faXRlbS5uZXdzIHtcbiAgICBib3JkZXItY29sb3I6ICMwMGJjZWU7IH1cbiAgLnJuX19uZXdzbGlzdF9faXRlbS50diB7XG4gICAgYm9yZGVyLWNvbG9yOiAjYTQ4OWMxOyB9XG4gIC5ybl9fbmV3c2xpc3RfX2l0ZW0ubXVzaWMge1xuICAgIGJvcmRlci1jb2xvcjogI2ViMmQ1ZTsgfVxuICAucm5fX25ld3NsaXN0X19pdGVtIGEge1xuICAgIGNvbG9yOiAjM2QzZDNkO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjg3NXJlbTsgfVxuICAgIC5ybl9fbmV3c2xpc3RfX2l0ZW0gYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzAwYmNlZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5ybl9fbmV3c2xpc3RfX2l0ZW0gdGltZSB7XG4gICAgY29sb3I6ICM4Mzg4OTc7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsZWZ0OiAwLjg3NXJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjMxMjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5ybiBoMSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnJuX19oZWFkZXI6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5ybl9fdGFicyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0zcHg7IH0gfVxuXG4vKipcclxuICogQ2Fyb3VzZWwgY29udGVzdFxyXG4gKi9cbi5jb250ZXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMi44MTI1cmVtO1xuICAvKipcclxuICAgICAqIE93bFxyXG4gICAgICovXG4gIC8qKlxyXG4gICAgICogQnRuIG1vcmVcclxuICAgICAqLyB9XG4gIC5jb250ZXN0X19oaWdobGlnaHQge1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogIzI4MzQ1MTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY29udGVzdF9faGlnaGxpZ2h0Lm93bC1sb2FkZWQge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY29udGVzdCAub3dsLW5hdiAub3dsLXByZXYge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMTg3NXJlbTsgfVxuICAuY29udGVzdCAub3dsLW5hdiAub3dsLW5leHQge1xuICAgIHBhZGRpbmctbGVmdDogMC4xODc1cmVtOyB9XG4gIC5jb250ZXN0IC5vd2wtbmF2IC5vd2wtcHJldixcbiAgLmNvbnRlc3QgLm93bC1uYXYgLm93bC1uZXh0IHtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgaGVpZ2h0OiAzLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07XG4gICAgbWFyZ2luLXRvcDogLTEuODc1cmVtO1xuICAgIHRvcDogMzUlO1xuICAgIHdpZHRoOiAxLjI1cmVtOyB9XG4gIC5jb250ZXN0IC5idG4tbW9yZS0td2hpdGUge1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IDAgMS41NjI1cmVtIDEuMjVyZW0gMS41NjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKipcclxuICogSXRlbVxyXG4gKi9cbi5jb250ZXN0X19pdGVtIHtcbiAgYmFja2dyb3VuZDogIzI4MzQ1MTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY29udGVzdF9faXRlbTpiZWZvcmUge1xuICAgIGJvdHRvbTogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBsZWZ0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMjA7IH1cbiAgLmNvbnRlc3RfX2l0ZW06aG92ZXIgLmNvbnRlc3RfX2l0ZW1fX3RpdGxlIHtcbiAgICBjb2xvcjogI2M3Y2NlMTsgfVxuICAuY29udGVzdF9faXRlbV9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY29udGVzdF9faXRlbV9faW5mbyB7XG4gICAgY29sb3I6ICNjN2NjZTE7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41NjI1cmVtIDAgMS41NjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuICAuY29udGVzdF9faXRlbV9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE4NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTYyNXJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMTE1cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNTYyNXJlbSAxLjI1cmVtO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDMwMG1zIGVhc2Utb3V0O1xuICAgIHotaW5kZXg6IDI1OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuY29udGVzdF9faGlnaGxpZ2h0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAzcHg7IH0gfVxuXG4vKipcbiAqIEdlbmVyYWxcbiAqL1xuLmUtc2VydmljZXMge1xuICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07IH1cbiAgLmUtc2VydmljZXMgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTsgfVxuICAgIC5lLXNlcnZpY2VzID4gLnJvdyA+IC5jb2x1bW46bnRoLWNoaWxkKG9kZCkge1xuICAgICAgcGFkZGluZy1yaWdodDogMC4zNzVyZW07IH1cbiAgICAuZS1zZXJ2aWNlcyA+IC5yb3cgPiAuY29sdW1uOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtOyB9XG5cbi8qKlxuICogSXRlbXNcbiAqL1xuLmUtc2VydmljZXNfX2l0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjNWMyZDkxO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDguNzVyZW07XG4gIHBhZGRpbmc6IDEuMTI1cmVtIDAuOTM3NXJlbSAwLjkzNzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtcyBlYXNlLW91dDsgfVxuICAuZS1zZXJ2aWNlc19faXRlbV9fdGl0bGUsXG4gIC5lLXNlcnZpY2VzX19pdGVtIC5pY29uIHtcbiAgICBvcGFjaXR5OiAuODsgfVxuICAgIC5lLXNlcnZpY2VzX19pdGVtX190aXRsZTpob3ZlcixcbiAgICAuZS1zZXJ2aWNlc19faXRlbSAuaWNvbjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5lLXNlcnZpY2VzX19pdGVtX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xMjVyZW07IH1cbiAgLmUtc2VydmljZXNfX2l0ZW0gLmljb24ge1xuICAgIGJvdHRvbTogMTVweDtcbiAgICBmb250LXNpemU6IDMuMTI1cmVtO1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5lLXNlcnZpY2VzX19pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDBiY2VlOyB9XG5cbi8qKlxyXG4gKiBUb3B1cFxyXG4gKi9cbi50b3B1cCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YzJjOGY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzVjMmM4ZiAwJSwgIzRmNDc5ZCA1NyUsICMwMGJjZWUgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzVjMmM4ZiAwJSwgIzRmNDc5ZCA1NyUsICMwMGJjZWUgMTAwJSk7XG4gIG1hcmdpbi1ib3R0b206IDIuODEyNXJlbTtcbiAgcGFkZGluZzogMS41NjI1cmVtIDAuOTM3NXJlbTsgfVxuICAudG9wdXAgLmljb24tbW9iaWxlLW8ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDQuMzc1cmVtO1xuICAgIG1hcmdpbi10b3A6IDAuMDMxMjVyZW07XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAudG9wdXBfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgMCAwIDAuNjI1cmVtO1xuICAgIHdpZHRoOiA3OCU7IH1cbiAgLnRvcHVwX190aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NjI1cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC50b3B1cF9fZm9ybS10aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07IH1cbiAgLnRvcHVwX19waG9uZS1udW1iZXIge1xuICAgIGNvbG9yOiAjM2QzZDNkO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwLjYyNXJlbTtcbiAgICB3aWR0aDogNzAlOyB9XG4gIC50b3B1cF9fc3VibWl0LWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogIzViMmQ5MDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDAuOTM3NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zIGVhc2Utb3V0IDBzOyB9XG4gICAgLnRvcHVwX19zdWJtaXQtYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMGJjZWU7IH1cblxuLyoqXHJcbiAqIFdhbGwgZGVmYXVsdC9jYXJkIHZpZXdcclxuICovXG4ud3JhcHBlci13YWxsIC5tYWluIHtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG5cbi8qKlxyXG4gKiBUaXRsZVxyXG4gKi9cbi53YWxsX19pdGVtX19leGNlcnB0IHtcbiAgYm9yZGVyOiAycHggc29saWQgcmVkO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xuICAud3JhcHBlci13YWxsIC5tYWluIHtcbiAgICBwYWRkaW5nOiAwOyB9IH1cbiIsIi8qKlxyXG4gKiBJbXBvcnQgRnVuY3Rpb25zXHJcbiAqL1xyXG5AaW1wb3J0ICdmdW5jdGlvbnMvcmVtJztcclxuIiwiLyoqXG4gKiBNaXhpbnNcbiAqL1xuQGltcG9ydCBcIm1peGlucy9hcnJvdy1jYXJvdXNlbFwiO1xuQGltcG9ydCBcIm1peGlucy9iZy1wcm94aW11c1wiO1xuQGltcG9ydCBcIm1peGlucy9jdXN0b20tc2Nyb2xsYmFyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2ZvbnQtc2l6ZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZm9udC1zbW9vdGhpbmdcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaGFtYnVyZ2VyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2xpbmstaG92ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzcG9uZC10b1wiO1xuQGltcG9ydCBcIm1peGlucy9zY3JvbGxiYXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvc2VwYXJhdG9yc1wiO1xuQGltcG9ydCBcIm1peGlucy92ZXJ0aWNhbC1hbGlnblwiO1xuQGltcG9ydCBcIm1peGlucy9ob3Jpem9udGFsLWFsaWduXCI7XG5AaW1wb3J0IFwibWl4aW5zL3ZlcnRpY2FsLWhvcml6b250YWwtYWxpZ25cIjtcbiIsIi8qKlxyXG4gKiBDYXJvdXNlbCBhcnJvd3NcclxuICovXHJcbkBtaXhpbiBhcnJvdy1jYXJvdXNlbCgkZGlyZWN0aW9uOiByaWdodCwgJGhlaWdodDogNzBweCwgJHdpZHRoOiAzMHB4KSB7XHJcbiAgICAkb3Bwb3NpdGU6IGlmKCRkaXJlY3Rpb24gPT0gcmlnaHQsIGxlZnQsIHJpZ2h0KTtcclxuXHJcbiAgICAjeyRkaXJlY3Rpb259OiAwO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSg5MywgNDYsIDE0MywgMC43KTtcclxuICAgIGJvcmRlci1ib3R0b20tI3skb3Bwb3NpdGV9LXJhZGl1czogMTBweDtcclxuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICBsaW5lLWhlaWdodDogJGhlaWdodDtcclxuICAgIHBhZGRpbmctdG9wOiAycHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0b3A6IDQwJTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAkZ2xvYmFsLXRyYW5zaXRpb247XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1wdXJwbGU7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBQcm94aW11cyBncmFkaWVudCBhcyBhIGJhY2tncm91bmRcclxuICovXHJcbkBtaXhpbiBiZy1wcm94aW11cygkZGlyZWN0aW9uOiByaWdodCkge1xyXG4gICAgJGRlZ3JlZXNfbWFwOiAoXHJcbiAgICAgICAgcmlnaHQ6IDkwZGVnLFxyXG4gICAgICAgIGxlZnQ6IDBkZWcsXHJcbiAgICAgICAgYm90dG9tOiAxODBkZWcsXHJcbiAgICAgICAgdG9wOiAzNjBkZWdcclxuICAgICk7XHJcblxyXG4gICAgJGRlZzogbWFwX2dldCgkZGVncmVlc19tYXAsICN7JGRpcmVjdGlvbn0pO1xyXG5cclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1wdXJwbGUtZGFyaztcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRkZWcsICRjb2xvci1wdXJwbGUtZGFyayAwJSwgJGNvbG9yLXB1cnBsZS1kYXJrIDQwJSwgJGNvbG9yLXB1cnBsZSA3MCUsICRjb2xvci1ibHVlLWxpZ2h0KTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KCRkZWcsICRjb2xvci1wdXJwbGUtZGFyayAwJSwgJGNvbG9yLXB1cnBsZS1kYXJrIDQwJSwgJGNvbG9yLXB1cnBsZSA3MCUsICRjb2xvci1ibHVlLWxpZ2h0KTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgkZGVnLCAkY29sb3ItcHVycGxlLWRhcmsgMCUsICRjb2xvci1wdXJwbGUtZGFyayA0MCUsICRjb2xvci1wdXJwbGUgNzAlLCAkY29sb3ItYmx1ZS1saWdodCk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJGNvbG9yLXB1cnBsZS1kYXJrIDAlLCAkY29sb3ItcHVycGxlLWRhcmsgNDAlLCAkY29sb3ItcHVycGxlIDcwJSwgJGNvbG9yLWJsdWUtbGlnaHQpO1xyXG59XHJcbiIsIi8qKlxyXG4gKiBSZXBsYWNlcyBkZWZhdWx0IHNjcm9sbGJhciB3aXRoIGEgYmV0dGVyIGxvb2tpbmcgb25lXHJcbiAqIFdvcmtzIG9uIFdlYmtpdFxyXG4gKi9cclxuQG1peGluIGN1c3RvbS1zY3JvbGxiYXIoJGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgjM2QzZDQzLCAwLjUpLCAkd2lkdGg6IDRweCkge1xyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICR3aWR0aCAvIDI7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICR3aWR0aCAvIDI7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiAgICAgICB7XHJcbiAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBEZWZpbmVzIHJlc3BvbnNpdmUgZm9udC1zaXplc1xyXG4gKi9cclxuXHJcbkBtaXhpbiBmb250LXNpemVzKCRzaXplKSB7XHJcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRzaXplIHtcclxuICAgICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gJ3NtYWxsJyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKCRicmVha3BvaW50KSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKipcclxuICogQ3JlYXRlIGFuIGFuaW1hdGVkIEhhbWJ1cmdlciBidXR0b24gZm9yIHRoZSBtb2JpbGUgbWVudVxyXG4gKiBCYXNlZCBvbjogaHR0cHM6Ly9qb25zdWguY29tL2hhbWJ1cmdlcnMvXHJcbiAqIFRvIHdvcmssIGl0IHJlcXVpcmVzIHRoZSBjb250YWluZXIgdG8gaGF2ZSA8ZGl2PjxzcGFuPjwvc3Bhbj48L2Rpdj4gaW4gaXRcclxuICpcclxuICovXHJcbkBtaXhpbiBoYW1idXJnZXIoKSB7XHJcbiAgICAkYmFyLWhlaWdodDogMnB4O1xyXG4gICAgJGJhci1jb2xvcjogI2ZmZjtcclxuICAgICRiYXItY29sb3ItaG92ZXI6ICRjb2xvci1ibHVlLWxpZ2h0O1xyXG4gICAgJGJhci1yYWRpdXM6IDJweDtcclxuICAgICRiYXItc3BhY2luZzogNHB4O1xyXG4gICAgJGhlaWdodDogJGJhci1oZWlnaHQgKiAzICsgJGJhci1zcGFjaW5nICogMjtcclxuICAgICR3aWR0aDogMjRweDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgJixcclxuICAgICAgICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJhci1jb2xvci1ob3ZlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDogMnB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAzMDBtcyBlYXNlO1xyXG4gICAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcclxuXHJcbiAgICAgICAgJixcclxuICAgICAgICAmOmJlZm9yZSxcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJhci1jb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJhci1yYWRpdXM7XHJcbiAgICAgICAgICAgIGhlaWdodDogJGJhci1oZWlnaHQ7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcbiAgICAgICAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmJlZm9yZSxcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgdG9wOiAtOHB4O1xyXG4gICAgICAgICAgICAvLyB0b3A6ICgkYmFyLXNwYWNpbmcgKyAkYmFyLWhlaWdodCkgKiAtMTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMTJzIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgdG9wOiAtMTZweDtcclxuICAgICAgICAgICAgLy8gdG9wOiAoKCRiYXItc3BhY2luZyAqIDIgKyAkYmFyLWhlaWdodCAqIDIpICogLTEpIC0gMjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuM3MgMC4zcyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC4xcyBsaW5lYXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgICBkaXYge1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAoJGJhci1zcGFjaW5nICsgJGJhci1oZWlnaHQpICogLTEsIDApIHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjMycztcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCBvcGFjaXR5IDAuMXMgMC4yN3MgbGluZWFyO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMTJzIDAuMThzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTVzIDAuNDJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBUaGUgZ2xvYmFsIGhvdmVyIGVmZmVjdCBmb3IgbGlua3NcclxuICovXHJcbkBtaXhpbiBsaW5rLWhvdmVyKCRjb2xvcjogJGNvbG9yLWJsdWUtbGlnaHQpIHtcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG4gXHJcbiIsIi8qKlxyXG4gKiBXcmFwcyBjb250ZW50IGluIGEgbWVkaWEgcXVlcnkgZGVmaW5lZCBpbiB0aGUgJGJyZWFrcG9pbnRzXHJcbiAqL1xyXG5AbWl4aW4gcmVzcG9uZC10bygkYnJlYWtwb2ludDogc21hbGwpIHtcclxuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KTtcclxuXHJcbiAgICBAaWYgKCR2YWx1ZSAhPSAwKSB7XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHZhbHVlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBDcmVhdGUgYSBsaXR0bGUgbGluZSBiZWZvcmUvYWZ0ZXIgdGhlIDxsaT4gZWxlbWVudFxyXG4gKi9cclxuQG1peGluIGhlYWRlci1zZXBhcmF0b3IoJGNvbG9yOiAjZmZmLCAkc2lkZTogJ3JpZ2h0JywgJG9wYWNpdHk6IDAuNCkge1xyXG4gICAgJGhlaWdodDogMjRweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogKCRoZWFkZXItZmlyc3QtbGV2ZWwtaGVpZ2h0IC0gJGhlaWdodCkgLyAyO1xyXG4gICAgICAgIHdpZHRoOiAxcHg7XHJcbiAgICAgICAgI3skc2lkZX06IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaS1zZXBhcmF0b3IoJGNvbG9yOiAjMjAxMTRjLCAkc2lkZTogJ2JvdHRvbScsICRvcGFjaXR5OiAwLjIpIHtcclxuICAgICRoZWlnaHQ6IDFweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgI3skc2lkZX06IDA7XHJcbiAgICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFRoZSBHcmlkXHJcbiAqXHJcbiAqIFRoaXMgZ3JpZCBzeXN0ZW0gaXMgbW9zdGx5IGJhc2VkIG9uIHRoZSBGb3VuZGF0aW9uIGdyaWQgKGh0dHA6Ly9mb3VuZGF0aW9uLnp1cmIuY29tL3NpdGVzL2RvY3MvZmxleC1ncmlkLmh0bWwpXHJcbiAqIFRoZSBjbGFzcyBcInJvd1wiIGhhcyBiZWVuIGFkYXB0ZWQgdG8ganVzdCB3b3JrIGFzIGNvbnRhaW5lci9jbGVhcmZpeCBmb3IgdGhlIGNvbHVtc1xyXG4gKiBXaGlsZSBhIGNsYXNzIFwiY29udGFpbmVyXCIgaGFzIGJlZW4gYWRkZWQgdG8gZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIChsaWtlIEJvb3RzdHJhcCBkb2VzKVxyXG4gKi9cclxuXHJcbkBpbXBvcnQgXCJncmlkLWZsZXgvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCJncmlkLWZsZXgvdXRpbC11bml0XCI7XHJcbkBpbXBvcnQgXCJncmlkLWZsZXgvdXRpbC1icmVha3BvaW50XCI7XHJcbkBpbXBvcnQgXCJncmlkLWZsZXgvdXRpbC1mbGV4XCI7XHJcblxyXG5AaW1wb3J0IFwiZ3JpZC1mbGV4L2ZsZXhcIjtcclxuQGltcG9ydCBcImdyaWQtZmxleC9yb3dcIjtcclxuQGltcG9ydCBcImdyaWQtZmxleC9jb2x1bW5cIjtcclxuQGltcG9ydCBcImdyaWQtZmxleC9zaXplXCI7XHJcbkBpbXBvcnQgXCJncmlkLWZsZXgvcG9zaXRpb25cIjtcclxuQGltcG9ydCBcImdyaWQtZmxleC9ndXR0ZXJcIjtcclxuQGltcG9ydCBcImdyaWQtZmxleC9jbGFzc2VzXCI7XHJcbkBpbXBvcnQgXCJncmlkLWZsZXgvbGF5b3V0XCI7XHJcblxyXG5AaW1wb3J0IFwiZ3JpZC1mbGV4L2ZsZXgtZ3JpZFwiO1xyXG5cclxuQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXHJcbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cclxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxyXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcclxuICAkYmVoYXZpb3I6IG51bGwsXHJcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXHJcbiAgJGNvbHVtbnM6IG51bGwsXHJcbiAgJGJhc2U6IHRydWUsXHJcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICAgIC8vIE5PVEU6IGFkYXB0YXRpb24gZnJvbSB0aGUgb3JpZ2luYWwgR3JpZFxyXG4gICAgJGluZGV4OiAxO1xyXG5cclxuICAgIEBlYWNoICRicmVha3BvaW50LCAkZ3V0dGVyIGluICRncmlkLWNvbHVtbi1ndXR0ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oJGJyZWFrcG9pbnQpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJvdW5kKC0gJGd1dHRlciAvIDIpO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJvdW5kKC0gJGd1dHRlciAvIDIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkaW5kZXg6ICRpbmRleCArIDE7XHJcbiAgICB9XHJcblxyXG4gIC8vICRtYXJnaW46IGF1dG87XHJcbiAgLy9cclxuICAvLyBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcclxuICAvLyAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcik7XHJcbiAgLy9cclxuICAvLyAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcclxuICAvLyAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgLy8gICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbiAgLy8gQGVsc2Uge1xyXG4gIC8vICAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgLy8gICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAvLyAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAvLyB9XHJcblxyXG4gIEBpZiAkYmFzZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcclxuICB9XHJcblxyXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcclxuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XHJcbi8vLyAgIC0gYG51bGxgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXHJcbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi5cclxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IG51bGwpIHtcclxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICRmbGV4OiAxIDEgMHB4O1xyXG5cclxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcclxuICAgICRmbGV4OiAwIDAgYXV0bztcclxuICB9XHJcbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gbnVsbCB7XHJcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGZsZXg7XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtudWxsXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2UgYmV0d2VlbiBjb2x1bW5zLCBhZGRlZCBhcyBhIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXHJcbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxyXG4gICRjb2x1bW5zOiBudWxsLFxyXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgLy8gQmFzZSBwcm9wZXJ0aWVzXHJcbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcblxyXG4gIC8vIEd1dHRlcnNcclxuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XHJcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xyXG4gICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XHJcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XHJcbiAgQGlmICRjb2x1bW5zICE9IG51bGwgYW5kICRjb2x1bW5zICE9IHNocmluayB7XHJcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgYmxvY2sgZ3JpZCBmb3IgYSBmbGV4IGdyaWQgcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIC0gU2VsZWN0b3IgdG8gdXNlIHRvIHRhcmdldCBjb2x1bW5zIHdpdGhpbiB0aGUgcm93LlxyXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcclxuICAkbixcclxuICAkc2VsZWN0b3I6ICcuY29sdW1uJ1xyXG4pIHtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gID4gI3skc2VsZWN0b3J9IHtcclxuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XHJcblxyXG4gICAgZmxleDogMCAwICRwY3Q7XHJcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBncmlkIGNvbHVtbi4gQ29sdW1ucyB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cclxuQG1peGluIGZsZXgtZ3JpZC1vcmRlcigkb3JkZXI6IDApIHtcclxuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmbGV4LW9yZGVyKCkuIGZsZXgtZ3JpZC1vcmRlcigpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuMy4nO1xyXG4gIEBpbmNsdWRlIGZsZXgtb3JkZXIoJG9yZGVyKTtcclxufVxyXG5cclxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgY29sdW1ucyB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxyXG5AbWl4aW4gZmxleC1ncmlkLXJvdy1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcclxuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmbGV4LWFsaWduKCkuIGZsZXgtZ3JpZC1yb3ctYWxpZ24oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcclxuICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4LCAkeSk7XHJcbn1cclxuXHJcbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oJHk6IG51bGwpIHtcclxuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmbGV4LWFsaWduLXNlbGYoKS4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuMy4nO1xyXG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeSk7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XHJcbiAgLy8gUm93XHJcbiAgLnJvdyB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xyXG5cclxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcclxuICAgICYgJiB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFeHBhbmRlZCByb3dcclxuICAgICYuZXhwYW5kZWQge1xyXG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jb2xsYXBzZSB7XHJcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDb2x1bW5cclxuICAuY29sdW1uIHtcclxuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XHJcbiAgfVxyXG5cclxuICAvLyBDb2x1bW4gcm93XHJcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxyXG4gIC5jb2x1bW4ucm93LnJvdyB7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuXHJcbiAgICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcclxuICAgIC5yb3cgJiB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xyXG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xyXG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGkpO1xyXG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBPZmZzZXRzXHJcbiAgICAgICRvOiAkaSAtIDE7XHJcblxyXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcclxuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQmxvY2sgZ3JpZFxyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xyXG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcclxuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgJC16Zi1zaXplICE9IHNtYWxsIHtcclxuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XHJcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xyXG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQXV0by1zdGFja2luZy91bnN0YWNraW5nXHJcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xyXG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xyXG4gICAgICAgICAgLmNvbHVtbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSk7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xyXG4gICAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcclxuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xyXG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxyXG4gICAgfVxyXG5cclxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XHJcbiAgICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRncmlkLWNvbHVtbi1ndXR0ZXIsICQtemYtc2l6ZSk7XHJcblxyXG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXIpOyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAvLyBTaXppbmcgKHNocmluaylcclxuICAvLyAuc2hyaW5rIHtcclxuICAvLyAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcclxuICAvLyAgIG1heC13aWR0aDogMTAwJTtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcclxuICAvLyAvLyBSZW1vdmUgdGhlc2UgaW4gNi4zXHJcbiAgLy8gQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XHJcbiAgLy8gICAuY29sdW1uLmFsaWduLSN7JHZkaXJ9IHtcclxuICAvLyAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR2ZGlyKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyAuY29sdW1ucyB7XHJcbiAgLy8gICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQbGFjZWhvbGRlckluRXh0ZW5kXHJcbiAgLy8gICBAZXh0ZW5kIC5jb2x1bW47XHJcbiAgLy8gfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xyXG4gIHBhZGRpbmctbGVmdDogMDtcclxuICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XHJcbiAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xyXG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcclxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxyXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcclxuLy8vL1xyXG5cclxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcclxuXHJcbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXHJcbi8vLyBAdHlwZSBNYXBcclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgc21hbGw6IDAsXHJcbiAgbWVkaXVtOiA2NDBweCxcclxuICBsYXJnZTogMTAyNHB4LFxyXG4gIHhsYXJnZTogMTIwMHB4LFxyXG4gIHh4bGFyZ2U6IDE0NDBweCxcclxuKSAhZGVmYXVsdDtcclxuXHJcbkBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkgb3Igbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XHJcbiAgQGVycm9yICdZb3VyIGxpc3Qgb2YgYnJlYWtwb2ludHMgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGluY2x1ZGUgb25lIG5hbWVkIFwic21hbGxcIiBhbmQgb25lIG5hbWVkIFwibWVkaXVtXCIuJztcclxufVxyXG5AZWxzZSBpZiBtYXAtZ2V0KCRicmVha3BvaW50cywgc21hbGwpICE9IDAge1xyXG4gIEBlcnJvciAnWW91ciBcInNtYWxsXCIgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XHJcbn1cclxuXHJcbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXHJcbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6IHNtYWxsKSB7XHJcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXHJcbiAgJGJwOiBudGgoJHZhbCwgMSk7XHJcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXHJcbiAgJGJwLW1heDogMDtcclxuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxyXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xyXG4gIC8vIEV2ZW50dWFsIG91dHB1dFxyXG4gICRzdHI6ICcnO1xyXG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XHJcbiAgJG5hbWVkOiBmYWxzZTtcclxuXHJcbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxyXG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xyXG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcclxuICB9XHJcbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcclxuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xyXG4gIH1cclxuXHJcbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxyXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XHJcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XHJcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcclxuICAgICAgJG5hbWVkOiB0cnVlO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkYnA6IDA7XHJcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXHJcbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcclxuICBAaWYgJGJwLW1heCB7XHJcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XHJcbiAgfVxyXG5cclxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cclxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxyXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXHJcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XHJcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXHJcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xyXG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcclxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcclxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxyXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcclxuXHJcbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xyXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XHJcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xyXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcclxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcclxuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xyXG5cclxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXHJcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcclxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xyXG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxyXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcclxuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHN0cjtcclxufVxyXG5cclxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcclxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxyXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXHJcbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cclxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXHJcbi8vL1xyXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXHJcbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xyXG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcclxuXHJcbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxyXG4gIEBpZiAkc3RyID09ICcnIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcclxuICBAZWxzZSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxyXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XHJcbiAgJHN0cjogJyc7XHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xyXG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcclxuICB9XHJcbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcclxuXHJcbiAgQHJldHVybiAkc3RyO1xyXG59XHJcblxyXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cclxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cclxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XHJcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXHJcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcclxuXHJcbiAgLy8gR2hldHRvIGZvciBsb29wXHJcbiAgJGk6IDE7XHJcbiAgJGZvdW5kOiBmYWxzZTtcclxuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcclxuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xyXG4gICAgICBAaWYgKCRrZXkgPT0gJHZhbCkge1xyXG4gICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAkaTogJGkgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxyXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XHJcbiAgICBAcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsICRpKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAuIElmIHRoZSBjb25maWcgbWFwIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC4gSWYgdGhlIGNvbmZpZyBtYXAgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIElucHV0IGNvbmZpZyBtYXAuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXHJcbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcclxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxyXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgIEByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcclxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcclxuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcclxuICBAZWxzZSB7XHJcbiAgICAkYW5jaG9yOiBudWxsO1xyXG4gICAgJGZvdW5kOiBmYWxzZTtcclxuXHJcbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XHJcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcclxuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xyXG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcclxuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBMZWdhY3kgYnJlYWtwb2ludCB2YXJpYWJsZXNcclxuLy8gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGluIDYuM1xyXG4kc21hbGwtdXA6IG51bGw7XHJcbiRzbWFsbC1vbmx5OiBudWxsO1xyXG4kbWVkaXVtLXVwOiBudWxsO1xyXG4kbWVkaXVtLW9ubHk6IG51bGw7XHJcbiRsYXJnZS11cDogbnVsbDtcclxuJGxhcmdlLW9ubHk6IG51bGw7XHJcbiR4bGFyZ2UtdXA6IG51bGw7XHJcbiR4bGFyZ2Utb25seTogbnVsbDtcclxuJHh4bGFyZ2UtdXA6IG51bGw7XHJcbiR4eGxhcmdlLW9ubHk6IG51bGw7XHJcblxyXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xyXG4gICRzbWFsbC11cDogc2NyZWVuO1xyXG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XHJcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcclxuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcclxuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcclxuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xyXG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XHJcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcclxuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XHJcbn1cclxuXHJcbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cclxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XHJcbiAgJG1hcDogJGJyZWFrcG9pbnQtY2xhc3NlcztcclxuXHJcbiAgQGlmIG5vdCAkc21hbGwge1xyXG4gICAgJG1hcDogbWFwLXJlbW92ZSgkbWFwLCBzbWFsbCk7XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkc2l6ZSBpbiAkbWFwIHtcclxuICAgICQtemYtc2l6ZTogJHNpemUgIWdsb2JhbDtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xyXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcclxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxyXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXHJcbi8vLyAgIC0gQSBzdHJpbmcgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxyXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcclxuICAkd2lkdGg6IDAlO1xyXG5cclxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcclxuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xyXG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XHJcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xyXG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXHJcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcclxuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xyXG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcclxuICBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR3aWR0aDtcclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xyXG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XHJcblxyXG4gIC8vIEd1dHRlcnNcclxuICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XHJcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xyXG4gICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XHJcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XHJcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcclxuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXHJcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICBAaW5jbHVkZSBncmlkLXJvdztcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyOiAkZ3V0dGVyKTtcclxuXHJcbiAgJixcclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cclxuQGZ1bmN0aW9uIGdyaWQtY29sKFxyXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcclxuKSB7XHJcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxyXG5AbWl4aW4gZ3JpZC1jb2woXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcclxuQG1peGluIGdyaWQtY29sLXJvdyhcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVyKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cclxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xyXG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xyXG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xyXG5cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XHJcbiAgcG9zaXRpb246IHN0YXRpYztcclxuICBtYXJnaW4tbGVmdDogMDtcclxuICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXHJcbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XHJcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xyXG59XHJcblxyXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xyXG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXHJcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xyXG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxyXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cclxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxyXG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcclxuQG1peGluIGdyaWQtY29sLWVuZCB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xyXG59XHJcbiIsIiQtemYtZmxleC1qdXN0aWZ5OiAoXHJcbiAgJ2xlZnQnOiBmbGV4LXN0YXJ0LFxyXG4gICdyaWdodCc6IGZsZXgtZW5kLFxyXG4gICdjZW50ZXInOiBjZW50ZXIsXHJcbiAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxyXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXHJcbik7XHJcblxyXG4kLXpmLWZsZXgtYWxpZ246IChcclxuICAndG9wJzogZmxleC1zdGFydCxcclxuICAnYm90dG9tJzogZmxleC1lbmQsXHJcbiAgJ21pZGRsZSc6IGNlbnRlcixcclxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXHJcbik7XHJcblxyXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXHJcbkBtaXhpbiBmbGV4IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XHJcbiAgQGlmICR4IHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcclxuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLidcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkeSB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xyXG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAganVzdGlmeS1jb250ZW50OiAkeDtcclxuICBhbGlnbi1pdGVtczogJHk7XHJcbn1cclxuXHJcbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xyXG4gIEBpZiAkeSB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xyXG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxpZ24tc2VsZjogJHk7XHJcbn1cclxuXHJcbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cclxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XHJcbiAgb3JkZXI6ICRvcmRlcjtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxyXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXHJcbiAgJG4sXHJcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcclxuKSB7XHJcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XHJcbiAgICB3aWR0aDogcGVyY2VudGFnZSgxLyRuKTtcclxuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XHJcblxyXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xyXG4gICAgICBjbGVhcjogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1vZi10eXBlKCN7JG59bisxKSB7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxyXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcclxuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XHJcbiAgICBAaWYgJGkgPT0gMSB7XHJcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIkZ2xvYmFsLXdpZHRoOiAxMDAlO1xyXG4kZ2xvYmFsLWxlZnQ6IGxlZnQ7XHJcbiRnbG9iYWwtcmlnaHQ6IHJpZ2h0O1xyXG5cclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xyXG5cclxuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XHJcblxyXG4kYmxvY2stZ3JpZC1tYXg6IDg7XHJcblxyXG4kLXpmLWVuZC1mbG9hdDogbGVmdDtcclxuIiwiLyoqXHJcbiAqIEJvZHlcclxuICovXHJcbmJvZHkge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZWRpdW0pIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmctYm9keTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkYmctYm9keS1tb2JpbGU7XHJcbiAgICAvL292ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXJcclxuICovXHJcbi53cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWVkaXVtKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCByZW0oNjApO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYigyNTEsIDI1MiwgMjUzKSAwJSwgcmdiKDI1MSwgMjUyLCAyNTMpIDExJSwgcmdiKDIyMSwgMjI2LCAyMzkpIDM0JSwgcmdiKDIyMSwgMjI2LCAyMzkpIDQ5JSwgcmdiKDI1MSwgMjUyLCAyNTMpIDk2JSwgcmdiKDI1MSwgMjUyLCAyNTMpIDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIHJlbSg3MTApO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53cmFwcGVyLWlubmVyIHtcclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oc21hbGwpIHtcclxuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhsYXJnZSkge1xyXG4gICAgICAgIC50YWtlb3ZlciAmIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTYwKTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE2MCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oeGxhcmdlKSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTIwKTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTIwKTtcclxuICAgIH1cclxuXHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyXHJcbiAqL1xyXG4uY29udGFpbmVyIHtcclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obGFyZ2UpIHtcclxuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgbWF4LXdpZHRoOiAkZ2xvYmFsLW1heC13aWR0aDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4vKipcclxuICogUm93c1xyXG4gKi9cclxuLnJvdyB7XHJcbiAgICAmLmNvbGxhcHNlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogSW5uZXIgZWxlbWVudHMgKE1haW4sIEFzaWRlKVxyXG4gKi9cclxuLm1haW4sXHJcbi5hc2lkZSB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5tYWluIHtcclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obGFyZ2UpIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skc2lkZWJhci13aWR0aH0gLSAjeyRzaWRlYmFyLWd1dHRlcn0pO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQXNpZGVcclxuICovXHJcbi5hc2lkZSB7XHJcbiAgICA+IC5yb3cge1xyXG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obGFyZ2UpIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogcmVtKCRzaWRlYmFyLWd1dHRlcik7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzMCk7XHJcbiAgICAgICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoO1xyXG5cclxuICAgICAgICA+IC5yb3cge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYXNpZGVfX2l0ZW0ge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhzbWFsbCkge1xyXG4gICAgICAgICYtLW1pbmlUVixcclxuICAgICAgICAmLS1taW5pRm9vdCxcclxuICAgICAgICAmLS1jb250ZXN0LFxyXG4gICAgICAgICYtLWVTZXJ2aWNlcyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWVkaXVtKSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTIpO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMik7XHJcbiAgICAgICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgJi0tbWluaVRWLFxyXG4gICAgICAgICYtLW1pbmlGb290LFxyXG4gICAgICAgICYtLWNvbnRlc3QsXHJcbiAgICAgICAgJi0tZVNlcnZpY2VzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1taW5pVFYgICAge1xyXG4gICAgICAgICAgICBvcmRlcjogMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLW1pbmlGb290ICB7XHJcbiAgICAgICAgICAgIG9yZGVyOiAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0tY29udGVzdCAgIHtcclxuICAgICAgICAgICAgb3JkZXI6IDM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1lU2VydmljZXMge1xyXG4gICAgICAgICAgICBvcmRlcjogNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLWltdSAgICAgICB7XHJcbiAgICAgICAgICAgIG9yZGVyOiA1O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0taW11VGVsY28gIHtcclxuICAgICAgICAgICAgb3JkZXI6IDY7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obGFyZ2UpIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAmLS1jb250ZXN0ICAgeyBvcmRlcjogMTsgfVxyXG4gICAgICAgICYtLW1pbmlUViAgICB7IG9yZGVyOiAyOyB9XHJcbiAgICAgICAgJi0taW11ICAgICAgIHsgb3JkZXI6IDM7IH1cclxuICAgICAgICAmLS1taW5pRm9vdCAgeyBvcmRlcjogNDsgfVxyXG4gICAgICAgICYtLWltdVRlbGNvICB7IG9yZGVyOiA1OyB9XHJcbiAgICAgICAgJi0tZVNlcnZpY2VzIHsgb3JkZXI6IDY7IH1cclxuICAgICAgICAmLS10b3B1cCAgICAgeyBvcmRlcjogNzsgfVxyXG4gICAgfVxyXG5cclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuIiwiLy8gLS0tLS0tLS0tXHJcbi8vXHJcbi8vIFRhYmxlIG9mIENvbnRlbnRzOlxyXG4vL1xyXG4vLyAxLiBHbG9iYWxcclxuLy8gMi4gQnJlYWtwb2ludHNcclxuLy8gMy4gR3JpZFxyXG4vLyA0LiBDb2xvcnNcclxuLy8gNS4gVHlwb2dyYXBoeVxyXG4vLyA2LiBaLWluZGV4ZXNcclxuLy8gNy4gTGF5b3V0XHJcbi8vIDguIEhlYWRlclxyXG4vLyA5LiBNYW5jaGV0dGVcclxuLy8gMTAuIERvc3NpZXJcclxuXHJcbi8vIDEuIEdsb2JhbFxyXG4vLyAtLS0tLS0tLS1cclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XHJcbiRnbG9iYWwtZm9udC1uYW1lOiAncHJveGltdXMnO1xyXG4kZ2xvYmFsLW1heC13aWR0aDogMTQ0MHB4O1xyXG4kZ2xvYmFsLXRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xyXG4kZ2xvYmFsLXRyYW5zaXRpb246IDMwMG1zIGVhc2Utb3V0O1xyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNjtcclxuXHJcbi8vIDIuIEJyZWFrcG9pbnRzXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcbiRicmVha3BvaW50czogKFxyXG4gICAgc21hbGw6ICAgIDAsXHJcbiAgICBzbWVkaXVtOiAgNDgwcHgsXHJcbiAgICBtZWRpdW06ICAgNjQwcHgsXHJcbiAgICBsYXJnZTogICAgMTAyNHB4LFxyXG4gICAgeGxhcmdlOiAgIDEzNTBweCxcclxuKTtcclxuXHJcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBzbWVkaXVtIG1lZGl1bSBsYXJnZSB4bGFyZ2UpO1xyXG5cclxuLy8gMy4gR3JpZFxyXG4vLyAtLS0tLS0tLVxyXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXHJcbiAgICBzbWFsbDogICAxNHB4LFxyXG4gICAgbWVkaXVtOiAgMjRweCxcclxuKTtcclxuXHJcbi8vIDQuIENvbG9yc1xyXG4vLyAtLS0tLS0tLS1cclxuLy8gYmFzZVxyXG4kY29sb3Itd2hpdGU6ICAgICAgICAgICAjZmZmO1xyXG4kY29sb3ItYmxhY2s6ICAgICAgICAgICAjMDAwO1xyXG4kY29sb3ItcHVycGxlOiAgICAgICAgICAjNUMyRDkxO1xyXG4kY29sb3ItcHVycGxlLW1lZGl1bTogICAjMzcyMDVkO1xyXG4kY29sb3ItcHVycGxlLWRhcms6ICAgICAjMjAxMTRjO1xyXG4kY29sb3ItYmx1ZS1saWdodDogICAgICAjMDBiY2VlO1xyXG4kY29sb3ItYmx1ZS1saWdodGVyOiAgICAjNWIyYzkxO1xyXG4kY29sb3ItYmx1ZS1kYXJrOiAgICAgICAjMjQyYjQ2O1xyXG4vLyBzZWN0aW9uc1xyXG4kY29sb3ItcHJveGltdXMxMTogICAgICAjMWIwZDJiO1xyXG4kY29sb3ItcHJveGltdXMxMS1oaWdobGlnaHQ6ICM0ZjdlYmQ7XHJcbiRjb2xvci1wcm94aW11c3R2OiAgICAgICMwMDAwMjU7XHJcbiRjb2xvci1tdXNpYzogICAgICAgICAgICMyMDExNGM7XHJcbiRjb2xvci1tdXNpYy1oaWdobGlnaHQ6ICNlYjJkNWU7XHJcbi8vIGdyZXlcclxuJGNvbG9yLWdyZXk6ICAgICAgICAgICAgIzY2N2Q5NCAhZGVmYXVsdDtcclxuJGNvbG9yLWdyZXktbGlnaHQ6ICAgICAgI2VjZWZmNjtcclxuJGNvbG9yLWdyZXktZGFyazogICAgICAgIzNkM2QzZDtcclxuJGNvbG9yLWdyZXktbWVkaXVtOiAgICAgI2M4Y2NlMjtcclxuLy8gY2F0ZWdvcmllc1xyXG4kY2F0ZWdvcnktbmV3czogICAgICAgICAjMDBiY2VlO1xyXG4kY2F0ZWdvcnktbXVzaWM6ICAgICAgICAjZWIyZDVlO1xyXG4kY2F0ZWdvcnktdHY6ICAgICAgICAgICAjYTQ4OWMxO1xyXG4kY2F0ZWdvcnktZm9vdGJhbGw6ICAgICAjM2M3MGI2O1xyXG4vLyBiYWNrZ3JvdW5kXHJcbiRiZy1ib2R5OiAgICAgICAgICAgICAgICNmYmZjZmQ7XHJcbiRiZy1ib2R5LW1vYmlsZTogICAgICAgICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4vLyB0ZXh0XHJcbiRjb2xvci1wYXJhZ3JhcGg6ICAgICAgICM0ZjU1NmIgIWRlZmF1bHQ7XHJcbiRjb2xvci1oZWFkaW5nOiAgICAgICAgICRjb2xvci1ncmV5LWRhcmsgIWRlZmF1bHQ7XHJcbiRjb2xvci1hbmNob3I6ICAgICAgICAgICRjb2xvci1ibHVlLWxpZ2h0O1xyXG5cclxuLy8gNS4gVHlwb2dyYXBoeVxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbi8vIGZvbnRzXHJcbiRmb250LWZhbWlseS1yZWd1bGFyOiAkZ2xvYmFsLWZvbnQtbmFtZTtcclxuJGZvbnQtaW1wb3J0czogKFxyXG4gICAgKCdwcm94aW11cy9wcm94aW11cy1yZWd1bGFyJywgbm9ybWFsLCBub3JtYWwpLFxyXG4gICAgKCdwcm94aW11cy9wcm94aW11cy1saWdodCcsIGxpZ2h0LCBub3JtYWwpLFxyXG4gICAgKCdwcm94aW11cy9wcm94aW11cy1ib2xkJywgYm9sZCwgbm9ybWFsKSxcclxuICAgICgncHJveGltdXMvcHJveGltdXMtcmVndWxhci1pdGFsaWMnLCBub3JtYWwsIGl0YWxpYyksXHJcbiAgICAoJ3Byb3hpbXVzL3Byb3hpbXVzLWxpZ2h0LWl0YWxpYycsIGxpZ2h0LCBpdGFsaWMpLFxyXG4gICAgKCdwcm94aW11cy9wcm94aW11cy1ib2xkLWl0YWxpYycsIGJvbGQsIGl0YWxpYyksXHJcbik7XHJcblxyXG4vLyBTaXplc1xyXG4kZm9udC1zaXplLWgxOiAoXHJcbiAgICBzbWFsbDogICAgcmVtKDI0KSxcclxuICAgIG1lZGl1bTogICByZW0oMzApLFxyXG4gICAgbGFyZ2U6ICByZW0oNDApLFxyXG4gICAgeGxhcmdlOiAgcmVtKDQwKSxcclxuKTtcclxuXHJcbiRmb250LXNpemUtaDI6IChcclxuICAgIHNtYWxsOiAgICByZW0oMjApLFxyXG4gICAgbWVkaXVtOiAgIHJlbSgyNCksXHJcbiAgICBsYXJnZTogIHJlbSgyOCksXHJcbiAgICB4bGFyZ2U6ICByZW0oMjgpLFxyXG4pO1xyXG5cclxuJGZvbnQtc2l6ZS1oMzogKFxyXG4gICAgc21hbGw6ICAgIHJlbSgyMCksXHJcbiAgICBtZWRpdW06ICAgcmVtKDI0KSxcclxuICAgIGxhcmdlOiAgcmVtKDI0KSxcclxuICAgIHhsYXJnZTogIHJlbSgyOCksXHJcbik7XHJcblxyXG4kZm9udC1zaXplLXA6IChcclxuICAgIHNtYWxsOiAgICByZW0oMTQpLFxyXG4pO1xyXG5cclxuJGZvbnQtc2l6ZS1zbWFsbDogODAlO1xyXG5cclxuJGxpbmVoZWlnaHQtaGVhZGluZzogICAgICAgIDEuNDtcclxuJGxpbmVoZWlnaHQtcGFyYWdyYXBoOiAgICAgIDEuNjtcclxuXHJcbi8vIDYuIFotaW5kZXhlc1xyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbiR6LWhlYWRlcjogICAgICAgICAgICAgIDEwMDAwO1xyXG4kei1oZWFkZXItd2lkZ2V0OiAgICAgICAkei1oZWFkZXIgKyAyMDtcclxuJHotaGVhZGVyLXNlY29uZC1sZXZlbDogJHotaGVhZGVyICsgNTA7XHJcbiR6LWhlYWRlci1tb2JpbGUtbWVudTogICR6LWhlYWRlciArIDEwMDtcclxuJHotaGVhZGVyLWZpcnN0LWxldmVsOiAgJHotaGVhZGVyICsgMTUwO1xyXG4kei1oZWFkZXItZHJvcGRvd246ICAgICAkei1oZWFkZXIgKyAyMDA7XHJcblxyXG4vLyA3LiBMYXlvdXRcclxuLy8gLS0tLS0tLS0tXHJcbiRzaWRlYmFyLXdpZHRoOiAzMjBweDtcclxuJHNpZGViYXItZ3V0dGVyOiA0MHB4O1xyXG5cclxuLy8gOC4gSGVhZGVyXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuJGhlYWRlci1maXJzdC1sZXZlbC1oZWlnaHQ6ICAgICAgNjBweDtcclxuJGhlYWRlci1zZWNvbmQtbGV2ZWwtaGVpZ2h0OiAgICAgNDRweDtcclxuJGhlYWRlci1sb2dvLWhlaWdodDogICAgICAgICAgICAgMTA0cHg7XHJcbiRoZWFkZXItbG9nby13aWR0aDogICAgICAgICAgICAgIDE1NXB4O1xyXG4kaGVhZGVyLWxvZ28taG9yaXpvbnRhbC1oZWlnaHQ6ICAzMXB4O1xyXG4kaGVhZGVyLXNlYXJjaC1oZWlnaHQ6ICAgICAgICAgICAzNHB4O1xyXG4kaGVhZGVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAxNHB4O1xyXG5cclxuLy8gOS4gTWFuY2hldHRlXHJcbi8vIC0tLS0tLS0tLS0tLVxyXG4kbWFuY2hldHRlLWJhY2tncm91bmQ6ICByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7XHJcbiRtYW5jaGV0dGUtaGVpZ2h0OiAgICAgIDEyMHB4O1xyXG4kbWFuY2hldHRlLWltYWdlLXdpZHRoOiAxNjBweDtcclxuJG1hbmNoZXR0ZS1pdGVtLW1hcmdpbjogN3B4O1xyXG4kbWFuY2hldHRlLWl0ZW0td2lkdGg6ICA0MDBweDtcclxuJG1hbmNoZXR0ZS1uYXYtd2lkdGg6ICAgMzBweDtcclxuXHJcbi8vIDEwLiBEb3NzaWVyXHJcbi8vIC0tLS0tLS0tLS0tLVxyXG4kZG9zc2llci1uYXYtd2lkdGg6ICAgJG1hbmNoZXR0ZS1uYXYtd2lkdGg7XHJcbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcclxufVxyXG5cclxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXHJcbkBmdW5jdGlvbiByZW0oJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcclxuICAkcmVtLXZhbHVlczogKCk7XHJcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XHJcblxyXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcclxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XHJcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XHJcbiAgfVxyXG5cclxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcclxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXHJcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XHJcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xyXG4gIH1cclxuXHJcbiAgQGlmICRjb3VudCA9PSAxIHtcclxuICAgIEByZXR1cm4gX190by1yZW0oJHZhbHVlcywgJGJhc2UpO1xyXG4gIH1cclxuXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xyXG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgX190by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XHJcbn1cclxuXHJcbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxyXG5AZnVuY3Rpb24gX190by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xyXG5cclxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxyXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xyXG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XHJcbiAgfVxyXG5cclxuICAvLyBUdXJuIDByZW0gaW50byAwXHJcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcclxuICAgICR2YWx1ZTogMDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCIvKipcclxuICogU2NhZmZvbGRpbmdcclxuICovXHJcbmJvZHkge1xyXG4gICAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmcob24pO1xyXG4gICAgY29sb3I6ICRjb2xvci1wYXJhZ3JhcGg7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXJlZ3VsYXI7XHJcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxufVxyXG5cclxuZGwsXHJcbmR0LFxyXG5kZCxcclxudWwsXHJcbm9sLFxyXG5saSxcclxuaDEsXHJcbmgyLFxyXG5oMyxcclxuaDQsXHJcbmg1LFxyXG5oNixcclxucHJlLFxyXG5wLFxyXG5ibG9ja3F1b3RlLFxyXG50aCxcclxudGQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEhlYWRpbmdzXHJcbiAqL1xyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICAgIGNvbG9yOiAkY29sb3ItaGVhZGluZztcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZWhlaWdodC1oZWFkaW5nO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuaDEge1xyXG4gICAgQGluY2x1ZGUgZm9udC1zaXplcygkZm9udC1zaXplLWgxKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xyXG59XHJcblxyXG5oMiB7XHJcbiAgICBAaW5jbHVkZSBmb250LXNpemVzKCRmb250LXNpemUtaDIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG59XHJcblxyXG5oMyB7XHJcbiAgICBAaW5jbHVkZSBmb250LXNpemVzKCRmb250LXNpemUtaDMpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG59XHJcblxyXG4vKipcclxuICogUGFyYWdyYXBoc1xyXG4gKi9cclxucCB7XHJcbiAgICBAaW5jbHVkZSBmb250LXNpemVzKCRmb250LXNpemUtcCk7XHJcbiAgICBsaW5lLWhlaWdodDogJGxpbmVoZWlnaHQtcGFyYWdyYXBoO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLyoqXHJcbiAqIElubGluZSBlbGVtZW50c1xyXG4gKi9cclxuZW0sXHJcbmkge1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbnN0cm9uZyxcclxuYiB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG59XHJcblxyXG5zbWFsbCB7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuY2hvcnNcclxuICovXHJcbmEge1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgIH1cclxufVxyXG4iLCJAbWl4aW4gZm9udC1zbW9vdGhpbmcoJHZhbHVlOiBvbikge1xuICAgIEBpZiAkdmFsdWUgPT0gb24ge1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogYXV0bztcbiAgICB9XG59IiwiLyoqXHJcbiAqIE93bFxyXG4gKi9cclxuLm93bC1sb2FkZWQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLm93bC1zdGFnZSB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxufVxyXG5cclxuLm93bC1pdGVtIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5vd2wtbmF2IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgIC5vd2wtcHJldiB7XHJcbiAgICAgICAgQGluY2x1ZGUgYXJyb3ctY2Fyb3VzZWwoJGRpcmVjdGlvbjogbGVmdCk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItcHVycGxlO1xyXG4gICAgICAgIHRvcDogNDBweDtcclxuICAgIH1cclxuXHJcbiAgICAub3dsLW5leHQge1xyXG4gICAgICAgIEBpbmNsdWRlIGFycm93LWNhcm91c2VsKCRkaXJlY3Rpb246IHJpZ2h0KTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1wdXJwbGU7XHJcbiAgICAgICAgdG9wOiA0MHB4O1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAuZGlzYWJsZWQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBcnRpY2xlIGl0ZW1cclxuICovXHJcbi5hcnRpY2xlX19pdGVtIHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCMzNzE5NTQsIDAuOCk7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XHJcbiAgICBtaW4taGVpZ2h0OiByZW0oODApO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICY6aG92ZXIgLmFydGljbGVfX2l0ZW1fX3RpdGxlIHtcclxuICAgICAgICBAaW5jbHVkZSBsaW5rLWhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2ltYWdlIHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB3aWR0aDogcmVtKDg1KTtcclxuICAgIH1cclxuXHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1ibHVlLWRhcms7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2ltYWdlICsgLmFydGljbGVfX2l0ZW1fX3RpdGxlIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmVhdHVyZWRcclxuICAgICAqL1xyXG4gICAgJi0tZmVhdHVyZWQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNjN2NjZTI7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCA0MCUsIHJnYmEoMCwgMCwgMCwgMC44KSAxMDAlKTtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgei1pbmRleDogMjA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYXJ0aWNsZV9faXRlbV9faW1hZ2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwicHJveGltdXNcIjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE0KTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgei1pbmRleDogMjU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBpbWdcclxuICovXHJcbi5pY29uLS1kZWZhdWx0LWJnIHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgY29udGVudDogJ1xcZTk1Yic7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdza3luZXQtaWNvbnMnO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDkwKTtcclxuICAgICAgICBsZWZ0OiAzNSU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMjAlO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkZ2xvYmFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1vdXQ7XHJcbiAgICB9XHJcbn1cclxuIiwiYm9keSB7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xyXG59XHJcbi8qKlxyXG4gKiBSZW1vdmVzIGVtcHR5IHNwYWNlIGJldHdlZW4gdGhlIG1lbnUgYW5kIGNvbnRlbnQgb24gU2t5bmV0IEhQIFxyXG4gKi9cclxuLmFkb3BzLXNwbGFzaCxcclxuLmFkb3BzLS1vdXQtb2YtcGFnZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbn1cclxuIFxyXG4vKipcclxuICogVG9wIExlYWRlcmJvYXJkIFxyXG4gKi9cclxuLnRvcExlYWRlckJvYXJkLFxyXG4uYm90dG9tTGVhZGVyQm9hcmQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnRvcExlYWRlckJvYXJkIHtcclxuICAgIG1hcmdpbjogMCBhdXRvOyBcclxuXHJcbiAgICA+IGRpdiB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgZGl2IHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIHRhYmxlIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYm90dG9tTGVhZGVyQm9hcmQge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxufVxyXG5cclxuW2NsYXNzJD0nX2FkX2NvbnRhaW5lciddIHtcclxuICAgID4gZGl2IHtcclxuICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFRlbGNvXHJcbiAqL1xyXG4ud3JhcHBlci10ZWxjbyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjYzhjY2UyO1xyXG5cclxuICAgIC5ib3R0b21MZWFkZXJCb2FyZCA+IGRpdiB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSg1MCk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg3MCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaWRlYmFyXHJcbiAqL1xyXG4uaW11LnB1YiB7XHJcblxyXG4gICAgPiBkaXYge1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIHJlbSg0NSkgMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICA+IGEge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKHNtYWxsKSB7XHJcbiAgICAgICAgaW5zIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZnJhbWUge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0NSkgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZWRpdW0pIHtcclxuICAgICAgICBpbnMge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmcmFtZSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi5iYWNrLXRvLXRvcCB7XHJcbiAgICBib3R0b206IHJlbSgxMDApO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgei1pbmRleDogNTAwMDtcclxuXHJcbiAgICBhIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDkyLDQ1LDE0NSwgMC41KTtcclxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiByZW0oNik7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDEwIDIwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcclxuXHJcbiAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtbGlnaHQ7XHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjUpO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3RleHQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDMpO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vIC0tLS0tLS0tLVxyXG4vL1xyXG4vLyBUYWJsZSBvZiBDb250ZW50czpcclxuLy9cclxuLy8gMS4gR2xvYmFsXHJcbi8vIDIuIEJyZWFrcG9pbnRzXHJcbi8vIDMuIEdyaWRcclxuLy8gNC4gQ29sb3JzXHJcbi8vIDUuIFR5cG9ncmFwaHlcclxuLy8gNi4gWi1pbmRleGVzXHJcbi8vIDcuIExheW91dFxyXG4vLyA4LiBIZWFkZXJcclxuLy8gOS4gTWFuY2hldHRlXHJcblxyXG4vLyAxLiBHbG9iYWxcclxuLy8gLS0tLS0tLS0tXHJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xyXG4kZ2xvYmFsLWZvbnQtbmFtZTogJ3Byb3hpbXVzJztcclxuJGdsb2JhbC1tYXgtd2lkdGg6IDE0NDBweDtcclxuJGdsb2JhbC10cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcclxuJGdsb2JhbC10cmFuc2l0aW9uOiAzMDBtcyBlYXNlLW91dDtcclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjY7XHJcblxyXG4vLyAyLiBCcmVha3BvaW50c1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG4kYnJlYWtwb2ludHM6IChcclxuICAgIHNtYWxsOiAgICAwLFxyXG4gICAgc21lZGl1bTogIDQ4MHB4LFxyXG4gICAgbWVkaXVtOiAgIDY0MHB4LFxyXG4gICAgbGFyZ2U6ICAgIDEwMjRweCxcclxuICAgIHhsYXJnZTogICAxMzUwcHgsXHJcbik7XHJcblxyXG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgc21lZGl1bSBtZWRpdW0gbGFyZ2UgeGxhcmdlKTtcclxuXHJcbi8vIDMuIEdyaWRcclxuLy8gLS0tLS0tLS1cclxuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxyXG4gICAgc21hbGw6ICAgMTRweCxcclxuICAgIG1lZGl1bTogIDI0cHgsXHJcbik7XHJcblxyXG4vLyA0LiBDb2xvcnNcclxuLy8gLS0tLS0tLS0tXHJcbi8vIGJhc2VcclxuJGNvbG9yLXdoaXRlOiAgICAgICAgICAgI2ZmZjtcclxuJGNvbG9yLWJsYWNrOiAgICAgICAgICAgIzAwMDtcclxuJGNvbG9yLWJsdWU6ICAgICAgICAgICAgIzIyMWU0MztcclxuJGNvbG9yLXB1cnBsZTogICAgICAgICAgIzVjMmQ5MTtcclxuJGNvbG9yLXB1cnBsZS1tZWRpdW06ICAgIzM3MjA1ZDtcclxuJGNvbG9yLXB1cnBsZS1kYXJrOiAgICAgIzIwMTE0YztcclxuJGNvbG9yLWJsdWUtbGlnaHQ6ICAgICAgIzAwYmNlZTtcclxuJGNvbG9yLWJsdWUtZGFyazogICAgICAgIzI0MmI0NjtcclxuJGNvbG9yLWJsdWUtZGFya2VyOiAgICAgIzI4MzQ1MTtcclxuLy8gZ3JleVxyXG4kY29sb3ItZ3JleTogICAgICAgICAgICAjNjY3ZDk0O1xyXG4kY29sb3ItZ3JleS1saWdodGVyOiAgICAjYzdjY2UxO1xyXG4kY29sb3ItZ3JleS1saWdodDogICAgICAjZWNlZmY2O1xyXG4kY29sb3ItZ3JleS1kYXJrOiAgICAgICAjM2QzZDNkO1xyXG4kY29sb3ItZ3JleS1tZWRpdW06ICAgICAjYzhjY2UyO1xyXG4vLyBjYXRlZ29yaWVzXHJcbiRjYXRlZ29yeS1uZXdzOiAgICAgICAgICMwMGJjZWU7XHJcbiRjYXRlZ29yeS1tdXNpYzogICAgICAgICNlYjJkNWU7XHJcbiRjYXRlZ29yeS10djogICAgICAgICAgICNhNDg5YzE7XHJcbiRjYXRlZ29yeS1mb290YmFsbDogICAgICMzYzcwYjY7XHJcbi8vIGJhY2tncm91bmRcclxuJGJnLWJvZHk6ICAgICAgICAgICAgICAgI2ZiZmNmZDtcclxuJGJnLWJvZHktbW9iaWxlOiAgICAgICAgJGNvbG9yLWdyZXktbGlnaHQ7XHJcbi8vIHRleHRcclxuJGNvbG9yLXBhcmFncmFwaDogICAgICAgIzRmNTU2YjtcclxuJGNvbG9yLWhlYWRpbmc6ICAgICAgICAgJGNvbG9yLWdyZXktZGFyaztcclxuJGNvbG9yLWFuY2hvcjogICAgICAgICAgJGNvbG9yLWJsdWUtbGlnaHQ7XHJcblxyXG4vLyA1LiBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuLy8gZm9udHNcclxuJGZvbnQtZmFtaWx5LXJlZ3VsYXI6ICRnbG9iYWwtZm9udC1uYW1lO1xyXG4kZm9udC1pbXBvcnRzOiAoXHJcbiAgICAoJ3Byb3hpbXVzL3Byb3hpbXVzLXJlZ3VsYXInLCBub3JtYWwsIG5vcm1hbCksXHJcbiAgICAoJ3Byb3hpbXVzL3Byb3hpbXVzLWxpZ2h0JywgbGlnaHQsIG5vcm1hbCksXHJcbiAgICAoJ3Byb3hpbXVzL3Byb3hpbXVzLWJvbGQnLCBib2xkLCBub3JtYWwpLFxyXG4gICAgKCdwcm94aW11cy9wcm94aW11cy1yZWd1bGFyLWl0YWxpYycsIG5vcm1hbCwgaXRhbGljKSxcclxuICAgICgncHJveGltdXMvcHJveGltdXMtbGlnaHQtaXRhbGljJywgbGlnaHQsIGl0YWxpYyksXHJcbiAgICAoJ3Byb3hpbXVzL3Byb3hpbXVzLWJvbGQtaXRhbGljJywgYm9sZCwgaXRhbGljKSxcclxuKTtcclxuXHJcbi8vIFNpemVzXHJcbiRmb250LXNpemUtaDE6IChcclxuICAgIHNtYWxsOiAgICByZW0oMjQpLFxyXG4gICAgbWVkaXVtOiAgIHJlbSgzMCksXHJcbiAgICBsYXJnZTogIHJlbSg0MCksXHJcbiAgICB4bGFyZ2U6ICByZW0oNDApLFxyXG4pO1xyXG5cclxuJGZvbnQtc2l6ZS1oMjogKFxyXG4gICAgc21hbGw6ICAgIHJlbSgyMCksXHJcbiAgICBtZWRpdW06ICAgcmVtKDI0KSxcclxuICAgIGxhcmdlOiAgcmVtKDI4KSxcclxuICAgIHhsYXJnZTogIHJlbSgyOCksXHJcbik7XHJcblxyXG4kZm9udC1zaXplLWgzOiAoXHJcbiAgICBzbWFsbDogICAgcmVtKDIwKSxcclxuICAgIG1lZGl1bTogICByZW0oMjQpLFxyXG4gICAgbGFyZ2U6ICByZW0oMjQpLFxyXG4gICAgeGxhcmdlOiAgcmVtKDI4KSxcclxuKTtcclxuXHJcbiRmb250LXNpemUtcDogKFxyXG4gICAgc21hbGw6ICAgIHJlbSgxNCksXHJcbik7XHJcblxyXG4kZm9udC1zaXplLXNtYWxsOiA4MCU7XHJcblxyXG4kbGluZWhlaWdodC1oZWFkaW5nOiAgICAgICAgMS40O1xyXG4kbGluZWhlaWdodC1wYXJhZ3JhcGg6ICAgICAgMS42O1xyXG5cclxuLy8gNi4gWi1pbmRleGVzXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuJHotaGVhZGVyOiAgICAgICAgICAgICAgMTAwMDA7XHJcbiR6LWhlYWRlci13aWRnZXQ6ICAgICAgICR6LWhlYWRlciArIDIwO1xyXG4kei1oZWFkZXItc2Vjb25kLWxldmVsOiAkei1oZWFkZXIgKyA1MDtcclxuJHotaGVhZGVyLW1vYmlsZS1tZW51OiAgJHotaGVhZGVyICsgMTAwO1xyXG4kei1oZWFkZXItZmlyc3QtbGV2ZWw6ICAkei1oZWFkZXIgKyAxNTA7XHJcbiR6LWhlYWRlci1kcm9wZG93bjogICAgICR6LWhlYWRlciArIDIwMDtcclxuXHJcbi8vIDcuIExheW91dFxyXG4vLyAtLS0tLS0tLS1cclxuJHNpZGViYXItd2lkdGg6IDMyMHB4O1xyXG4kc2lkZWJhci1ndXR0ZXI6IDQwcHg7XHJcblxyXG4vLyA3LiBIZWFkZXJcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG4kaGVhZGVyLWZpcnN0LWxldmVsLWhlaWdodDogICAgICA2MHB4O1xyXG4kaGVhZGVyLXNlY29uZC1sZXZlbC1oZWlnaHQ6ICAgICA0NHB4O1xyXG4kaGVhZGVyLWxvZ28taGVpZ2h0OiAgICAgICAgICAgICAxMDRweDtcclxuJGhlYWRlci1sb2dvLXdpZHRoOiAgICAgICAgICAgICAgMTU1cHg7XHJcbiRoZWFkZXItbG9nby1ob3Jpem9udGFsLWhlaWdodDogIDMxcHg7XHJcbiRoZWFkZXItc2VhcmNoLWhlaWdodDogICAgICAgICAgIDM0cHg7XHJcbiRoZWFkZXItZm9udC1zaXplOiAgICAgICAgICAgICAgIDE0cHg7XHJcblxyXG4vLyA4LiBNYW5jaGV0dGVcclxuLy8gLS0tLS0tLS0tLS0tXHJcbiRtYW5jaGV0dGUtYmFja2dyb3VuZDogIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuJG1hbmNoZXR0ZS1oZWlnaHQ6ICAgICAgMTIwcHg7XHJcbiRtYW5jaGV0dGUtaW1hZ2Utd2lkdGg6IDE2MHB4O1xyXG4kbWFuY2hldHRlLWl0ZW0tbWFyZ2luOiA3cHg7XHJcbiRtYW5jaGV0dGUtaXRlbS13aWR0aDogIDQwMHB4O1xyXG4kbWFuY2hldHRlLW5hdi13aWR0aDogICAzMHB4O1xyXG4iLCIubWVzc2FnZS1jb2xsZWN0aW9uIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHotaW5kZXg6IDEwMDE7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcblxyXG4gICAgLm1lc3NhZ2Uge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDIwKTtcclxuICAgICAgICBjb2xvcjogIzI4MzQ1MTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcblxyXG4gICAgICAgIC8qJjpiZWZvcmUsXHJcbiAgICAgICAgJjpub3QoI21lc3NhZ2VDb29raWUpIHtcclxuICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDM1KTtcclxuICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItYmx1ZS1saWdodDtcclxuICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgIGxlZnQ6IDhweDtcclxuICAgICAgICB9Ki9cclxuXHJcbiAgICAgICAgLmljb24tY3Jvc3MtbyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICByaWdodDogMTBweDsgXHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wdXJwbGUtbWVkaXVtO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdwcm94aW11cyc7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICMyODM0NTE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzU5MmM5MTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIkBpbmNsdWRlIHJlc3BvbmQtdG8obWVkaXVtKSB7XHJcbiAgICAubWVzc2FnZS1jb2xsZWN0aW9uIHtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcblxyXG4gICAgICAgIC5tZXNzYWdlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUgODUpO1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzgpO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogcmVtKDI1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKGxhcmdlKSB7XHJcbiAgICAubWVzc2FnZS1jb2xsZWN0aW9uIHtcclxuICAgICAgICAubWVzc2FnZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNSAxMjUpO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIyKTtcclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDU3KTtcclxuICAgICAgICAgICAgICAgIHRvcDogcmVtKDUwKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiByZW0oMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxuICogTWl4aW46IG92ZXJsYXlcbiAqL1xuQG1peGluIG92ZXJsYXkoJGJnLWNvbG9yOiAjMDAwLCAkYmctb3BhY2l0eTogMC42KSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGJnLWNvbG9yLCAkYmctb3BhY2l0eSk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICB9XG5cbiAgICAuc3VydmV5X19vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cbn1cblxuLyoqXG4gKiBNaXhpbjogdmVydGljYWxseSBjZW50ZXJcbiAqL1xuQG1peGluIHZjZW50ZXIge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG59XG5cbi8qKlxuICogU3VydmV5OiB3cmFwcGVyXG4gKi9cbi5zdXJ2ZXktd3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNTtcbn1cblxuLnN1cnZleS13cmFwcGVyOmJlZm9yZSxcbi5zdXJ2ZXktd3JhcHBlcjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uc3VydmV5LXdyYXBwZXI6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbn1cblxuLnN1cnZleS13cmFwcGVyOmJlZm9yZSB7XG4gICAgdG9wOiAwO1xufVxuXG4vKipcbiAqIFN1cnZleVxuICovXG4uc3VydmV5IHsgXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBcbiAgICAmLm9wZW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgXG4gICAgJi1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgb3ZlcmxheSgkY29sb3ItYmxhY2ssIDAuNyk7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBAaW5jbHVkZSB2Y2VudGVyO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItcHVycGxlO1xuICAgICAgICAgICAgLy9mb250LWZhbWlseTogJ1Byb3hpbXVzIHJlZ3VsYXInICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHVycGxlO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTVweDtcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAkZ2xvYmFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1vdXQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idG4tLWNsb3NlIHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHVycGxlO1xuICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbGVmdDogOHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCIvKipcclxuICogTWFuY2hldHRlXHJcbiAqL1xyXG4ubWFuY2hldHRlIHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgaGVpZ2h0OiAkbWFuY2hldHRlLWhlaWdodDtcclxuICAgIG1hcmdpbjogcmVtKDMwKSBhdXRvIDA7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkZ2xvYmFsLXRyYW5zaXRpb247XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gI3syICogKCRtYW5jaGV0dGUtbmF2LXdpZHRoICsgJG1hbmNoZXR0ZS1pdGVtLW1hcmdpbil9KTtcclxuXHJcbiAgICAmLm93bC1sb2FkZWQge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLm93bC1uYXYge1xyXG4gICAgICAgID4gZGl2IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXB1cnBsZS1tZWRpdW07XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICAgIGhlaWdodDogJG1hbmNoZXR0ZS1oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbWFuY2hldHRlLWhlaWdodDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogJG1hbmNoZXR0ZS1uYXYtd2lkdGg7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLWxpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAub3dsLXByZXYge1xyXG4gICAgICAgICAgICBsZWZ0OiAtI3skbWFuY2hldHRlLW5hdi13aWR0aCArICRtYW5jaGV0dGUtaXRlbS1tYXJnaW59O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm93bC1uZXh0IHtcclxuICAgICAgICAgICAgcmlnaHQ6IC0jeyRtYW5jaGV0dGUtbmF2LXdpZHRoICsgJG1hbmNoZXR0ZS1pdGVtLW1hcmdpbn07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA+IC5kaXNhYmxlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJdGVtXHJcbiAqL1xyXG4ubWFuY2hldHRlX19pdGVtIHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6ICRtYW5jaGV0dGUtYmFja2dyb3VuZDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA2KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGhlaWdodDogJG1hbmNoZXR0ZS1oZWlnaHQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmOmhvdmVyIHAge1xyXG4gICAgICAgIEBpbmNsdWRlIGxpbmstaG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJl9faW1hZ2UsXHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgJl9faW1hZ2Uge1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgb3BhY2l0eTogLjc7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDAgMTQpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKG1lZGl1bSkge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFuY2hldHRlXHJcbiAgICAgKi9cclxuICAgIC8vIC5tYW5jaGV0dGUge1xyXG4gICAgLy8gICAgIC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gICAgLy8gICAgICAgICBtYXJnaW4tbGVmdDogJG1hbmNoZXR0ZS1uYXYtd2lkdGg7XHJcbiAgICAvLyAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hbmNoZXR0ZS1uYXYtd2lkdGg7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy9cclxuICAgIC8vICAgICAub3dsLWl0ZW0ge1xyXG4gICAgLy8gICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAvLyAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIC8qKlxyXG4gICAgLy8gICogSXRlbVxyXG4gICAgLy8gICovXHJcbiAgICAvLyAgLm1hbmNoZXR0ZV9faXRlbSB7XHJcbiAgICAvLyAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbiAgICAvLyAgICAgLy8gIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gICAgLy8gICAgIC8vICB3aWR0aDogJG1hbmNoZXR0ZS1pdGVtLXdpZHRoO1xyXG4gICAgLy8gICAgIC8vIHdpZHRoOiA0MCU7XHJcbiAgICAvL1xyXG4gICAgLy8gICAgICAmX19pbWFnZSB7XHJcbiAgICAvLyAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLy8gICAgICAgICAvLyAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAvLyAgICAgICAgIC8vICBoZWlnaHQ6ICRtYW5jaGV0dGUtaGVpZ2h0O1xyXG4gICAgLy8gICAgICAgICAvLyAgd2lkdGg6ICRtYW5jaGV0dGUtaW1hZ2Utd2lkdGg7XHJcbiAgICAvLyAgICAgIH1cclxuICAgIC8vXHJcbiAgICAvLyAgICAgICZfX3RpdGxlIHtcclxuICAgIC8vICAgICAgICAgLy8gIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgLy8gICAgICAgICAvLyAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAvLyAgICAgICAgIC8vICB3aWR0aDogJG1hbmNoZXR0ZS1pdGVtLXdpZHRoIC0gJG1hbmNoZXR0ZS1pbWFnZS13aWR0aDtcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gfVxyXG59XHJcbiIsIi8vIEltcG9ydCBEZXZpY2UgU3BlY2lmaWMgU3R5bGVzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogTWl4aW5zXG4gKi9cbkBpbXBvcnQgXCJjc3MvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY3NzL3NtYWxsXCI7XG5AaW1wb3J0IFwiY3NzL3NtZWRpdW1cIjtcbkBpbXBvcnQgXCJjc3MvbWVkaXVtXCI7XG5AaW1wb3J0IFwiY3NzL2xhcmdlXCI7XG5AaW1wb3J0IFwiY3NzL3hsYXJnZVwiO1xuIiwiLyoqXG4gKiBHZW5lcmFsXG4gKi9cblxuJGNobmxzLXZlcnRpY2FsLWl0ZW06IDUwcHg7IiwiLyoqXG4qIEdlbmVyYWxcbiogTk9URTogJ2NobmxzJyBzdGFuZHMgZm9yIGNoYW5uZWxzXG4qIE5PVEU6ICdjaG5sJyBzdGFuZHMgZm9yIGNoYW5uZWxcbiovXG4ud3JhcHBlci1jaGFubmVscyB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbGlnaHQ7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg2MCk7XG4gICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XG59XG5cbi5jaG5scyB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAub3dsLW5hdiB7XG4gICAgICAgIC5vd2wtbmV4dCxcbiAgICAgICAgLm93bC1wcmV2IHtcbiAgICAgICAgICAgIHRvcDogOTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNobmxfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbSgzMCk7XG5cbiAgICAmLnR2IHtcclxuICAgICAgICBjb2xvcjogJGNhdGVnb3J5LXR2O1xuICAgIH1cblxuICAgICYuZm9vdGJhbGwge1xyXG4gICAgICAgIGNvbG9yOiAkY2F0ZWdvcnktZm9vdGJhbGw7XG4gICAgfVxuXG4gICAgJi5tdXNpYyB7XHJcbiAgICAgICAgY29sb3I6ICRjYXRlZ29yeS1tdXNpYztcbiAgICB9XG5cbiAgICAmLm5ld3Mge1xyXG4gICAgICAgIGNvbG9yOiAkY2F0ZWdvcnktbmV3cztcbiAgICB9XG59XG5cbi8qKlxuICogQWNjb3JkaW9uIGZvciB0aGUgbW9iaWxlIHZlcnNpb24gb25seVxuICogTk9URTogaWRlYSBjYW5jZWxsZWQgYnkgYnVzaW5lc3MuIENhbiBiZSBkZWxldGVkIChtYXliZSlcclxuICovXHJcbi8vICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbi8vICAgICAuY2hubCB7XG4vLyAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgjMzcxOTU0LCAwLjgpO1xuLy9cbi8vICAgICAgICAgLmFydGljbGVzX19saXN0IHtcbi8vICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4vLyAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8gICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAkZ2xvYmFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1vdXQ7XG4vLyAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgIC5idG4tbW9yZSB7XG4vLyAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuLy8gICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcbi8vICAgICAgICAgfVxuLy8gICAgIH1cbi8vXG4vLyAgICAgLmNobmxfX3RpdGxlIHtcbi8vICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gICAgICAgICBoZWlnaHQ6IHJlbSg1MCk7XG4vLyAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTApO1xuLy8gICAgICAgICBtYXJnaW46IDA7XG4vL1xuLy8gICAgICAgICAmOmFmdGVyIHtcbi8vICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU5MDAnO1xuLy8gICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdza3luZXQtaWNvbnMnO1xuLy8gICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8gICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgICAgICAgICAgdG9wOiAycHg7XG4vLyAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbi8vICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkZ2xvYmFsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1vdXQ7XG4vLyAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgICYuZXhwYW5kZWQge1xuLy8gICAgICAgICAgICAgJjphZnRlciB7XG4vLyAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbi8vICAgICAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgICAgICArIC5hcnRpY2xlc19fbGlzdCB7XG4vLyAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogODAwcHg7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG4vLyB9XG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKGxhcmdlKSB7XG4gICAgLyoqXG4gICAgKiBBcnRpY2xlIGlubmVyXG4gICAgKi9cbiAgICAuYXJ0aWNsZV9faW5uZXItLWZpcnN0IHtcbiAgICAgICAgLmFydGljbGVfX2l0ZW1fX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hcnRpY2xlX19pdGVtX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEdlbmVyYWxcbiAqL1xuLndyYXBwZXItZG9zc2llcnMge1xuICAgIGJhY2tncm91bmQ6ICNjOGNjZTI7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg2MCk7XG4gICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XG59XG5cbi5kb3NzaWVycyB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDQwKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGxpZ2h0O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIH1cbn1cbiIsIi8vIEltcG9ydCBEZXZpY2UgU3BlY2lmaWMgU3R5bGVzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qKlxuICogTWl4aW5zXG4gKi9cbkBpbXBvcnQgXCJjc3Mvc21hbGxcIjtcbkBpbXBvcnQgXCJjc3Mvc21lZGl1bVwiO1xuQGltcG9ydCBcImNzcy9tZWRpdW1cIjtcbkBpbXBvcnQgXCJjc3MvbGFyZ2VcIjtcbkBpbXBvcnQgXCJjc3MveGxhcmdlXCI7XG4iLCIvKipcbiAqIENhcm91c2VsIHZpZGVvc1xuICovXG4ud3JhcHBlci12aWRlb3Mge1xuICAgIGJhY2tncm91bmQ6ICNjOGNjZTI7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg2MCk7XG4gICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XG59XHJcblxyXG4udmlkZW9zIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIGgxIHtcclxuICAgICAgICBmb250LXNpemU6IHJlbSg0MCk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGxpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIC5hcnRpY2xlX19pdGVtIHtcclxuICAgICAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAuaWNvbi12aWRlbyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtbGlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC52aWRlb19fdGh1bWJuYWlsOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnZpZGVvX190aHVtYm5haWwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGdsb2JhbC10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2Utb3V0O1xyXG4gICAgfVxyXG5cclxuICAgID4gc3BhbiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi12aWRlbyB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSg0MCk7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMjBweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcclxuICAgIH1cclxufVxyXG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKHhsYXJnZSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDYXJvdXNlbCB2aWRlb3NcclxuICAgICAqL1xyXG4gICAgLnZpZGVvcyB7XHJcbiAgICAgICAgLmFydGljbGVfX2l0ZW0ge1xyXG5cclxuICAgICAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vd2wtbmF2ID4gZGl2IHtcclxuICAgICAgICAgICAgdG9wOiByZW0oMjApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKipcclxuICogVmFyaWFibGVzXHJcbiAqXHJcbiAqIFRhYmxlIG9mIENvbnRlbnRzOlxyXG4gKlxyXG4gKiAtIENvbG91cnNcclxuICovXHJcblxyXG4kY29sb3ItZGFyay1wdXJwbGU6ICAgICAjMzcyMDVkO1xyXG4kY29sb3ItbGlnaHQtcHVycGxlOiAgICAjMjY2MmExO1xyXG4kY29sb3ItZGFyay1ibHVlOiAgICAgICAjMWU3M2FmO1xyXG4kY29sb3ItbGlnaHQtYmx1ZTogICAgICAjMWU3M2FmO1xyXG4iLCIkc21hbGwtbWluaS1mb290LWhlaWdodDogNTk1cHg7XHJcblxyXG4ubWF0Y2gtb3ZlcnZpZXcge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDQ1KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICAubWF0Y2gtb3ZlcnZpZXdfX2xpc3RfX3RhYnMge1xyXG4gICAgICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxZDBmMmUgMTUlLCAkY29sb3ItZGFyay1wdXJwbGUgMzUlLCAkY29sb3ItbGlnaHQtcHVycGxlIDgwJSwgJGNvbG9yLWRhcmstYmx1ZSA4NiUsICRjb2xvci1saWdodC1ibHVlIDEwMCUpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgJGNvbG9yLWJsdWUtbGlnaHQgOTAlKTtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNjcm9sbCBiYXJcclxuICAgICAqIFRoaXMgc2Nyb2xsIGJhciBoYXMgc29tZSBpbmxpbmUgc3R5bGUgZ2l2ZW4gYnkgSmF2YXNjcmlwdFxyXG4gICAgICogV2UgbmVlZCAhaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZW1cclxuICAgICAqL1xyXG4gICAgLmlTY3JvbGxWZXJ0aWNhbFNjcm9sbGJhciB7XHJcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1MHB4KSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHJpZ2h0OiA1cHggIWltcG9ydGFudDtcclxuICAgICAgICB0b3A6IHJlbSg0NSkgIWltcG9ydGFudDtcclxuICAgICAgICB3aWR0aDogNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmlTY3JvbGxJbmRpY2F0b3Ige1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICB3aWR0aDogNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIFRhYnNcclxuICAgICovXHJcbiAgICAudGFiLWNvbGxlY3Rpb24ge1xyXG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNCk7XHJcblxyXG4gICAgICAgID4gbGkge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICAgICAgbWFyZ2luOiByZW0oMCA3KTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg3KTtcclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYudWktc3RhdGUtYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWJsdWUtbGlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uIHBpY2tlclxyXG4gICAgICovXHJcbiAgICAub3B0aW9uLXBpY2tlcl9fc2VsZWN0ZWQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICogU2Nyb2xsYWJsZVxyXG4gICAgKi9cclxuICAgIC5zY3JvbGxhYmxlIHtcclxuICAgICAgICBoZWlnaHQ6ICRzbWFsbC1taW5pLWZvb3QtaGVpZ2h0O1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNTApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgKiBTZWN0aW9uIHRhYmxlXHJcbiAgICAqL1xyXG4gICAgLnNlY3Rpb24tdGFibGUge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICB0ciAge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzVkNjU5YTtcclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aCxcclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg1KTtcclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzVkNjU5YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgICBjb2xvcjogI2QxZDFkYztcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNkMWQwZGM7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuZXh0cmEtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG5cclxuICAgICAgICAgICAgICAgIGE6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChcIi4uL2ltYWdlcy9taW5pLWZvb3QvaWNvbi1hcnJvdy1sZWZ0LnBuZ1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oMCA2KTtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgKiBUZWFtIEZVTEwgJiBTSE9SVCBuYW1lXHJcbiAgICAgICAgKi9cclxuICAgICAgICAudGVhbS1uYW1lX19mdWxsLFxyXG4gICAgICAgIC50ZWFtLW5hbWVfX3Nob3J0LFxyXG4gICAgICAgIC53ZWVrZGF5X19kYXkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ2hhbm5lbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIC5jaGFubmVsIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTcpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVhbSBsb2dvXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgLnRlYW0tbG9nbyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNSAxMCk7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBOdW1iXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgLm51bWIge1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMik7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAqIEljb24gd3JyYXBlclxyXG4gICAgICAgICovXHJcbiAgICAgICAgLmljb24td3JhcHBlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuZGlzcGxheS1uby1pY29uIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICAgICAgICAgICYuaWNvbi1sb2dvLTExLWJnIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTVlNGVjO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5pY29uLWNvbG9yIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjZTVlNGVjO1xyXG5cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICogQ2hhbm5lbCBjb2xsZWN0aW9uXHJcbiAgICAgICAgKi9cclxuICAgICAgICAuY2hhbm5lbC1jb2xsZWN0aW9uIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDUpO1xyXG5cclxuICAgICAgICAgICAgLmNoYW5uZWxfX2l0ZW0ge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gIH0gLy8gRU5EIC5zZWN0aW9uLXRhYmxlXHJcblxyXG59IC8vIEVORCAubWF0Y2gtb3ZlcnZpZXdcclxuIiwiQGluY2x1ZGUgcmVzcG9uZC10byhsYXJnZSkge1xyXG4gICAgJGxhcmdlLW1pbmktZm9vdC1oZWlnaHQ6IDU0OHB4O1xyXG5cclxuICAgIC8qXHJcbiAgICAqIFNjcm9sbGFibGVcclxuICAgICovXHJcbiAgICAuc2Nyb2xsYWJsZSB7XHJcbiAgICAgICAgaGVpZ2h0OiAkbGFyZ2UtbWluaS1mb290LWhlaWdodDtcclxuICAgIH1cclxufVxyXG4iLCIkZXBnLWhlaWdodDogNTAwcHg7XHJcblxyXG4uZXBnLW92ZXJ2aWV3IHtcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbSg0NSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWluZXJcclxuICAgICAqL1xyXG4gICAgLmVwZy1vdmVydmlld19fdGFicyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMGQ0NjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoNTAlIDYwJSBlbGxpcHNlLCByZ2JhKDgsIDc5LCAxMjYsIDAuOSkgMCUsIHJnYmEoOCwgNzksIDEyNiwgMC4yKSA5MCUpO1xyXG4gICAgICAgIHBhZGRpbmc6IHJlbSgwIDE0KTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY3JvbGwgYmFyXHJcbiAgICAgKi9cclxuICAgIC5pU2Nyb2xsVmVydGljYWxTY3JvbGxiYXIge1xyXG4gICAgICAgIGJvdHRvbTogcmVtKDUwKTtcclxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDUwcHgpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogNXB4O1xyXG4gICAgICAgIHRvcDogcmVtKDE1KTtcclxuICAgICAgICB3aWR0aDogNHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5pU2Nyb2xsSW5kaWNhdG9yIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgd2lkdGg6IDRweDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICogVGFic1xyXG4gICAgKi9cclxuICAgIC50YWItY29sbGVjdGlvbiB7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDE0IDApO1xyXG5cclxuICAgICAgICA+IGxpIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDAgNyk7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNyk7XHJcblxyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnVpLXN0YXRlLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1ibHVlLWxpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA+IGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbiBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgLm9wdGlvbi1waWNrZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgJi0tb3BlbiB7XHJcbiAgICAgICAgICAgIC5vcHRpb24tcGlja2VyX19jb2xsZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5vcHRpb24tcGlja2VyX19zZWxlY3RlZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZXk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBtYXJnaW46IHJlbSg3IDApO1xyXG4gICAgICAgIHBhZGRpbmc6IHJlbSg3KTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGU5MDEnO1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc2t5bmV0LWljb25zJztcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3B0aW9uLXBpY2tlcl9fY29sbGVjdGlvbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZXk7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMXB4O1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxcHg7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHotaW5kZXg6IDU7XHJcbiAgICB9XHJcblxyXG4gICAgLm9wdGlvbi1waWNrZXJfX2l0ZW0ge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWdyZXk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNyk7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkZ2xvYmFsLXRyYW5zaXRpb247XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLWxpZ2h0O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0tYWN0aXZlIHtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS1saWdodDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYW5lbFxyXG4gICAgICovXHJcbiAgICAmX19wYW5lbF9fY29udGVudCB7XHJcbiAgICAgICAgaGVpZ2h0OiAkZXBnLWhlaWdodDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXRlbVxyXG4gICAgICovXHJcbiAgICAuaXRlbSB7XHJcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDE0IDApO1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDUwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbWFnZVxyXG4gICAgICovXHJcbiAgICAuaXRlbV9fdmlzdWFsIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB3aWR0aDogMzAlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5mb1xyXG4gICAgICovXHJcbiAgICAuaXRlbV9faW5mbyB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNCk7XHJcbiAgICAgICAgd2lkdGg6IDcwJTtcclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pdGVtX19pbmZvX190aXRsZSB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxNik7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcclxuXHJcbiAgICAgICAgLmxpbmsge1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnV0dG9uXHJcbiAgICAgKi9cclxuICAgIC5wbGF5LWJ1dHRvbixcclxuICAgIC5yZXBsYXktYnV0dG9uLFxyXG4gICAgLnJlY29yZC1idXR0b24ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTA4LCA2NSwgMTU2LCAwLjkpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzAlICsgMTRweCk7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMTAgMCk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJGdsb2JhbC10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2Utb3V0O1xyXG4gICAgICAgIHdpZHRoOiByZW0oMTU1KTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbi10aHJlZS0tdXJscyB7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNCAwKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG5cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMSksXHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxOCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbl9fdGV4dCB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1yZWd1bGFyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdWxsIHByb2dyYW1tZSBidXR0b25cclxuICAgICAqL1xyXG4gICAgJl9fdGFicyArIC5sYXlvdXQtaW5jZXB0aW9uLWJ1dHRvbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzA5MWU0MTtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMCAxNCk7XHJcblxyXG4gICAgICAgIC5zZXBlcmF0b3ItYnV0dG9uIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29tcGxldGUge1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE0IDApO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIgLmJ1dHRvbl9fdGV4dCB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxlOTAzJztcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc2t5bmV0LWljb25zJztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnRuZXJcclxuICAgICAqL1xyXG4gICAgJl9fcGFydG5lciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG4iLCIvKipcclxuICogR2VuZXJhbFxyXG4gKiBOT1RFOiAncm4nIHN0YW5kcyBmb3IgcmVjZW50LW5ld3NcclxuICovXHJcbi5ybiB7XHJcbiAgICBtYXJnaW46IHJlbSg4MCAwKTtcclxuXHJcbiAgICBoMSB7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDApO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBsaWdodDtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFRhYnNcclxuICovXHJcbi5ybl9fdGFicyB7XHJcbiAgICBwYWRkaW5nOiByZW0oMTAgMCAzMCk7XHJcbn1cclxuXHJcbi5ybl9fdGFiLWl0ZW0ge1xyXG4gICAgY29sb3I6ICRjb2xvci1ncmV5O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBtYXJnaW46IHJlbSgwIDE0KTtcclxuICAgIHBhZGRpbmc6IHJlbSgxMCAwKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yICRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtbGlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItYmx1ZS1saWdodDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtbGlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgICBAaW5jbHVkZSBoZWFkZXItc2VwYXJhdG9yKCRjb2xvci1ncmV5KTtcclxuXHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtMTZweDtcclxuICAgICAgICAgICAgdG9wOiA3cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogVGFiIGNvbnRlbnRcclxuICovXHJcbi5ybl9fdGFiLWNvbnRlbnQge1xyXG4gICAgJi5oaWRkZW4tdGFiIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucm5fX3N1YnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDI0KTtcclxuICAgIGZvbnQtd2VpZ2h0OiBsaWdodDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBOZXdzIGxpc3RcclxuICovXHJcbi5ybl9fbmV3c2xpc3Qge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcclxufVxyXG5cclxuLnJuX19uZXdzbGlzdF9faXRlbSB7XHJcbiAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkICRjb2xvci1ibHVlLWxpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbSgzKTtcclxuICAgIHBhZGRpbmc6IHJlbSgxIDAgMCA3NCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJi5mb290YmFsbCB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY2F0ZWdvcnktZm9vdGJhbGw7XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZXdzIHtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRjYXRlZ29yeS1uZXdzO1xyXG4gICAgfVxyXG5cclxuICAgICYudHYge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNhdGVnb3J5LXR2O1xyXG4gICAgfVxyXG5cclxuICAgICYubXVzaWMge1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNhdGVnb3J5LW11c2ljO1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItZ3JleS1kYXJrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcclxuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE0KTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpbmstaG92ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRpbWUge1xyXG4gICAgICAgIGNvbG9yOiAjODM4ODk3O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcclxuICAgICAgICBsZWZ0OiByZW0oMTQpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IHJlbSg1KTtcclxuICAgIH1cclxufVxyXG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKGxhcmdlKSB7XHJcbiAgICAucm4ge1xyXG4gICAgICAgIGgxIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ybl9faGVhZGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIH1cclxuXHJcbiAgICAucm5fX3RhYnMge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdG9wOiAtM3B4O1xyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBDYXJvdXNlbCBjb250ZXN0XHJcbiAqL1xyXG4uY29udGVzdCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oNDUpO1xyXG5cclxuICAgICZfX2hpZ2hsaWdodCB7XHJcbiAgICAgICAgQGluY2x1ZGUgdXNlci1zZWxlY3Qobm9uZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtZGFya2VyO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgJi5vd2wtbG9hZGVkIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPd2xcclxuICAgICAqL1xyXG4gICAgLm93bC1uYXYge1xyXG4gICAgICAgIC5vd2wtcHJldiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm93bC1wcmV2LFxyXG4gICAgICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDUwKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1MCk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMzApO1xyXG4gICAgICAgICAgICB0b3A6IDM1JTtcclxuICAgICAgICAgICAgd2lkdGg6IHJlbSgyMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnRuIG1vcmVcclxuICAgICAqL1xyXG4gICAgLmJ0bi1tb3JlLS13aGl0ZSB7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIG1hcmdpbjogcmVtKDAgMjUgMjAgMjUpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEl0ZW1cclxuICovXHJcbi5jb250ZXN0X19pdGVtIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ibHVlLWRhcmtlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICAvLyBORVcgREVTSUdOIDMwLTAxLTIwMTdcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIC5jb250ZXN0X19pdGVtX190aXRsZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZ3JleS1saWdodGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19pbWFnZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2luZm8ge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3ItZ3JleS1saWdodGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMjAgMjUgMCAyNSk7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgfVxyXG5cclxuICAgICZfX3RpdGxlIHtcclxuICAgICAgICAvLyBORVcgREVTSUdOIDMwLTAxLTIwMTdcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKC4zKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI1KTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWluLWhlaWdodDogMTE1cHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMjAgMjUgMjApO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yICRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcclxuICAgICAgICB6LWluZGV4OiAyNTtcclxuICAgIH1cclxufVxyXG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKGxhcmdlKSB7XG4gICAgLmNvbnRlc3RfX2hpZ2hsaWdodCAge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IDNweDtcclxuICAgIH1cclxufVxuIiwiLyoqXG4gKiBHZW5lcmFsXG4gKi9cbi5lLXNlcnZpY2VzIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuXG4gICAgPiAucm93IHtcbiAgICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMik7XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEl0ZW1zXG4gKi9cbi5lLXNlcnZpY2VzX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItcHVycGxlO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiByZW0oMTQwKTtcbiAgICBwYWRkaW5nOiByZW0oMTggMTUgMTUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRnbG9iYWwtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcblxuICAgICZfX3RpdGxlLFxuICAgIC5pY29uIHtcbiAgICAgICAgb3BhY2l0eTogLjg7XG5cbiAgICAgICAgJjpob3ZlciB7b3BhY2l0eTogMTt9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTgpO1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgICAgYm90dG9tOiAxNXB4O1xuICAgICAgICBmb250LXNpemU6IHJlbSg1MCk7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJsdWUtbGlnaHQ7XG4gICAgfVxufVxuIiwiLyoqXHJcbiAqIFRvcHVwXHJcbiAqL1xyXG5cclxuLnRvcHVwIHtcclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM1YzJjOGYgMCUsICM0ZjQ3OWQgNTclLCAjMDBiY2VlIDEwMCUpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDQ1KTtcclxuICAgIHBhZGRpbmc6IHJlbSgyNSAxNSk7XHJcblxyXG4gICAgLmljb24tbW9iaWxlLW8ge1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDcwKTtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMC41KTtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2NvbnRlbnQge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW46IHJlbSgwIDAgMCAxMCk7XHJcbiAgICAgICAgd2lkdGg6IDc4JTtcclxuICAgIH1cclxuXHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSguMyk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNSk7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuXHJcbiAgICAmX19mb3JtLXRpdGxlIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xyXG4gICAgfVxyXG5cclxuICAgICZfX3Bob25lLW51bWJlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci1ncmV5LWRhcms7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMCAxMCk7XHJcbiAgICAgICAgd2lkdGg6IDcwJTtcclxuICAgIH1cclxuXHJcbiAgICAmX19zdWJtaXQtYnV0dG9uIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjNWIyZDkwO1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDAgMTUpO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZS1vdXQgMHM7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYmx1ZS1saWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdhbGwgZGVmYXVsdC9jYXJkIHZpZXdcclxuICovXHJcbi53cmFwcGVyLXdhbGwge1xyXG4gICAgLm1haW4ge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFRpdGxlXHJcbiAqL1xyXG4ud2FsbF9faXRlbV9fZXhjZXJwdCB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7XHJcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59IiwiXG5AaW5jbHVkZSByZXNwb25kLXRvKG1lZGl1bSkge1xuICAgIC53cmFwcGVyLXdhbGwge1xuICAgICAgICAubWFpbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ== */
