@import url(https://fonts.googleapis.com/css?family=Lato:400,700);
/* -----------------------------------------------------------------------------
  HAMBURGER ICONS COMPONENT
http://callmenick.com/post/animating-css-only-hamburger-menu-icons
----------------------------------------------------------------------------- */
/*----
inspiration : http://tympanus.net/Blueprints/MultiLevelMenu/
---*/
/*--- VAR ---*/
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
   * 1. Set default font family to sans-serif.
   * 2. Prevent iOS and IE text size adjust after device orientation change,
   *    without disabling user zoom.
   */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
     ========================================================================== */
/**
   * Remove border when inside `a` element in IE 8/9/10.
   */
img {
  border: 0; }

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

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

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

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

/**
   * Address odd `em`-unit font size rendering in all browsers.
   */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

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

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

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

/**
   * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
   *    and `video` controls.
   * 2. Correct inability to style clickable `input` types in iOS.
   * 3. Improve usability and consistency of cursor style between image-type
   *    `input` and others.
   */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

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

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

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

/**
   * It's recommended that you don't attempt to style these elements.
   * Firefox's implementation doesn't respect box-sizing, padding, or width.
   *
   * 1. Address box sizing set to `content-box` in IE 8/9/10.
   * 2. Remove excess padding in IE 8/9/10.
   */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

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

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

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

/**
   * 1. Correct `color` not being inherited in IE 8/9/10/11.
   * 2. Remove padding so people aren't caught out if they zero out fieldsets.
   */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

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

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

td,
th {
  padding: 0; }

html {
  font-size: 16px;
  box-sizing: border-box; }

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

body {
  padding: 0;
  margin: 0;
  font-family: Century Gothic, CenturyGothic, AppleGothic, "Lato", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #9a9a9a;
  background: #000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 8px; }

select {
  width: 100%;
  border-radius: 8px; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 8px;
  line-height: 1; }

.t-center {
  text-align: center; }

.t-small {
  font-size: 14px; }

.t-right {
  text-align: right; }

@media screen and (min-width: 64em) {
  .md-align-left {
    float: left;
    margin: 0 1em 1em 0; } }

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

p {
  font-size: inherit;
  line-height: 1.5;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

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

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Century Gothic, CenturyGothic, AppleGothic, "Lato", sans-serif;
  font-weight: normal;
  font-style: normal;
  color: #fff;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.2;
  text-transform: uppercase; }

h1 {
  font-size: 1.5rem; }

h2 {
  font-size: 1.25rem; }

h3 {
  font-size: 1.1875rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.0625rem; }

h6 {
  font-size: 1rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 2.125rem; }
  h2 {
    font-size: 2rem; }
  h3 {
    font-size: 1.625rem; }
  h4 {
    font-size: 1rem; }
  h5 {
    font-size: 1rem; }
  h6 {
    font-size: 0.875rem; } }

a {
  color: #d50000;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer; }
  a:hover, a:focus {
    color: #b70000; }
  a img {
    border: 0; }

ul,
ol,
dl {
  line-height: 1.5;
  margin-bottom: 1rem;
  list-style-position: outside; }

li {
  font-size: inherit; }

ul {
  list-style-type: disc;
  margin-left: 1.25rem; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  margin-right: -5px;
  margin-left: -5px; }
  .no-flexbox .row {
    letter-spacing: -0.31em; }
  @media screen and (min-width: 40em) {
    .row {
      margin-right: -10px;
      margin-left: -10px; } }
  @media screen and (min-width: 64em) {
    .row {
      margin-right: -15px;
      margin-left: -15px; } }
  .row.collapse {
    margin-left: 0;
    margin-right: 0; }
    .row.collapse > .col, .row.collapse [class^="col-"] {
      padding-left: 0;
      padding-right: 0; }

.col, [class^="col-"] {
  -ms-flex: 1 0 100%;
      flex: 1 0 100%;
  max-width: 100%;
  padding-left: 5px;
  padding-right: 5px; }
  .no-flexbox .col, .no-flexbox [class^="col-"] {
    display: inline-block;
    vertical-align: top;
    letter-spacing: normal; }
  @media screen and (min-width: 40em) {
    .col, [class^="col-"] {
      padding-left: 10px;
      padding-right: 10px; } }
  @media screen and (min-width: 64em) {
    .col, [class^="col-"] {
      padding-left: 15px;
      padding-right: 15px; } }

.col-xs-1 {
  -ms-flex-preferred-size: 8.33333%;
      flex-basis: 8.33333%;
  max-width: 8.33333%; }
  .no-flexbox .col-xs-1 {
    width: 8.33333%; }

.col-xs-2 {
  -ms-flex-preferred-size: 16.66667%;
      flex-basis: 16.66667%;
  max-width: 16.66667%; }
  .no-flexbox .col-xs-2 {
    width: 16.66667%; }

.col-xs-3 {
  -ms-flex-preferred-size: 25%;
      flex-basis: 25%;
  max-width: 25%; }
  .no-flexbox .col-xs-3 {
    width: 25%; }

.col-xs-4 {
  -ms-flex-preferred-size: 33.33333%;
      flex-basis: 33.33333%;
  max-width: 33.33333%; }
  .no-flexbox .col-xs-4 {
    width: 33.33333%; }

.col-xs-5 {
  -ms-flex-preferred-size: 41.66667%;
      flex-basis: 41.66667%;
  max-width: 41.66667%; }
  .no-flexbox .col-xs-5 {
    width: 41.66667%; }

.col-xs-6 {
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  max-width: 50%; }
  .no-flexbox .col-xs-6 {
    width: 50%; }

.col-xs-7 {
  -ms-flex-preferred-size: 58.33333%;
      flex-basis: 58.33333%;
  max-width: 58.33333%; }
  .no-flexbox .col-xs-7 {
    width: 58.33333%; }

.col-xs-8 {
  -ms-flex-preferred-size: 66.66667%;
      flex-basis: 66.66667%;
  max-width: 66.66667%; }
  .no-flexbox .col-xs-8 {
    width: 66.66667%; }

.col-xs-9 {
  -ms-flex-preferred-size: 75%;
      flex-basis: 75%;
  max-width: 75%; }
  .no-flexbox .col-xs-9 {
    width: 75%; }

.col-xs-10 {
  -ms-flex-preferred-size: 83.33333%;
      flex-basis: 83.33333%;
  max-width: 83.33333%; }
  .no-flexbox .col-xs-10 {
    width: 83.33333%; }

.col-xs-11 {
  -ms-flex-preferred-size: 91.66667%;
      flex-basis: 91.66667%;
  max-width: 91.66667%; }
  .no-flexbox .col-xs-11 {
    width: 91.66667%; }

.col-xs-12 {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  max-width: 100%; }
  .no-flexbox .col-xs-12 {
    width: 100%; }

.col-xs-20p {
  -ms-flex-preferred-size: 20%;
      flex-basis: 20%;
  max-width: 20%; }

.col-xs-30p {
  -ms-flex-preferred-size: 30%;
      flex-basis: 30%;
  max-width: 30%; }

.col-xs-40p {
  -ms-flex-preferred-size: 40%;
      flex-basis: 40%;
  max-width: 40%; }

.col-xs-60p {
  -ms-flex-preferred-size: 60%;
      flex-basis: 60%;
  max-width: 60%; }

.col-xs-80p {
  -ms-flex-preferred-size: 80%;
      flex-basis: 80%;
  max-width: 80%; }

.center-xs {
  -ms-flex-pack: center;
      justify-content: center;
  text-align: center;
  margin-left: auto;
  margin-right: auto; }

.end-xs {
  -ms-flex-pack: end;
      justify-content: flex-end;
  text-align: right; }

.start-xs {
  -ms-flex-pack: start;
      justify-content: flex-start;
  text-align: left; }

.between-xs {
  -ms-flex-pack: justify;
      justify-content: space-between; }

.around-xs {
  -ms-flex-pack: distribute;
      justify-content: space-around; }

.shrink-xs {
  -ms-flex: 1 1 0%;
      flex: 1 1 0%; }

.col-auto-xs {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto;
  max-width: none; }

@media screen and (min-width: 40em) {
  .col-sm-1 {
    -ms-flex-preferred-size: 8.33333%;
        flex-basis: 8.33333%;
    max-width: 8.33333%; }
    .no-flexbox .col-sm-1 {
      width: 8.33333%; }
  .col-sm-2 {
    -ms-flex-preferred-size: 16.66667%;
        flex-basis: 16.66667%;
    max-width: 16.66667%; }
    .no-flexbox .col-sm-2 {
      width: 16.66667%; }
  .col-sm-3 {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
    .no-flexbox .col-sm-3 {
      width: 25%; }
  .col-sm-4 {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
    .no-flexbox .col-sm-4 {
      width: 33.33333%; }
  .col-sm-5 {
    -ms-flex-preferred-size: 41.66667%;
        flex-basis: 41.66667%;
    max-width: 41.66667%; }
    .no-flexbox .col-sm-5 {
      width: 41.66667%; }
  .col-sm-6 {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
    .no-flexbox .col-sm-6 {
      width: 50%; }
  .col-sm-7 {
    -ms-flex-preferred-size: 58.33333%;
        flex-basis: 58.33333%;
    max-width: 58.33333%; }
    .no-flexbox .col-sm-7 {
      width: 58.33333%; }
  .col-sm-8 {
    -ms-flex-preferred-size: 66.66667%;
        flex-basis: 66.66667%;
    max-width: 66.66667%; }
    .no-flexbox .col-sm-8 {
      width: 66.66667%; }
  .col-sm-9 {
    -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
    max-width: 75%; }
    .no-flexbox .col-sm-9 {
      width: 75%; }
  .col-sm-10 {
    -ms-flex-preferred-size: 83.33333%;
        flex-basis: 83.33333%;
    max-width: 83.33333%; }
    .no-flexbox .col-sm-10 {
      width: 83.33333%; }
  .col-sm-11 {
    -ms-flex-preferred-size: 91.66667%;
        flex-basis: 91.66667%;
    max-width: 91.66667%; }
    .no-flexbox .col-sm-11 {
      width: 91.66667%; }
  .col-sm-12 {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    max-width: 100%; }
    .no-flexbox .col-sm-12 {
      width: 100%; }
  .col-sm-20p {
    -ms-flex-preferred-size: 20%;
        flex-basis: 20%;
    max-width: 20%; }
  .col-sm-30p {
    -ms-flex-preferred-size: 30%;
        flex-basis: 30%;
    max-width: 30%; }
  .col-sm-40p {
    -ms-flex-preferred-size: 40%;
        flex-basis: 40%;
    max-width: 40%; }
  .col-sm-60p {
    -ms-flex-preferred-size: 60%;
        flex-basis: 60%;
    max-width: 60%; }
  .col-sm-80p {
    -ms-flex-preferred-size: 80%;
        flex-basis: 80%;
    max-width: 80%; }
  .center-sm {
    -ms-flex-pack: center;
        justify-content: center;
    text-align: center;
    margin-left: auto;
    margin-right: auto; }
  .end-sm {
    -ms-flex-pack: end;
        justify-content: flex-end;
    text-align: right; }
  .start-sm {
    -ms-flex-pack: start;
        justify-content: flex-start;
    text-align: left; }
  .between-sm {
    -ms-flex-pack: justify;
        justify-content: space-between; }
  .around-sm {
    -ms-flex-pack: distribute;
        justify-content: space-around; }
  .shrink-sm {
    -ms-flex: 1 1 0%;
        flex: 1 1 0%; }
  .col-auto-sm {
    -ms-flex: 0 1 auto;
        flex: 0 1 auto;
    max-width: none; } }

@media screen and (min-width: 64em) {
  .col-md-1 {
    -ms-flex-preferred-size: 8.33333%;
        flex-basis: 8.33333%;
    max-width: 8.33333%; }
    .no-flexbox .col-md-1 {
      width: 8.33333%; }
  .col-md-2 {
    -ms-flex-preferred-size: 16.66667%;
        flex-basis: 16.66667%;
    max-width: 16.66667%; }
    .no-flexbox .col-md-2 {
      width: 16.66667%; }
  .col-md-3 {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
    .no-flexbox .col-md-3 {
      width: 25%; }
  .col-md-4 {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
    .no-flexbox .col-md-4 {
      width: 33.33333%; }
  .col-md-5 {
    -ms-flex-preferred-size: 41.66667%;
        flex-basis: 41.66667%;
    max-width: 41.66667%; }
    .no-flexbox .col-md-5 {
      width: 41.66667%; }
  .col-md-6 {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
    .no-flexbox .col-md-6 {
      width: 50%; }
  .col-md-7 {
    -ms-flex-preferred-size: 58.33333%;
        flex-basis: 58.33333%;
    max-width: 58.33333%; }
    .no-flexbox .col-md-7 {
      width: 58.33333%; }
  .col-md-8 {
    -ms-flex-preferred-size: 66.66667%;
        flex-basis: 66.66667%;
    max-width: 66.66667%; }
    .no-flexbox .col-md-8 {
      width: 66.66667%; }
  .col-md-9 {
    -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
    max-width: 75%; }
    .no-flexbox .col-md-9 {
      width: 75%; }
  .col-md-10 {
    -ms-flex-preferred-size: 83.33333%;
        flex-basis: 83.33333%;
    max-width: 83.33333%; }
    .no-flexbox .col-md-10 {
      width: 83.33333%; }
  .col-md-11 {
    -ms-flex-preferred-size: 91.66667%;
        flex-basis: 91.66667%;
    max-width: 91.66667%; }
    .no-flexbox .col-md-11 {
      width: 91.66667%; }
  .col-md-12 {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    max-width: 100%; }
    .no-flexbox .col-md-12 {
      width: 100%; }
  .col-md-20p {
    -ms-flex-preferred-size: 20%;
        flex-basis: 20%;
    max-width: 20%; }
  .col-md-30p {
    -ms-flex-preferred-size: 30%;
        flex-basis: 30%;
    max-width: 30%; }
  .col-md-40p {
    -ms-flex-preferred-size: 40%;
        flex-basis: 40%;
    max-width: 40%; }
  .col-md-60p {
    -ms-flex-preferred-size: 60%;
        flex-basis: 60%;
    max-width: 60%; }
  .col-md-80p {
    -ms-flex-preferred-size: 80%;
        flex-basis: 80%;
    max-width: 80%; }
  .center-md {
    -ms-flex-pack: center;
        justify-content: center;
    text-align: center;
    margin-left: auto;
    margin-right: auto; }
  .end-md {
    -ms-flex-pack: end;
        justify-content: flex-end;
    text-align: right; }
  .start-md {
    -ms-flex-pack: start;
        justify-content: flex-start;
    text-align: left; }
  .between-md {
    -ms-flex-pack: justify;
        justify-content: space-between; }
  .around-md {
    -ms-flex-pack: distribute;
        justify-content: space-around; }
  .shrink-md {
    -ms-flex: 1 1 0%;
        flex: 1 1 0%; }
  .col-auto-md {
    -ms-flex: 0 1 auto;
        flex: 0 1 auto;
    max-width: none; } }

@media screen and (min-width: 80em) {
  .col-lg-1 {
    -ms-flex-preferred-size: 8.33333%;
        flex-basis: 8.33333%;
    max-width: 8.33333%; }
    .no-flexbox .col-lg-1 {
      width: 8.33333%; }
  .col-lg-2 {
    -ms-flex-preferred-size: 16.66667%;
        flex-basis: 16.66667%;
    max-width: 16.66667%; }
    .no-flexbox .col-lg-2 {
      width: 16.66667%; }
  .col-lg-3 {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
    .no-flexbox .col-lg-3 {
      width: 25%; }
  .col-lg-4 {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
    .no-flexbox .col-lg-4 {
      width: 33.33333%; }
  .col-lg-5 {
    -ms-flex-preferred-size: 41.66667%;
        flex-basis: 41.66667%;
    max-width: 41.66667%; }
    .no-flexbox .col-lg-5 {
      width: 41.66667%; }
  .col-lg-6 {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
    .no-flexbox .col-lg-6 {
      width: 50%; }
  .col-lg-7 {
    -ms-flex-preferred-size: 58.33333%;
        flex-basis: 58.33333%;
    max-width: 58.33333%; }
    .no-flexbox .col-lg-7 {
      width: 58.33333%; }
  .col-lg-8 {
    -ms-flex-preferred-size: 66.66667%;
        flex-basis: 66.66667%;
    max-width: 66.66667%; }
    .no-flexbox .col-lg-8 {
      width: 66.66667%; }
  .col-lg-9 {
    -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
    max-width: 75%; }
    .no-flexbox .col-lg-9 {
      width: 75%; }
  .col-lg-10 {
    -ms-flex-preferred-size: 83.33333%;
        flex-basis: 83.33333%;
    max-width: 83.33333%; }
    .no-flexbox .col-lg-10 {
      width: 83.33333%; }
  .col-lg-11 {
    -ms-flex-preferred-size: 91.66667%;
        flex-basis: 91.66667%;
    max-width: 91.66667%; }
    .no-flexbox .col-lg-11 {
      width: 91.66667%; }
  .col-lg-12 {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    max-width: 100%; }
    .no-flexbox .col-lg-12 {
      width: 100%; }
  .col-lg-20p {
    -ms-flex-preferred-size: 20%;
        flex-basis: 20%;
    max-width: 20%; }
  .col-lg-30p {
    -ms-flex-preferred-size: 30%;
        flex-basis: 30%;
    max-width: 30%; }
  .col-lg-40p {
    -ms-flex-preferred-size: 40%;
        flex-basis: 40%;
    max-width: 40%; }
  .col-lg-60p {
    -ms-flex-preferred-size: 60%;
        flex-basis: 60%;
    max-width: 60%; }
  .col-lg-80p {
    -ms-flex-preferred-size: 80%;
        flex-basis: 80%;
    max-width: 80%; }
  .center-lg {
    -ms-flex-pack: center;
        justify-content: center;
    text-align: center;
    margin-left: auto;
    margin-right: auto; }
  .end-lg {
    -ms-flex-pack: end;
        justify-content: flex-end;
    text-align: right; }
  .start-lg {
    -ms-flex-pack: start;
        justify-content: flex-start;
    text-align: left; }
  .between-lg {
    -ms-flex-pack: justify;
        justify-content: space-between; }
  .around-lg {
    -ms-flex-pack: distribute;
        justify-content: space-around; }
  .shrink-lg {
    -ms-flex: 1 1 0%;
        flex: 1 1 0%; }
  .col-auto-lg {
    -ms-flex: 0 1 auto;
        flex: 0 1 auto;
    max-width: none; } }

.container {
  width: 100%;
  margin: 0 auto;
  padding-left: 10px;
  padding-right: 10px; }
  @media screen and (min-width: 64em) {
    .container {
      max-width: 1310px; } }
  @media screen and (min-width: 40em) {
    .container {
      padding-left: 20px;
      padding-right: 20px; } }
  @media screen and (min-width: 64em) {
    .container {
      padding-left: 15px;
      padding-right: 15px; } }

[class*="flexgal-"] {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-left: -5px;
  margin-right: -5px; }
  @media screen and (min-width: 40em) {
    [class*="flexgal-"] {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      margin-left: -10px;
      margin-right: -10px; } }
  @media screen and (min-width: 64em) {
    [class*="flexgal-"] {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      margin-left: -15px;
      margin-right: -15px; } }
  [class*="flexgal-"] > * {
    padding-left: 5px;
    padding-right: 5px; }
    @media screen and (min-width: 40em) {
      [class*="flexgal-"] > * {
        padding-left: 10px;
        padding-right: 10px; } }
    @media screen and (min-width: 64em) {
      [class*="flexgal-"] > * {
        padding-left: 15px;
        padding-right: 15px; } }

.flexgal-xs-2 > * {
  -ms-flex-preferred-size: 50%;
      flex-basis: 50%;
  max-width: 50%; }
  .flexgal-xs-2 > *.double {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    max-width: 100%; }
  .no-flexbox .flexgal-xs-2 > * {
    display: inline-block;
    vertical-align: top; }

.flexgal-xs-3 > * {
  -ms-flex-preferred-size: 33.33333%;
      flex-basis: 33.33333%;
  max-width: 33.33333%; }
  .flexgal-xs-3 > *.double {
    -ms-flex-preferred-size: 66.66667%;
        flex-basis: 66.66667%;
    max-width: 66.66667%; }
  .no-flexbox .flexgal-xs-3 > * {
    display: inline-block;
    vertical-align: top; }

.flexgal-xs-4 > * {
  -ms-flex-preferred-size: 25%;
      flex-basis: 25%;
  max-width: 25%; }
  .flexgal-xs-4 > *.double {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
  .no-flexbox .flexgal-xs-4 > * {
    display: inline-block;
    vertical-align: top; }

.flexgal-xs-5 > * {
  -ms-flex-preferred-size: 20%;
      flex-basis: 20%;
  max-width: 20%; }
  .flexgal-xs-5 > *.double {
    -ms-flex-preferred-size: 40%;
        flex-basis: 40%;
    max-width: 40%; }
  .no-flexbox .flexgal-xs-5 > * {
    display: inline-block;
    vertical-align: top; }

.flexgal-xs-6 > * {
  -ms-flex-preferred-size: 16.66667%;
      flex-basis: 16.66667%;
  max-width: 16.66667%; }
  .flexgal-xs-6 > *.double {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
  .no-flexbox .flexgal-xs-6 > * {
    display: inline-block;
    vertical-align: top; }

.flexgal-xs-7 > * {
  -ms-flex-preferred-size: 14.28571%;
      flex-basis: 14.28571%;
  max-width: 14.28571%; }
  .flexgal-xs-7 > *.double {
    -ms-flex-preferred-size: 28.57143%;
        flex-basis: 28.57143%;
    max-width: 28.57143%; }
  .no-flexbox .flexgal-xs-7 > * {
    display: inline-block;
    vertical-align: top; }

.flexgal-xs-8 > * {
  -ms-flex-preferred-size: 12.5%;
      flex-basis: 12.5%;
  max-width: 12.5%; }
  .flexgal-xs-8 > *.double {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
  .no-flexbox .flexgal-xs-8 > * {
    display: inline-block;
    vertical-align: top; }

@media screen and (min-width: 40em) {
  .flexgal-sm-2 > * {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
    .flexgal-sm-2 > *.double {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%;
      max-width: 100%; }
    .no-flexbox .flexgal-sm-2 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-sm-3 > * {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
    .flexgal-sm-3 > *.double {
      -ms-flex-preferred-size: 66.66667%;
          flex-basis: 66.66667%;
      max-width: 66.66667%; }
    .no-flexbox .flexgal-sm-3 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-sm-4 > * {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
    .flexgal-sm-4 > *.double {
      -ms-flex-preferred-size: 50%;
          flex-basis: 50%;
      max-width: 50%; }
    .no-flexbox .flexgal-sm-4 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-sm-5 > * {
    -ms-flex-preferred-size: 20%;
        flex-basis: 20%;
    max-width: 20%; }
    .flexgal-sm-5 > *.double {
      -ms-flex-preferred-size: 40%;
          flex-basis: 40%;
      max-width: 40%; }
    .no-flexbox .flexgal-sm-5 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-sm-6 > * {
    -ms-flex-preferred-size: 16.66667%;
        flex-basis: 16.66667%;
    max-width: 16.66667%; }
    .flexgal-sm-6 > *.double {
      -ms-flex-preferred-size: 33.33333%;
          flex-basis: 33.33333%;
      max-width: 33.33333%; }
    .no-flexbox .flexgal-sm-6 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-sm-7 > * {
    -ms-flex-preferred-size: 14.28571%;
        flex-basis: 14.28571%;
    max-width: 14.28571%; }
    .flexgal-sm-7 > *.double {
      -ms-flex-preferred-size: 28.57143%;
          flex-basis: 28.57143%;
      max-width: 28.57143%; }
    .no-flexbox .flexgal-sm-7 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-sm-8 > * {
    -ms-flex-preferred-size: 12.5%;
        flex-basis: 12.5%;
    max-width: 12.5%; }
    .flexgal-sm-8 > *.double {
      -ms-flex-preferred-size: 25%;
          flex-basis: 25%;
      max-width: 25%; }
    .no-flexbox .flexgal-sm-8 > * {
      display: inline-block;
      vertical-align: top; } }

@media screen and (min-width: 64em) {
  .flexgal-md-2 > * {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
    .flexgal-md-2 > *.double {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%;
      max-width: 100%; }
    .no-flexbox .flexgal-md-2 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-md-3 > * {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
    .flexgal-md-3 > *.double {
      -ms-flex-preferred-size: 66.66667%;
          flex-basis: 66.66667%;
      max-width: 66.66667%; }
    .no-flexbox .flexgal-md-3 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-md-4 > * {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
    .flexgal-md-4 > *.double {
      -ms-flex-preferred-size: 50%;
          flex-basis: 50%;
      max-width: 50%; }
    .no-flexbox .flexgal-md-4 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-md-5 > * {
    -ms-flex-preferred-size: 20%;
        flex-basis: 20%;
    max-width: 20%; }
    .flexgal-md-5 > *.double {
      -ms-flex-preferred-size: 40%;
          flex-basis: 40%;
      max-width: 40%; }
    .no-flexbox .flexgal-md-5 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-md-6 > * {
    -ms-flex-preferred-size: 16.66667%;
        flex-basis: 16.66667%;
    max-width: 16.66667%; }
    .flexgal-md-6 > *.double {
      -ms-flex-preferred-size: 33.33333%;
          flex-basis: 33.33333%;
      max-width: 33.33333%; }
    .no-flexbox .flexgal-md-6 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-md-7 > * {
    -ms-flex-preferred-size: 14.28571%;
        flex-basis: 14.28571%;
    max-width: 14.28571%; }
    .flexgal-md-7 > *.double {
      -ms-flex-preferred-size: 28.57143%;
          flex-basis: 28.57143%;
      max-width: 28.57143%; }
    .no-flexbox .flexgal-md-7 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-md-8 > * {
    -ms-flex-preferred-size: 12.5%;
        flex-basis: 12.5%;
    max-width: 12.5%; }
    .flexgal-md-8 > *.double {
      -ms-flex-preferred-size: 25%;
          flex-basis: 25%;
      max-width: 25%; }
    .no-flexbox .flexgal-md-8 > * {
      display: inline-block;
      vertical-align: top; } }

@media screen and (min-width: 80em) {
  .flexgal-lg-2 > * {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
    max-width: 50%; }
    .flexgal-lg-2 > *.double {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%;
      max-width: 100%; }
    .no-flexbox .flexgal-lg-2 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-lg-3 > * {
    -ms-flex-preferred-size: 33.33333%;
        flex-basis: 33.33333%;
    max-width: 33.33333%; }
    .flexgal-lg-3 > *.double {
      -ms-flex-preferred-size: 66.66667%;
          flex-basis: 66.66667%;
      max-width: 66.66667%; }
    .no-flexbox .flexgal-lg-3 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-lg-4 > * {
    -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
    max-width: 25%; }
    .flexgal-lg-4 > *.double {
      -ms-flex-preferred-size: 50%;
          flex-basis: 50%;
      max-width: 50%; }
    .no-flexbox .flexgal-lg-4 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-lg-5 > * {
    -ms-flex-preferred-size: 20%;
        flex-basis: 20%;
    max-width: 20%; }
    .flexgal-lg-5 > *.double {
      -ms-flex-preferred-size: 40%;
          flex-basis: 40%;
      max-width: 40%; }
    .no-flexbox .flexgal-lg-5 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-lg-6 > * {
    -ms-flex-preferred-size: 16.66667%;
        flex-basis: 16.66667%;
    max-width: 16.66667%; }
    .flexgal-lg-6 > *.double {
      -ms-flex-preferred-size: 33.33333%;
          flex-basis: 33.33333%;
      max-width: 33.33333%; }
    .no-flexbox .flexgal-lg-6 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-lg-7 > * {
    -ms-flex-preferred-size: 14.28571%;
        flex-basis: 14.28571%;
    max-width: 14.28571%; }
    .flexgal-lg-7 > *.double {
      -ms-flex-preferred-size: 28.57143%;
          flex-basis: 28.57143%;
      max-width: 28.57143%; }
    .no-flexbox .flexgal-lg-7 > * {
      display: inline-block;
      vertical-align: top; }
  .flexgal-lg-8 > * {
    -ms-flex-preferred-size: 12.5%;
        flex-basis: 12.5%;
    max-width: 12.5%; }
    .flexgal-lg-8 > *.double {
      -ms-flex-preferred-size: 25%;
          flex-basis: 25%;
      max-width: 25%; }
    .no-flexbox .flexgal-lg-8 > * {
      display: inline-block;
      vertical-align: top; } }

select {
  height: 40px;
  padding: 8px;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-size: inherit;
  font-family: inherit;
  line-height: normal;
  color: #9a9a9a;
  background-color: #fff;
  border-radius: 8px;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%2851, 51, 51%29"></polygon></svg>');
  background-size: 9px 6px;
  background-position: right 0.5rem center;
  background-repeat: no-repeat; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto; }

input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 40px;
  padding: 8px;
  margin: 0 0 1rem;
  color: #9a9a9a;
  font-family: inherit;
  font-size: inherit;
  border: 1px solid #cacaca;
  background-color: #fff;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus,
  textarea:focus {
    border: 1px solid #8a8a8a;
    background-color: #fff;
    outline: none;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

[type='submit'],
[type='button'] {
  border-radius: 8px;
  -webkit-appearance: none;
  -moz-appearance: none; }

input[type='search'] {
  box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline; }

/**
 * Toggle Switch Globals
 *
 * All switches should take on the class `c-hamburger` as well as their
 * variant that will give them unique properties. This class is an overview
 * class that acts as a reset for all versions of the icon.
 */
.c-hamburger {
  display: block;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  width: 50px;
  height: 50px;
  font-size: 0;
  text-indent: -9999px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-shadow: none;
  border-radius: none;
  border: none;
  cursor: pointer;
  transition: background 0.3s; }

.c-hamburger:focus {
  outline: none; }

.c-hamburger span {
  display: block;
  position: absolute;
  top: 23px;
  left: 10px;
  right: 10px;
  height: 4px;
  background: white; }

.c-hamburger span::before,
.c-hamburger span::after {
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #fff;
  content: ""; }

.c-hamburger span::before {
  top: -9px; }

.c-hamburger span::after {
  bottom: -9px; }

/**
 * Style 1
 *
 * Rotating hamburger icon (rot), that simply rotates 90 degrees when activated.
 * Nothing too fancy, simple transition.
 */
.c-hamburger--rot {
  background-color: #28aadc; }

.c-hamburger--rot span {
  transition: transform 0.3s; }

/* active state, i.e. menu open */
.c-hamburger--rot.is-active {
  background-color: #166888; }

.c-hamburger--rot.is-active span {
  -ms-transform: rotate(90deg);
      transform: rotate(90deg); }

/**
 * Style 2
 *
 * Hamburger to "x" (htx). Takes on a hamburger shape, bars slide
 * down to center and transform into an "x".
 */
.c-hamburger--htx {
  background-color: transparent; }

.c-hamburger--htx span {
  transition: background 0s 0.3s; }

.c-hamburger--htx span::before,
.c-hamburger--htx span::after {
  transition-duration: 0.3s, 0.3s;
  transition-delay: 0.3s, 0s; }

.c-hamburger--htx span::before {
  transition-property: top, transform; }

.c-hamburger--htx span::after {
  transition-property: bottom, transform; }

/* active state, i.e. menu open */
.c-hamburger--htx.is-active {
  background-color: #cb0032; }

.c-hamburger--htx.is-active span {
  background: none; }

.c-hamburger--htx.is-active span::before {
  top: 0;
  -ms-transform: rotate(45deg);
      transform: rotate(45deg); }

.c-hamburger--htx.is-active span::after {
  bottom: 0;
  -ms-transform: rotate(-45deg);
      transform: rotate(-45deg); }

.c-hamburger--htx.is-active span::before,
.c-hamburger--htx.is-active span::after {
  transition-delay: 0s, 0.3s; }

/**
 * Style 3
 *
 * Hamburger to left-arrow (htla). Hamburger menu transforms to a left-pointing
 * arrow. Usually indicates an off canvas menu sliding in from left that
 * will be close on re-click of the icon.
 */
.c-hamburger--htla {
  background-color: #32dc64; }

.c-hamburger--htla span {
  transition: transform 0.3s; }

.c-hamburger--htla span::before {
  -ms-transform-origin: top right;
      transform-origin: top right;
  transition: transform 0.3s, width 0.3s, top 0.3s; }

.c-hamburger--htla span::after {
  -ms-transform-origin: bottom right;
      transform-origin: bottom right;
  transition: transform 0.3s, width 0.3s, bottom 0.3s; }

/* active state, i.e. menu open */
.c-hamburger--htla.is-active {
  background-color: #19903c; }

.c-hamburger--htla.is-active span {
  -ms-transform: rotate(180deg);
      transform: rotate(180deg); }

.c-hamburger--htla.is-active span::before,
.c-hamburger--htla.is-active span::after {
  width: 50%; }

.c-hamburger--htla.is-active span::before {
  top: 0;
  -ms-transform: translateX(19px) translateY(2px) rotate(45deg);
      transform: translateX(19px) translateY(2px) rotate(45deg); }

.c-hamburger--htla.is-active span::after {
  bottom: 0;
  -ms-transform: translateX(19px) translateY(-2px) rotate(-45deg);
      transform: translateX(19px) translateY(-2px) rotate(-45deg); }

/**
 * Style 4
 *
 * Hamburger to right-arrow (htra). Hamburger menu transforms to a
 * right-pointing arrow. Usually indicates an off canvas menu sliding in from
 * right that will be close on re-click of the icon.
 */
.c-hamburger--htra {
  background-color: #ff9650; }

.c-hamburger--htra span {
  transition: transform 0.3s; }

.c-hamburger--htra span::before {
  -ms-transform-origin: top left;
      transform-origin: top left;
  transition: transform 0.3s, width 0.3s, top 0.3s; }

.c-hamburger--htra span::after {
  -ms-transform-origin: bottom left;
      transform-origin: bottom left;
  transition: transform 0.3s, width 0.3s, bottom 0.3s; }

/* active state, i.e. menu open */
.c-hamburger--htra.is-active {
  background-color: #e95d00; }

.c-hamburger--htra.is-active span {
  -ms-transform: rotate(180deg);
      transform: rotate(180deg); }

.c-hamburger--htra.is-active span::before,
.c-hamburger--htra.is-active span::after {
  width: 50%; }

.c-hamburger--htra.is-active span::before {
  top: 0;
  -ms-transform: translateX(-4px) translateY(2px) rotate(-45deg);
      transform: translateX(-4px) translateY(2px) rotate(-45deg); }

.c-hamburger--htra.is-active span::after {
  bottom: 0;
  -ms-transform: translateX(-4px) translateY(-2px) rotate(45deg);
      transform: translateX(-4px) translateY(-2px) rotate(45deg); }

@media screen and (max-width: 63.9375em) {
  body.menu--open {
    overflow: hidden; }
  .nav-header {
    background-color: #000;
    position: fixed;
    z-index: 1000;
    top: 0;
    right: 0;
    left: 0;
    height: 100vh;
    overflow: hidden;
    overflow-y: auto;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    transform: translate3d(-100%, 0, 0);
    transition: transform 0.3s;
    padding: 2em 0; }
    .menu--open .nav-header {
      transform: translate3d(0, 0, 0); }
  .menu-header {
    list-style: none;
    margin: 0;
    padding: 0; }
    .menu-header a {
      display: block;
      padding: 1em 2.5em 1em 1.5em;
      display: block; } }

.container_pdp {
  max-width: 980px; }

.col-sm-skrink {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto; }

.col-sm-grow {
  -ms-flex: 1 0 auto;
      flex: 1 0 auto; }

.site-header {
  margin-bottom: 30px; }

h3 {
  font-size: 17px;
  color: #9a9a9a; }

.lead {
  font-size: 17px;
  color: #fff; }

.site-page {
  margin: 30px 0; }

.nav-header-col {
  -ms-flex-order: 1;
      order: 1; }
  @media screen and (min-width: 64em) {
    .nav-header-col {
      -ms-flex-order: 0;
          order: 0;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto; } }

@media screen and (min-width: 64em) {
  .col-menu-langues {
    -ms-flex: 0 1 auto;
        flex: 0 1 auto; } }

.logo-col {
  -ms-flex: 0 1 70%;
      flex: 0 1 70%; }
  @media screen and (min-width: 64em) {
    .logo-col {
      -ms-flex: 1 0 30%;
          flex: 1 0 30%;
      max-width: 30%; } }

.nav-toggle-col {
  -ms-flex: 0 1 auto;
      flex: 0 1 auto; }
  @media screen and (min-width: 64em) {
    .nav-toggle-col {
      display: none; }
      .no-flexbox .nav-toggle-col {
        display: none; } }

@media screen and (min-width: 64em) {
  .nav-wrapper-col {
    -ms-flex: 1 0 70%;
        flex: 1 0 70%;
    max-width: 70%; } }

.action--close {
  position: relative;
  display: inline-block;
  width: 25px;
  height: 25px;
  overflow: hidden;
  background: none;
  border-radius: 50%;
  position: absolute;
  top: 1em;
  right: 1em; }
  .action--close::before, .action--close::after {
    content: '';
    position: absolute;
    height: 2px;
    width: 80%;
    top: 50%;
    left: 50%;
    background: #666;
    border-radius: 5px; }
  .action--close::before {
    -ms-transform: translate(-50%, -50%) rotate(45deg);
        transform: translate(-50%, -50%) rotate(45deg); }
  .action--close::after {
    -ms-transform: translate(-50%, -50%) rotate(-45deg);
        transform: translate(-50%, -50%) rotate(-45deg); }

.menu-header a {
  text-transform: uppercase;
  color: #fff; }

.menu-header li.active a {
  color: #d50000; }
  @media screen and (max-width: 63.9375em) {
    .menu-header li.active a {
      font-weight: bold; } }

.menu-header li.menu-header--important a {
  margin: 0 10px;
  background-color: #d50000;
  border-radius: 10px; }
  .menu-header li.menu-header--important a:hover {
    color: #fff; }

.menu-langues {
  -ms-flex-order: -1;
      order: -1;
  list-style: none;
  display: -ms-flexbox;
  display: flex; }

@media screen and (max-width: 63.9375em) {
  .livestats {
    padding: 1em;
    text-align: center; } }

.livestats span {
  color: #d50000; }

@media screen and (min-width: 64em) {
  .action--close {
    display: none; }
  .nav-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .nav-header {
      display: -ms-flexbox;
      display: flex;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
      -ms-flex-pack: end;
          justify-content: flex-end; } }

@media screen and (min-width: 64em) {
  .livestats {
    width: 100%;
    -ms-flex: 1 0 100%;
        flex: 1 0 100%; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .livestats {
      padding-right: 80px;
      text-align: right; } }

@media screen and (min-width: 64em) {
  .menu-header {
    list-style: none;
    margin: 0;
    padding: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: column wrap;
        flex-flow: column wrap; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .menu-header {
      -ms-flex-direction: row;
          flex-direction: row;
      margin-left: -5px; } }

@media screen and (min-width: 64em) {
    .menu-header li {
      font-size: 20px;
      text-transform: uppercase; } }
    @media screen and (min-width: 64em) and (min-width: 64em) {
      .menu-header li {
        font-size: 14px; } }
    @media screen and (min-width: 64em) and (min-width: 80em) {
      .menu-header li {
        font-size: 20px; } }

@media screen and (min-width: 64em) {
    .menu-header a {
      display: block;
      padding: 5px;
      color: #fff;
      line-height: 1; }
      .menu-header a:hover {
        color: #d50000; }
    .menu-header li.active a {
      color: #d50000; }
    .menu-header li.menu-header--important {
      margin: 0 5px; }
      .menu-header li.menu-header--important a {
        background-color: #d50000;
        border-radius: 10px;
        margin: 0; }
        .menu-header li.menu-header--important a:hover {
          color: #fff; }
  .menu-langues {
    list-style: none;
    margin: 0;
    padding: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-order: -1;
        order: -1; } }
  @media screen and (min-width: 64em) and (min-width: 64em) {
    .menu-langues {
      -ms-flex-order: 0;
          order: 0; } }

[class^="flexgal-"] {
  list-style: none;
  margin-bottom: 0; }

.gal img, [class^="flexgal-"] img {
  min-width: 100%;
  border-radius: 10px;
  margin-bottom: 10px; }
  @media screen and (min-width: 40em) {
    .gal img, [class^="flexgal-"] img {
      margin-bottom: 20px; } }
  @media screen and (min-width: 64em) {
    .gal img, [class^="flexgal-"] img {
      margin-bottom: 30px; } }

.col-40p {
  -ms-flex: 1 0 40%;
      flex: 1 0 40%; }

.col-60p {
  -ms-flex: 1 0 60%;
      flex: 1 0 60%; }

.gal img {
  border-radius: 10px; }

img.rd {
  border-radius: 10px; }

.mb, .page-title, .section-header {
  margin-bottom: 1em; }
  @media screen and (min-width: 40em) {
    .mb, .page-title, .section-header {
      margin-bottom: 20px; } }
  @media screen and (min-width: 64em) {
    .mb, .page-title, .section-header {
      margin-bottom: 10px; } }

h1 span, h2 span, h3 span, h4 span {
  color: #d50000; }

.page-title {
  font-size: 18px;
  line-height: 1.3; }
  .page-title.big {
    font-size: 24px; }

.navigation a {
  color: #fff;
  text-transform: uppercase;
  font-size: 30px;
  display: inline-block;
  line-height: 1.1; }

.navigation a.next img {
  margin-left: .4em; }

.section--modeles h3.section-desc {
  margin-bottom: 30px; }

.w280p {
  width: 280px;
  max-width: 280px; }

.col-about1 {
  width: 510px;
  max-width: 510px; }

.section--filmo h3 {
  line-height: 1.5; }

@media screen and (min-width: 64em) {
  .cover-wrapper {
    position: relative; }
  .cover-text {
    position: absolute; }
  .cover-text-right {
    top: 0;
    right: 0;
    text-align: right; }
  .cover-text-left {
    top: 0;
    left: 0; }
  .cover-title {
    color: #fff;
    font-size: 18px;
    line-height: 1.3; }
  .cover--supports .cover-text {
    max-width: 240px; } }

.cover--photos .cover-text {
  max-width: 290px; }

.cover--photos h3 {
  line-height: 1.3;
  margin-bottom: 1em; }

.info {
  font-size: 17px;
  color: #FFF; }

.puce {
  list-style: none;
  margin: 0 0 20px;
  color: #fff;
  font-size: 17px; }
  .puce li {
    padding-left: 30px;
    background: url("../img/puce.png") no-repeat left center; }

.prices {
  list-style: none;
  margin: 0 0 40px; }

.price {
  font-size: 30px;
  font-weight: bold;
  color: #fff;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-align: end;
      align-items: flex-end; }
  .price span {
    color: #fff;
    font-size: 16px;
    text-transform: none;
    font-weight: normal;
    margin-left: 1em; }

.form-group {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .form-group label {
    width: 30%;
    color: #fff; }
  .form-group input {
    max-width: 70%; }

button {
  text-transform: uppercase;
  color: #d50000;
  font-size: 30px;
  font-weight: bold; }

/* PDP2FORM
=================================================== */
.form_pdp .form-group label {
  width: 100%;
  display: block;
  text-transform: uppercase;
  margin-bottom: 1em;
  font-size: 19px; }

.form_pdp .form-group input {
  width: 100%;
  max-width: none; }

.btn_green {
  background-color: #37b523;
  color: #FFF;
  width: 100%;
  font-weight: normal;
  padding: .5em;
  font-size: 19px; font-weight:bold;}
  .btn_green:hover {
    background-color: #4ad833; }
  .btn_green small {
    display: block;
    font-size: 12px;
    position: relative;
    text-transform: none;
    max-width: 300px;
    margin: 5px auto; }
    .btn_green small:before, .btn_green small:after {
      content: "";
      width: 12px;
      height: 13px;
      position: absolute;
      left: 0;
      background: url("https://www.explicite-art.com/join/tpl/main/images/cadenas.png"); }
    .btn_green small:after {
      right: 0;
      left: auto; }

.select .option {
  background-color: #FFF;
  color: #000;
  padding: .5em;
  padding-left: 50px;
  margin-bottom: 1.8em;
  position: relative;
  border-radius: 10px;
  cursor: pointer; }
  .select .option:before {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid #000;
    border-radius: 50%;
    left: 10px;
    top: 50%;
    -ms-transform: translateY(-50%);
        transform: translateY(-50%); }
  .select .option.selected:before {
    background-color: #4ad833; }

.select .option_label small {
  display: block; }

.select .option_price {
  position: absolute;
  right: 15px;
  top: 5px;
  font-size: 20px; }
  
.option_month {   
  top: 5px;
  font-size: 13px; }

.box {
  background-color: #fff;
  padding: 1em;
  border-radius: 10px;
  margin-bottom: 20px;
  color: #000; }
  .box h3 {
    color: #d50000;
    font-size: 18px;
    font-weight: bold; }
  .box .lead {
    color: #000;
    font-size: 18px;
    text-transform: uppercase; }

.no-bullet {
  list-style: none;
  margin: 0;
  padding: 0; }

p.small {
  font-size: 14px; }

.t-white {
  color: #FFF; }

.list-inline {
  text-align: center; }
  .list-inline li {
    display: inline-block;
    padding: .5em; }

.site-footer {
  font-size: 12px; }
  .site-footer a {
    color: #FFF; }
    .site-footer a:hover {
      color: #d50000; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9jb25maWcuc2NzcyIsIm1vZHVsZXMvaGFtYnVyZ2VyLnNjc3MiLCJtb2R1bGVzL21lbnUuc2NzcyIsIl9yZXNldC5zY3NzIiwibWFpbi5jc3MiLCJ1dGlsL19oZWxwZXJzLnNjc3MiLCJ1dGlsL19icmVha3BvaW50LnNjc3MiLCJ0eXBvL19iYXNlLnNjc3MiLCJ1dGlsL191bml0LnNjc3MiLCJncmlkL19mbGV4Z3JpZDIuc2NzcyIsImdyaWQvX2ZsZXhnYWwuc2NzcyIsImZvcm0vX3NlbGVjdC5zY3NzIiwiZm9ybS9fdGV4dC5zY3NzIiwidXRpbC9fbWl4aW5zLnNjc3MiLCJmb3JtL19jaGVja2JveC5zY3NzIiwibWFpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLGtFQUFZO0FDUlo7OztnRkFHZ0Y7QUNIaEY7O0tBRUs7QUFFTCxlQUFlO0FDMkVmLDRFQUE0RTtBQUUxRTs7OztLQUlHO0FBRUg7RUFDRSx3QkFBd0I7RUFBRSxPQUFPO0VBQ2pDLDJCQUEyQjtFQUFFLE9BQU87RUFDcEMsK0JBQStCO0VBQUUsT0FBTyxFQUN6Qzs7QUFFRDs7S0FFRztBQUVIO0VBQ0UsVUFBVSxFQUNYOztBQUVEO2tGQUNnRjtBQUVoRjs7Ozs7S0FLRztBQUVIOzs7Ozs7Ozs7Ozs7O0VBYUUsZUFBZSxFQUNoQjs7QUFFRDs7O0tBR0c7QUFFSDs7OztFQUlFLHNCQUFzQjtFQUFFLE9BQU87RUFDL0IseUJBQXlCO0VBQUUsT0FBTyxFQUNuQzs7QUFFRDs7O0tBR0c7QUFFSDtFQUNFLGNBQWM7RUFDZCxVQUFVLEVBQ1g7O0FBRUQ7OztLQUdHO0FDNUVMOztFRGdGSSxjQUFjLEVBQ2Y7O0FBRUQ7a0ZBQ2dGO0FBRWhGOztLQUVHO0FBRUg7RUFDRSw4QkFBOEIsRUFDL0I7O0FBRUQ7OztLQUdHO0FBRUg7O0VBRUUsV0FBVyxFQUNaOztBQUVEO2tGQUNnRjtBQUVoRjs7S0FFRztBQUVIO0VBQ0UsMEJBQTBCLEVBQzNCOztBQUVEOztLQUVHO0FBRUg7O0VBRUUs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Q1osU0FBUztFQUNULGdCQUFnQixFQUNqQjs7QUFHSDtFQUNFLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2Isb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixZQUFZLEVBV2I7RUFoQkQ7SUFPSSxlZjFoQm1CO0llMmhCbkIsZ0JBQWdCO0lBQ2hCLGtCQUFrQixFQUNuQjtFQVZIO0lBWUksWUFBWTtJQUNaLGdCQUFnQjtJQUNoQiwwQkFBMEIsRUFDM0I7O0FBRUg7RUFDRSxpQkFBaUI7RUFDakIsVUFBVTtFQUNWLFdBQVcsRUFDWjs7QUFFRDtFQUNFLGdCQUFnQixFQUNqQjs7QUFDRDtFQUNFLFlBQVksRUFDYjs7QUFDRDtFQUNFLG1CQUFtQixFQU1wQjtFQVBEO0lBR0ksc0JBQXNCO0lBQ3RCLGNBQWMsRUFDZjs7QUFHSDtFQUNFLGdCQUFnQixFQU9qQjtFQVJEO0lBR0ksWUFBWSxFQUliO0lBUEg7TUFLTSxlZjdqQmlCLEVlOGpCbEIiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAxLiBDb3VsZXVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiRwcmltYXJ5LWNvbG9yOiAjZDUwMDAwO1xyXG4kc2Vjb25kYXJ5LWNvbG9yOiAjOWE5YTlhO1xyXG5cclxuLy8gMi4gU3R5bGUgZ2xvYmFsICYgVFlQT1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5AaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TGF0bzo0MDAsNzAwKTtcclxuJGdsb2JhbC1mb250LXNpemU6MTZweDtcclxuJGJvZHktZm9udC1mYW1pbHk6IENlbnR1cnkgR290aGljLENlbnR1cnlHb3RoaWMsQXBwbGVHb3RoaWMsXCJMYXRvXCIsIHNhbnMtc2VyaWY7XHJcbiRoZWFkZXItZm9udC1mYW1pbHk6IENlbnR1cnkgR290aGljLCBDZW50dXJ5R290aGljLCAgQXBwbGVHb3RoaWMsXCJMYXRvXCIsc2Fucy1zZXJpZjsgO1xyXG4kaGVhZGVyLXNpemVzOiAoXHJcbiAgeHM6IChcclxuICAgICdoMSc6IDI0LFxyXG4gICAgJ2gyJzogMjAsXHJcbiAgICAnaDMnOiAxOSxcclxuICAgICdoNCc6IDE4LFxyXG4gICAgJ2g1JzogMTcsXHJcbiAgICAnaDYnOiAxNixcclxuICApLFxyXG4gIHNtOiAoXHJcbiAgICAnaDEnOiAzNCxcclxuICAgICdoMic6IDMyLFxyXG4gICAgJ2gzJzogMjYsXHJcbiAgICAnaDQnOiAxNixcclxuICAgICdoNSc6IDE2LFxyXG4gICAgJ2g2JzogMTQsXHJcbiAgKSxcclxuKSAhZGVmYXVsdDtcclxuXHJcbiRoZWFkZXItZm9udC13ZWlnaHQ6bm9ybWFsO1xyXG4kaGVhZGVyLXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcclxuJGhlYWRlci1jb2xvcjojZmZmO1xyXG4kYm9keS1mb250LXdlaWdodDogbm9ybWFsO1xyXG4kYm9keS1saW5laGVpZ2h0OiAxLjU7XHJcbiRib2R5LWZvbnQtY29sb3I6ICM5YTlhOWE7XHJcbiRib2R5LWJhY2tncm91bmQ6ICMwMDA7XHJcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xyXG4kZ2xvYmFsLXJhZGl1czo4cHg7XHJcblxyXG5cclxuXHJcbi8vIDIuIEJyZWFrcG9pbnRzXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYnJlYWtwb2ludHM6IChcclxuICB4czogMCxcclxuICBzbTogNjQwcHgsXHJcbiAgbWQ6IDEwMjRweCxcclxuICBsZzogMTI4MHB4LFxyXG4pO1xyXG5cclxuLy8gMy4gR1JJRFxyXG4vLyAtLS0tLS0tXHJcbiRncmlkLWNvbC1ndXR0ZXI6IChcclxuICB4czogMTBweCxcclxuICBzbTogMjBweCxcclxuXHRtZDogMzBweFxyXG4pO1xyXG5cclxuJGNvbnRhaW5lci1wYWRkOiAoXHJcblxyXG5cdHhzOjEwcHgsXHJcbiAgc206MjBweCxcclxuXHRtZDoxNXB4LFxyXG4pO1xyXG5cclxuJGNvbnRhaW5lci1tYXh3aWR0aDogKFxyXG4gbWQ6MTMxMHB4LFxyXG5cclxuKTtcclxuXHJcbiRzaXRlLW1heHdpZHRoOjEzMTBweDtcclxuJGZhbGxiYWNraWU5OnRydWU7XHJcblxyXG5cclxuLy8gNC4gZm9ybVxyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG4kaW5wdXQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XHJcblxyXG5cclxuLy8gNS4gTW9kdWxlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG4vL21vZGFsXHJcbiRtb2RhbC1vcGFjaXR5Oi45NTtcclxuJG1vZGFsLWJnOiAkcHJpbWFyeS1jb2xvcjtcclxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBIQU1CVVJHRVIgSUNPTlMgQ09NUE9ORU5UXHJcbmh0dHA6Ly9jYWxsbWVuaWNrLmNvbS9wb3N0L2FuaW1hdGluZy1jc3Mtb25seS1oYW1idXJnZXItbWVudS1pY29uc1xyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLy8gdmFyc1xyXG5cclxuJGhhbS1idXR0b24td2lkdGg6IDUwcHg7ICAgICAgICAgICAgICAgICAgICAvLyBUaGUgd2lkdGggb2YgdGhlIGJ1dHRvbiBhcmVhXHJcbiRoYW0tYnV0dG9uLWhlaWdodDogNTBweDsgICAgICAgICAgICAgICAgICAgLy8gVGhlIGhlaWdodCBvZiB0aGUgYnV0dG9uIGFyZWFcclxuJGhhbS1iYXItdGhpY2tuZXNzOiA0cHg7ICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdGhpY2tuZXNzIG9mIHRoZSBidXR0b24gYmFyc1xyXG4kaGFtLWJ1dHRvbi1wYWQ6IDEwcHg7ICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBsZWZ0L3JpZ2h0IHBhZGRpbmcgYmV0d2VlbiBidXR0b24gYXJlYSBhbmQgYmFycy5cclxuJGhhbS1idXR0b24tYmFyLXNwYWNlOiA1cHg7ICAgICAgICAgICAgICAgIC8vIFRoZSBzcGFjaW5nIGJldHdlZW4gYnV0dG9uIGJhcnNcclxuJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb246IDAuM3M7ICAgICAvLyBUaGUgdHJhbnNpdGlvbiBkdXJhdGlvblxyXG5cclxuQG1peGluIGhhbWJ1cmdlcigpIHtcclxuLyoqXHJcbiAqIFRvZ2dsZSBTd2l0Y2ggR2xvYmFsc1xyXG4gKlxyXG4gKiBBbGwgc3dpdGNoZXMgc2hvdWxkIHRha2Ugb24gdGhlIGNsYXNzIGBjLWhhbWJ1cmdlcmAgYXMgd2VsbCBhcyB0aGVpclxyXG4gKiB2YXJpYW50IHRoYXQgd2lsbCBnaXZlIHRoZW0gdW5pcXVlIHByb3BlcnRpZXMuIFRoaXMgY2xhc3MgaXMgYW4gb3ZlcnZpZXdcclxuICogY2xhc3MgdGhhdCBhY3RzIGFzIGEgcmVzZXQgZm9yIGFsbCB2ZXJzaW9ucyBvZiB0aGUgaWNvbi5cclxuICovXHJcblxyXG4uYy1oYW1idXJnZXIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdpZHRoOiAkaGFtLWJ1dHRvbi13aWR0aDtcclxuICBoZWlnaHQ6ICRoYW0tYnV0dG9uLWhlaWdodDtcclxuICBmb250LXNpemU6IDA7XHJcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICBhcHBlYXJhbmNlOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYm9yZGVyLXJhZGl1czogbm9uZTtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb247XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlcjpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyIHNwYW4ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6ICgkaGFtLWJ1dHRvbi1oZWlnaHQgLyAyKSAtICgkaGFtLWJhci10aGlja25lc3MgLyAyKTtcclxuICBsZWZ0OiAkaGFtLWJ1dHRvbi1wYWQ7XHJcbiAgcmlnaHQ6ICRoYW0tYnV0dG9uLXBhZDtcclxuICBoZWlnaHQ6ICRoYW0tYmFyLXRoaWNrbmVzcztcclxuICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXIgc3Bhbjo6YmVmb3JlLFxyXG4uYy1oYW1idXJnZXIgc3Bhbjo6YWZ0ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogJGhhbS1iYXItdGhpY2tuZXNzO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgY29udGVudDogXCJcIjtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyIHNwYW46OmJlZm9yZSB7XHJcbiAgdG9wOiAtJGhhbS1iYXItdGhpY2tuZXNzIC0gJGhhbS1idXR0b24tYmFyLXNwYWNlO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXIgc3Bhbjo6YWZ0ZXIge1xyXG4gIGJvdHRvbTogLSRoYW0tYmFyLXRoaWNrbmVzcyAtICRoYW0tYnV0dG9uLWJhci1zcGFjZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFN0eWxlIDFcclxuICpcclxuICogUm90YXRpbmcgaGFtYnVyZ2VyIGljb24gKHJvdCksIHRoYXQgc2ltcGx5IHJvdGF0ZXMgOTAgZGVncmVlcyB3aGVuIGFjdGl2YXRlZC5cclxuICogTm90aGluZyB0b28gZmFuY3ksIHNpbXBsZSB0cmFuc2l0aW9uLlxyXG4gKi9cclxuXHJcbi5jLWhhbWJ1cmdlci0tcm90IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDAsMTcwLDIyMCk7XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0tcm90IHNwYW4ge1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbjtcclxufVxyXG5cclxuLyogYWN0aXZlIHN0YXRlLCBpLmUuIG1lbnUgb3BlbiAqL1xyXG5cclxuLmMtaGFtYnVyZ2VyLS1yb3QuaXMtYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4ocmdiKDQwLDE3MCwyMjApLCAyMCUpO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLXJvdC5pcy1hY3RpdmUgc3BhbiB7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG59XHJcblxyXG4vKipcclxuICogU3R5bGUgMlxyXG4gKlxyXG4gKiBIYW1idXJnZXIgdG8gXCJ4XCIgKGh0eCkuIFRha2VzIG9uIGEgaGFtYnVyZ2VyIHNoYXBlLCBiYXJzIHNsaWRlXHJcbiAqIGRvd24gdG8gY2VudGVyIGFuZCB0cmFuc2Zvcm0gaW50byBhbiBcInhcIi5cclxuICovXHJcblxyXG4uYy1oYW1idXJnZXItLWh0eCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odHggc3BhbiB7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwcyAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbjtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odHggc3Bhbjo6YmVmb3JlLFxyXG4uYy1oYW1idXJnZXItLWh0eCBzcGFuOjphZnRlciB7XHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb24sICRoYW0tYnV0dG9uLXRyYW5zaXN0aW9uLWR1cmF0aW9uO1xyXG4gIHRyYW5zaXRpb24tZGVsYXk6ICRoYW0tYnV0dG9uLXRyYW5zaXN0aW9uLWR1cmF0aW9uLCAwcztcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odHggc3Bhbjo6YmVmb3JlIHtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0b3AsIHRyYW5zZm9ybTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odHggc3Bhbjo6YWZ0ZXIge1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgdHJhbnNmb3JtO1xyXG59XHJcblxyXG4vKiBhY3RpdmUgc3RhdGUsIGkuZS4gbWVudSBvcGVuICovXHJcblxyXG4uYy1oYW1idXJnZXItLWh0eC5pcy1hY3RpdmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihyZ2IoMjU1LDUwLDEwMCksIDIwJSk7XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHR4LmlzLWFjdGl2ZSBzcGFuIHtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0eC5pcy1hY3RpdmUgc3Bhbjo6YmVmb3JlIHtcclxuICB0b3A6IDA7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0eC5pcy1hY3RpdmUgc3Bhbjo6YWZ0ZXIge1xyXG4gIGJvdHRvbTogMDtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0eC5pcy1hY3RpdmUgc3Bhbjo6YmVmb3JlLFxyXG4uYy1oYW1idXJnZXItLWh0eC5pcy1hY3RpdmUgc3Bhbjo6YWZ0ZXIge1xyXG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFN0eWxlIDNcclxuICpcclxuICogSGFtYnVyZ2VyIHRvIGxlZnQtYXJyb3cgKGh0bGEpLiBIYW1idXJnZXIgbWVudSB0cmFuc2Zvcm1zIHRvIGEgbGVmdC1wb2ludGluZ1xyXG4gKiBhcnJvdy4gVXN1YWxseSBpbmRpY2F0ZXMgYW4gb2ZmIGNhbnZhcyBtZW51IHNsaWRpbmcgaW4gZnJvbSBsZWZ0IHRoYXRcclxuICogd2lsbCBiZSBjbG9zZSBvbiByZS1jbGljayBvZiB0aGUgaWNvbi5cclxuICovXHJcblxyXG4uYy1oYW1idXJnZXItLWh0bGEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MCwyMjAsMTAwKTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odGxhIHNwYW4ge1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbjtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odGxhIHNwYW46OmJlZm9yZSxcclxuLmMtaGFtYnVyZ2VyLS1odGxhIHNwYW46OmFmdGVyIHtcclxuXHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHRsYSBzcGFuOjpiZWZvcmUge1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb24sIHdpZHRoICRoYW0tYnV0dG9uLXRyYW5zaXN0aW9uLWR1cmF0aW9uLCB0b3AgJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb247XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHRsYSBzcGFuOjphZnRlciB7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbiwgd2lkdGggJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb24sIGJvdHRvbSAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbjtcclxufVxyXG5cclxuLyogYWN0aXZlIHN0YXRlLCBpLmUuIG1lbnUgb3BlbiAqL1xyXG5cclxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHJnYig1MCwyMjAsMTAwKSwgMjAlKTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSBzcGFuIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0bGEuaXMtYWN0aXZlIHNwYW46OmJlZm9yZSxcclxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSBzcGFuOjphZnRlciB7XHJcbiAgd2lkdGg6IDUwJTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSBzcGFuOjpiZWZvcmUge1xyXG4gIHRvcDogMDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJGhhbS1idXR0b24td2lkdGgvMiAtICRoYW0tYnV0dG9uLXBhZCArICRoYW0tYmFyLXRoaWNrbmVzcykgdHJhbnNsYXRlWSgkaGFtLWJhci10aGlja25lc3MvMikgcm90YXRlKDQ1ZGVnKTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSBzcGFuOjphZnRlciB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkaGFtLWJ1dHRvbi13aWR0aC8yIC0gJGhhbS1idXR0b24tcGFkICsgJGhhbS1iYXItdGhpY2tuZXNzKSB0cmFuc2xhdGVZKC0kaGFtLWJhci10aGlja25lc3MvMikgcm90YXRlKC00NWRlZyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdHlsZSA0XHJcbiAqXHJcbiAqIEhhbWJ1cmdlciB0byByaWdodC1hcnJvdyAoaHRyYSkuIEhhbWJ1cmdlciBtZW51IHRyYW5zZm9ybXMgdG8gYVxyXG4gKiByaWdodC1wb2ludGluZyBhcnJvdy4gVXN1YWxseSBpbmRpY2F0ZXMgYW4gb2ZmIGNhbnZhcyBtZW51IHNsaWRpbmcgaW4gZnJvbVxyXG4gKiByaWdodCB0aGF0IHdpbGwgYmUgY2xvc2Ugb24gcmUtY2xpY2sgb2YgdGhlIGljb24uXHJcbiAqL1xyXG5cclxuLmMtaGFtYnVyZ2VyLS1odHJhIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1MCw4MCk7XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHRyYSBzcGFuIHtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb247XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHRyYSBzcGFuOjpiZWZvcmUsXHJcbi5jLWhhbWJ1cmdlci0taHRyYSBzcGFuOjphZnRlciB7XHJcblxyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0cmEgc3Bhbjo6YmVmb3JlIHtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb24sIHdpZHRoICRoYW0tYnV0dG9uLXRyYW5zaXN0aW9uLWR1cmF0aW9uLCB0b3AgJGhhbS1idXR0b24tdHJhbnNpc3Rpb24tZHVyYXRpb247XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHRyYSBzcGFuOjphZnRlciB7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRoYW0tYnV0dG9uLXRyYW5zaXN0aW9uLWR1cmF0aW9uLCB3aWR0aCAkaGFtLWJ1dHRvbi10cmFuc2lzdGlvbi1kdXJhdGlvbiwgYm90dG9tICRoYW0tYnV0dG9uLXRyYW5zaXN0aW9uLWR1cmF0aW9uO1xyXG59XHJcblxyXG4vKiBhY3RpdmUgc3RhdGUsIGkuZS4gbWVudSBvcGVuICovXHJcblxyXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4ocmdiKDI1NSwxNTAsODApLCAyMCUpO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHNwYW4ge1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbn1cclxuXHJcbi5jLWhhbWJ1cmdlci0taHRyYS5pcy1hY3RpdmUgc3Bhbjo6YmVmb3JlLFxyXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHNwYW46OmFmdGVyIHtcclxuICB3aWR0aDogNTAlO1xyXG59XHJcblxyXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHNwYW46OmJlZm9yZSB7XHJcbiAgdG9wOiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJGhhbS1iYXItdGhpY2tuZXNzKSB0cmFuc2xhdGVZKCRoYW0tYmFyLXRoaWNrbmVzcy8yKSByb3RhdGUoLTQ1ZGVnKTtcclxufVxyXG5cclxuLmMtaGFtYnVyZ2VyLS1odHJhLmlzLWFjdGl2ZSBzcGFuOjphZnRlciB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJGhhbS1iYXItdGhpY2tuZXNzKSB0cmFuc2xhdGVZKC0kaGFtLWJhci10aGlja25lc3MvMikgcm90YXRlKDQ1ZGVnKTtcclxufVxyXG59XHJcbiIsIi8qLS0tLVxyXG5pbnNwaXJhdGlvbiA6IGh0dHA6Ly90eW1wYW51cy5uZXQvQmx1ZXByaW50cy9NdWx0aUxldmVsTWVudS9cclxuLS0tKi9cclxuXHJcbi8qLS0tIFZBUiAtLS0qL1xyXG5cclxuXHJcbkBtaXhpbiBtZW51KCkge1xyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChzbSBkb3duKSB7XHJcbiAgYm9keS5tZW51LS1vcGVuIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG4gIC5uYXYtaGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgICAvL2NhY2hlciBsYSBzY3JvbGxiYXJcclxuICAgICAgLy93aWR0aDogY2FsYygxMDAlICsgNTBweCk7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcbiAgICAvL2ZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgcGFkZGluZzogMmVtIDA7XHJcbiAgICAubWVudS0tb3BlbiAmIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIH1cclxuICB9XHJcbiAgLm1lbnUtaGVhZGVyIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAxZW0gMi41ZW0gMWVtIDEuNWVtO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG59XHJcbiIsIkBtaXhpbiByZXNldHtcclxuXHRAaW5jbHVkZSBub3JtYWxpemU7XHJcblx0XHJcbiAgaHRtbCB7XHJcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9XHJcblxyXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXHJcbiAgKixcclxuICAqOmJlZm9yZSxcclxuICAqOmFmdGVyIHtcclxuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXHJcbiAgYm9keSB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRib2R5LWZvbnQtd2VpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRib2R5LWxpbmVoZWlnaHQ7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XHJcblxyXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xyXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xyXG5cclxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcclxuICB0ZXh0YXJlYSB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XHJcbiAgc2VsZWN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG5cclxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIElkU2VsZWN0b3JcclxuICAjbWFwX2NhbnZhcyxcclxuICAubWFwX2NhbnZhcyxcclxuICAubXFhLWRpc3BsYXkge1xyXG4gICAgaW1nLFxyXG4gICAgZW1iZWQsXHJcbiAgICBvYmplY3Qge1xyXG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcclxuICBidXR0b24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICB9XHJcbn0gIFxyXG5AbWl4aW4gbm9ybWFsaXplIHtcclxuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xyXG5cclxuICAvKipcclxuICAgKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxyXG4gICAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXHJcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxyXG4gICAqL1xyXG5cclxuICBodG1sIHtcclxuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXHJcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xyXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXHJcbiAgICovXHJcblxyXG4gIGJvZHkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXHJcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcclxuICAgKiBhbmQgRmlyZWZveC5cclxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxyXG4gICAqL1xyXG5cclxuICBhcnRpY2xlLFxyXG4gIGFzaWRlLFxyXG4gIGRldGFpbHMsXHJcbiAgZmlnY2FwdGlvbixcclxuICBmaWd1cmUsXHJcbiAgZm9vdGVyLFxyXG4gIGhlYWRlcixcclxuICBoZ3JvdXAsXHJcbiAgbWFpbixcclxuICBtZW51LFxyXG4gIG5hdixcclxuICBzZWN0aW9uLFxyXG4gIHN1bW1hcnkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxyXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICAgKi9cclxuXHJcbiAgYXVkaW8sXHJcbiAgY2FudmFzLFxyXG4gIHByb2dyZXNzLFxyXG4gIHZpZGVvIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXHJcbiAgICovXHJcblxyXG4gIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxyXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cclxuICAgKi9cclxuXHJcbiAgW2hpZGRlbl0sXHJcbiAgdGVtcGxhdGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qIExpbmtzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAgICovXHJcblxyXG4gIGEge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXHJcbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxyXG4gICAqL1xyXG5cclxuICBhOmFjdGl2ZSxcclxuICBhOmhvdmVyIHtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgfVxyXG5cclxuICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICAgKi9cclxuXHJcbiAgYWJiclt0aXRsZV0ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICAgKi9cclxuXHJcbiAgYixcclxuICBzdHJvbmcge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAgICovXHJcblxyXG4gIGRmbiB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXHJcbiAgICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIG1hcmdpbjogMC42N2VtIDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxyXG4gICAqL1xyXG5cclxuICBtYXJrIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZjA7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBzbWFsbCB7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbiAgc3ViLFxyXG4gIHN1cCB7XHJcbiAgICBmb250LXNpemU6IDc1JTtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG4gIH1cclxuXHJcbiAgc3VwIHtcclxuICAgIHRvcDogLTAuNWVtO1xyXG4gIH1cclxuXHJcbiAgc3ViIHtcclxuICAgIGJvdHRvbTogLTAuMjVlbTtcclxuICB9XHJcblxyXG4gIC8qIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cclxuICAgKi9cclxuXHJcbiAgaW1nIHtcclxuICAgIGJvcmRlcjogMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxyXG4gICAqL1xyXG5cclxuICBzdmc6bm90KDpyb290KSB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgLyogR3JvdXBpbmcgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG5cclxuICBmaWd1cmUge1xyXG4gICAgbWFyZ2luOiAxZW0gNDBweDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbiAgaHIge1xyXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbiAgcHJlIHtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBjb2RlLFxyXG4gIGtiZCxcclxuICBwcmUsXHJcbiAgc2FtcCB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICB9XHJcblxyXG4gIC8qIEZvcm1zXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcclxuICAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICAgKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBidXR0b24sXHJcbiAgaW5wdXQsXHJcbiAgb3B0Z3JvdXAsXHJcbiAgc2VsZWN0LFxyXG4gIHRleHRhcmVhIHtcclxuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXHJcbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXHJcbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxyXG4gICAqL1xyXG5cclxuICBidXR0b24ge1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXHJcbiAgICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cclxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxyXG4gICAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cclxuICAgKi9cclxuXHJcbiAgYnV0dG9uLFxyXG4gIHNlbGVjdCB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXHJcbiAgICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXHJcbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxyXG4gICAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXHJcbiAgICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxyXG4gICAqL1xyXG5cclxuICBidXR0b24sXHJcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXHJcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cclxuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKi9cclxuXHJcbiAgYnV0dG9uW2Rpc2FibGVkXSxcclxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXHJcbiAgICovXHJcblxyXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuICBpbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gICAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gICAqL1xyXG5cclxuICBpbnB1dCB7XHJcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxyXG4gICAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXHJcbiAgICpcclxuICAgKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxyXG4gICAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXHJcbiAgICovXHJcblxyXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cclxuICAgKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxyXG4gICAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cclxuICAgKi9cclxuXHJcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAgICovXHJcblxyXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICAgKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXHJcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxyXG4gICAqL1xyXG5cclxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxyXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gICAqL1xyXG5cclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gICAgbWFyZ2luOiAwIDJweDtcclxuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cclxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAgICovXHJcblxyXG4gIGxlZ2VuZCB7XHJcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cclxuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICovXHJcblxyXG4gIHRleHRhcmVhIHtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxyXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxyXG4gICAqL1xyXG5cclxuICBvcHRncm91cCB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC8qIFRhYmxlc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cclxuICAgKi9cclxuXHJcbiAgdGFibGUge1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgdGQsXHJcbiAgdGgge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn0iLCJAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TGF0bzo0MDAsNzAwKTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgSEFNQlVSR0VSIElDT05TIENPTVBPTkVOVFxyXG5odHRwOi8vY2FsbG1lbmljay5jb20vcG9zdC9hbmltYXRpbmctY3NzLW9ubHktaGFtYnVyZ2VyLW1lbnUtaWNvbnNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qLS0tLVxyXG5pbnNwaXJhdGlvbiA6IGh0dHA6Ly90eW1wYW51cy5uZXQvQmx1ZXByaW50cy9NdWx0aUxldmVsTWVudS9cclxuLS0tKi9cbi8qLS0tIFZBUiAtLS0qL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXHJcbiAgICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cclxuICAgKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxyXG4gICAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cclxuICAgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICAgKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXHJcbiAgICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cclxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxyXG4gICAqIGFuZCBGaXJlZm94LlxyXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXHJcbiAgICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcclxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxyXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICAgKi9cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXHJcbiAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxyXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cclxuICAgKi9cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIExpbmtzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxyXG4gICAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxyXG4gICAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cclxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXHJcbiAgICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcclxuICAgKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcclxuICAgKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXHJcbiAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxyXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXHJcbiAgICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXHJcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXHJcbiAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cclxuICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxyXG4gICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIEZvcm1zXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXHJcbiAgICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxyXG4gICAqL1xuLyoqXHJcbiAgICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gICAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXHJcbiAgICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxyXG4gICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxyXG4gICAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXHJcbiAgICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cclxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXHJcbiAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcclxuICAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxyXG4gICAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxyXG4gICAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cclxuICAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxyXG4gICAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cclxuICAgKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcclxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gICAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxyXG4gICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cclxuICAgKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cclxuICAgKiB0aGUgVUEgc3R5bGVzaGVldC5cclxuICAgKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcclxuICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXHJcbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cclxuICAgKlxyXG4gICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXHJcbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cclxuICAgKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXHJcbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcclxuICAgKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXHJcbiAgICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcclxuICAgKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICAgKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXHJcbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gICAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cclxuICAgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxyXG4gICAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cclxuICAgKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cclxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAgICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxyXG4gICAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cclxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cclxuICAgKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cclxuICAgKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogQ2VudHVyeSBHb3RoaWMsIENlbnR1cnlHb3RoaWMsIEFwcGxlR290aGljLCBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM5YTlhOWE7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgfVxuXG5zZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyB9XG5cbiNtYXBfY2FudmFzIGltZyxcbiNtYXBfY2FudmFzIGVtYmVkLFxuI21hcF9jYW52YXMgb2JqZWN0LFxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi50LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udC1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4udC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1kLWFsaWduLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAxZW0gMWVtIDA7IH0gfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBDZW50dXJ5IEdvdGhpYywgQ2VudHVyeUdvdGhpYywgQXBwbGVHb3RoaWMsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtOyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1cmVtOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMi4xMjVyZW07IH1cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTsgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH0gfVxuXG5hIHtcbiAgY29sb3I6ICNkNTAwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2I3MDAwMDsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLTVweDtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7IH1cbiAgLm5vLWZsZXhib3ggLnJvdyB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMxZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7IH0gfVxuICAucm93LmNvbGxhcHNlIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAucm93LmNvbGxhcHNlID4gLmNvbCwgLnJvdy5jb2xsYXBzZSBbY2xhc3NePVwiY29sLVwiXSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2wsIFtjbGFzc149XCJjb2wtXCJdIHtcbiAgZmxleDogMSAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuICAubm8tZmxleGJveCAuY29sLCAubm8tZmxleGJveCBbY2xhc3NePVwiY29sLVwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbCwgW2NsYXNzXj1cImNvbC1cIl0ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY29sLCBbY2xhc3NePVwiY29sLVwiXSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9IH1cblxuLmNvbC14cy0xIHtcbiAgZmxleC1iYXNpczogOC4zMzMzMyU7XG4gIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLm5vLWZsZXhib3ggLmNvbC14cy0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLmNvbC14cy0yIHtcbiAgZmxleC1iYXNpczogMTYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLmNvbC14cy0zIHtcbiAgZmxleC1iYXNpczogMjUlO1xuICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cblxuLmNvbC14cy00IHtcbiAgZmxleC1iYXNpczogMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLmNvbC14cy01IHtcbiAgZmxleC1iYXNpczogNDEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cblxuLmNvbC14cy02IHtcbiAgZmxleC1iYXNpczogNTAlO1xuICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cblxuLmNvbC14cy03IHtcbiAgZmxleC1iYXNpczogNTguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLmNvbC14cy04IHtcbiAgZmxleC1iYXNpczogNjYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLmNvbC14cy05IHtcbiAgZmxleC1iYXNpczogNzUlO1xuICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cblxuLmNvbC14cy0xMCB7XG4gIGZsZXgtYmFzaXM6IDgzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm5vLWZsZXhib3ggLmNvbC14cy0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uY29sLXhzLTExIHtcbiAgZmxleC1iYXNpczogOTEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubm8tZmxleGJveCAuY29sLXhzLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5jb2wteHMtMTIge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm5vLWZsZXhib3ggLmNvbC14cy0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbC14cy0yMHAge1xuICBmbGV4LWJhc2lzOiAyMCU7XG4gIG1heC13aWR0aDogMjAlOyB9XG5cbi5jb2wteHMtMzBwIHtcbiAgZmxleC1iYXNpczogMzAlO1xuICBtYXgtd2lkdGg6IDMwJTsgfVxuXG4uY29sLXhzLTQwcCB7XG4gIGZsZXgtYmFzaXM6IDQwJTtcbiAgbWF4LXdpZHRoOiA0MCU7IH1cblxuLmNvbC14cy02MHAge1xuICBmbGV4LWJhc2lzOiA2MCU7XG4gIG1heC13aWR0aDogNjAlOyB9XG5cbi5jb2wteHMtODBwIHtcbiAgZmxleC1iYXNpczogODAlO1xuICBtYXgtd2lkdGg6IDgwJTsgfVxuXG4uY2VudGVyLXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4uZW5kLXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnN0YXJ0LXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5iZXR3ZWVuLXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5hcm91bmQteHMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4uc2hyaW5rLXhzIHtcbiAgZmxleDogMSAxIDAlOyB9XG5cbi5jb2wtYXV0by14cyB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY29sLXNtLTEge1xuICAgIGZsZXgtYmFzaXM6IDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLXNtLTEge1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5jb2wtc20tMiB7XG4gICAgZmxleC1iYXNpczogMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1zbS0yIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmNvbC1zbS0zIHtcbiAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLXNtLTMge1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAuY29sLXNtLTQge1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtc20tNCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5jb2wtc20tNSB7XG4gICAgZmxleC1iYXNpczogNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1zbS01IHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmNvbC1zbS02IHtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLXNtLTYge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAuY29sLXNtLTcge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtc20tNyB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5jb2wtc20tOCB7XG4gICAgZmxleC1iYXNpczogNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1zbS04IHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmNvbC1zbS05IHtcbiAgICBmbGV4LWJhc2lzOiA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLXNtLTkge1xuICAgICAgd2lkdGg6IDc1JTsgfVxuICAuY29sLXNtLTEwIHtcbiAgICBmbGV4LWJhc2lzOiA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLXNtLTEwIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmNvbC1zbS0xMSB7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1zbS0xMSB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5jb2wtc20tMTIge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1zbS0xMiB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAuY29sLXNtLTIwcCB7XG4gICAgZmxleC1iYXNpczogMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5jb2wtc20tMzBwIHtcbiAgICBmbGV4LWJhc2lzOiAzMCU7XG4gICAgbWF4LXdpZHRoOiAzMCU7IH1cbiAgLmNvbC1zbS00MHAge1xuICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICBtYXgtd2lkdGg6IDQwJTsgfVxuICAuY29sLXNtLTYwcCB7XG4gICAgZmxleC1iYXNpczogNjAlO1xuICAgIG1heC13aWR0aDogNjAlOyB9XG4gIC5jb2wtc20tODBwIHtcbiAgICBmbGV4LWJhc2lzOiA4MCU7XG4gICAgbWF4LXdpZHRoOiA4MCU7IH1cbiAgLmNlbnRlci1zbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAuZW5kLXNtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5zdGFydC1zbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmJldHdlZW4tc20ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAuYXJvdW5kLXNtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuICAuc2hyaW5rLXNtIHtcbiAgICBmbGV4OiAxIDEgMCU7IH1cbiAgLmNvbC1hdXRvLXNtIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jb2wtbWQtMSB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbWQtMSB7XG4gICAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmNvbC1tZC0yIHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLW1kLTIge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuY29sLW1kLTMge1xuICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbWQtMyB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gIC5jb2wtbWQtNCB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1tZC00IHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmNvbC1tZC01IHtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLW1kLTUge1xuICAgICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuY29sLW1kLTYge1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbWQtNiB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5jb2wtbWQtNyB7XG4gICAgZmxleC1iYXNpczogNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1tZC03IHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmNvbC1tZC04IHtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLW1kLTgge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuY29sLW1kLTkge1xuICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbWQtOSB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gIC5jb2wtbWQtMTAge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbWQtMTAge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuY29sLW1kLTExIHtcbiAgICBmbGV4LWJhc2lzOiA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLW1kLTExIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmNvbC1tZC0xMiB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLW1kLTEyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jb2wtbWQtMjBwIHtcbiAgICBmbGV4LWJhc2lzOiAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLmNvbC1tZC0zMHAge1xuICAgIGZsZXgtYmFzaXM6IDMwJTtcbiAgICBtYXgtd2lkdGg6IDMwJTsgfVxuICAuY29sLW1kLTQwcCB7XG4gICAgZmxleC1iYXNpczogNDAlO1xuICAgIG1heC13aWR0aDogNDAlOyB9XG4gIC5jb2wtbWQtNjBwIHtcbiAgICBmbGV4LWJhc2lzOiA2MCU7XG4gICAgbWF4LXdpZHRoOiA2MCU7IH1cbiAgLmNvbC1tZC04MHAge1xuICAgIGZsZXgtYmFzaXM6IDgwJTtcbiAgICBtYXgtd2lkdGg6IDgwJTsgfVxuICAuY2VudGVyLW1kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5lbmQtbWQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnN0YXJ0LW1kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuYmV0d2Vlbi1tZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC5hcm91bmQtbWQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gIC5zaHJpbmstbWQge1xuICAgIGZsZXg6IDEgMSAwJTsgfVxuICAuY29sLWF1dG8tbWQge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIG1heC13aWR0aDogbm9uZTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgLmNvbC1sZy0xIHtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1sZy0xIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuY29sLWxnLTIge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbGctMiB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5jb2wtbGctMyB7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1sZy0zIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgLmNvbC1sZy00IHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLWxnLTQge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuY29sLWxnLTUge1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbGctNSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5jb2wtbGctNiB7XG4gICAgZmxleC1iYXNpczogNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1sZy02IHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgLmNvbC1sZy03IHtcbiAgICBmbGV4LWJhc2lzOiA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgICAubm8tZmxleGJveCAuY29sLWxnLTcge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuY29sLWxnLTgge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbGctOCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5jb2wtbGctOSB7XG4gICAgZmxleC1iYXNpczogNzUlO1xuICAgIG1heC13aWR0aDogNzUlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1sZy05IHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgZmxleC1iYXNpczogODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gICAgLm5vLWZsZXhib3ggLmNvbC1sZy0xMCB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5jb2wtbGctMTEge1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbGctMTEge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuY29sLWxnLTEyIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5uby1mbGV4Ym94IC5jb2wtbGctMTIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNvbC1sZy0yMHAge1xuICAgIGZsZXgtYmFzaXM6IDIwJTtcbiAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAuY29sLWxnLTMwcCB7XG4gICAgZmxleC1iYXNpczogMzAlO1xuICAgIG1heC13aWR0aDogMzAlOyB9XG4gIC5jb2wtbGctNDBwIHtcbiAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgbWF4LXdpZHRoOiA0MCU7IH1cbiAgLmNvbC1sZy02MHAge1xuICAgIGZsZXgtYmFzaXM6IDYwJTtcbiAgICBtYXgtd2lkdGg6IDYwJTsgfVxuICAuY29sLWxnLTgwcCB7XG4gICAgZmxleC1iYXNpczogODAlO1xuICAgIG1heC13aWR0aDogODAlOyB9XG4gIC5jZW50ZXItbGcge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLmVuZC1sZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuc3RhcnQtbGcge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5iZXR3ZWVuLWxnIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLmFyb3VuZC1sZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cbiAgLnNocmluay1sZyB7XG4gICAgZmxleDogMSAxIDAlOyB9XG4gIC5jb2wtYXV0by1sZyB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWF4LXdpZHRoOiBub25lOyB9IH1cblxuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIG1heC13aWR0aDogMTMxMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb250YWluZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMjBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH0gfVxuXG5bY2xhc3MqPVwiZmxleGdhbC1cIl0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC01cHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIFtjbGFzcyo9XCJmbGV4Z2FsLVwiXSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBbY2xhc3MqPVwiZmxleGdhbC1cIl0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7IH0gfVxuICBbY2xhc3MqPVwiZmxleGdhbC1cIl0gPiAqIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICBbY2xhc3MqPVwiZmxleGdhbC1cIl0gPiAqIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICBbY2xhc3MqPVwiZmxleGdhbC1cIl0gPiAqIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9IH1cblxuLmZsZXhnYWwteHMtMiA+ICoge1xuICBmbGV4LWJhc2lzOiA1MCU7XG4gIG1heC13aWR0aDogNTAlOyB9XG4gIC5mbGV4Z2FsLXhzLTIgPiAqLmRvdWJsZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm5vLWZsZXhib3ggLmZsZXhnYWwteHMtMiA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5mbGV4Z2FsLXhzLTMgPiAqIHtcbiAgZmxleC1iYXNpczogMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuZmxleGdhbC14cy0zID4gKi5kb3VibGUge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubm8tZmxleGJveCAuZmxleGdhbC14cy0zID4gKiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmZsZXhnYWwteHMtNCA+ICoge1xuICBmbGV4LWJhc2lzOiAyNSU7XG4gIG1heC13aWR0aDogMjUlOyB9XG4gIC5mbGV4Z2FsLXhzLTQgPiAqLmRvdWJsZSB7XG4gICAgZmxleC1iYXNpczogNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXhzLTQgPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4uZmxleGdhbC14cy01ID4gKiB7XG4gIGZsZXgtYmFzaXM6IDIwJTtcbiAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLmZsZXhnYWwteHMtNSA+ICouZG91YmxlIHtcbiAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgbWF4LXdpZHRoOiA0MCU7IH1cbiAgLm5vLWZsZXhib3ggLmZsZXhnYWwteHMtNSA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi5mbGV4Z2FsLXhzLTYgPiAqIHtcbiAgZmxleC1iYXNpczogMTYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuZmxleGdhbC14cy02ID4gKi5kb3VibGUge1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubm8tZmxleGJveCAuZmxleGdhbC14cy02ID4gKiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmZsZXhnYWwteHMtNyA+ICoge1xuICBmbGV4LWJhc2lzOiAxNC4yODU3MSU7XG4gIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC5mbGV4Z2FsLXhzLTcgPiAqLmRvdWJsZSB7XG4gICAgZmxleC1iYXNpczogMjguNTcxNDMlO1xuICAgIG1heC13aWR0aDogMjguNTcxNDMlOyB9XG4gIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXhzLTcgPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4uZmxleGdhbC14cy04ID4gKiB7XG4gIGZsZXgtYmFzaXM6IDEyLjUlO1xuICBtYXgtd2lkdGg6IDEyLjUlOyB9XG4gIC5mbGV4Z2FsLXhzLTggPiAqLmRvdWJsZSB7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXhzLTggPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5mbGV4Z2FsLXNtLTIgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgICAuZmxleGdhbC1zbS0yID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXNtLTIgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZsZXhnYWwtc20tMyA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5mbGV4Z2FsLXNtLTMgPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXNtLTMgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZsZXhnYWwtc20tNCA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAgIC5mbGV4Z2FsLXNtLTQgPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXNtLTQgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZsZXhnYWwtc20tNSA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDIwJTtcbiAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAgIC5mbGV4Z2FsLXNtLTUgPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgICBtYXgtd2lkdGg6IDQwJTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXNtLTUgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZsZXhnYWwtc20tNiA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAgIC5mbGV4Z2FsLXNtLTYgPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyU7XG4gICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXNtLTYgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZsZXhnYWwtc20tNyA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDE0LjI4NTcxJTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC5mbGV4Z2FsLXNtLTcgPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiAyOC41NzE0MyU7XG4gICAgICBtYXgtd2lkdGg6IDI4LjU3MTQzJTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLXNtLTcgPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLmZsZXhnYWwtc20tOCA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDEyLjUlO1xuICAgIG1heC13aWR0aDogMTIuNSU7IH1cbiAgICAuZmxleGdhbC1zbS04ID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1zbS04ID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZmxleGdhbC1tZC0yID4gKiB7XG4gICAgZmxleC1iYXNpczogNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gICAgLmZsZXhnYWwtbWQtMiA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1tZC0yID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5mbGV4Z2FsLW1kLTMgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAuZmxleGdhbC1tZC0zID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogNjYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1tZC0zID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5mbGV4Z2FsLW1kLTQgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgICAuZmxleGdhbC1tZC00ID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1tZC00ID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5mbGV4Z2FsLW1kLTUgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgICAuZmxleGdhbC1tZC01ID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogNDAlO1xuICAgICAgbWF4LXdpZHRoOiA0MCU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1tZC01ID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5mbGV4Z2FsLW1kLTYgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAuZmxleGdhbC1tZC02ID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1tZC02ID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5mbGV4Z2FsLW1kLTcgPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAuZmxleGdhbC1tZC03ID4gKi5kb3VibGUge1xuICAgICAgZmxleC1iYXNpczogMjguNTcxNDMlO1xuICAgICAgbWF4LXdpZHRoOiAyOC41NzE0MyU7IH1cbiAgICAubm8tZmxleGJveCAuZmxleGdhbC1tZC03ID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5mbGV4Z2FsLW1kLTggPiAqIHtcbiAgICBmbGV4LWJhc2lzOiAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlOyB9XG4gICAgLmZsZXhnYWwtbWQtOCA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbWQtOCA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgLmZsZXhnYWwtbGctMiA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAgIC5mbGV4Z2FsLWxnLTIgPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbGctMiA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuZmxleGdhbC1sZy0zID4gKiB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLmZsZXhnYWwtbGctMyA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbGctMyA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuZmxleGdhbC1sZy00ID4gKiB7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gICAgLmZsZXhnYWwtbGctNCA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbGctNCA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuZmxleGdhbC1sZy01ID4gKiB7XG4gICAgZmxleC1iYXNpczogMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG4gICAgLmZsZXhnYWwtbGctNSA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICAgIG1heC13aWR0aDogNDAlOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbGctNSA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuZmxleGdhbC1sZy02ID4gKiB7XG4gICAgZmxleC1iYXNpczogMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLmZsZXhnYWwtbGctNiA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbGctNiA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuZmxleGdhbC1sZy03ID4gKiB7XG4gICAgZmxleC1iYXNpczogMTQuMjg1NzElO1xuICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLmZsZXhnYWwtbGctNyA+ICouZG91YmxlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDI4LjU3MTQzJTtcbiAgICAgIG1heC13aWR0aDogMjguNTcxNDMlOyB9XG4gICAgLm5vLWZsZXhib3ggLmZsZXhnYWwtbGctNyA+ICoge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAuZmxleGdhbC1sZy04ID4gKiB7XG4gICAgZmxleC1iYXNpczogMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTsgfVxuICAgIC5mbGV4Z2FsLWxnLTggPiAqLmRvdWJsZSB7XG4gICAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAgIC5uby1mbGV4Ym94IC5mbGV4Z2FsLWxnLTggPiAqIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0gfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICM5YTlhOWE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogcmdiJTI4NTEsIDUxLCA1MSUyOVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjVyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgaW5wdXRbdHlwZT1cImRhdGVcIl0sIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSwgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLCBpbnB1dFt0eXBlPVwibW9udGhcIl0sIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3R5cGU9XCJ0ZWxcIl0sIGlucHV0W3R5cGU9XCJ0aW1lXCJdLCBpbnB1dFt0eXBlPVwidXJsXCJdLCBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGNvbG9yOiAjOWE5YTlhO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cywgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4YThhOGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lOyB9XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi8qKlxyXG4gKiBUb2dnbGUgU3dpdGNoIEdsb2JhbHNcclxuICpcclxuICogQWxsIHN3aXRjaGVzIHNob3VsZCB0YWtlIG9uIHRoZSBjbGFzcyBgYy1oYW1idXJnZXJgIGFzIHdlbGwgYXMgdGhlaXJcclxuICogdmFyaWFudCB0aGF0IHdpbGwgZ2l2ZSB0aGVtIHVuaXF1ZSBwcm9wZXJ0aWVzLiBUaGlzIGNsYXNzIGlzIGFuIG92ZXJ2aWV3XHJcbiAqIGNsYXNzIHRoYXQgYWN0cyBhcyBhIHJlc2V0IGZvciBhbGwgdmVyc2lvbnMgb2YgdGhlIGljb24uXHJcbiAqL1xuLmMtaGFtYnVyZ2VyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBmb250LXNpemU6IDA7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zczsgfVxuXG4uYy1oYW1idXJnZXI6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi5jLWhhbWJ1cmdlciBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyM3B4O1xuICBsZWZ0OiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlOyB9XG5cbi5jLWhhbWJ1cmdlciBzcGFuOjpiZWZvcmUsXG4uYy1oYW1idXJnZXIgc3Bhbjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbnRlbnQ6IFwiXCI7IH1cblxuLmMtaGFtYnVyZ2VyIHNwYW46OmJlZm9yZSB7XG4gIHRvcDogLTlweDsgfVxuXG4uYy1oYW1idXJnZXIgc3Bhbjo6YWZ0ZXIge1xuICBib3R0b206IC05cHg7IH1cblxuLyoqXHJcbiAqIFN0eWxlIDFcclxuICpcclxuICogUm90YXRpbmcgaGFtYnVyZ2VyIGljb24gKHJvdCksIHRoYXQgc2ltcGx5IHJvdGF0ZXMgOTAgZGVncmVlcyB3aGVuIGFjdGl2YXRlZC5cclxuICogTm90aGluZyB0b28gZmFuY3ksIHNpbXBsZSB0cmFuc2l0aW9uLlxyXG4gKi9cbi5jLWhhbWJ1cmdlci0tcm90IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4YWFkYzsgfVxuXG4uYy1oYW1idXJnZXItLXJvdCBzcGFuIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cblxuLyogYWN0aXZlIHN0YXRlLCBpLmUuIG1lbnUgb3BlbiAqL1xuLmMtaGFtYnVyZ2VyLS1yb3QuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2Njg4ODsgfVxuXG4uYy1oYW1idXJnZXItLXJvdC5pcy1hY3RpdmUgc3BhbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG4vKipcclxuICogU3R5bGUgMlxyXG4gKlxyXG4gKiBIYW1idXJnZXIgdG8gXCJ4XCIgKGh0eCkuIFRha2VzIG9uIGEgaGFtYnVyZ2VyIHNoYXBlLCBiYXJzIHNsaWRlXHJcbiAqIGRvd24gdG8gY2VudGVyIGFuZCB0cmFuc2Zvcm0gaW50byBhbiBcInhcIi5cclxuICovXG4uYy1oYW1idXJnZXItLWh0eCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5jLWhhbWJ1cmdlci0taHR4IHNwYW4ge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDBzIDAuM3M7IH1cblxuLmMtaGFtYnVyZ2VyLS1odHggc3Bhbjo6YmVmb3JlLFxuLmMtaGFtYnVyZ2VyLS1odHggc3Bhbjo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzLCAwLjNzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAwczsgfVxuXG4uYy1oYW1idXJnZXItLWh0eCBzcGFuOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0b3AsIHRyYW5zZm9ybTsgfVxuXG4uYy1oYW1idXJnZXItLWh0eCBzcGFuOjphZnRlciB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgdHJhbnNmb3JtOyB9XG5cbi8qIGFjdGl2ZSBzdGF0ZSwgaS5lLiBtZW51IG9wZW4gKi9cbi5jLWhhbWJ1cmdlci0taHR4LmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYjAwMzI7IH1cblxuLmMtaGFtYnVyZ2VyLS1odHguaXMtYWN0aXZlIHNwYW4ge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi5jLWhhbWJ1cmdlci0taHR4LmlzLWFjdGl2ZSBzcGFuOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuXG4uYy1oYW1idXJnZXItLWh0eC5pcy1hY3RpdmUgc3Bhbjo6YWZ0ZXIge1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cblxuLmMtaGFtYnVyZ2VyLS1odHguaXMtYWN0aXZlIHNwYW46OmJlZm9yZSxcbi5jLWhhbWJ1cmdlci0taHR4LmlzLWFjdGl2ZSBzcGFuOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzLCAwLjNzOyB9XG5cbi8qKlxyXG4gKiBTdHlsZSAzXHJcbiAqXHJcbiAqIEhhbWJ1cmdlciB0byBsZWZ0LWFycm93IChodGxhKS4gSGFtYnVyZ2VyIG1lbnUgdHJhbnNmb3JtcyB0byBhIGxlZnQtcG9pbnRpbmdcclxuICogYXJyb3cuIFVzdWFsbHkgaW5kaWNhdGVzIGFuIG9mZiBjYW52YXMgbWVudSBzbGlkaW5nIGluIGZyb20gbGVmdCB0aGF0XHJcbiAqIHdpbGwgYmUgY2xvc2Ugb24gcmUtY2xpY2sgb2YgdGhlIGljb24uXHJcbiAqL1xuLmMtaGFtYnVyZ2VyLS1odGxhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyZGM2NDsgfVxuXG4uYy1oYW1idXJnZXItLWh0bGEgc3BhbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOyB9XG5cbi5jLWhhbWJ1cmdlci0taHRsYSBzcGFuOjpiZWZvcmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCB3aWR0aCAwLjNzLCB0b3AgMC4zczsgfVxuXG4uYy1oYW1idXJnZXItLWh0bGEgc3Bhbjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCB3aWR0aCAwLjNzLCBib3R0b20gMC4zczsgfVxuXG4vKiBhY3RpdmUgc3RhdGUsIGkuZS4gbWVudSBvcGVuICovXG4uYy1oYW1idXJnZXItLWh0bGEuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5OTAzYzsgfVxuXG4uYy1oYW1idXJnZXItLWh0bGEuaXMtYWN0aXZlIHNwYW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG5cbi5jLWhhbWJ1cmdlci0taHRsYS5pcy1hY3RpdmUgc3Bhbjo6YmVmb3JlLFxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSBzcGFuOjphZnRlciB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLmMtaGFtYnVyZ2VyLS1odGxhLmlzLWFjdGl2ZSBzcGFuOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOXB4KSB0cmFuc2xhdGVZKDJweCkgcm90YXRlKDQ1ZGVnKTsgfVxuXG4uYy1oYW1idXJnZXItLWh0bGEuaXMtYWN0aXZlIHNwYW46OmFmdGVyIHtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTlweCkgdHJhbnNsYXRlWSgtMnB4KSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKipcclxuICogU3R5bGUgNFxyXG4gKlxyXG4gKiBIYW1idXJnZXIgdG8gcmlnaHQtYXJyb3cgKGh0cmEpLiBIYW1idXJnZXIgbWVudSB0cmFuc2Zvcm1zIHRvIGFcclxuICogcmlnaHQtcG9pbnRpbmcgYXJyb3cuIFVzdWFsbHkgaW5kaWNhdGVzIGFuIG9mZiBjYW52YXMgbWVudSBzbGlkaW5nIGluIGZyb21cclxuICogcmlnaHQgdGhhdCB3aWxsIGJlIGNsb3NlIG9uIHJlLWNsaWNrIG9mIHRoZSBpY29uLlxyXG4gKi9cbi5jLWhhbWJ1cmdlci0taHRyYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjk2NTA7IH1cblxuLmMtaGFtYnVyZ2VyLS1odHJhIHNwYW4ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zczsgfVxuXG4uYy1oYW1idXJnZXItLWh0cmEgc3Bhbjo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCB3aWR0aCAwLjNzLCB0b3AgMC4zczsgfVxuXG4uYy1oYW1idXJnZXItLWh0cmEgc3Bhbjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gbGVmdDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIHdpZHRoIDAuM3MsIGJvdHRvbSAwLjNzOyB9XG5cbi8qIGFjdGl2ZSBzdGF0ZSwgaS5lLiBtZW51IG9wZW4gKi9cbi5jLWhhbWJ1cmdlci0taHRyYS5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTk1ZDAwOyB9XG5cbi5jLWhhbWJ1cmdlci0taHRyYS5pcy1hY3RpdmUgc3BhbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLmMtaGFtYnVyZ2VyLS1odHJhLmlzLWFjdGl2ZSBzcGFuOjpiZWZvcmUsXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHNwYW46OmFmdGVyIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHNwYW46OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpIHRyYW5zbGF0ZVkoMnB4KSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4uYy1oYW1idXJnZXItLWh0cmEuaXMtYWN0aXZlIHNwYW46OmFmdGVyIHtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTRweCkgdHJhbnNsYXRlWSgtMnB4KSByb3RhdGUoNDVkZWcpOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICBib2R5Lm1lbnUtLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm5hdi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIHBhZGRpbmc6IDJlbSAwOyB9XG4gICAgLm1lbnUtLW9wZW4gLm5hdi1oZWFkZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAubWVudS1oZWFkZXIge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAubWVudS1oZWFkZXIgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDFlbSAyLjVlbSAxZW0gMS41ZW07XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5jb250YWluZXJfcGRwIHtcbiAgbWF4LXdpZHRoOiA5ODBweDsgfVxuXG4uY29sLXNtLXNrcmluayB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG5cbi5jb2wtc20tZ3JvdyB7XG4gIGZsZXg6IDEgMCBhdXRvOyB9XG5cbi5zaXRlLWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuaDMge1xuICBmb250LXNpemU6IDE3cHg7XG4gIGNvbG9yOiAjOWE5YTlhOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uc2l0ZS1wYWdlIHtcbiAgbWFyZ2luOiAzMHB4IDA7IH1cblxuLm5hdi1oZWFkZXItY29sIHtcbiAgb3JkZXI6IDE7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5uYXYtaGVhZGVyLWNvbCB7XG4gICAgICBvcmRlcjogMDtcbiAgICAgIGZsZXg6IDEgMCBhdXRvOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY29sLW1lbnUtbGFuZ3VlcyB7XG4gICAgZmxleDogMCAxIGF1dG87IH0gfVxuXG4ubG9nby1jb2wge1xuICBmbGV4OiAwIDEgNzAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubG9nby1jb2wge1xuICAgICAgZmxleDogMSAwIDMwJTtcbiAgICAgIG1heC13aWR0aDogMzAlOyB9IH1cblxuLm5hdi10b2dnbGUtY29sIHtcbiAgZmxleDogMCAxIGF1dG87IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5uYXYtdG9nZ2xlLWNvbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAubm8tZmxleGJveCAubmF2LXRvZ2dsZS1jb2wge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubmF2LXdyYXBwZXItY29sIHtcbiAgICBmbGV4OiAxIDAgNzAlO1xuICAgIG1heC13aWR0aDogNzAlOyB9IH1cblxuLmFjdGlvbi0tY2xvc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMWVtO1xuICByaWdodDogMWVtOyB9XG4gIC5hY3Rpb24tLWNsb3NlOjpiZWZvcmUsIC5hY3Rpb24tLWNsb3NlOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHdpZHRoOiA4MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJhY2tncm91bmQ6ICM2NjY7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gIC5hY3Rpb24tLWNsb3NlOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmFjdGlvbi0tY2xvc2U6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4ubWVudS1oZWFkZXIgYSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5tZW51LWhlYWRlciBsaS5hY3RpdmUgYSB7XG4gIGNvbG9yOiAjZDUwMDAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC5tZW51LWhlYWRlciBsaS5hY3RpdmUgYSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfSB9XG5cbi5tZW51LWhlYWRlciBsaS5tZW51LWhlYWRlci0taW1wb3J0YW50IGEge1xuICBtYXJnaW46IDAgMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDAwMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDsgfVxuICAubWVudS1oZWFkZXIgbGkubWVudS1oZWFkZXItLWltcG9ydGFudCBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4ubWVudS1sYW5ndWVzIHtcbiAgb3JkZXI6IC0xO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAubGl2ZXN0YXRzIHtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLmxpdmVzdGF0cyBzcGFuIHtcbiAgY29sb3I6ICNkNTAwMDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuYWN0aW9uLS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubmF2LWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubmF2LWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5saXZlc3RhdHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IDEgMCAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubGl2ZXN0YXRzIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1lbnUtaGVhZGVyIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gd3JhcDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1lbnUtaGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBtYXJnaW4tbGVmdDogLTVweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubWVudS1oZWFkZXIgbGkge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5tZW51LWhlYWRlciBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5tZW51LWhlYWRlciBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubWVudS1oZWFkZXIgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAgIC5tZW51LWhlYWRlciBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNkNTAwMDA7IH1cbiAgICAubWVudS1oZWFkZXIgbGkuYWN0aXZlIGEge1xuICAgICAgY29sb3I6ICNkNTAwMDA7IH1cbiAgICAubWVudS1oZWFkZXIgbGkubWVudS1oZWFkZXItLWltcG9ydGFudCB7XG4gICAgICBtYXJnaW46IDAgNXB4OyB9XG4gICAgICAubWVudS1oZWFkZXIgbGkubWVudS1oZWFkZXItLWltcG9ydGFudCBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1MDAwMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC5tZW51LWhlYWRlciBsaS5tZW51LWhlYWRlci0taW1wb3J0YW50IGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5tZW51LWxhbmd1ZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvcmRlcjogLTE7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LWxhbmd1ZXMge1xuICAgICAgb3JkZXI6IDA7IH0gfVxuXG5bY2xhc3NePVwiZmxleGdhbC1cIl0ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5nYWwgaW1nLCBbY2xhc3NePVwiZmxleGdhbC1cIl0gaW1nIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAuZ2FsIGltZywgW2NsYXNzXj1cImZsZXhnYWwtXCJdIGltZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nYWwgaW1nLCBbY2xhc3NePVwiZmxleGdhbC1cIl0gaW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuXG4uY29sLTQwcCB7XG4gIGZsZXg6IDEgMCA0MCU7IH1cblxuLmNvbC02MHAge1xuICBmbGV4OiAxIDAgNjAlOyB9XG5cbi5nYWwgaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDsgfVxuXG5pbWcucmQge1xuICBib3JkZXItcmFkaXVzOiAxMHB4OyB9XG5cbi5tYiwgLnBhZ2UtdGl0bGUsIC5zZWN0aW9uLWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1iLCAucGFnZS10aXRsZSwgLnNlY3Rpb24taGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1iLCAucGFnZS10aXRsZSwgLnNlY3Rpb24taGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuXG5oMSBzcGFuLCBoMiBzcGFuLCBoMyBzcGFuLCBoNCBzcGFuIHtcbiAgY29sb3I6ICNkNTAwMDA7IH1cblxuLnBhZ2UtdGl0bGUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgLnBhZ2UtdGl0bGUuYmlnIHtcbiAgICBmb250LXNpemU6IDI0cHg7IH1cblxuLm5hdmlnYXRpb24gYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuXG4ubmF2aWdhdGlvbiBhLm5leHQgaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IC40ZW07IH1cblxuLnNlY3Rpb24tLW1vZGVsZXMgaDMuc2VjdGlvbi1kZXNjIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4udzI4MHAge1xuICB3aWR0aDogMjgwcHg7XG4gIG1heC13aWR0aDogMjgwcHg7IH1cblxuLmNvbC1hYm91dDEge1xuICB3aWR0aDogNTEwcHg7XG4gIG1heC13aWR0aDogNTEwcHg7IH1cblxuLnNlY3Rpb24tLWZpbG1vIGgzIHtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jb3Zlci13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNvdmVyLXRleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuY292ZXItdGV4dC1yaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5jb3Zlci10ZXh0LWxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwOyB9XG4gIC5jb3Zlci10aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgLmNvdmVyLS1zdXBwb3J0cyAuY292ZXItdGV4dCB7XG4gICAgbWF4LXdpZHRoOiAyNDBweDsgfSB9XG5cbi5jb3Zlci0tcGhvdG9zIC5jb3Zlci10ZXh0IHtcbiAgbWF4LXdpZHRoOiAyOTBweDsgfVxuXG4uY292ZXItLXBob3RvcyBoMyB7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuXG4uaW5mbyB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgY29sb3I6ICNGRkY7IH1cblxuLnB1Y2Uge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxN3B4OyB9XG4gIC5wdWNlIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3B1Y2UucG5nXCIpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjsgfVxuXG4ucHJpY2VzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgNDBweDsgfVxuXG4ucHJpY2Uge1xuICBmb250LXNpemU6IDMwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLnByaWNlIHNwYW4ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07IH1cblxuLmZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC5mb3JtLWdyb3VwIGxhYmVsIHtcbiAgICB3aWR0aDogMzAlO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5mb3JtLWdyb3VwIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6IDcwJTsgfVxuXG5idXR0b24ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2Q1MDAwMDtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKiBQRFAyRk9STVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5mb3JtX3BkcCAuZm9ybS1ncm91cCBsYWJlbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgZm9udC1zaXplOiAxOXB4OyB9XG5cbi5mb3JtX3BkcCAuZm9ybS1ncm91cCBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLmJ0bl9ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YWQ4MzM7XG4gIGNvbG9yOiAjRkZGO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogLjVlbTtcbiAgZm9udC1zaXplOiAxOXB4OyB9XG4gIC5idG5fZ3JlZW46aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I1MjM7IH1cbiAgLmJ0bl9ncmVlbiBzbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbjogNXB4IGF1dG87IH1cbiAgICAuYnRuX2dyZWVuIHNtYWxsOmJlZm9yZSwgLmJ0bl9ncmVlbiBzbWFsbDphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2NhZGVuYXMucG5nXCIpOyB9XG4gICAgLmJ0bl9ncmVlbiBzbWFsbDphZnRlciB7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IGF1dG87IH1cblxuLnNlbGVjdCAub3B0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgY29sb3I6ICMwMDA7XG4gIHBhZGRpbmc6IC41ZW07XG4gIHBhZGRpbmctbGVmdDogNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnNlbGVjdCAub3B0aW9uOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5zZWxlY3QgLm9wdGlvbi5zZWxlY3RlZDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YWQ4MzM7IH1cblxuLnNlbGVjdCAub3B0aW9uX2xhYmVsIHNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNlbGVjdCAub3B0aW9uX3ByaWNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiA1cHg7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4uYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBjb2xvcjogIzAwMDsgfVxuICAuYm94IGgzIHtcbiAgICBjb2xvcjogI2Q1MDAwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJveCAubGVhZCB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm5vLWJ1bGxldCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wLnNtYWxsIHtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG5cbi50LXdoaXRlIHtcbiAgY29sb3I6ICNGRkY7IH1cblxuLmxpc3QtaW5saW5lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5saXN0LWlubGluZSBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IC41ZW07IH1cblxuLnNpdGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5zaXRlLWZvb3RlciBhIHtcbiAgICBjb2xvcjogI0ZGRjsgfVxuICAgIC5zaXRlLWZvb3RlciBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZDUwMDAwOyB9XG4iLCJAbWl4aW4gaGVscGVycyAoKSB7XHJcbi50LWNlbnRlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi50LXNtYWxsIHtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbn1cclxuLnQtcmlnaHQge1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcclxuLm1kLWFsaWduLWxlZnQge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG1hcmdpbjogMCAxZW0gMWVtIDA7XHJcblxyXG59XHJcbn1cclxuXHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXHJcbi8vLy9cclxuXHJcbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcblxyXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxyXG4vLy8gQHR5cGUgTWFwXHJcbiRicmVha3BvaW50czogKFxyXG4gIHNtYWxsOiAwLFxyXG4gIG1lZGl1bTogNjQwcHgsXHJcbiAgbGFyZ2U6IDEwMjRweCxcclxuICB4bGFyZ2U6IDEyMDBweCxcclxuICB4eGxhcmdlOiAxNDQwcHgsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XHJcblxyXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XHJcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xyXG59XHJcbkBlbHNlIHtcclxuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xyXG59XHJcblxyXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbSBtZCBsZykgIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXHJcbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XHJcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXHJcbiAgJGJwOiBudGgoJHZhbCwgMSk7XHJcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXHJcbiAgJGJwLW1heDogMDtcclxuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxyXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xyXG4gIC8vIEV2ZW50dWFsIG91dHB1dFxyXG4gICRzdHI6ICcnO1xyXG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XHJcbiAgJG5hbWVkOiBmYWxzZTtcclxuXHJcbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxyXG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xyXG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcclxuICB9XHJcbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcclxuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xyXG4gIH1cclxuXHJcbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxyXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XHJcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XHJcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcclxuICAgICAgJG5hbWVkOiB0cnVlO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkYnA6IDA7XHJcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXHJcbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcclxuICBAaWYgJGJwLW1heCB7XHJcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XHJcbiAgfVxyXG5cclxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cclxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxyXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXHJcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XHJcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXHJcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xyXG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcclxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcclxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxyXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcclxuXHJcbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xyXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XHJcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xyXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcclxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcclxuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xyXG5cclxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXHJcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcclxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xyXG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxyXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcclxuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHN0cjtcclxufVxyXG5cclxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcclxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxyXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXHJcbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cclxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXHJcbi8vL1xyXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXHJcbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xyXG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcclxuXHJcbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxyXG4gIEBpZiAkc3RyID09ICcnIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcclxuICBAZWxzZSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxyXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XHJcbiAgJHN0cjogJyc7XHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xyXG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcclxuICB9XHJcbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcclxuXHJcbiAgQHJldHVybiAkc3RyO1xyXG59XHJcblxyXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cclxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cclxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XHJcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXHJcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcclxuXHJcbiAgLy8gR2hldHRvIGZvciBsb29wXHJcbiAgJGk6IDE7XHJcbiAgJGZvdW5kOiBmYWxzZTtcclxuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcclxuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xyXG4gICAgICBAaWYgKCRrZXkgPT0gJHZhbCkge1xyXG4gICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAkaTogJGkgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxyXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XHJcbiAgICBAcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsICRpKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAuIElmIHRoZSBjb25maWcgbWFwIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC4gSWYgdGhlIGNvbmZpZyBtYXAgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIElucHV0IGNvbmZpZyBtYXAuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXHJcbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcclxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxyXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgIEByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcclxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcclxuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcclxuICBAZWxzZSB7XHJcbiAgICAkYW5jaG9yOiBudWxsO1xyXG4gICAgJGZvdW5kOiBmYWxzZTtcclxuXHJcbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XHJcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcclxuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xyXG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcclxuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBMZWdhY3kgYnJlYWtwb2ludCB2YXJpYWJsZXNcclxuLy8gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGluIDYuM1xyXG4kc21hbGwtdXA6IG51bGw7XHJcbiRzbWFsbC1vbmx5OiBudWxsO1xyXG4kbWVkaXVtLXVwOiBudWxsO1xyXG4kbWVkaXVtLW9ubHk6IG51bGw7XHJcbiRsYXJnZS11cDogbnVsbDtcclxuJGxhcmdlLW9ubHk6IG51bGw7XHJcbiR4bGFyZ2UtdXA6IG51bGw7XHJcbiR4bGFyZ2Utb25seTogbnVsbDtcclxuJHh4bGFyZ2UtdXA6IG51bGw7XHJcbiR4eGxhcmdlLW9ubHk6IG51bGw7XHJcblxyXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xyXG4gICRzbWFsbC11cDogc2NyZWVuO1xyXG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XHJcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcclxuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcclxuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcclxuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xyXG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XHJcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcclxuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XHJcbn1cbiIsIiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xyXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xyXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcclxuJGhlYWRlci1zaXplczogKFxyXG4gIHhzOiAoXHJcbiAgICAnaDEnOiAyNCxcclxuICAgICdoMic6IDIwLFxyXG4gICAgJ2gzJzogMTksXHJcbiAgICAnaDQnOiAxOCxcclxuICAgICdoNSc6IDE3LFxyXG4gICAgJ2g2JzogMTYsXHJcbiAgKSxcclxuICBzbTogKFxyXG4gICAgJ2gxJzogNDgsXHJcbiAgICAnaDInOiA0MCxcclxuICAgICdoMyc6IDMxLFxyXG4gICAgJ2g0JzogMjUsXHJcbiAgICAnaDUnOiAyMCxcclxuICAgICdoNic6IDE2LFxyXG4gICksXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuMiAhZGVmYXVsdDtcclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XHJcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuJGhlYWRlci10ZXh0LXRyYW5zZm9ybTogbm9ybWFsICFkZWZhdWx0O1xyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuJGxpbmstY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG4kbGluay1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGxpbmstY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xyXG4kbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XHJcbiRsaW5rLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XHJcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XHJcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xyXG5cclxuXHJcbkBtaXhpbiB0eXBvLWJhc2Uge1xyXG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXHJcbiAgZGl2LFxyXG4gIGRsLFxyXG4gIGR0LFxyXG4gIGRkLFxyXG4gIHVsLFxyXG4gIG9sLFxyXG4gIGxpLFxyXG4gIGgxLFxyXG4gIGgyLFxyXG4gIGgzLFxyXG4gIGg0LFxyXG4gIGg1LFxyXG4gIGg2LFxyXG4gIHByZSxcclxuICBmb3JtLFxyXG4gIHAsXHJcbiAgYmxvY2txdW90ZSxcclxuICB0aCxcclxuICB0ZCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gUGFyYWdyYXBoc1xyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gRW1waGFzaXplZCB0ZXh0XHJcbiAgZW0sXHJcbiAgaSB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIFN0cm9uZyB0ZXh0XHJcbiAgc3Ryb25nLFxyXG4gIGIge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIFNtYWxsIHRleHRcclxuICBzbWFsbCB7XHJcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIEhlYWRpbmdzXHJcbiAgaDEsXHJcbiAgaDIsXHJcbiAgaDMsXHJcbiAgaDQsXHJcbiAgaDUsXHJcbiAgaDYge1xyXG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcclxuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcclxuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1tYXJnaW4tYm90dG9tO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZWhlaWdodDtcclxuXHR0ZXh0LXRyYW5zZm9ybTogJGhlYWRlci10ZXh0LXRyYW5zZm9ybTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgLy8gSGVhZGluZyBzaXplc1xyXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XHJcbiAgICAgICAgI3skaGVhZGVyfSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTGlua3NcclxuICBhIHtcclxuICAgIGNvbG9yOiAkbGluay1jb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstdGV4dC1kZWNvcmF0aW9uO1xyXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogJGxpbmstY29sb3ItaG92ZXI7XHJcbiAgICAgIEBpZiAkbGluay10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGxpbmstdGV4dC1kZWNvcmF0aW9uIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIExpc3RzXHJcbiAgdWwsXHJcbiAgb2wsXHJcbiAgZGwge1xyXG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xyXG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICAvLyBMaXN0IGl0ZW1zXHJcbiAgbGkge1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIH1cclxuXHJcbiAgLy8gVW5vcmRlcmVkIGxpc3RzXHJcbiAgdWwge1xyXG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRsaXN0LXNpZGUtbWFyZ2luO1xyXG4gIH1cclxuXHJcbiAgLy8gT3JkZXJlZCBsaXN0c1xyXG4gIG9sIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAkbGlzdC1zaWRlLW1hcmdpbjtcclxuICB9XHJcblxyXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xyXG4gIHVsLCBvbCB7XHJcbiAgICAmICYge1xyXG4gICAgICBtYXJnaW4tbGVmdDogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xyXG5cclxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XHJcbiAgJHJlbS12YWx1ZXM6ICgpO1xyXG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xyXG5cclxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXHJcbiAgQGlmICRiYXNlID09IG51bGwge1xyXG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XHJcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xyXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xyXG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcclxuICB9XHJcblxyXG4gIEBpZiAkY291bnQgPT0gMSB7XHJcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xyXG4gIH1cclxuXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xyXG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkcmVtLXZhbHVlcztcclxufVxyXG5cclxuXHJcbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXHJcbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XHJcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcclxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XHJcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xyXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cclxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xyXG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xyXG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbiAgfVxyXG4gIFxyXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtXHJcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XHJcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcclxuICB9XHJcblxyXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcclxuICBAaWYgJHZhbHVlID09IDByZW0ge1xyXG4gICAgJHZhbHVlOiAwO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn0iLCIvL2luc3BpcsOpIGRlIGZsZXhib3ggZ3JpZCA6IGh0dHA6Ly9mbGV4Ym94Z3JpZC5jb20vI3RvcCArXHJcblxyXG4kZ3JpZC10b3RhbC1jb2w6MTIgIWRlZmF1bHQ7XHJcbiRncmlkLWNvbC1ndXR0ZXI6IChcclxuICB4czogMTBweCxcclxuICBzbTogMjBweCxcclxuICBtZDogMzBweCxcclxuXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy9MYXJnZXVyZSBtYXhpbWFsZSBkdSBzaXRlLiBQYXIgZMOpZmF1dCAxMjAwcHguXHJcbiRzaXRlLW1heHdpZHRoOjEyMDBweCAhZGVmYXVsdDtcclxuLy9MYSBncmlsbGUgZm9uY3Rpb25uZSBhdmVjIGRlcyBtYXJnZXMgbsOpZ2F0aXZlcywgaWwgZmF1dCBkb25jIHVuIGNvbnRhaW5lciBhdmVjIHVuIHBhZGRpbmcgYXUgbW9pbnMgw6lnYWwgw6AgbGEgbWFyZ2UgbsOpZ2F0aXZlIGFmaW4gZCfDqXZpdGVyIGRlcyBzY3JvbGxiYXJzIGhvcml6b250YWxlcy5cclxuLy9PbiBkw6lmaW5pIGRvbmMgbGVzIHBhZGRpbmdzIGR1IGNvbnRhaW5lciBwb3VyIGNoYXF1ZSBtw6lkaWFxdWVyaWVzLlxyXG4kY29udGFpbmVyLXBhZGQ6IChcclxuXHR4czoxMHB4LFxyXG5cdG1kOjE1cHgsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4kY29udGFpbmVyLW1heHdpZHRoOiAoXHJcblxyXG5cdHNtOiAxMDAwcHgsXHJcblx0bWQ6IDExNzBweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuJGZhbGxiYWNraWU5OmZhbHNlICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZsZXhyb3coKXtcclxuXHJcbiAgXHRcdGRpc3BsYXk6IGZsZXg7XHJcbiBcdFx0ICBmbGV4OiAwIDEgYXV0bztcclxuICBcdFx0ZmxleC1mbG93OnJvdyB3cmFwO1xyXG5cclxuXHRcdFx0QGVhY2ggJGJyZWFrcG9pbnQsICRndXR0ZXIgaW4gJGdyaWQtY29sLWd1dHRlciB7XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6ICgkZ3V0dGVyIC8gLTIpO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogKCRndXR0ZXIgLyAtMik7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblxyXG5cclxuXHRcdFx0Ly9zdXBwcmVzc2lvbiBkZXMgZXNwYWNlcyBibGFuY3MgZGVzIGlubGluZS1ibG9ja1xyXG5cdFx0XHRAaWYoJGZhbGxiYWNraWU5KSB7XHJcblx0XHRcdFx0Lm5vLWZsZXhib3ggJiB7XHJcblx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLTAuMzFlbTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblxyXG59XHJcblxyXG5AbWl4aW4gZmxleGNvbGJhc2UoJGd1dHRlcjpudWxsKXtcclxuXHRmbGV4OiAxIDAgMTAwJTtcclxuXHRtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG5cdEBlYWNoICRicmVha3BvaW50LCAkZ3V0dGVyIGluICRncmlkLWNvbC1ndXR0ZXIge1xyXG5cclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICgkZ3V0dGVyKSAvIDI7XHJcbiAgICAgICBcdHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyKSAvIDI7XHJcblxyXG5cdFx0fVxyXG5cclxuXHQvL2ZhbGxiYWNrIGllOVxyXG5cdEBpZigkZmFsbGJhY2tpZTkpIHtcclxuXHRcdC5uby1mbGV4Ym94ICYge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblxyXG5cclxufVxyXG5cclxuXHJcbkBtaXhpbiBmbGV4Y29sKCRjb2xzOm51bGwpe1xyXG5cclxuXHRAaWYoJGNvbHMhPW51bGwpIHtcclxuXHRcdGZsZXgtYmFzaXM6ICgxMDAlLyRncmlkLXRvdGFsLWNvbCkqJGNvbHM7XHJcblx0XHRtYXgtd2lkdGg6ICgxMDAlLyRncmlkLXRvdGFsLWNvbCkqJGNvbHM7XHJcblxyXG5cclxuXHJcblx0fVxyXG5cclxuXHJcblxyXG5cdEBpZigkZmFsbGJhY2tpZTkpIHtcclxuXHRcdC5uby1mbGV4Ym94ICYge1xyXG5cdFx0d2lkdGg6KDEwMCUvJGdyaWQtdG90YWwtY29sKSokY29scztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuQG1peGluIGZsZXhncmlkKCl7XHJcblx0QGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuXHRcdFx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY291bnQge1xyXG5cdFx0XHRcdC5jb2wtI3tudGgoJGJyZWFrcG9pbnQsIDEpfS0jeyRpfSB7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdC8vY29sb25uZSBhdXRvXHJcblxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vL0BpbmNsdWRlIGZsZXhncmlkKCk7XHJcbkBtaXhpbiBnZW5lcmF0ZS1mbGV4Z3JpZCgpIHtcclxuXHJcbiAgLy9CQVNFIGRlcyBEaWZmw6lyZW50cyDDqWzDqW1lbnRzLCDDoCBuZSBwYXMgcsOpcMOpdGVyLlxyXG4gICAgLnJvdyB7XHJcbiAgICAgIC8vcm93IGJhc2VcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgZmxleDogMCAxIGF1dG87XHJcbiAgICAgIGZsZXgtZmxvdzpyb3cgd3JhcDtcclxuICAgICAgQGlmKCRmYWxsYmFja2llOSkge1xyXG5cdFx0XHRcdC5uby1mbGV4Ym94ICYge1xyXG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC0wLjMxZW07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkZ3V0dGVyIGluICRncmlkLWNvbC1ndXR0ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogKCRndXR0ZXIgLyAtMik7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogKCRndXR0ZXIgLyAtMik7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAvL2NvbGxhcHNlXHJcbiAgLy9HcmlsbGUgc2FucyBwYWRkaW5nXHJcbiAgJi5jb2xsYXBzZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgID4gLmNvbCwgW2NsYXNzXj1cImNvbC1cIl0ge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcblxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbCwgW2NsYXNzXj1cImNvbC1cIl0ge1xyXG4gIGZsZXg6IDEgMCAxMDAlO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICAvL2ZhbGxiYWNrIGllOVxyXG4gIEBpZigkZmFsbGJhY2tpZTkpIHtcclxuICAgIC5uby1mbGV4Ym94ICYge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJGd1dHRlciBpbiAkZ3JpZC1jb2wtZ3V0dGVyIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICgkZ3V0dGVyKSAvIDI7XHJcbiAgICAgICBcdHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyKSAvIDI7XHJcbiAgICAgIH1cclxuXHRcdH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5AZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xyXG5cdFx0XHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLXRvdGFsLWNvbCB7XHJcblx0XHRcdFx0LmNvbC0je250aCgkYnJlYWtwb2ludCwgMSl9LSN7JGl9IHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZsZXhjb2woJGkpXHJcblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG4gICAgICAuY29sLSN7bnRoKCRicmVha3BvaW50LCAxKX0tMjBwIHtcclxuICAgICAgICBmbGV4LWJhc2lzOjIwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDIwJTtcclxuICAgICAgfVxyXG4gICAgICAuY29sLSN7bnRoKCRicmVha3BvaW50LCAxKX0tMzBwIHtcclxuICAgICAgICBmbGV4LWJhc2lzOjMwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDMwJTtcclxuICAgICAgfVxyXG4gICAgICAuY29sLSN7bnRoKCRicmVha3BvaW50LCAxKX0tNDBwIHtcclxuICAgICAgICBmbGV4LWJhc2lzOjQwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDQwJTtcclxuICAgICAgfVxyXG4gICAgICAuY29sLSN7bnRoKCRicmVha3BvaW50LCAxKX0tNjBwIHtcclxuICAgICAgICBmbGV4LWJhc2lzOjYwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgICAgfVxyXG4gICAgICAuY29sLSN7bnRoKCRicmVha3BvaW50LCAxKX0tODBwIHtcclxuICAgICAgICBmbGV4LWJhc2lzOjgwJTtcclxuICAgICAgICBtYXgtd2lkdGg6IDgwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy9hbGlnbmVtZW50XHJcbiAgICAgIC5jZW50ZXItI3tudGgoJGJyZWFrcG9pbnQsIDEpfSB7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgfVxyXG5cclxuICAgICAgLmVuZC0je250aCgkYnJlYWtwb2ludCwgMSl9IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgLnN0YXJ0LSN7bnRoKCRicmVha3BvaW50LCAxKX0ge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O1xyXG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcclxuICAgICAgfVxyXG4gICAgICAuYmV0d2Vlbi0je250aCgkYnJlYWtwb2ludCwgMSl9IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIH1cclxuICAgICAgLmFyb3VuZC0je250aCgkYnJlYWtwb2ludCwgMSl9IHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgfVxyXG4gICAgICAuc2hyaW5rLSN7bnRoKCRicmVha3BvaW50LCAxKX0ge1xyXG4gICAgICBcdGZsZXg6IDEgMSAwJTtcclxuICAgICAgfVxyXG4gICAgICAuY29sLWF1dG8tI3tudGgoJGJyZWFrcG9pbnQsIDEpfSB7XHJcbiAgICAgICAgZmxleDogMCAxIGF1dG87XHJcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICB9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHJcblxyXG4uY29udGFpbmVyIHtcclxuLy9cdG1heC13aWR0aDogJHNpdGUtbWF4d2lkdGg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0QGVhY2ggJGJyZWFrcG9pbnQsICRtYXh3aWR0aCBpbiAkY29udGFpbmVyLW1heHdpZHRoIHtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuXHRcdFx0bWF4LXdpZHRoOiAkbWF4d2lkdGg7XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHRtYXJnaW46IDAgYXV0bztcclxuXHRAZWFjaCAkYnJlYWtwb2ludCwgJHBhZGQgaW4gJGNvbnRhaW5lci1wYWRkIHtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogJHBhZGQ7XHJcbiAgICAgICBcdHBhZGRpbmctcmlnaHQ6ICRwYWRkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcbn1cclxuXHJcbi8vd2lkdGggaGVscGVyc1xyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCIvL25iIGQnaXRlbSBtYXggcGFyIGxpZ25lIHBvdXIgbGVzIGdhbGxlcmllc1xyXG4kbWF4Z2FsaXRlbTo4ICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vdW5lIGdyaWxsZSBkJ2l0ZW0sIHBhcmZhaXQgcG91ciBhZmZpY2hlciB1bmUgZ2FsbGVyaWUuXHJcblxyXG5AbWl4aW4gZmxleGdhbC1jb250YWluZXIoJGd1dHRlcjpudWxsLCAkYmFzZTp0cnVlLCAkbmVzdDp0cnVlLCAkZmFsbGJhY2tpZTk6ICRmYWxsYmFja2llOSl7XHJcblx0Ly9wb3VyIHVuZSBncmlsbGUgcmVzcG9uc2l2ZSwgb24gZXZpdGUgZGUgZMOpY2xhcmVyIHBsdXNpZXVycyBmb2lzIGxlIGRpc3BsYXk6ZmxleCBldGMuLi5cclxuXHRAaWYgKCRiYXNlPT10cnVlKSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdH1cclxuXHJcblx0Ly9zaSBsYSBncmlsbGUgYSBkZXMgZ291dHRpw6hyZXMsIGlsIGZhdXQgdW5lIG1hcmdlIG7DqWdhdGl2ZSBkdSBjb250ZW5ldXIuXHJcblx0Ly9NYWlzIGF0dGVudGlvbiwgaWwgc2kgbGUgY29udGVuZXVyIG4nZXN0IHBhcyBsdWkgbcOqbWUgZMOpbGltaXTDqSBwYXIgdW4gcGFyZW50LCBsZXMgbWFyZ2VzIG7DqWdhdGl2ZXMgdm9udCBjcsOpZXIgZGVzIHNjcm9sbGJhcnMgaG9yaXpvbnRhbGVzIChjYXIgY2VsYSB2YSBzb3J0aXIgZHUgYm9keSkuXHJcblx0Ly9hdmVjIGxhIHZhcmlhYmxlIG5lc3QgKHBhciBkZWZhdXQgYWN0aXZlKSwgb24gcGVybWV0IGxhIHN1cHByZXNzaW9uIGRlIHNlcyBtYXJnZXMgbsOpZ2F0aXZlcy5cclxuXHJcblx0QGlmKCRndXR0ZXIhPW51bGwpIHtcclxuXHRcdEBpZigkbmVzdD09dHJ1ZSkge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDooJGd1dHRlcikgLyAtMjtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OigkZ3V0dGVyKSAvIC0yO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cclxuXHR9XHJcblxyXG59XHJcbkBtaXhpbiBmbGV4Z2FsLWl0ZW0oJGNvbCkge1xyXG4gIFx0ZmxleC1iYXNpczogKDEwMCUvJGNvbCk7XHJcbiAgXHRtYXgtd2lkdGg6ICgxMDAlLyRjb2wpO1xyXG5cdFx0Ji5kb3VibGUge1xyXG5cdFx0XHRmbGV4LWJhc2lzOiAoMTAwJS8kY29sKSoyO1xyXG5cdFx0XHRtYXgtd2lkdGg6ICgxMDAlLyRjb2wpKjI7XHJcblx0XHR9XHJcblxyXG5cdC8vZmFsbGJhY2sgSUU5IChuw6ljw6lzc2l0ZSBtb2Rlcm5penIgcG91ciBham91dGVyIGxhIGNsYXNzZSBuby1mbGV4Ym94KVxyXG5cdEBpZiAoJGZhbGxiYWNraWU5PT10cnVlKSB7XHJcblx0XHQubm8tZmxleGJveCAmIHtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZsZXhnYWwoJGNvbDpudWxsLCAkZ3V0dGVyOm51bGwsICRiYXNlOnRydWUsICRuZXN0OnRydWUpIHtcclxuXHRAZWFjaCAkYnJlYWtwb2ludCwgJGd1dHRlciBpbiAkZ3JpZC1jb2wtZ3V0dGVyIHtcclxuXHRcdEBpbmNsdWRlIGZsZXhnYWwtY29udGFpbmVyKCRndXR0ZXIsICRiYXNlLCAkbmVzdCk7XHJcblx0fVxyXG5cdD4gKiB7XHJcblx0XHRAaW5jbHVkZSBmbGV4Z2FsLWl0ZW0oJGNvbCwgJGd1dHRlcik7XHJcblxyXG5cdH1cclxuXHJcbn1cclxuXHJcblxyXG4vL0VYRU1QTEUgOlxyXG4vLy5wcm9maWxzLWdyaWQge1xyXG4vLyAgcG91ciBtb2JpbGUsIHVuZSBncmlsbGUgZmxleGJveCBkZSAyIGl0ZW1zIHBhciBsaWduZSBhdmVjIHVuIGd1dHRlciBkZSAxMHB4XHJcbi8vXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29udGFpbmVyKDEwcHgpO1xyXG4vL1x0bGkge1xyXG4vL1x0XHRAaW5jbHVkZSBmbGV4LWdyaWQtaXRlbSgyLCAxMHB4KTtcclxuLy9cdH1cclxuLy8gIHBvdXIgbGUgYnJlYWtwb2ludCBcInNtXCIsIHVuZSBncmlsbHMgZGUgMyBpdGVtcyBwYXIgbGlnbmUgYXZlYyB1biBndXR0ZXIgZGUgMjBweFxyXG4vL1x0QGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xyXG4vLyAgbCdhcmd1bWVudCBmYWxzZSBldml0ZSBkZSByw6lww6l0ZXIgZGVzIHJlZ2xlcyBjc3MgaW51dGlsZXMgKGRpc3BsYXk6ZmxleC4uLilcclxuLy9cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbnRhaW5lcigyMHB4LCBmYWxzZSk7XHJcbi8vXHRcdGxpIHtcclxuLy9cdFx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtaXRlbSgzLCAyMHB4KTtcclxuLy9cclxuLy9cdFx0fVxyXG4vL1x0fVxyXG4vL1xyXG4vL31cclxuXHJcblxyXG4vL21peGluIHF1aSBjcsOpIGxlcyBjbGFzc2VzIC5mbGV4Z2FsLSRicmVha3BvaW50LSRuYml0ZW1cclxuLy9wb3VyIGNoYXF1ZSBicmVha3BvaW50LCBqdXNxdSfDoCA4IGl0ZW1zIHBhciBsaWduZSBwYXIgZMOpZmF1dCAoJG1heGdhbGl0ZW06OClcclxuQG1peGluIG1ha2UtZmxleGdhbCgpe1xyXG5cdFtjbGFzcyo9XCJmbGV4Z2FsLVwiXSB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGd1dHRlciBpbiAkZ3JpZC1jb2wtZ3V0dGVyIHtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xyXG5cdFx0XHRcdEBpbmNsdWRlIGZsZXhnYWwtY29udGFpbmVyKCRndXR0ZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGd1dHRlciBpbiAkZ3JpZC1jb2wtZ3V0dGVyIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiRndXR0ZXIvMjtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDokZ3V0dGVyLzI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XHJcblx0XHRcdFx0QGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4Z2FsaXRlbSB7XHJcblx0XHRcdFx0XHQuZmxleGdhbC0je250aCgkYnJlYWtwb2ludCwgMSl9LSN7JGl9ID4gKiB7XHJcblx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgZmxleGdhbC1pdGVtKCRpKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIiRzZWxlY3QtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogIzMzMyAhZGVmYXVsdDtcclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5AbWl4aW4gZ2VuZXJhdGUtc2VsZWN0KCkge1xyXG5cdHNlbGVjdCB7XHJcblx0XHRoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XHJcblx0XHRwYWRkaW5nOiAkZm9ybS1wYWRkaW5nO1xyXG5cdFx0Ym9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG5cdFx0bWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcclxuXHRcdGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuXHRcdGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XHJcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xyXG5cdFx0Y29sb3I6ICRpbnB1dC1jb2xvcjtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcclxuXHRcdGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xyXG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG5cdFx0LW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG5cdFx0QGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT10cmFuc3BhcmVudCB7XHJcblx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XHJcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcclxuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgKCRmb3JtLXNwYWNpbmcgLyAyKSBjZW50ZXI7XHJcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHR9XHJcblx0XHQvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xyXG5cdFx0Jjo6LW1zLWV4cGFuZCB7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblx0XHQmW211bHRpcGxlXSB7XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdH1cclxuXHR9XHJcbn0iLCIkaW5wdXQtY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XHJcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcclxuJGlucHV0LWZvbnQtc2l6ZTogaW5oZXJpdCAhZGVmYXVsdDtcclxuJGlucHV0LWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAjZmZmICFkZWZhdWx0O1xyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYSAhZGVmYXVsdDtcclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICM4YThhOGEgIWRlZmF1bHQ7XHJcbiRpbnB1dC1oZWlnaHQ6NDBweCAhZGVmYXVsdDtcclxuJGZvcm0tcGFkZGluZzo4cHggIWRlZmF1bHQ7XHJcbiRmb3JtLXNwYWNpbmc6MXJlbSAhZGVmYXVsdDtcclxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXHJcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCMwMDAsIDAuMSkgIWRlZmF1bHQ7XHJcbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxyXG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICNjYWNhY2EgIWRlZmF1bHQ7XHJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XHJcblxyXG5cclxuJHRleHQtaW5wdXQtc2VsZWN0b3JzOidpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXSwgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sIGlucHV0W3R5cGU9XCJtb250aFwiXSwgaW5wdXRbdHlwZT1cIndlZWtcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgaW5wdXRbdHlwZT1cInRlbFwiXSwgaW5wdXRbdHlwZT1cInRpbWVcIl0sIGlucHV0W3R5cGU9XCJ1cmxcIl0sIGlucHV0W3R5cGU9XCJjb2xvclwiXSc7XHJcblxyXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuIFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6JGlucHV0LWhlaWdodDtcclxuXHRwYWRkaW5nOiAkZm9ybS1wYWRkaW5nO1xyXG5cdG1hcmdpbjowIDAgJGZvcm0tc3BhY2luZztcclxuXHRjb2xvcjogJGlucHV0LWNvbG9yO1xyXG5cdGZvbnQtZmFtaWx5OiRpbnB1dC1mb250LWZhbWlseTtcclxuXHRmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XHJcblx0Ym9yZGVyOiAkaW5wdXQtYm9yZGVyO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xyXG5cdGJveC1zaGFkb3c6JGlucHV0LXNoYWRvdztcclxuXHRib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xyXG5cdEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcclxuICAgIFx0dHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XHJcbiAgXHR9XHJcblx0Ly8gRm9jdXMgc3RhdGVcclxuXHQmOmZvY3VzIHtcclxuXHRcdGJvcmRlcjokaW5wdXQtYm9yZGVyLWZvY3VzO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xyXG5cdFx0QGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xyXG4gICAgICBcdFx0dHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XHJcbiAgICBcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0XHJcbn1cclxuQG1peGluIGdlbmVyYXRlLXRleHQtaW5wdXRzKCkge1xyXG4jeyR0ZXh0LWlucHV0LXNlbGVjdG9yc30sIFxyXG50ZXh0YXJlYSB7XHJcblx0QGluY2x1ZGUgZm9ybS1lbGVtZW50O1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xyXG4gIFt0eXBlPSdzdWJtaXQnXSxcclxuICBbdHlwZT0nYnV0dG9uJ10ge1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgfVxyXG5cclxuIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xyXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG59IiwiQG1peGluIGNsZWFyZml4IHtcclxuICAmOjpiZWZvcmUsXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyAnO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG5cclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxyXG5cclxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAjMDAwKSB7XHJcbiAgJHJnYjogJ3JnYiUyOCN7cmVkKCRjb2xvcil9LCAje2dyZWVuKCRjb2xvcil9LCAje2JsdWUoJGNvbG9yKX0lMjknO1xyXG5cclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDMyIDI0XCI+PHBvbHlnb24gcG9pbnRzPVwiMCwwIDMyLDAgMTYsMjRcIiBzdHlsZT1cImZpbGw6ICN7JHJnYn1cIj48L3BvbHlnb24+PC9zdmc+Jyk7XHJcblxyXG59XHJcblxyXG5AbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbjogJ3VwJykge1xyXG5cdHdpZHRoOiAwO1xyXG5cdGhlaWdodDogMDtcclxuXHJcblx0QGlmICRkaXJlY3Rpb24gPT0gJ3VwJyB7IFxyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1ib3R0b206ICRzaXplICogMS43MzIgc29saWQgJGNvbG9yOyBcclxuXHRcdGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDsgXHJcblx0fSBAZWxzZSBpZiAkZGlyZWN0aW9uID09ICdkb3duJyB7XHJcblx0XHRib3JkZXItdG9wOiAkc2l6ZSAqIDEuNzMyIHNvbGlkICRjb2xvcjsgXHJcblx0XHRib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50OyBcclxuXHRcdGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDsgXHJcblx0fSBAZWxzZSBpZiAkZGlyZWN0aW9uID09ICdsZWZ0JyB7XHJcblx0XHRib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDsgXHJcblx0XHRib3JkZXItcmlnaHQ6ICRzaXplICogMS43MzIgc29saWQgJGNvbG9yOyBcclxuXHRcdGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50OyBcclxuXHR9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ3JpZ2h0JyB7XHJcblx0XHRib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDsgXHJcblx0XHRib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDsgXHJcblx0XHRib3JkZXItbGVmdDogJHNpemUgKiAxLjczMiBzb2xpZCAkY29sb3I7IFxyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG5AbWl4aW4gY2xvc2VidG4oJHNpemU6ODBweCwgJGJnOiAjZWVlLCAkY29sb3I6ICMwMDApIHtcclxuXHRcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAkc2l6ZTtcclxuICBoZWlnaHQ6ICRzaXplO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYmFja2dyb3VuZDokYmc7XHJcbiAgYm9yZGVyLXJhZGl1czo1MCU7XHJcbiAgXHJcbiAgJjpob3ZlciB7XHJcbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcclxuICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAycHg7XHJcbiAgICB3aWR0aDogODAlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgIGJvcmRlci1yYWRpdXM6NXB4O1xyXG4gICAgXHJcbiAgfVxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XHJcbiAgfVxyXG4gICY6OmFmdGVyIHtcclxuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC00NWRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gY2VudGVyZmxleCgpIHtcclxuXHQgZGlzcGxheTogZmxleDtcclxuICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn0iLCJAbWl4aW4gZ2VuZXJhdGUtY2hlY2tib3goKSB7IFxyXG5bdHlwZT0nZmlsZSddLFxyXG4gW3R5cGU9J2NoZWNrYm94J10sXHJcbiBbdHlwZT0ncmFkaW8nXSB7XHJcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xyXG4gfVxyXG5cclxuLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xyXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXHJcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tbGVmdDogJGZvcm0tc3BhY2luZyAqIDAuNTtcclxuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tc3BhY2luZztcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgfVxyXG59IiwiQGNoYXJzZXQgJ3V0Zi04JztcclxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXHJcbkBpbXBvcnQgJ2NvbmZpZyc7XHJcbkBpbXBvcnQgJ3V0aWwvdW5pdCc7XHJcbkBpbXBvcnQgJ3V0aWwvYnJlYWtwb2ludCc7XHJcbkBpbXBvcnQgJ3V0aWwvbWl4aW5zJztcclxuQGltcG9ydCAndXRpbC9oZWxwZXJzLnNjc3MnO1xyXG5AaW1wb3J0ICdyZXNldCc7XHJcbkBpbXBvcnQgJ2dyaWQvZmxleGdyaWQyJztcclxuQGltcG9ydCAnZ3JpZC9mbGV4Z2FsJztcclxuQGltcG9ydCAndHlwby90eXBvJztcclxuQGltcG9ydCAnZm9ybS9mb3JtJztcclxuQGltcG9ydCAnbW9kdWxlcy9kcm9wZG93bic7XHJcbkBpbXBvcnQgJ21vZHVsZXMvbW9kYWwnO1xyXG5AaW1wb3J0ICdtb2R1bGVzL2hhbWJ1cmdlcic7XHJcbkBpbXBvcnQgJ21vZHVsZXMvbWVudSc7XHJcblxyXG5AaW5jbHVkZSByZXNldDtcclxuQGluY2x1ZGUgaGVscGVycztcclxuQGluY2x1ZGUgdHlwbztcclxuQGluY2x1ZGUgZ2VuZXJhdGUtZmxleGdyaWQ7XHJcbkBpbmNsdWRlIG1ha2UtZmxleGdhbCgpO1xyXG5AaW5jbHVkZSBnZW5lcmF0ZS1uaWNlLWZvcm07XHJcbkBpbmNsdWRlIGhhbWJ1cmdlcjtcclxuQGluY2x1ZGUgbWVudTtcclxuLy9AaW5jbHVkZSBtb2RhbDtcclxuLmNvbnRhaW5lcl9wZHAge1xyXG4gIG1heC13aWR0aDogOTgwcHg7XHJcbn1cclxuLmNvbC1zbS1za3Jpbmsge1xyXG4gIGZsZXg6IDAgMSBhdXRvO1xyXG59XHJcbi5jb2wtc20tZ3JvdyB7XHJcbiAgZmxleDogMSAwIGF1dG87XHJcbn1cclxuLnNpdGUtaGVhZGVyIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcbmgzIHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgY29sb3I6ICM5YTlhOWE7XHJcbn1cclxuXHJcbi5sZWFkIHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuLy9AaW5jbHVkZSBnZW4tZHJvcGRvd247XHJcblxyXG4uc2l0ZS1wYWdlIHtcclxuICBtYXJnaW46IDMwcHggMDtcclxufVxyXG4vL21lbnUgZHUgaGVhZGVyXHJcbi8vb3JkcmUgZGVzIGNvbG9ubmVzIHN1ciBtb2JpbGVcclxuLm5hdi1oZWFkZXItY29sIHtcclxuICBvcmRlcjoxO1xuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4gIG9yZGVyOiAwO1xyXG4gIGZsZXg6IDEgMCBhdXRvO1xyXG4gIH1cclxufVxyXG4uY29sLW1lbnUtbGFuZ3VlcyB7XHJcbi8vICBvcmRlcjowO1xyXG5AaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XHJcbiAgZmxleDogMCAxIGF1dG87XHJcbn1cclxufVxyXG4vL21lbnUgbW9iaWxlXHJcbi5sb2dvLWNvbCB7XHJcbiAgZmxleDogMCAxIDcwJTtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcclxuICAgIGZsZXg6IDEgMCAzMCU7XHJcbiAgICAvL2llIGZhbGxiYWNrXHJcbiAgICBtYXgtd2lkdGg6IDMwJTtcclxuICAgIH1cclxuXHJcbn1cclxuLm5hdi10b2dnbGUtY29sIHtcclxuICBmbGV4OiAwIDEgYXV0bztcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLm5vLWZsZXhib3ggJiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLm5hdi13cmFwcGVyLWNvbCB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4gICAgZmxleDogMSAwIDcwJTtcclxuICAgIC8vaWUgZmFsbGJhY2tcclxuICAgIG1heC13aWR0aDogNzAlO1xyXG4gIH1cclxufVxyXG5cclxuLy9jbG9zZSBtZW51XHJcbi5hY3Rpb24tLWNsb3NlIHtcclxuICBAaW5jbHVkZSBjbG9zZWJ0bigyNXB4LCBub25lLCAjNjY2KTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxZW07XHJcbiAgcmlnaHQ6IDFlbTtcclxufVxyXG5cclxuLm1lbnUtaGVhZGVyIHtcclxuICBhIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICB9XHJcbiAgLy9tZW51IGFjdGlmXHJcbiAgbGkuYWN0aXZlIGEge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSBkb3duKSB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICB9XHJcbiAgbGkubWVudS1oZWFkZXItLWltcG9ydGFudCB7XHJcbiAgICBhIHtcclxuICAgICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG59XHJcbn1cclxuLm1lbnUtbGFuZ3VlcyB7XHJcbiAgb3JkZXI6IC0xO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuICAubGl2ZXN0YXRzIHtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc20gZG93bikge1xyXG4gICAgcGFkZGluZzogMWVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICBzcGFuIHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICB9XHJcbiAgfVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4uYWN0aW9uLS1jbG9zZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4ubmF2LWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIH1cclxufVxyXG4ubGl2ZXN0YXRzIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBmbGV4OiAxIDAgMTAwJTtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4gICAgcGFkZGluZy1yaWdodDogODBweDtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgfVxyXG59XHJcbi5tZW51LWhlYWRlciB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG5cclxuICB9XHJcbiAgbGkge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICB9XHJcblxyXG5cclxuXHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDVweDtcclxuICAgICAgY29sb3I6I2ZmZjtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy9tZW51IGFjdGlmXHJcbiAgICBsaS5hY3RpdmUgYSB7XHJcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgIH1cclxuICAgIC8vbWVudSBpbXBvcnRhbnRcclxuICAgIGxpLm1lbnUtaGVhZGVyLS1pbXBvcnRhbnQge1xyXG4gICAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgICBhIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9tZW51IGxhbmd1ZVxyXG5cclxuLm1lbnUtbGFuZ3VlcyB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG9yZGVyOiAtMTtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XHJcbiAgICBvcmRlcjogMDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxufVxyXG4vL2dhbGxlcmllXHJcbltjbGFzc149XCJmbGV4Z2FsLVwiXSwgIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuLmdhbCwgIFtjbGFzc149XCJmbGV4Z2FsLVwiXSB7XHJcbiAgaW1nIHtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGd1dHRlciBpbiAkZ3JpZC1jb2wtZ3V0dGVyIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLmNvbC00MHAge1xyXG4gIGZsZXg6IDEgMCA0MCU7XHJcbn1cclxuLmNvbC02MHAge1xyXG4gIGZsZXg6IDEgMCA2MCU7XHJcbn1cclxuLmdhbCB7XHJcbiAgaW1nIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblxyXG4gIH1cclxufVxyXG5cclxuLy9kaXZlcnMgdGhlbWVcclxuaW1nLnJkIHtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG59XHJcbi5tYiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc20pIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgfVxyXG59XHJcbmgxLCBoMiwgaDMsIGg0IHtcclxuICBzcGFuIHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICB9XHJcbn1cclxuLnBhZ2UtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBsaW5lLWhlaWdodDogMS4zO1xyXG4gIEBleHRlbmQgLm1iO1xyXG4gICYuYmlnIHtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICB9XHJcbn1cclxuLnNlY3Rpb24ge1xyXG4gIC8vbWFyZ2luLWJvdHRvbTogMzBweDtcclxufVxyXG4uc2VjdGlvbi1oZWFkZXIge1xyXG4gIEBleHRlbmQgLm1iO1xyXG5cclxufVxyXG5cclxuLy9uYXZpZ2F0aW9uXHJcbi5uYXZpZ2F0aW9uICB7XHJcbiAgYSB7XHJcbiAgY29sb3I6I2ZmZjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICB9XHJcbiAgYS5uZXh0IHtcclxuICAgIGltZyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAuNGVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuLy9wYWdlIG1vZGVsZXNcclxuLnNlY3Rpb24tLW1vZGVsZXMge1xyXG4gIGgzLnNlY3Rpb24tZGVzYyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLy9wYWdlIGpvaG5cclxuLncyODBwIHtcclxuICB3aWR0aDogMjgwcHg7XHJcbiAgbWF4LXdpZHRoOiAyODBweDtcclxufVxyXG4uY29sLWFib3V0MSB7XHJcbiAgd2lkdGg6IDUxMHB4O1xyXG4gIG1heC13aWR0aDogNTEwcHg7XHJcbn1cclxuXHJcbi5zZWN0aW9uLS1maWxtbyB7XHJcbiAgaDMge1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICB9XHJcbn1cclxuXHJcbi8vSE9NRVxyXG5AaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XHJcbi5jb3Zlci13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmNvdmVyLXRleHQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG4uY292ZXItdGV4dC1yaWdodCB7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcbi5jb3Zlci10ZXh0LWxlZnQge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG59XHJcbi5jb3Zlci10aXRsZSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbn1cclxuLmNvdmVyLS1zdXBwb3J0cyB7XHJcbiAgLmNvdmVyLXRleHQge1xyXG4gIG1heC13aWR0aDogMjQwcHg7XHJcblxyXG4gIH1cclxufVxyXG59XHJcblxyXG5cclxuLy9QQUdFOiBQSE9UT1NcclxuLmNvdmVyLS1waG90b3Mge1xyXG4gIC5jb3Zlci10ZXh0IHtcclxuICAgIG1heC13aWR0aDogMjkwcHg7XHJcbiAgfVxyXG4gIGgzIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi5pbmZvIHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgY29sb3I6ICNGRkY7XHJcbn1cclxuXHJcbi5wdWNlIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMCAwIDIwcHg7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG4gIGxpIHtcclxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wdWNlLnBuZ1wiKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJpY2VzIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMCAwIDQwcHg7XHJcblxyXG59XHJcbi5wcmljZSB7XHJcbiAgZm9udC1zaXplOiAzMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiNmZmY7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG5cclxuICBzcGFuIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICB3aWR0aDogMzAlO1xyXG4gICAgY29sb3I6I2ZmZjtcclxuICB9XHJcbiAgaW5wdXQge1xyXG4gICAgbWF4LXdpZHRoOiA3MCU7XHJcbiAgfVxyXG59XHJcblxyXG5idXR0b24ge1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuXHJcbi8qIFBEUDJGT1JNXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4uZm9ybV9wZHAge1xyXG4gIC5mb3JtLWdyb3VwIHtcclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcclxuICAgICAgZm9udC1zaXplOiAxOXB4O1xyXG5cclxuICAgIH1cclxuICAgIGlucHV0IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5idG5fZ3JlZW4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM0YWQ4MzM7XHJcbiAgY29sb3I6ICNGRkY7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBwYWRkaW5nOiAuNWVtO1xyXG4gIGZvbnQtc2l6ZTogMTlweDtcclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjNGFkODMzLCAxMCUpO1xyXG4gIH1cclxuICBzbWFsbCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgIG1hcmdpbjogNXB4IGF1dG87XHJcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2NhZGVuYXMucG5nXCIpO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5zZWxlY3Qge1xyXG4gIC5vcHRpb24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgcGFkZGluZzogLjVlbTtcclxuICAgIHBhZGRpbmctbGVmdDogNTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IC41ZW07XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICBoZWlnaHQ6IDE2cHg7XHJcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgbGVmdDogMTBweDtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgIH1cclxuICAmLnNlbGVjdGVkIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRhZDgzMztcclxuICAgIH1cclxuICB9XHJcbiAgfVxyXG4gIC5vcHRpb25fbGFiZWwge1xyXG4gICAgc21hbGwge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcbiAgLm9wdGlvbl9wcmljZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMTVweDtcclxuICAgIHRvcDogNXB4O1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmJveCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBwYWRkaW5nOiAxZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGNvbG9yOiAjMDAwO1xyXG4gIGgzIHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuICAubGVhZCB7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG59XHJcbi5uby1idWxsZXQge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbnAuc21hbGwge1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG4udC13aGl0ZSB7XHJcbiAgY29sb3I6ICNGRkY7XHJcbn1cclxuLmxpc3QtaW5saW5lIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbGkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogLjVlbTtcclxuICB9XHJcblxyXG59XHJcbi5zaXRlLWZvb3RlciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGEge1xyXG4gICAgY29sb3I6ICNGRkY7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
