/* ********** COLORS ************* */
/* Site Specific Vars below */
/*
@mixin logoSprite($posX, $posY) {
    background: $logo_sprite no-repeat $posX $posY;

    @include highResSprite($logo_sprite_2x, $logo_sprite_size);
}
*/
/*
USEAGE:

aside.primary {
  @include breakpoint(md) {
    float: right;
    width: 350px;
  }
  @include breakpoint(480px) {
    display: none;
  }
  @include breakpoint($min: 640px, $max: 767px) {
    text-align: center;
    font-style: italic;
  }
}

sizes: xs,sm,md,lg

*/
/*
  animation: header-reveal 0.4s forwards;

  @keyframes header-reveal { 
    0% { 
      opacity: 0;
      @include transform(translate(0%,-100%)); 
    } 
    100% { 
      opacity: 1;
      @include transform(translate(0%,0%)); 
    }
  }
*/
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg); } }

@-moz-keyframes spin {
  0% {
    -moz-transform: rotate(0deg); }
  100% {
    -moz-transform: rotate(360deg); } }

@keyframes spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

@-webkit-keyframes bounce {
  0%,
  100%,
  20%,
  50%,
  80% {
    -webkit-transform: translateY(0); }
  40% {
    -webkit-transform: translateY(-8px); }
  60% {
    -webkit-transform: translateY(-5px); } }

@-moz-keyframes bounce {
  0%,
  100%,
  20%,
  50%,
  80% {
    -moz-transform: translateY(0); }
  40% {
    -moz-transform: translateY(-8px); }
  60% {
    -moz-transform: translateY(-5px); } }

@keyframes bounce {
  0%,
  100%,
  20%,
  50%,
  80% {
    transform: translateY(0); }
  40% {
    transform: translateY(-8px); }
  60% {
    transform: translateY(-5px); } }

/* Mobile Menu Animations */
@-webkit-keyframes topbaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 0; } }

@-moz-keyframes topbaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 0; } }

@-o-keyframes topbaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 0; } }

@keyframes topbaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 0; } }

@-webkit-keyframes topbarclose {
  0% {
    top: 0; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); } }

@-moz-keyframes topbarclose {
  0% {
    top: 0; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); } }

@-o-keyframes topbarclose {
  0% {
    top: 0; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); } }

@keyframes topbarclose {
  0% {
    top: 0; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); } }

@-webkit-keyframes bottombaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 28px; } }

@-moz-keyframes bottombaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 28px; } }

@-o-keyframes bottombaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 28px; } }

@keyframes bottombaropen {
  0% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 28px; } }

@-webkit-keyframes bottombarclose {
  0% {
    top: 28px; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); } }

@-moz-keyframes bottombarclose {
  0% {
    top: 28px; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); } }

@-o-keyframes bottombarclose {
  0% {
    top: 28px; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); } }

@keyframes bottombarclose {
  0% {
    top: 28px; }
  50% {
    top: 11px;
    -ms-transform: rotate(0);
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    top: 11px;
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); } }

@-webkit-keyframes middlebaropen {
  0%, 50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-moz-keyframes middlebaropen {
  0%, 50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-o-keyframes middlebaropen {
  0%, 50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes middlebaropen {
  0%, 50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes middlebarclose {
  0% {
    opacity: 1; }
  100%, 50% {
    opacity: 0; } }

@-moz-keyframes middlebarclose {
  0% {
    opacity: 1; }
  100%, 50% {
    opacity: 0; } }

@-o-keyframes middlebarclose {
  0% {
    opacity: 1; }
  100%, 50% {
    opacity: 0; } }

@keyframes middlebarclose {
  0% {
    opacity: 1; }
  100%, 50% {
    opacity: 0; } }

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

a {
  text-decoration: none; }

address, em {
  font-style: normal; }

input[type=button], input[type=submit], button {
  cursor: pointer; }

input[type=text],
input[type=email] {
  border-radius: 0px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  /* -webkit-font-smoothing: antialiased;
    -webkit-font-smoothing: subpixel-antialiased;
    -webkit-text-size-adjust: none;*/ }

body {
  /*overflow:visible;
  overflow-x:visible;
  overflow-y:visible;*/ }

html, body {
  height: 100%; }

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
  font-weight: 400;
  font-size: 100%;
  background: transparent;
  border: 0;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline; }

ol, ul {
  list-style: none; }

/* 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/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 when focused and also mouse hovered in all browsers.
 */
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 styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * 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 {
  -moz-box-sizing: content-box;
  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 */
  border: none;
  outline: 0;
  background-color: transparent; }
  button:focus,
  input:focus,
  optgroup:focus,
  select:focus,
  textarea:focus {
    outline: 0; }

select::-ms-value {
  background: none; }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
  -webkit-appearance: none;
  -webkit-font-smoothing: antialiased;
  padding: 0px 0px; }

fieldset {
  margin: 0px 0px;
  padding: 0px 0px; }

/**
 * 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; }

input::-ms-clear {
  display: none; }

/**
 * 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
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

select {
  -webkit-appearance: none;
  -moz-appearance: none; }

/**
 * 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; }

/**
  * BOOTSTRAP GRID - I totally ganked it. 
**/
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px; }
  .container:before, .container:after {
    content: " ";
    display: table; }
  .container:after {
    clear: both; }
  @media (min-width: 768px) {
    .container {
      width: 750px; } }
  @media (min-width: 992px) {
    .container {
      width: 970px; } }
  @media (min-width: 1200px) {
    .container {
      width: 1170px; } }

.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px; }
  .container-fluid:before, .container-fluid:after {
    content: " ";
    display: table; }
  .container-fluid:after {
    clear: both; }

.row {
  margin-left: -15px;
  margin-right: -15px; }
  .row:before, .row:after {
    content: " ";
    display: table; }
  .row:after {
    clear: both; }

.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px; }

.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left; }

.col-xs-1 {
  width: 8.33333%; }

.col-xs-2 {
  width: 16.66667%; }

.col-xs-3 {
  width: 25%; }

.col-xs-4 {
  width: 33.33333%; }

.col-xs-5 {
  width: 41.66667%; }

.col-xs-6 {
  width: 50%; }

.col-xs-7 {
  width: 58.33333%; }

.col-xs-8 {
  width: 66.66667%; }

.col-xs-9 {
  width: 75%; }

.col-xs-10 {
  width: 83.33333%; }

.col-xs-11 {
  width: 91.66667%; }

.col-xs-12 {
  width: 100%; }

.col-xs-pull-0 {
  right: auto; }

.col-xs-pull-1 {
  right: 8.33333%; }

.col-xs-pull-2 {
  right: 16.66667%; }

.col-xs-pull-3 {
  right: 25%; }

.col-xs-pull-4 {
  right: 33.33333%; }

.col-xs-pull-5 {
  right: 41.66667%; }

.col-xs-pull-6 {
  right: 50%; }

.col-xs-pull-7 {
  right: 58.33333%; }

.col-xs-pull-8 {
  right: 66.66667%; }

.col-xs-pull-9 {
  right: 75%; }

.col-xs-pull-10 {
  right: 83.33333%; }

.col-xs-pull-11 {
  right: 91.66667%; }

.col-xs-pull-12 {
  right: 100%; }

.col-xs-push-0 {
  left: auto; }

.col-xs-push-1 {
  left: 8.33333%; }

.col-xs-push-2 {
  left: 16.66667%; }

.col-xs-push-3 {
  left: 25%; }

.col-xs-push-4 {
  left: 33.33333%; }

.col-xs-push-5 {
  left: 41.66667%; }

.col-xs-push-6 {
  left: 50%; }

.col-xs-push-7 {
  left: 58.33333%; }

.col-xs-push-8 {
  left: 66.66667%; }

.col-xs-push-9 {
  left: 75%; }

.col-xs-push-10 {
  left: 83.33333%; }

.col-xs-push-11 {
  left: 91.66667%; }

.col-xs-push-12 {
  left: 100%; }

.col-xs-offset-0 {
  margin-left: 0%; }

.col-xs-offset-1 {
  margin-left: 8.33333%; }

.col-xs-offset-2 {
  margin-left: 16.66667%; }

.col-xs-offset-3 {
  margin-left: 25%; }

.col-xs-offset-4 {
  margin-left: 33.33333%; }

.col-xs-offset-5 {
  margin-left: 41.66667%; }

.col-xs-offset-6 {
  margin-left: 50%; }

.col-xs-offset-7 {
  margin-left: 58.33333%; }

.col-xs-offset-8 {
  margin-left: 66.66667%; }

.col-xs-offset-9 {
  margin-left: 75%; }

.col-xs-offset-10 {
  margin-left: 83.33333%; }

.col-xs-offset-11 {
  margin-left: 91.66667%; }

.col-xs-offset-12 {
  margin-left: 100%; }

@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left; }
  .col-sm-1 {
    width: 8.33333%; }
  .col-sm-2 {
    width: 16.66667%; }
  .col-sm-3 {
    width: 25%; }
  .col-sm-4 {
    width: 33.33333%; }
  .col-sm-5 {
    width: 41.66667%; }
  .col-sm-6 {
    width: 50%; }
  .col-sm-7 {
    width: 58.33333%; }
  .col-sm-8 {
    width: 66.66667%; }
  .col-sm-9 {
    width: 75%; }
  .col-sm-10 {
    width: 83.33333%; }
  .col-sm-11 {
    width: 91.66667%; }
  .col-sm-12 {
    width: 100%; }
  .col-sm-pull-0 {
    right: auto; }
  .col-sm-pull-1 {
    right: 8.33333%; }
  .col-sm-pull-2 {
    right: 16.66667%; }
  .col-sm-pull-3 {
    right: 25%; }
  .col-sm-pull-4 {
    right: 33.33333%; }
  .col-sm-pull-5 {
    right: 41.66667%; }
  .col-sm-pull-6 {
    right: 50%; }
  .col-sm-pull-7 {
    right: 58.33333%; }
  .col-sm-pull-8 {
    right: 66.66667%; }
  .col-sm-pull-9 {
    right: 75%; }
  .col-sm-pull-10 {
    right: 83.33333%; }
  .col-sm-pull-11 {
    right: 91.66667%; }
  .col-sm-pull-12 {
    right: 100%; }
  .col-sm-push-0 {
    left: auto; }
  .col-sm-push-1 {
    left: 8.33333%; }
  .col-sm-push-2 {
    left: 16.66667%; }
  .col-sm-push-3 {
    left: 25%; }
  .col-sm-push-4 {
    left: 33.33333%; }
  .col-sm-push-5 {
    left: 41.66667%; }
  .col-sm-push-6 {
    left: 50%; }
  .col-sm-push-7 {
    left: 58.33333%; }
  .col-sm-push-8 {
    left: 66.66667%; }
  .col-sm-push-9 {
    left: 75%; }
  .col-sm-push-10 {
    left: 83.33333%; }
  .col-sm-push-11 {
    left: 91.66667%; }
  .col-sm-push-12 {
    left: 100%; }
  .col-sm-offset-0 {
    margin-left: 0%; }
  .col-sm-offset-1 {
    margin-left: 8.33333%; }
  .col-sm-offset-2 {
    margin-left: 16.66667%; }
  .col-sm-offset-3 {
    margin-left: 25%; }
  .col-sm-offset-4 {
    margin-left: 33.33333%; }
  .col-sm-offset-5 {
    margin-left: 41.66667%; }
  .col-sm-offset-6 {
    margin-left: 50%; }
  .col-sm-offset-7 {
    margin-left: 58.33333%; }
  .col-sm-offset-8 {
    margin-left: 66.66667%; }
  .col-sm-offset-9 {
    margin-left: 75%; }
  .col-sm-offset-10 {
    margin-left: 83.33333%; }
  .col-sm-offset-11 {
    margin-left: 91.66667%; }
  .col-sm-offset-12 {
    margin-left: 100%; } }

@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left; }
  .col-md-1 {
    width: 8.33333%; }
  .col-md-2 {
    width: 16.66667%; }
  .col-md-3 {
    width: 25%; }
  .col-md-4 {
    width: 33.33333%; }
  .col-md-5 {
    width: 41.66667%; }
  .col-md-6 {
    width: 50%; }
  .col-md-7 {
    width: 58.33333%; }
  .col-md-8 {
    width: 66.66667%; }
  .col-md-9 {
    width: 75%; }
  .col-md-10 {
    width: 83.33333%; }
  .col-md-11 {
    width: 91.66667%; }
  .col-md-12 {
    width: 100%; }
  .col-md-pull-0 {
    right: auto; }
  .col-md-pull-1 {
    right: 8.33333%; }
  .col-md-pull-2 {
    right: 16.66667%; }
  .col-md-pull-3 {
    right: 25%; }
  .col-md-pull-4 {
    right: 33.33333%; }
  .col-md-pull-5 {
    right: 41.66667%; }
  .col-md-pull-6 {
    right: 50%; }
  .col-md-pull-7 {
    right: 58.33333%; }
  .col-md-pull-8 {
    right: 66.66667%; }
  .col-md-pull-9 {
    right: 75%; }
  .col-md-pull-10 {
    right: 83.33333%; }
  .col-md-pull-11 {
    right: 91.66667%; }
  .col-md-pull-12 {
    right: 100%; }
  .col-md-push-0 {
    left: auto; }
  .col-md-push-1 {
    left: 8.33333%; }
  .col-md-push-2 {
    left: 16.66667%; }
  .col-md-push-3 {
    left: 25%; }
  .col-md-push-4 {
    left: 33.33333%; }
  .col-md-push-5 {
    left: 41.66667%; }
  .col-md-push-6 {
    left: 50%; }
  .col-md-push-7 {
    left: 58.33333%; }
  .col-md-push-8 {
    left: 66.66667%; }
  .col-md-push-9 {
    left: 75%; }
  .col-md-push-10 {
    left: 83.33333%; }
  .col-md-push-11 {
    left: 91.66667%; }
  .col-md-push-12 {
    left: 100%; }
  .col-md-offset-0 {
    margin-left: 0%; }
  .col-md-offset-1 {
    margin-left: 8.33333%; }
  .col-md-offset-2 {
    margin-left: 16.66667%; }
  .col-md-offset-3 {
    margin-left: 25%; }
  .col-md-offset-4 {
    margin-left: 33.33333%; }
  .col-md-offset-5 {
    margin-left: 41.66667%; }
  .col-md-offset-6 {
    margin-left: 50%; }
  .col-md-offset-7 {
    margin-left: 58.33333%; }
  .col-md-offset-8 {
    margin-left: 66.66667%; }
  .col-md-offset-9 {
    margin-left: 75%; }
  .col-md-offset-10 {
    margin-left: 83.33333%; }
  .col-md-offset-11 {
    margin-left: 91.66667%; }
  .col-md-offset-12 {
    margin-left: 100%; } }

@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left; }
  .col-lg-1 {
    width: 8.33333%; }
  .col-lg-2 {
    width: 16.66667%; }
  .col-lg-3 {
    width: 25%; }
  .col-lg-4 {
    width: 33.33333%; }
  .col-lg-5 {
    width: 41.66667%; }
  .col-lg-6 {
    width: 50%; }
  .col-lg-7 {
    width: 58.33333%; }
  .col-lg-8 {
    width: 66.66667%; }
  .col-lg-9 {
    width: 75%; }
  .col-lg-10 {
    width: 83.33333%; }
  .col-lg-11 {
    width: 91.66667%; }
  .col-lg-12 {
    width: 100%; }
  .col-lg-pull-0 {
    right: auto; }
  .col-lg-pull-1 {
    right: 8.33333%; }
  .col-lg-pull-2 {
    right: 16.66667%; }
  .col-lg-pull-3 {
    right: 25%; }
  .col-lg-pull-4 {
    right: 33.33333%; }
  .col-lg-pull-5 {
    right: 41.66667%; }
  .col-lg-pull-6 {
    right: 50%; }
  .col-lg-pull-7 {
    right: 58.33333%; }
  .col-lg-pull-8 {
    right: 66.66667%; }
  .col-lg-pull-9 {
    right: 75%; }
  .col-lg-pull-10 {
    right: 83.33333%; }
  .col-lg-pull-11 {
    right: 91.66667%; }
  .col-lg-pull-12 {
    right: 100%; }
  .col-lg-push-0 {
    left: auto; }
  .col-lg-push-1 {
    left: 8.33333%; }
  .col-lg-push-2 {
    left: 16.66667%; }
  .col-lg-push-3 {
    left: 25%; }
  .col-lg-push-4 {
    left: 33.33333%; }
  .col-lg-push-5 {
    left: 41.66667%; }
  .col-lg-push-6 {
    left: 50%; }
  .col-lg-push-7 {
    left: 58.33333%; }
  .col-lg-push-8 {
    left: 66.66667%; }
  .col-lg-push-9 {
    left: 75%; }
  .col-lg-push-10 {
    left: 83.33333%; }
  .col-lg-push-11 {
    left: 91.66667%; }
  .col-lg-push-12 {
    left: 100%; }
  .col-lg-offset-0 {
    margin-left: 0%; }
  .col-lg-offset-1 {
    margin-left: 8.33333%; }
  .col-lg-offset-2 {
    margin-left: 16.66667%; }
  .col-lg-offset-3 {
    margin-left: 25%; }
  .col-lg-offset-4 {
    margin-left: 33.33333%; }
  .col-lg-offset-5 {
    margin-left: 41.66667%; }
  .col-lg-offset-6 {
    margin-left: 50%; }
  .col-lg-offset-7 {
    margin-left: 58.33333%; }
  .col-lg-offset-8 {
    margin-left: 66.66667%; }
  .col-lg-offset-9 {
    margin-left: 75%; }
  .col-lg-offset-10 {
    margin-left: 83.33333%; }
  .col-lg-offset-11 {
    margin-left: 91.66667%; }
  .col-lg-offset-12 {
    margin-left: 100%; } }

/* MediaSwipe by Eric Winterstine v.12.11.2017
   ------------------------------------------- */
body.ms-prevent-scroll {
  overflow: hidden !important;
  height: 100% !important; }

#mediaswipe-container #mediaswipe-share-button,
#mediaswipe-container #mediaswipe-fullscreen-button,
#mediaswipe-container #mediaswipe-close-button,
#mediaswipe-container #mediaswipe-facebook-share,
#mediaswipe-container #mediaswipe-twitter-share,
#mediaswipe-container #mediaswipe-pinterest-share,
#mediaswipe-container #mediaswipe-left-arrow,
#mediaswipe-container #mediaswipe-right-arrow {
  background: transparent;
  border: 0px;
  -webkit-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0);
  -moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0);
  box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0); }

#mediaswipe-container,
#mediaswipe-container .mediaswipe-overlay,
#mediaswipe-container .mediaswipe-arrow,
#mediaswipe-container .mediaswipe-invisible-overlay,
#mediaswipe-container .mediaswipe-slides-container,
#mediaswipe-container .mediaswipe-slide-container,
#mediaswipe-container .mediaswipe-slide-container > img,
#mediaswipe-container .mediaswipe-slide,
#mediaswipe-container .mediaswipe-top-bar,
#mediaswipe-container .mediaswipe-top-bar *,
#mediaswipe-container .mediaswipe-bottom-bar,
#mediaswipe-container .mediaswipe-bottom-bar *,
#mediaswipe-container iframe {
  box-sizing: border-box;
  margin: 0px 0px 0px 0px;
  padding: 0px 0px 0px 0px;
  borer-radius: 0px;
  border: 0px;
  user-drag: none;
  user-select: none;
  -moz-user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -webkit-backface-visibility: hidden; }

#mediaswipe-container *:focus,
#mediaswipe-container *:active {
  outline: 0; }

#mediaswipe-container {
  visibility: hidden;
  position: fixed;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 0px;
  overflow: hidden;
  z-index: 0; }

#mediaswipe-container.on {
  visibility: visible;
  height: 100%;
  z-index: 999999; }

#mediaswipe-container .mediaswipe-overlay {
  display: block;
  opacity: 0;
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 900;
  background-color: black; }

#mediaswipe-container.on .mediaswipe-overlay {
  opacity: 1; }

#mediaswipe-container .mediaswipe-arrow {
  position: absolute;
  display: none;
  top: 50%;
  margin-top: -50px;
  width: 43px;
  height: 95px;
  z-index: 950; }

#mediaswipe-container #mediaswipe-left-arrow.mediaswipe-arrow,
#mediaswipe-container #mediaswipe-right-arrow.mediaswipe-arrow {
  background-color: rgba(0, 0, 0, 0.7); }

#mediaswipe-container .mediaswipe-arrow span {
  display: block;
  position: absolute;
  width: 30px;
  height: 38px;
  left: 7px;
  top: 31px;
  z-index: 1; }

#mediaswipe-container .mediaswipe-arrow.mediaswipe-right-arrow span {
  left: auto;
  right: 7px; }

#mediaswipe-container.on.mediaswipe-allow-arrows .mediaswipe-arrow {
  display: block; }

/*
#mediaswipe-container .mediaswipe-left-arrow {
	-webkit-transform:translate(-100%,0); 
	-ms-transform:translate(-100%,0); 
	transform:translate(-100%,0);
}
#mediaswipe-container.on:hover .mediaswipe-left-arrow {
	-webkit-transform:translate(0%,0); 
	-ms-transform:translate(0%,0); 
	transform:translate(0%,0);
}
#mediaswipe-container .mediaswipe-right-arrow {
	-webkit-transform:translate(100%,0); 
	-ms-transform:translate(100%,0); 
	transform:translate(100%,0);
}
#mediaswipe-container.on:hover .mediaswipe-right-arrow {
	-webkit-transform:translate(0%,0); 
	-ms-transform:translate(0%,0); 
	transform:translate(0%,0);
}
*/
#mediaswipe-container .mediaswipe-arrow:hover {
  background-color: rgba(0, 0, 0, 0.9);
  cursor: pointer; }

#mediaswipe-container .mediaswipe-left-arrow {
  left: 0px; }

#mediaswipe-container .mediaswipe-right-arrow {
  right: 0px; }

#mediaswipe-container .mediaswipe-left-arrow:before {
  content: "";
  display: block;
  position: absolute;
  background-image: url("https://cdn.tollbrothers.com/lifestyles/mediaswipe/spritesheet.png");
  background-repeat: no-repeat;
  background-size: 55px 50px;
  background-position: -42px 0px;
  width: 13px;
  height: 24px;
  overflow: hidden;
  left: 50%;
  top: 50%;
  margin-left: -8px;
  margin-top: -12px; }

#mediaswipe-container .mediaswipe-right-arrow:before {
  content: "";
  display: block;
  position: absolute;
  background-image: url("https://cdn.tollbrothers.com/lifestyles/mediaswipe/spritesheet.png");
  background-repeat: no-repeat;
  background-size: 55px 50px;
  background-position: -42px -24px;
  width: 13px;
  height: 24px;
  overflow: hidden;
  left: 50%;
  top: 50%;
  margin-left: -6px;
  margin-top: -12px; }

#mediaswipe-container .mediaswipe-slides-container {
  overflow: hidden;
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 925; }

#mediaswipe-container.disable-touchpad .mediaswipe-invisible-overlay {
  z-index: 900; }

#mediaswipe-container .mediaswipe-invisible-overlay {
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: 939;
  background-color: rgba(0, 0, 0, 0);
  width: 100%;
  height: 100%; }

#mediaswipe-container .mediaswipe-slide {
  overflow: hidden;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px; }

#mediaswipe-container .mediaswipe-current-slide {
  left: 0px;
  z-index: 930; }

#mediaswipe-container .mediaswipe-previous-slide {
  left: -100%;
  z-index: 925; }

#mediaswipe-container .mediaswipe-next-slide {
  left: 100%;
  z-index: 925; }

#mediaswipe-container .mediaswipe-slide:before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 28px;
  border: 3px solid #686868;
  border-right: 3px solid transparent;
  border-radius: 50%;
  margin-left: -14px;
  margin-top: -14px;
  animation: mediaswipe-rotate 0.6s infinite linear; }

#mediaswipe-container .mediaswipe-slide.loaded:before {
  display: none; }

#mediaswipe-container .mediaswipe-slide .mediaswipe-slide-container {
  position: absolute;
  z-index: 935;
  opacity: 0;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px; }

#mediaswipe-container .mediaswipe-slide.loaded .mediaswipe-slide-container {
  opacity: 1; }

#mediaswipe-container .mediaswipe-slide-container img {
  display: block;
  max-width: inherit;
  max-height: inherit;
  user-drag: none;
  user-select: none;
  -moz-user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
  -ms-user-select: none; }

#mediaswipe-container .mediaswipe-slide-container iframe {
  background-color: #222; }

#mediaswipe-container #mediaswipe-touchpad {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 940;
  background-color: rgba(0, 0, 0, 0); }

#mediaswipe-container.ms-zoom-in #mediaswipe-touchpad:hover {
  cursor: zoom-in; }

#mediaswipe-container.ms-zoom-out #mediaswipe-touchpad:hover {
  cursor: zoom-out; }

#mediaswipe-container.ms-grab #mediaswipe-touchpad:hover {
  cursor: grab;
  cursor: -moz-grab;
  cursor: -webkit-grab; }

#mediaswipe-container.ms-grabbing #mediaswipe-touchpad:hover {
  cursor: grabbing;
  cursor: -moz-grabbing;
  cursor: -webkit-grabbing; }

#mediaswipe-container .mediaswipe-bottom-bar {
  position: absolute;
  left: 0px;
  bottom: 0px;
  width: 100%;
  z-index: 950; }

#mediaswipe-container #mediaswipe-slide-caption {
  font: 300 10px/12px sans-serif;
  color: #ffffff;
  opacity: 1;
  text-align: left;
  padding: 9px 12px;
  overflow: hidden;
  white-space: nowrap;
  display: none;
  background-color: #000;
  position: absolute;
  left: 0px;
  bottom: 0px;
  letter-spacing: 0.5px; }

#mediaswipe-container #mediaswipe-slide-caption.on {
  display: block; }

@media only screen and (max-width: 800px) {
  /*
	#mediaswipe-container #mediaswipe-slide-caption {
		padding: 18px 0px;
	}
	*/ }

#mediaswipe-container .mediaswipe-top-bar {
  left: 0px;
  top: 0px;
  width: 100%;
  z-index: 950; }

#mediaswipe-container #mediaswipe-gallery-indexes {
  display: none; }

#mediaswipe-container #mediaswipe-gallery-indexes.on {
  display: block;
  position: absolute;
  left: 0px;
  top: 0px;
  font: 300 10px/12px sans-serif;
  color: #ffffff;
  opacity: 1;
  background-color: #000;
  padding: 10px 12px;
  z-index: 951; }

#mediaswipe-container #mediaswipe-close-button {
  position: absolute;
  right: 0px;
  top: 0px;
  width: 90px;
  height: 90px;
  background-color: black;
  z-index: 951; }

#mediaswipe-container #mediaswipe-close-button:hover {
  cursor: pointer; }

#mediaswipe-container #mediaswipe-close-button:before {
  content: "";
  display: block;
  position: absolute;
  background-image: url("https://cdn.tollbrothers.com/lifestyles/mediaswipe/spritesheet.png");
  background-repeat: no-repeat;
  background-size: 55px 50px;
  background-position: 0px -17px;
  width: 32px;
  height: 32px;
  overflow: hidden;
  left: 50%;
  top: 50%;
  margin-left: -16px;
  margin-top: -16px; }

#mediaswipe-container .mediaswipe-fullscreen-button {
  display: none; }

#mediaswipe-container .mediaswipe-share-button {
  display: none; }

#mediaswipe-container #mediaswipe-share-nav {
  display: block;
  position: absolute;
  background-color: black;
  right: 0px;
  bottom: 0px;
  padding: 6px 12px;
  font-size: 0px;
  z-index: 951; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-share-nav button {
  background-color: transparent;
  border: 0px;
  color: rgba(0, 0, 0, 0);
  display: inline-block;
  vertical-align: middle;
  opacity: 0.8;
  position: relative;
  width: 22px;
  height: 17px; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-share-nav button:before {
  content: "";
  display: block;
  overflow: hidden;
  left: 50%;
  top: 50%;
  position: absolute;
  background-image: url("https://cdn.tollbrothers.com/lifestyles/mediaswipe/spritesheet.png");
  background-repeat: no-repeat;
  background-size: 55px 50px; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-share-nav button:hover {
  opacity: 1.0;
  cursor: pointer; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-facebook-share:before {
  background-position: 0px 0px;
  width: 8px;
  height: 16px;
  margin-left: -4px;
  margin-top: -8px; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-twitter-share:before {
  background-position: -9px 0px;
  width: 15px;
  height: 13px;
  margin-left: -7px;
  margin-top: -6px; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-pinterest-share {
  margin-left: 2px; }

#mediaswipe-container .mediaswipe-top-bar #mediaswipe-pinterest-share:before {
  background-position: -25px 0px;
  width: 16px;
  height: 16px;
  margin-left: -8px;
  margin-top: -8px; }

/* Transitions ------------------ */
.mediaswipe-op-transition {
  -webkit-transition: opacity 0.25s ease;
  -moz-transition: opacity 0.25s ease;
  -ms-transition: opacity 0.25s ease;
  -o-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease; }

.mediaswipe-bgcolor-transition {
  -webkit-transition: background-color 0.25s ease;
  -moz-transition: background-color 0.25s ease;
  -ms-transition: background-color 0.25s ease;
  -o-transition: background-color 0.25s ease;
  transition: background-color 0.25s ease; }

.mediaswipe-all-transition {
  -webkit-transition: all 0.25s ease;
  -moz-transition: all 0.25s ease;
  -ms-transition: all 0.25s ease;
  -o-transition: all 0.25s ease;
  transition: all 0.25s ease; }

/* Interactive Styles ------------------ */
#interactiveContainer h3 {
  margin: 0px 0px .84em;
  padding: 0px 0px 0px 0px; }

#mediaswipe-container .interactivePhoto_disclaimer_link {
  position: absolute;
  left: 0;
  bottom: 0;
  height: auto;
  margin-top: 0px;
  margin-left: 6px;
  text-shadow: 0 1px rgba(0, 0, 0, 0.85);
  font-size: .84em;
  z-index: 1;
  cursor: pointer; }

#mediaswipe-container .interactivePhoto_disclaimer_box {
  display: none;
  position: absolute;
  left: 0;
  bottom: 0px;
  height: auto;
  width: 100%;
  padding: 26px 27px;
  color: #454545;
  font-size: .7em;
  font-weight: 300;
  background: #FFF;
  background: rgba(255, 255, 255, 0.95);
  text-align: left;
  z-index: 111111111112 !important;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  -o-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  -khtml-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); }

@media only screen and (max-width: 1099px) {
  #mediaswipe-container .mediaswipe-fullscreen-button {
    display: none; }
  #mediaswipe-container .mediaswipe-share-button {
    right: 47px; }
  #mediaswipe-container .mediaswipe-top-bar #mediaswipe-share-nav button {
    font: 300 16px/24px sans-serif; } }

@keyframes mediaswipe-rotate {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-XLight_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-XLight_Web.woff") format("woff");
  font-weight: 200;
  font-style: normal; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-XLightItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-XLightItalic_Web.woff") format("woff");
  font-weight: 200;
  font-style: italic; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-Light_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-Light_Web.woff") format("woff");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-LightItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-LightItalic_Web.woff") format("woff");
  font-weight: 300;
  font-style: italic; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-Book_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-Book_Web.woff") format("woff");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-BookItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-BookItalic_Web.woff") format("woff");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-Medium_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-Medium_Web.woff") format("woff");
  font-weight: 500;
  font-style: normal; }

@font-face {
  font-family: "Gotham Narrow";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamNarrSSm-MediumItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamNarrSSm-MediumItalic_Web.woff") format("woff");
  font-weight: 500;
  font-style: italic; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-XLight_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-XLight_Web.woff") format("woff");
  font-weight: 200;
  font-style: normal; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-XLightItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-XLightItalic_Web.woff") format("woff");
  font-weight: 200;
  font-style: italic; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-Light_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-Light_Web.woff") format("woff");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-LightItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-LightItalic_Web.woff") format("woff");
  font-weight: 300;
  font-style: italic; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-Book_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-Book_Web.woff") format("woff");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-BookItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-BookItalic_Web.woff") format("woff");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-Medium_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-Medium_Web.woff") format("woff");
  font-weight: 500;
  font-style: normal; }

@font-face {
  font-family: "Gotham";
  src: url("https://cdn.tollbrothers.com/fonts/gotham/woff2/GothamSSm-MediumItalic_Web.woff2") format("woff2"), url("https://cdn.tollbrothers.com/fonts/gotham/woff/GothamSSm-MediumItalic_Web.woff") format("woff");
  font-weight: 500;
  font-style: italic; }

body, body span, body p, body .wysiwyg-font-size-medium {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-family: "Gotham Narrow",sans-serif;
  font-size: 15px;
  font-weight: 300;
  color: #000; }

h1, h2, h3, h4, h5, h6 {
  font-weight: 200;
  margin-top: 0;
  font-family: "Gotham",sans-serif; }

h1 {
  font-size: 32px; }

h2 {
  font-size: 20px;
  color: #004876;
  font-weight: 400; }

h3 {
  font-size: 18px;
  font-weight: 600; }

h4 {
  font-size: 20px;
  color: #004876; }

.search-result-link {
  font-family: "Gotham",sans-serif;
  color: #0070CD;
  font-size: 18px;
  font-weight: 300; }

.page-margins {
  padding-left: 17.5px;
  padding-right: 17.5px; }
  @media (min-width: 992px) {
    .page-margins {
      padding-left: 35px;
      padding-right: 35px; } }
  @media (min-width: 1200px) {
    .page-margins {
      padding-left: 70px;
      padding-right: 70px; } }

.blocks-item {
  border: 1px solid rgba(133, 133, 133, 0.3);
  padding: 30px 0; }

a.bluebutton {
  background: #0070CD;
  color: white;
  padding: 10px 20px;
  font-family: "Gotham",sans-serif;
  font-size: 10px;
  font-weight: 400;
  text-transform: uppercase; }

.request_description textarea {
  border: 1px solid #ddd;
  border-radius: 4px; }

.request-form {
  margin-bottom: 80px; }

li {
  font-weight: 300; }

/* spanning across the full width of the page for this search results */
.search-results-column {
  flex: 1; }

.searchbox-suggestions li:nth-of-type(1n+4) {
  display: none; }

header.topheader {
  background-color: #0C223F;
  color: white; }
  header.topheader .head_contain {
    align-items: center;
    display: flex;
    justify-content: space-between;
    height: 100%; }
  header.topheader .user-info span {
    color: white; }
  header.topheader .user-info > [role="button"] {
    color: white; }
    header.topheader .user-info > [role="button"]:after {
      color: white; }
  header.topheader .subhead {
    display: block;
    height: 28px; }
  header.topheader .subhead, header.topheader .user-nav a, header.topheader .nav-wrapper a.login {
    font-size: 0.8em;
    vertical-align: middle;
    line-height: 28px;
    font-family: "Gotham",sans-serif;
    font-weight: 500;
    text-align: center;
    color: white; }
  @media (min-width: 768px) {
    header.topheader .subhead {
      display: inline-block;
      border-left: 1px solid rgba(255, 255, 255, 0.3);
      margin-left: 20px;
      padding-left: 20px; } }
  header.topheader a.bluebutton {
    margin-right: 20px; }
  header.topheader .user-avatar {
    margin-right: 10px; }
  @media (max-width: 600px) {
    header.topheader .user-nav {
      position: fixed;
      bottom: 0px;
      left: 0px;
      background: white;
      width: 100vw;
      padding: 10px;
      text-align: center;
      -webkit-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2);
      -moz-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2);
      box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2);
      z-index: 20; }
      header.topheader .user-nav a.bluebutton {
        margin-right: 0;
        width: 100%;
        max-width: 400px; } }

@media (max-width: 600px) {
  footer {
    padding-bottom: 60px; } }

footer .footbar {
  background: rgba(0, 72, 118, 0.1); }
  footer .footbar .innerfootbar {
    height: 125px;
    display: flex;
    align-items: center;
    text-align: right;
    justify-content: center;
    max-width: 1200px;
    margin: 0 auto;
    flex-direction: column; }
    footer .footbar .innerfootbar h5 {
      margin-bottom: 10px;
      font-size: 20px;
      font-weight: 400;
      text-align: center; }
    @media (min-width: 768px) {
      footer .footbar .innerfootbar {
        flex-direction: row;
        margin: 0 auto; }
        footer .footbar .innerfootbar h5 {
          margin-bottom: 0;
          margin-right: 30px; } }
    footer .footbar .innerfootbar a {
      text-transform: uppercase;
      font-size: 0.7em;
      font-weight: 500; }

footer .footer-inner {
  height: 80px;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px; }
  footer .footer-inner a {
    max-width: 200px;
    flex: 1;
    font-size: 12px;
    font-weight: 300;
    font-family: "Gotham",sans-serif;
    color: black; }
    footer .footer-inner a img {
      width: 90%; }
  @media (min-width: 600px) {
    footer .footer-inner {
      height: 125px; }
      footer .footer-inner a img {
        width: 210px; } }
  footer .footer-inner .right-legal a {
    padding: 0 10px; }

footer .footer-language-selector {
  display: none; }

section.hero {
  background: #0C223F; }
  section.hero h1 {
    color: white; }
  section.hero .search-full input[type="search"] {
    margin: 20px 0;
    background: white;
    font-size: 16px;
    font-family: "Gotham",sans-serif;
    font-weight: 200; }
  section.hero .popular {
    color: white;
    font-size: 0.9em; }
    section.hero .popular strong {
      font-weight: 500; }
    section.hero .popular a {
      color: white;
      text-decoration: underline; }
  section.hero.small {
    margin-bottom: 20px;
    height: auto;
    padding: 0 20px 10px 20px; }
    section.hero.small .hero-inner {
      top: auto;
      transform: none; }
      section.hero.small .hero-inner h1 {
        font-size: 24px; }
      section.hero.small .hero-inner .search input[type="search"] {
        height: 40px;
        margin: 12px 0; }

.blocks-item img.svg {
  width: 80px; }

.blocks-item-title {
  color: black;
  font-weight: 500;
  font-size: 16px;
  margin-top: 5px; }

.blocks-item-description {
  font-size: 15px;
  color: #858585;
  font-weight: 400; }

.recent-activity-item-parent, .recent-activity-item-meta {
  display: none; }

.recent-activity-item {
  padding: 14px 0; }

section.home_articles {
  display: flex; }
  section.home_articles h2 {
    text-align: left;
    margin-bottom: 10px;
    color: black; }
  section.home_articles .activity, section.home_articles .articles {
    flex: 1; }
    section.home_articles .activity ul, section.home_articles .articles ul {
      max-width: 450px; }
      section.home_articles .activity ul a, section.home_articles .articles ul a {
        color: #0070CD;
        font-size: 14px;
        font-weight: 400;
        font-family: "Gotham",sans-serif; }
  section.home_articles .activity {
    margin-right: 20px;
    border-top: 0;
    padding: 0; }
  section.home_articles .articles {
    margin-left: 20px; }

.category-container, .section-container {
  margin-bottom: 50px;
  /* .article-list-item {
        a {
            color: $light_blue;
            font-size: 13px;
            font-weight: 200;
        }
        border-bottom: 1px solid rgba($gray_1, 0.3);
    } */ }
  .category-container h1, .section-container h1 {
    color: #0C223F;
    margin-bottom: 50px; }
  .category-container h3, .section-container h3 {
    font-weight: 300;
    margin-bottom: 10px; }
  .category-container h5.subsection, .section-container h5.subsection {
    margin: 10px 0 0 10px; }
    .category-container h5.subsection a, .section-container h5.subsection a {
      color: black;
      font-size: 0.9em; }
  .category-container .article-list, .section-container .article-list {
    margin: 0 0 0 16px; }

.category-block.blocks-item {
  display: block; }
  .category-block.blocks-item p.page-header-description {
    margin: 0 20px; }

.section-tree .general {
  display: none; }
  .section-tree .general.warranty {
    display: inline; }

.section-tree.home-care .home-care {
  display: inline; }

.section-tree.home-care .warranty {
  display: none; }

.section-content {
  display: flex;
  flex-direction: row;
  flex-flow: wrap; }
  .section-content header {
    flex: 0 0 100%; }
  .section-content .section-list {
    width: 100%;
    margin: 0; }
    @media (min-width: 768px) {
      .section-content .section-list {
        width: 330px; } }
    .section-content .section-list .section-list-item {
      border: 1px solid #ddd;
      padding: 12px;
      margin-bottom: 10px; }
      .section-content .section-list .section-list-item div.icon_holder {
        flex: 0 50px; }
      .section-content .section-list .section-list-item span {
        flex: 1; }
      .section-content .section-list .section-list-item svg {
        display: none; }
      .section-content .section-list .section-list-item .accord-space {
        display: block;
        overflow: hidden;
        max-height: 0px;
        transition: max-height 0.3s ease-out; }
        @media (min-width: 768px) {
          .section-content .section-list .section-list-item .accord-space {
            display: none; } }
        .section-content .section-list .section-list-item .accord-space a:first-child {
          margin-top: 20px;
          border-top: 1px solid #ddd;
          padding-top: 20px; }
        .section-content .section-list .section-list-item .accord-space a:last-child {
          border-bottom: 0;
          margin-bottom: 0; }
      .section-content .section-list .section-list-item.active svg {
        display: block;
        transform: rotate(90deg); }
        @media (min-width: 768px) {
          .section-content .section-list .section-list-item.active svg {
            transform: rotate(0deg); } }
      .section-content .section-list .section-list-item.active .accord-space {
        max-height: 500px; }
  .section-content .articles {
    padding: 0 0 0 60px;
    flex: 1;
    display: none; }
    @media (min-width: 768px) {
      .section-content .articles {
        display: block; } }
    .section-content .articles .articleHolder {
      display: none; }
      .section-content .articles .articleHolder.active {
        display: block; }
  .section-content .article-list-item {
    font-size: 15px;
    padding: 0; }
  .section-content a.article-list-link {
    display: block;
    padding-bottom: 16px;
    border-bottom: 1px solid #ddd;
    margin-bottom: 16px;
    color: #0070CD; }

.article-container .article-sidebar {
  display: none; }

.article-container .article {
  flex: 1;
  max-width: none;
  padding: 0; }

.article-container.with-sidebar .article {
  display: flex;
  flex-wrap: wrap;
  /* h1 {
                flex: 0 0 100%;
            } */ }
  .article-container.with-sidebar .article aside.article-sidebar {
    display: block;
    flex: 0 0 300px;
    padding: 0 30px 0 0; }
    .article-container.with-sidebar .article aside.article-sidebar strong {
      margin-bottom: 16px;
      display: block; }
    .article-container.with-sidebar .article aside.article-sidebar li {
      padding: 12px 0;
      border-top: 1px solid #ddd;
      display: block; }
      .article-container.with-sidebar .article aside.article-sidebar li:first-child {
        border-top: 0; }
  .article-container.with-sidebar .article section {
    flex: 1; }
  .article-container.with-sidebar .article footer {
    flex: 0 0 100%; }
  .article-container.with-sidebar .article .article-content {
    margin: 0; }

.article-container .light_blue_box {
  border: 1px solid rgba(0, 72, 118, 0.1);
  background-color: rgba(0, 72, 118, 0.1);
  float: right;
  width: 25%;
  max-width: 300px;
  padding: 40px 20px;
  font-size: 0.9em;
  margin-bottom: 30px;
  margin-left: 40px; }
  .article-container .light_blue_box h5 {
    font-weight: 400;
    color: #004876; }

.article-container h1 {
  color: #004876;
  margin-bottom: 50px; }

.article-container h4 {
  margin-bottom: 20px;
  padding: 20px 0; }
  .article-container h4:first-child {
    padding: 0 0 20px 0; }

.article-container strong, .article-container strong span {
  font-weight: 500;
  font-family: "Gotham Narrow",sans-serif;
  font-size: 15px; }

.article-container p {
  margin-bottom: 20px;
  /* span {
            font-size: 16px;
            font-weight: 400;
        } */ }

.article-container ol {
  list-style: none;
  counter-reset: item;
  margin: 20px 0 20px 20px;
  padding: 0; }
  .article-container ol > li {
    counter-increment: item;
    margin-bottom: 25px; }
    .article-container ol > li p {
      display: inline;
      line-height: 4px; }
      .article-container ol > li p strong {
        font-weight: 600;
        margin-bottom: 10px;
        display: inline-block; }
  .article-container ol ul {
    margin: 10px 0 0 10px; }
  .article-container ol > li:before {
    font-size: 12px;
    margin-right: 6px;
    content: counter(item);
    border: 1px solid #0070CD;
    border-radius: 100%;
    color: #0070CD;
    width: 1.5em;
    text-align: center;
    display: inline-block; }

.activities_container {
  margin-top: 20px; }

.profile-header .name a {
  color: black; }

.profile-header .stat-label {
  font-weight: 500; }

.profile-section header {
  background-color: transparent;
  color: inherit; }

.search-results {
  margin-top: 50px;
  border-top: 0; }

.search-results-list > li:first-child {
  border-top: 0; }

/* go ahead use this file. No one will care... it's all good */
/* this is for specificity fixes... */
/* no styles go in here *./
/* use one of the files above */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sbC1zdHlsZXMuY3NzIiwic291cmNlcyI6WyJ0b2xsLXN0eWxlcy5zY3NzIiwibW9kdWxlcy9fZnVuY3Rpb25zLnNjc3MiLCJtb2R1bGVzL192YXJpYWJsZXMuc2NzcyIsIm1vZHVsZXMvX21peGlucy5zY3NzIiwibW9kdWxlcy9fYnJlYWtwb2ludHMuc2NzcyIsIm1vZHVsZXMvX2FuaW1hdGlvbnMuc2NzcyIsIm1vZHVsZXMvX2dyaWQtZnJhbWV3b3JrLnNjc3MiLCJwYXJ0aWFscy9fcmVzZXQuc2NzcyIsInBhcnRpYWxzL19ncmlkLnNjc3MiLCJ2ZW5kb3JzL19tZWRpYXN3aXBlLnNjc3MiLCJiYXNlL190eXBvZ3JhcGh5LnNjc3MiLCJiYXNlL19iYXNlLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsInBhZ2VzL19ob21lLnNjc3MiLCJwYWdlcy9fY2F0ZWdvcnkuc2NzcyIsInBhZ2VzL19zZWN0aW9uLnNjc3MiLCJwYWdlcy9fYXJ0aWNsZS5zY3NzIiwicGFnZXMvX3JlcXVlc3RzLnNjc3MiLCJwYWdlcy9fcHJvZmlsZS5zY3NzIiwicGFnZXMvX3NlYXJjaC5zY3NzIiwiYmFzZS9fc2hhbWUuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbkBpbXBvcnQgXG5cdFwibW9kdWxlcy9mdW5jdGlvbnNcIixcblx0XCJtb2R1bGVzL3ZhcmlhYmxlc1wiLFxuXHRcIm1vZHVsZXMvbWl4aW5zXCIsXG5cdFwibW9kdWxlcy9icmVha3BvaW50c1wiLFxuXHRcIm1vZHVsZXMvYW5pbWF0aW9uc1wiLFxuXHRcIm1vZHVsZXMvZ3JpZC1mcmFtZXdvcmtcIjtcblxuQGltcG9ydCBcblx0XCJwYXJ0aWFscy9yZXNldFwiLFxuXHRcInBhcnRpYWxzL2dyaWRcIjtcblxuQGltcG9ydCBcblx0XCJ2ZW5kb3JzL21lZGlhc3dpcGVcIjtcblxuQGltcG9ydFxuXHRcImJhc2UvdHlwb2dyYXBoeVwiLFxuXHRcImJhc2UvYmFzZVwiO1xuXG5AaW1wb3J0IFxuXHRcImxheW91dC9oZWFkZXJcIixcblx0XCJsYXlvdXQvZm9vdGVyXCI7XG5cbkBpbXBvcnQgXG5cdFwicGFnZXMvaG9tZVwiLFxuXHRcInBhZ2VzL2NhdGVnb3J5XCIsXG5cdFwicGFnZXMvc2VjdGlvblwiLFxuXHRcInBhZ2VzL2FydGljbGVcIixcblx0XCJwYWdlcy9yZXF1ZXN0c1wiLFxuXHRcInBhZ2VzL3Byb2ZpbGVcIixcblx0XCJwYWdlcy9zZWFyY2hcIjtcblxuQGltcG9ydCBcblx0XCJiYXNlL3NoYW1lXCI7XG5cblxuLyogbm8gc3R5bGVzIGdvIGluIGhlcmUgKi4vXG4vKiB1c2Ugb25lIG9mIHRoZSBmaWxlcyBhYm92ZSAqLyIsIlxuXG5cblxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlLCAkYmFzZS12YWx1ZTogMTYpIHtcblxuICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlLXZhbHVlICogMWVtO1xuICBAaWYgKCR2YWx1ZSA9PSAwZW0pIHsgJHZhbHVlOiAwOyB9IC8qIFR1cm4gMGVtIGludG8gMCAqL1xuICBAcmV0dXJuICR2YWx1ZTtcbiAgXG59XG5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG5cblxuXG5cbi8vLyBTdHJva2UgZm9udC1jaGFyYWN0ZXJcbi8vLyBAcGFyYW0gIHtJbnRlZ2VyfSAkc3Ryb2tlIC0gU3Ryb2tlIHdpZHRoXG4vLy8gQHBhcmFtICB7Q29sb3J9ICAgJGNvbG9yICAtIFN0cm9rZSBjb2xvclxuLy8vIEByZXR1cm4ge0xpc3R9ICAgICAgICAgICAgLSB0ZXh0LXNoYWRvdyBsaXN0XG5AZnVuY3Rpb24gc3Ryb2tlKCRzdHJva2UsICRjb2xvcikge1xuICAkc2hhZG93OiAoKTtcbiAgJGZyb206ICRzdHJva2UqLTE7XG4gIEBmb3IgJGkgZnJvbSAkZnJvbSB0aHJvdWdoICRzdHJva2Uge1xuICAgQGZvciAkaiBmcm9tICRmcm9tIHRocm91Z2ggJHN0cm9rZSB7XG4gICAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgJGkqMXB4ICRqKjFweCAwICRjb2xvciwgY29tbWEpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRzaGFkb3c7XG59XG4vLy8gU3Ryb2tlIGZvbnQtY2hhcmFjdGVyXG4vLy8gQHBhcmFtICB7SW50ZWdlcn0gJHN0cm9rZSAtIFN0cm9rZSB3aWR0aFxuLy8vIEBwYXJhbSAge0NvbG9yfSAgICRjb2xvciAgLSBTdHJva2UgY29sb3Jcbi8vLyBAcmV0dXJuIHtTdHlsZX0gICAgICAgICAgIC0gdGV4dC1zaGFkb3dcbkBtaXhpbiBzdHJva2UoJHN0cm9rZSwgJGNvbG9yKSB7XG4gIHRleHQtc2hhZG93OiBzdHJva2UoJHN0cm9rZSwgJGNvbG9yKTtcbn1cblxuXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkbnVtYmVyKSB7XG4gIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufSIsIlxuXG5cbi8qICoqKioqKioqKiogQ09MT1JTICoqKioqKioqKioqKiogKi9cbiRkYXJrX2JsdWU6ICMwQzIyM0Y7XG4kbWVkX2JsdWU6ICMwMDQ4NzY7XG4kbGlnaHRfYmx1ZTogIzAwNzBDRDtcblxuXG5cbiRncmF5XzE6ICM4NTg1ODU7XG5cblxuXG5cblxuLy89PSBNZWRpYSBxdWVyaWVzIGJyZWFrcG9pbnRzXG4vL1xuLy8jIyBEZWZpbmUgdGhlIGJyZWFrcG9pbnRzIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLCBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLlxuXG4vLyBFeHRyYSBzbWFsbCBzY3JlZW4gLyBwaG9uZVxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXhzYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4teHM6ICAgICAgICAgICAgICAgICAgNDgwcHggIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4teHMtbWluYCBhcyBvZiB2My4yLjBcbiRzY3JlZW4teHMtbWluOiAgICAgICAgICAgICAgJHNjcmVlbi14cyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1waG9uZWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXBob25lOiAgICAgICAgICAgICAgICRzY3JlZW4teHMtbWluICFkZWZhdWx0O1xuXG4vLyBTbWFsbCBzY3JlZW4gLyB0YWJsZXRcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1zbWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXNtOiAgICAgICAgICAgICAgICAgIDc2OHB4ICFkZWZhdWx0O1xuJHNjcmVlbi1zbS1taW46ICAgICAgICAgICAgICAkc2NyZWVuLXNtICFkZWZhdWx0O1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXRhYmxldGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXRhYmxldDogICAgICAgICAgICAgICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLW1kYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbWQ6ICAgICAgICAgICAgICAgICAgOTkycHggIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1pbjogICAgICAgICAgICAgICRzY3JlZW4tbWQgIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tZGVza3RvcGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWRlc2t0b3A6ICAgICAgICAgICAgICRzY3JlZW4tbWQtbWluICFkZWZhdWx0O1xuXG4vLyBMYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3Bcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZ2AgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWxnOiAgICAgICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDtcbiRzY3JlZW4tbGctbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1sZyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZy1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGctZGVza3RvcDogICAgICAgICAgJHNjcmVlbi1sZy1taW4gIWRlZmF1bHQ7XG5cbi8vIFNvIG1lZGlhIHF1ZXJpZXMgZG9uJ3Qgb3ZlcmxhcCB3aGVuIHJlcXVpcmVkLCBwcm92aWRlIGEgbWF4aW11bVxuJHNjcmVlbi14cy1tYXg6ICAgICAgICAgICAgICAoJHNjcmVlbi1zbS1taW4gLSAxKSAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWF4OiAgICAgICAgICAgICAgKCRzY3JlZW4tbWQtbWluIC0gMSkgIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1heDogICAgICAgICAgICAgICgkc2NyZWVuLWxnLW1pbiAtIDEpICFkZWZhdWx0O1xuXG5cblxuXG5cblxuLy89PSBHcmlkIHN5c3RlbVxuLy9cbi8vIyMgRGVmaW5lIHlvdXIgY3VzdG9tIHJlc3BvbnNpdmUgZ3JpZC5cblxuLy8qKiBOdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbiRncmlkLWNvbHVtbnM6ICAgICAgICAgICAgICAxMiAhZGVmYXVsdDtcbi8vKiogUGFkZGluZyBiZXR3ZWVuIGNvbHVtbnMuIEdldHMgZGl2aWRlZCBpbiBoYWxmIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6ICAgICAgICAgMzBweCAhZGVmYXVsdDtcbi8vIE5hdmJhciBjb2xsYXBzZVxuLy8qKiBQb2ludCBhdCB3aGljaCB0aGUgbmF2YmFyIGJlY29tZXMgdW5jb2xsYXBzZWQuXG4kZ3JpZC1mbG9hdC1icmVha3BvaW50OiAgICAgJHNjcmVlbi1zbS1taW4gIWRlZmF1bHQ7XG4vLyoqIFBvaW50IGF0IHdoaWNoIHRoZSBuYXZiYXIgYmVnaW5zIGNvbGxhcHNpbmcuXG4kZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heDogKCRncmlkLWZsb2F0LWJyZWFrcG9pbnQgLSAxKSAhZGVmYXVsdDtcblxuXG4vLz09IENvbnRhaW5lciBzaXplc1xuLy9cbi8vIyMgRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuLy8gU21hbGwgc2NyZWVuIC8gdGFibGV0XG4kY29udGFpbmVyLXRhYmxldDogICAgICAgICAgICAgKDcyMHB4ICsgJGdyaWQtZ3V0dGVyLXdpZHRoKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLXNtLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1zbTogICAgICAgICAgICAgICAgICRjb250YWluZXItdGFibGV0ICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuJGNvbnRhaW5lci1kZXNrdG9wOiAgICAgICAgICAgICg5NDBweCArICRncmlkLWd1dHRlci13aWR0aCkgIWRlZmF1bHQ7XG4vLyoqIEZvciBgJHNjcmVlbi1tZC1taW5gIGFuZCB1cC5cbiRjb250YWluZXItbWQ6ICAgICAgICAgICAgICAgICAkY29udGFpbmVyLWRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vIExhcmdlIHNjcmVlbiAvIHdpZGUgZGVza3RvcFxuJGNvbnRhaW5lci1sYXJnZS1kZXNrdG9wOiAgICAgICgxMTQwcHggKyAkZ3JpZC1ndXR0ZXItd2lkdGgpICFkZWZhdWx0O1xuLy8qKiBGb3IgYCRzY3JlZW4tbGctbWluYCBhbmQgdXAuXG4kY29udGFpbmVyLWxnOiAgICAgICAgICAgICAgICAgJGNvbnRhaW5lci1sYXJnZS1kZXNrdG9wICFkZWZhdWx0O1xuXG5cblxuXG5cblxuXG4vKiBTaXRlIFNwZWNpZmljIFZhcnMgYmVsb3cgKi9cblxuJHBhZ2VfbWFyZ2luczogNzBweDtcblxuXG4kc3R1Y2tfYm90dG9tX3dpZHRoOiA2MDBweDsiLCJcblxuQG1peGluIGJhc2VGb250IHtcbiAgICBmb250LWZhbWlseTogJGJhc2VfZm9udF9mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRiYXNlX2ZvbnRfd2VpZ2h0X3RoaW47XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cblxuQG1peGluIGhpZ2hSZXNTcHJpdGUoJHNwcml0ZV91cmwsICRzcHJpdGVfc2l6ZSkge1xuICAgIC8qMngqL1xuICAgIEBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAgICAgICAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi42LzIpLFxuICAgICAgICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAgICAgICAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS4zKSxcbiAgICAgICAgKG1pbi1yZXNvbHV0aW9uOiAxLjNkcHB4KSB7XG4gICAgICAgIC8qIG9uIHJldGluYSwgdXNlIGltYWdlIHRoYXQncyBzY2FsZWQgYnkgMiAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkc3ByaXRlX3VybDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkc3ByaXRlX3NpemU7XG4gICAgfVxuICAgIFxuICAgIC8qM3ggPyovXG59XG5cblxuXG5AbWl4aW4gaWNvblNwcml0ZSgkcG9zWCwgJHBvc1ksICRjb2xvcjpmYWxzZSl7XG4gICAgQGlmICRjb2xvciB7IGJhY2tncm91bmQ6JGNvbG9yICRpY29uX3Nwcml0ZSBuby1yZXBlYXQgJHBvc1ggJHBvc1k7fVxuICAgIEBlbHNleyBiYWNrZ3JvdW5kOiAkaWNvbl9zcHJpdGUgbm8tcmVwZWF0ICRwb3NYICRwb3NZO31cblxuICAgIEBpbmNsdWRlIGhpZ2hSZXNTcHJpdGUoJGljb25fc3ByaXRlXzJ4LCAkaWNvbl9zcHJpdGVfc2l6ZSk7XG59XG5cblxuLypcbkBtaXhpbiBsb2dvU3ByaXRlKCRwb3NYLCAkcG9zWSkge1xuICAgIGJhY2tncm91bmQ6ICRsb2dvX3Nwcml0ZSBuby1yZXBlYXQgJHBvc1ggJHBvc1k7XG5cbiAgICBAaW5jbHVkZSBoaWdoUmVzU3ByaXRlKCRsb2dvX3Nwcml0ZV8yeCwgJGxvZ29fc3ByaXRlX3NpemUpO1xufVxuKi9cblxuXG5AbWl4aW4gY29sdW1uKCRjb3VudCwgJGdhcDowKSB7XG4gICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICRjb3VudDtcbiAgICAtbW96LWNvbHVtbi1jb3VudDogJGNvdW50O1xuICAgIC1tcy1jb2x1bW4tY291bnQ6ICRjb3VudDtcbiAgICAtby1jb2x1bW4tY291bnQ6ICRjb3VudDtcbiAgICBjb2x1bW4tY291bnQ6ICRjb3VudDtcblxuICAgIC13ZWJraXQtY29sdW1uLWdhcDogJGdhcDtcbiAgICAtbW96LWNvbHVtbi1nYXA6ICRnYXA7XG4gICAgLW1zLWNvbHVtbi1nYXAgOiAkZ2FwO1xuICAgIC1vLWNvbHVtbi1nYXA6ICRnYXA7XG4gICAgY29sdW1uLWdhcDogJGdhcDtcbn1cblxuQG1peGluIGZsZXhib3gge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtZmxvdygkdmFsdWVzOiAocm93IG5vd3JhcCkpIHtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogJHZhbHVlcztcbiAgICAtbW96LWZsZXgtZmxvdzogJHZhbHVlcztcbiAgICAtbXMtZmxleC1mbG93OiAkdmFsdWVzO1xuICAgIGZsZXgtZmxvdzogJHZhbHVlcztcbn1cblxuQG1peGluIGZsZXgoJGZnOiAxLCAkZnM6IG51bGwsICRmYjogbnVsbCkge1xuICAgICRmZy1ib3hmbGV4OiAkZmc7XG5cbiAgICBAaWYgdHlwZS1vZigkZmcpID09ICdsaXN0JyB7XG4gICAgICAgICAgICAkZmctYm94ZmxleDogbnRoKCRmZywgMSk7XG4gICAgfVxuXG4gICAgLXdlYmtpdC1ib3gtZmxleDogJGZnLWJveGZsZXg7XG4gICAgLXdlYmtpdC1mbGV4OiAkZmcgJGZzICRmYjtcbiAgICAtbW96LWJveC1mbGV4OiAkZmctYm94ZmxleDtcbiAgICAtbW96LWZsZXg6ICRmZyAkZnMgJGZiO1xuICAgIC1tcy1mbGV4OiAkZmcgJGZzICRmYjtcbiAgICBmbGV4OiAkZmcgJGZzICRmYjtcbn1cblxuXG5cbkBtaXhpbiBub1NlbGVjdGlvbiB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkdmFsdWVzKXtcbiAgICAtby1ib3JkZXItcmFkaXVzOiAkdmFsdWVzO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHZhbHVlcztcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6ICR2YWx1ZXM7XG4gICAgLWtodG1sLWJvcmRlci1yYWRpdXM6JHZhbHVlcztcbiAgICBib3JkZXItcmFkaXVzOiAkdmFsdWVzO1xufVxuXG5cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdzEsICRzaGFkb3cyOmZhbHNlLCAkc2hhZG93MzpmYWxzZSwgJHNoYWRvdzQ6ZmFsc2UsICRzaGFkb3c1OmZhbHNlKSB7XG4gICAgJHBhcmFtczogJHNoYWRvdzE7XG4gICAgQGlmICRzaGFkb3cyXG4gICAgeyAkcGFyYW1zOiAkc2hhZG93MSwgJHNoYWRvdzI7IH1cbiAgICBAaWYgJHNoYWRvdzMgIT0gZmFsc2VcbiAgICB7ICRwYXJhbXM6ICRzaGFkb3cxLCAkc2hhZG93MiwgJHNoYWRvdzM7IH1cbiAgICBAaWYgJHNoYWRvdzQgIT0gZmFsc2VcbiAgICB7ICRwYXJhbXM6ICRzaGFkb3cxLCAkc2hhZG93MiwgJHNoYWRvdzMsICRzaGFkb3c0OyB9XG4gICAgQGlmICRzaGFkb3c1ICE9IGZhbHNlXG4gICAgeyAkcGFyYW1zOiAkc2hhZG93MSwgJHNoYWRvdzIsICRzaGFkb3czLCAkc2hhZG93NCwgJHNoYWRvdzU7IH1cblxuICAgIC13ZWJraXQtYm94LXNoYWRvdzokcGFyYW1zO1xuICAgIC1tb3otYm94LXNoYWRvdzogICAkcGFyYW1zO1xuICAgIC1vLWJveC1zaGFkb3c6ICAgICAkcGFyYW1zO1xuICAgIC1raHRtbC1ib3gtc2hhZG93OiAkcGFyYW1zO1xuICAgIGJveC1zaGFkb3c6ICAgICAgICAkcGFyYW1zO1xufVxuXG5cblxuXG5AbWl4aW4gZ3JhZGllbnQoJHN0YXJ0LCAkZW5kKXtcbiAgICBiYWNrZ3JvdW5kOiRzdGFydDtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5HcmFkaWVudChHcmFkaWVudFR5cGU9MCwgc3RhcnRDb2xvcnN0cj0nI3skc3RhcnR9JywgZW5kQ29sb3JzdHI9JyN7JGVuZH0nKTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRzdGFydH0nLCBlbmRDb2xvcnN0cj0nI3skZW5kfScpXCI7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgxJSwkc3RhcnQpLCBjb2xvci1zdG9wKDEwMCUsJGVuZCkpOyBcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkc3RhcnQsICRlbmQpO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0IDElLCAkZW5kKTsgXG4gICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCgkc3RhcnQsICRlbmQpO1xuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgkc3RhcnQsICRlbmQpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQsJGVuZCk7XG4gICAgem9vbTogMTsgXG59XG5cblxuQG1peGluIGRpYWdvbmFsR3JhZGllbnQoJHN0YXJ0LCAkZW5kLCAkZGVnKXtcbiAgICAkYWx0X2RlZzogOTBkZWcgLSAkZGVnO1xuXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJGFsdF9kZWcsICRzdGFydCAwJSwgJGVuZCAyMiUpO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCRhbHRfZGVnLCAkc3RhcnQgMCUsICRlbmQgMjIlKTsgXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydCAwJSwgJGVuZCAyMiUpO1xufVxuXG5cbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzLi4uKSB7XG4gIEBpZiBpcy1kaXJlY3Rpb24oJGRpcmVjdGlvbikgPT0gZmFsc2Uge1xuICAgICRjb2xvci1zdG9wczogKCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XG4gICAgJGRpcmVjdGlvbjogMTgwZGVnO1xuICB9XG4gIFxuICBiYWNrZ3JvdW5kOiBudGgobnRoKCRjb2xvci1zdG9wcywgMSksIDEpO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzKTtcbn1cblxuXG5cbkBtaXhpbiB0cmFuc3BhcmVudEJhY2tncm91bmQoJGNvbG9yLCAkYWxwaGEpIHtcbiAgICAkcmdiYTogcmdiYSgkY29sb3IsICRhbHBoYSk7XG4gICAgJGllLWhleC1zdHI6IGllLWhleC1zdHIoJHJnYmEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZ2JhO1xuICAgIGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0jeyRpZS1oZXgtc3RyfSxlbmRDb2xvcnN0cj0jeyRpZS1oZXgtc3RyfSk7XG4gICAgem9vbTogMTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uKCRzaGFkb3cxLCAkc2hhZG93MjpmYWxzZSwgJHNoYWRvdzM6ZmFsc2UsICRzaGFkb3c0OmZhbHNlLCAkc2hhZG93NTpmYWxzZSkge1xuICAgICRwYXJhbXM6ICRzaGFkb3cxO1xuICAgIEBpZiAkc2hhZG93MlxuICAgIHsgJHBhcmFtczogJHNoYWRvdzEsICRzaGFkb3cyOyB9XG4gICAgQGlmICRzaGFkb3czICE9IGZhbHNlXG4gICAgeyAkcGFyYW1zOiAkc2hhZG93MSwgJHNoYWRvdzIsICRzaGFkb3czOyB9XG4gICAgQGlmICRzaGFkb3c0ICE9IGZhbHNlXG4gICAgeyAkcGFyYW1zOiAkc2hhZG93MSwgJHNoYWRvdzIsICRzaGFkb3czLCAkc2hhZG93NDsgfVxuICAgIEBpZiAkc2hhZG93NSAhPSBmYWxzZVxuICAgIHsgJHBhcmFtczogJHNoYWRvdzEsICRzaGFkb3cyLCAkc2hhZG93MywgJHNoYWRvdzQsICRzaGFkb3c1OyB9XG5cbiAgICAtd2Via2l0LWFuaW1hdGlvbjokcGFyYW1zO1xuICAgIC1tb3otYW5pbWF0aW9uOiAgICRwYXJhbXM7XG4gICAgLW8tYW5pbWF0aW9uOiAgICAgJHBhcmFtcztcbiAgICAta2h0bWwtYW5pbWF0aW9uOiAkcGFyYW1zO1xuICAgIGFuaW1hdGlvbjogICAgICAgICRwYXJhbXM7XG59XG5cblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnR5OmFsbCwgJGR1cmF0aW9uOi41cywgJHRpbWluZy1mdW5jdGlvbjplYXNlKXtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6ICRwcm9wZXJ0eTtcbiAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6ICAgICRwcm9wZXJ0eTtcbiAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiAgICAgICRwcm9wZXJ0eTtcbiAgICAtbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTogICAgICRwcm9wZXJ0eTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiAgICAgICAgICRwcm9wZXJ0eTtcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICAgIC1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgJGR1cmF0aW9uO1xuICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgJGR1cmF0aW9uO1xuICAgIC1tcy10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgJGR1cmF0aW9uO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgJGR1cmF0aW9uO1xuXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogICR0aW1pbmctZnVuY3Rpb247XG4gICAgLW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogICAgICR0aW1pbmctZnVuY3Rpb247XG4gICAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICAgICAgICR0aW1pbmctZnVuY3Rpb247XG4gICAgLW1zLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAgICAgICR0aW1pbmctZnVuY3Rpb247XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICAgICAgICAgICR0aW1pbmctZnVuY3Rpb247XG5cbiAgICAvKlNhZmFyaSBidWcgd2hlcmUgdHJhbnNmb3JtIG5lZWRzIHRvIGJlIHByZWZpeGVkKi9cbiAgICBAaWYgJHByb3BlcnR5ID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgIH1cbn1cblxuXG5cbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybSkge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuICAgIC1tb3otdHJhbnNmb3JtOiAgICAkdHJhbnNmb3JtO1xuICAgIC1vLXRyYW5zZm9ybTogICAgICAkdHJhbnNmb3JtO1xuICAgIC1tcy10cmFuc2Zvcm06ICAgICAkdHJhbnNmb3JtO1xuICAgIHRyYW5zZm9ybTogICAgICAgICAkdHJhbnNmb3JtO1xufVxuXG5cbkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyAvLyAxXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDJcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4iLCIvKlxuVVNFQUdFOlxuXG5hc2lkZS5wcmltYXJ5IHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMzUwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCg0ODBweCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluOiA2NDBweCwgJG1heDogNzY3cHgpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG59XG5cbnNpemVzOiB4cyxzbSxtZCxsZ1xuXG4qL1xuXG5cbkBtaXhpbiBicmVha3BvaW50KCRtaW46IDAsICRtYXg6IDApIHtcbiAgJHR5cGU6IHR5cGUtb2YoJG1pbik7XG4gXG4gIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgQGlmICRtaW4gPT0geHMge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsgQGNvbnRlbnQ7IH1cbiAgICAgIH1cbiAgICAgXG4gICAgICBAZWxzZSBpZiAkbWluID09IHNtIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IEBjb250ZW50OyB9XG4gICAgICB9XG4gICAgIFxuICAgICAgQGVsc2UgaWYgJG1pbiA9PSBtZCB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgeyBAY29udGVudDsgfVxuICAgICAgfVxuICAgICBcbiAgICAgIEBlbHNlIGlmICRtaW4gPT0gbGcge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7IEBjb250ZW50OyB9XG4gICAgICB9XG4gICAgIFxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgbWl4aW4gc3VwcG9ydHM6IHhzLCBzbSwgbWQsIGxnXCI7XG4gICAgICB9XG5cbiAgfVxuIFxuICBAZWxzZSBpZiAkdHlwZSA9PSBudW1iZXIge1xuICAgICAkcXVlcnk6IFwiYWxsXCIgIWRlZmF1bHQ7XG4gICAgQGlmICRtaW4gIT0gMCBhbmQgJG1heCAhPSAwIHsgXG4gICAgICAkcXVlcnk6IFwiKG1pbi13aWR0aDogI3skbWlufSkgYW5kIChtYXgtd2lkdGg6ICN7JG1heH0pXCI7IFxuICAgIH1cbiAgICBAZWxzZSBpZiAkbWluICE9IDAgYW5kICRtYXggPT0gMCB7IFxuICAgICAgJHF1ZXJ5OiBcIihtaW4td2lkdGg6ICN7JG1pbn0pXCI7IFxuICAgIH1cbiAgICBAZWxzZSBpZiAkbWluID09IDAgYW5kICRtYXggIT0gMCB7IFxuICAgICAgJHF1ZXJ5OiBcIihtYXgtd2lkdGg6ICN7JG1heH0pXCI7IFxuICAgIH1cbiAgICBAbWVkaWEgI3skcXVlcnl9IHsgXG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiBcbn1cbiAgXG5cblxuXG5cblxuXG5AbWl4aW4gYnJlYWtwb2ludF92KCRtaW46IDAsICRtYXg6IDApIHtcbiAgJHF1ZXJ5OiBcImFsbFwiICFkZWZhdWx0O1xuICAgIEBpZiAkbWluICE9IDAgYW5kICRtYXggIT0gMCB7IFxuICAgICAgJHF1ZXJ5OiBcIihtaW4taGVpZ2h0OiAjeyRtaW59KSBhbmQgKG1heC1oZWlnaHQ6ICN7JG1heH0pXCI7IFxuICAgIH1cbiAgICBAZWxzZSBpZiAkbWluICE9IDAgYW5kICRtYXggPT0gMCB7IFxuICAgICAgJHF1ZXJ5OiBcIihtaW4taGVpZ2h0OiAjeyRtaW59KVwiOyBcbiAgICB9XG4gICAgQGVsc2UgaWYgJG1pbiA9PSAwIGFuZCAkbWF4ICE9IDAgeyBcbiAgICAgICRxdWVyeTogXCIobWF4LWhlaWdodDogI3skbWF4fSlcIjsgXG4gICAgfVxuICAgIEBtZWRpYSAjeyRxdWVyeX0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuXG59XG4iLCIvKlxuICBhbmltYXRpb246IGhlYWRlci1yZXZlYWwgMC40cyBmb3J3YXJkcztcblxuICBAa2V5ZnJhbWVzIGhlYWRlci1yZXZlYWwgeyBcbiAgICAwJSB7IFxuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoMCUsLTEwMCUpKTsgXG4gICAgfSBcbiAgICAxMDAlIHsgXG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwJSwwJSkpOyBcbiAgICB9XG4gIH1cbiovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHtcbiAgMCUgICAgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5ALW1vei1rZXlmcmFtZXMgc3BpbiB7XG4gIDAlICAgIHsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlICB7IC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUgICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlICB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLFxuICAxMDAlLFxuICAyMCUsXG4gIDUwJSxcbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9XG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7IH0gfVxuXG5ALW1vei1rZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsXG4gIDEwMCUsXG4gIDIwJSxcbiAgNTAlLFxuICA4MCUge1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDQwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cbiAgNjAlIHtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsgfSB9XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsXG4gIDEwMCUsXG4gIDIwJSxcbiAgNTAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsgfSBcbn1cblxuXG5cblxuLyogTW9iaWxlIE1lbnUgQW5pbWF0aW9ucyAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHRvcGJhcm9wZW57MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9NTAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfTEwMCV7dG9wOjB9fVxuQC1tb3ota2V5ZnJhbWVzIHRvcGJhcm9wZW57MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9NTAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfTEwMCV7dG9wOjB9fVxuQC1vLWtleWZyYW1lcyB0b3BiYXJvcGVuezAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfTUwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMDAle3RvcDowfX1cbkBrZXlmcmFtZXMgdG9wYmFyb3BlbnswJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX01MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0b3A6MH19XG5ALXdlYmtpdC1rZXlmcmFtZXMgdG9wYmFyY2xvc2V7MCV7dG9wOjB9NTAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfTEwMCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9fVxuQC1tb3ota2V5ZnJhbWVzIHRvcGJhcmNsb3NlezAle3RvcDowfTUwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMDAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfX1cbkAtby1rZXlmcmFtZXMgdG9wYmFyY2xvc2V7MCV7dG9wOjB9NTAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfTEwMCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9fVxuQGtleWZyYW1lcyB0b3BiYXJjbG9zZXswJXt0b3A6MH01MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX19XG5ALXdlYmtpdC1rZXlmcmFtZXMgYm90dG9tYmFyb3BlbnswJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX01MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0b3A6MjhweH19XG5ALW1vei1rZXlmcmFtZXMgYm90dG9tYmFyb3BlbnswJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX01MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0b3A6MjhweH19XG5ALW8ta2V5ZnJhbWVzIGJvdHRvbWJhcm9wZW57MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9NTAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfTEwMCV7dG9wOjI4cHh9fVxuQGtleWZyYW1lcyBib3R0b21iYXJvcGVuezAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfTUwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMDAle3RvcDoyOHB4fX1cbkAtd2Via2l0LWtleWZyYW1lcyBib3R0b21iYXJjbG9zZXswJXt0b3A6MjhweH01MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX19XG5ALW1vei1rZXlmcmFtZXMgYm90dG9tYmFyY2xvc2V7MCV7dG9wOjI4cHh9NTAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfTEwMCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9fVxuQC1vLWtleWZyYW1lcyBib3R0b21iYXJjbG9zZXswJXt0b3A6MjhweH01MCV7dG9wOjExcHg7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX19XG5Aa2V5ZnJhbWVzIGJvdHRvbWJhcmNsb3NlezAle3RvcDoyOHB4fTUwJXt0b3A6MTFweDstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX0xMDAle3RvcDoxMXB4Oy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfX1cbkAtd2Via2l0LWtleWZyYW1lcyBtaWRkbGViYXJvcGVuezAlLDUwJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBtaWRkbGViYXJvcGVuezAlLDUwJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgbWlkZGxlYmFyb3BlbnswJSw1MCV7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIG1pZGRsZWJhcm9wZW57MCUsNTAle29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19XG5ALXdlYmtpdC1rZXlmcmFtZXMgbWlkZGxlYmFyY2xvc2V7MCV7b3BhY2l0eToxfTEwMCUsNTAle29wYWNpdHk6MH19QC1tb3ota2V5ZnJhbWVzIG1pZGRsZWJhcmNsb3NlezAle29wYWNpdHk6MX0xMDAlLDUwJXtvcGFjaXR5OjB9fUAtby1rZXlmcmFtZXMgbWlkZGxlYmFyY2xvc2V7MCV7b3BhY2l0eToxfTEwMCUsNTAle29wYWNpdHk6MH19QGtleWZyYW1lcyBtaWRkbGViYXJjbG9zZXswJXtvcGFjaXR5OjF9MTAwJSw1MCV7b3BhY2l0eTowfX1cblxuIiwiLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuLy8gW2NvbnZlcnRlcl0gVGhpcyBpcyBkZWZpbmVkIHJlY3Vyc2l2ZWx5IGluIExFU1MsIGJ1dCBTYXNzIHN1cHBvcnRzIHJlYWwgbG9vcHNcbkBtaXhpbiBtYWtlLWdyaWQtY29sdW1ucygkaTogMSwgJGxpc3Q6IFwiLmNvbC14cy0jeyRpfSwgLmNvbC1zbS0jeyRpfSwgLmNvbC1tZC0jeyRpfSwgLmNvbC1sZy0jeyRpfVwiKSB7XG4gIEBmb3IgJGkgZnJvbSAoMSArIDEpIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgJGxpc3Q6IFwiI3skbGlzdH0sIC5jb2wteHMtI3skaX0sIC5jb2wtc20tI3skaX0sIC5jb2wtbWQtI3skaX0sIC5jb2wtbGctI3skaX1cIjtcbiAgfVxuICAjeyRsaXN0fSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGNvbGxhcHNpbmcgd2hlbiBlbXB0eVxuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICAvLyBJbm5lciBndXR0ZXIgdmlhIHBhZGRpbmdcbiAgICBwYWRkaW5nLWxlZnQ6ICBjZWlsKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gICAgcGFkZGluZy1yaWdodDogZmxvb3IoKCRncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgfVxufVxuXG5cbi8vIFtjb252ZXJ0ZXJdIFRoaXMgaXMgZGVmaW5lZCByZWN1cnNpdmVseSBpbiBMRVNTLCBidXQgU2FzcyBzdXBwb3J0cyByZWFsIGxvb3BzXG5AbWl4aW4gZmxvYXQtZ3JpZC1jb2x1bW5zKCRjbGFzcywgJGk6IDEsICRsaXN0OiBcIi5jb2wtI3skY2xhc3N9LSN7JGl9XCIpIHtcbiAgQGZvciAkaSBmcm9tICgxICsgMSkgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkbGlzdDogXCIjeyRsaXN0fSwgLmNvbC0jeyRjbGFzc30tI3skaX1cIjtcbiAgfVxuICAjeyRsaXN0fSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuXG5AbWl4aW4gY2FsYy1ncmlkLWNvbHVtbigkaW5kZXgsICRjbGFzcywgJHR5cGUpIHtcbiAgQGlmICgkdHlwZSA9PSB3aWR0aCkgYW5kICgkaW5kZXggPiAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tI3skaW5kZXh9IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkaW5kZXggLyAkZ3JpZC1jb2x1bW5zKSk7XG4gICAgfVxuICB9XG4gIEBpZiAoJHR5cGUgPT0gcHVzaCkgYW5kICgkaW5kZXggPiAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVzaC0jeyRpbmRleH0ge1xuICAgICAgbGVmdDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IHB1c2gpIGFuZCAoJGluZGV4ID09IDApIHtcbiAgICAuY29sLSN7JGNsYXNzfS1wdXNoLTAge1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdWxsKSBhbmQgKCRpbmRleCA+IDApIHtcbiAgICAuY29sLSN7JGNsYXNzfS1wdWxsLSN7JGluZGV4fSB7XG4gICAgICByaWdodDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IHB1bGwpIGFuZCAoJGluZGV4ID09IDApIHtcbiAgICAuY29sLSN7JGNsYXNzfS1wdWxsLTAge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBpZiAoJHR5cGUgPT0gb2Zmc2V0KSB7XG4gICAgLmNvbC0jeyRjbGFzc30tb2Zmc2V0LSN7JGluZGV4fSB7XG4gICAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBbY29udmVydGVyXSBUaGlzIGlzIGRlZmluZWQgcmVjdXJzaXZlbHkgaW4gTEVTUywgYnV0IFNhc3Mgc3VwcG9ydHMgcmVhbCBsb29wc1xuQG1peGluIGxvb3AtZ3JpZC1jb2x1bW5zKCRjb2x1bW5zLCAkY2xhc3MsICR0eXBlKSB7XG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGNvbHVtbnMge1xuICAgIEBpbmNsdWRlIGNhbGMtZ3JpZC1jb2x1bW4oJGksICRjbGFzcywgJHR5cGUpO1xuICB9XG59XG5cblxuLy8gQ3JlYXRlIGdyaWQgZm9yIHNwZWNpZmljIGNsYXNzXG5AbWl4aW4gbWFrZS1ncmlkKCRjbGFzcykge1xuICBAaW5jbHVkZSBmbG9hdC1ncmlkLWNvbHVtbnMoJGNsYXNzKTtcbiAgQGluY2x1ZGUgbG9vcC1ncmlkLWNvbHVtbnMoJGdyaWQtY29sdW1ucywgJGNsYXNzLCB3aWR0aCk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgcHVsbCk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgcHVzaCk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgb2Zmc2V0KTtcbn1cblxuXG5cbi8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxuQG1peGluIGNvbnRhaW5lci1maXhlZCgkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAgZmxvb3IoKCRndXR0ZXIgLyAyKSk7XG4gIHBhZGRpbmctcmlnaHQ6IGNlaWwoKCRndXR0ZXIgLyAyKSk7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4vLyBDcmVhdGVzIGEgd3JhcHBlciBmb3IgYSBzZXJpZXMgb2YgY29sdW1uc1xuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tbGVmdDogIGNlaWwoKCRndXR0ZXIgLyAtMikpO1xuICBtYXJnaW4tcmlnaHQ6IGZsb29yKCgkZ3V0dGVyIC8gLTIpKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXG5AbWl4aW4gbWFrZS14cy1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKCRndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcbn1cbkBtaXhpbiBtYWtlLXhzLWNvbHVtbi1vZmZzZXQoJGNvbHVtbnMpIHtcbiAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xufVxuQG1peGluIG1ha2UteHMtY29sdW1uLXB1c2goJGNvbHVtbnMpIHtcbiAgbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG59XG5AbWl4aW4gbWFrZS14cy1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBzbWFsbCBjb2x1bW5zXG5AbWl4aW4gbWFrZS1zbS1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKCRndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLXNtLWNvbHVtbi1vZmZzZXQoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1zbS1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2Utc20tY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBtZWRpdW0gY29sdW1uc1xuQG1peGluIG1ha2UtbWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogICgkZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4tb2Zmc2V0KCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbWQtY29sdW1uLXB1c2goJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLW1kLWNvbHVtbi1wdWxsKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xuQG1peGluIG1ha2UtbGctY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogICgkZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4tb2Zmc2V0KCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbGctY29sdW1uLXB1c2goJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLWxnLWNvbHVtbi1wdWxsKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuIiwiKiB7IFxuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYSB7IFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IFxufVxuXG5hZGRyZXNzLCBlbSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0sIGJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXRbdHlwZT10ZXh0XSxcbmlucHV0W3R5cGU9ZW1haWxdIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAgLyogLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lOyovXG59XG5cbmJvZHkge1xuICAvKm92ZXJmbG93OnZpc2libGU7XG4gIG92ZXJmbG93LXg6dmlzaWJsZTtcbiAgb3ZlcmZsb3cteTp2aXNpYmxlOyovXG59XG5cblxuaHRtbCwgYm9keSwge1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuXG5odG1sLGJvZHksZGl2LHNwYW4sYXBwbGV0LG9iamVjdCxpZnJhbWUsaDEsaDIsaDMsaDQsaDUsaDYscCxibG9ja3F1b3RlLHByZSxhLGFiYnIsYWNyb255bSxhZGRyZXNzLGJpZyxjaXRlLGNvZGUsZGVsLGRmbixlbSxmb250LGltZyxpbnMsa2JkLHEscyxzYW1wLHNtYWxsLHN0cmlrZSxzdHJvbmcsc3ViLHN1cCx0dCx2YXIsYix1LGksY2VudGVyLGRsLGR0LGRkLG9sLHVsLGxpLGZpZWxkc2V0LGZvcm0sbGFiZWwsbGVnZW5kLHRhYmxlLGNhcHRpb24sdGJvZHksdGZvb3QsdGhlYWQsdHIsdGgsdGR7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxMDAlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7bWFyZ2luOjA7b3V0bGluZTowO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt9XG5cbm9sLCB1bHtsaXN0LXN0eWxlOm5vbmV9XG5cblxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBcbiAgJjpmb2N1c3tcbiAgICAgIG91dGxpbmU6IDA7XG4gIH1cblxufVxuXG5zZWxlY3Q6Oi1tcy12YWx1ZSB7YmFja2dyb3VuZDogbm9uZTt9XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHBhZGRpbmc6IDBweCAwcHg7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwcHggMHB4O1xuICBwYWRkaW5nOiAwcHggMHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuXG4vL3NpZ2ggaWVcbmlucHV0OjotbXMtY2xlYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblxuc2VsZWN0IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59IFxuXG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59IiwiLyoqXG4gICogQk9PVFNUUkFQIEdSSUQgLSBJIHRvdGFsbHkgZ2Fua2VkIGl0LiBcbioqL1xuXG5cblxuXG4vLyBDb250YWluZXIgd2lkdGhzXG4vL1xuLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzLlxuXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyLWZpeGVkO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIHdpZHRoOiAkY29udGFpbmVyLXNtO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIHdpZHRoOiAkY29udGFpbmVyLW1kO1xuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIHdpZHRoOiAkY29udGFpbmVyLWxnO1xuICB9XG59XG5cblxuLy8gRmx1aWQgY29udGFpbmVyXG4vL1xuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aG91dCBhbnkgZGVmaW5lZFxuLy8gd2lkdGggZm9yIGZsdWlkLCBmdWxsIHdpZHRoIGxheW91dHMuXG5cbi5jb250YWluZXItZmx1aWQge1xuICBAaW5jbHVkZSBjb250YWluZXItZml4ZWQ7XG59XG5cblxuLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIGFuZCBjbGVhciB0aGUgZmxvYXRzIG9mIHlvdXIgY29sdW1ucy5cblxuLnJvdyB7XG4gIEBpbmNsdWRlIG1ha2Utcm93O1xufVxuXG5cbi8vIENvbHVtbnNcbi8vXG4vLyBDb21tb24gc3R5bGVzIGZvciBzbWFsbCBhbmQgbGFyZ2UgZ3JpZCBjb2x1bW5zXG5cbkBpbmNsdWRlIG1ha2UtZ3JpZC1jb2x1bW5zO1xuXG5cbi8vIEV4dHJhIHNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgZXh0cmEgc21hbGwgZGV2aWNlcyBsaWtlXG4vLyBzbWFydHBob25lcy5cblxuQGluY2x1ZGUgbWFrZS1ncmlkKHhzKTtcblxuXG4vLyBTbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBzbWFsbCBkZXZpY2UgcmFuZ2UsIGZyb20gcGhvbmVzXG4vLyB0byB0YWJsZXRzLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkKHNtKTtcbn1cblxuXG4vLyBNZWRpdW0gZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQobWQpO1xufVxuXG5cbi8vIExhcmdlIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGxhcmdlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkKGxnKTtcbn1cblxuXG4iLCIvKiBNZWRpYVN3aXBlIGJ5IEVyaWMgV2ludGVyc3RpbmUgdi4xMi4xMS4yMDE3XG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5ib2R5Lm1zLXByZXZlbnQtc2Nyb2xsIHsgXG5cdG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBcblx0aGVpZ2h0OjEwMCUgIWltcG9ydGFudDsgXG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgI21lZGlhc3dpcGUtc2hhcmUtYnV0dG9uLFxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLWZ1bGxzY3JlZW4tYnV0dG9uLFxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLWNsb3NlLWJ1dHRvbixcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAjbWVkaWFzd2lwZS1mYWNlYm9vay1zaGFyZSxcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAjbWVkaWFzd2lwZS10d2l0dGVyLXNoYXJlLFxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLXBpbnRlcmVzdC1zaGFyZSxcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAjbWVkaWFzd2lwZS1sZWZ0LWFycm93LFxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLXJpZ2h0LWFycm93IHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMHB4O1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggNXB4IDBweCByZ2JhKDAsMCwwLDApO1xuXHQtbW96LWJveC1zaGFkb3c6IDBweCAwcHggNXB4IDBweCByZ2JhKDAsMCwwLDApO1xuXHRib3gtc2hhZG93OiAwcHggMHB4IDVweCAwcHggcmdiYSgwLDAsMCwwKTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lcixcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1vdmVybGF5LFxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLWFycm93LFxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLWludmlzaWJsZS1vdmVybGF5LFxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXNsaWRlcy1jb250YWluZXIsXG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtc2xpZGUtY29udGFpbmVyLFxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXNsaWRlLWNvbnRhaW5lciA+IGltZyxcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1zbGlkZSxcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS10b3AtYmFyLFxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXRvcC1iYXIgKixcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1ib3R0b20tYmFyLFxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLWJvdHRvbS1iYXIgKixcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciBpZnJhbWVcbiB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG1hcmdpbjogMHB4IDBweCAwcHggMHB4OyBcblx0cGFkZGluZzogMHB4IDBweCAwcHggMHB4O1xuXHRib3Jlci1yYWRpdXM6IDBweDtcblx0Ym9yZGVyOiAwcHg7XG5cdHVzZXItZHJhZzogbm9uZTsgXG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAqOmZvY3VzLFxuI21lZGlhc3dpcGUtY29udGFpbmVyICo6YWN0aXZlIHtcblx0b3V0bGluZTogMDtcbn1cblxuI21lZGlhc3dpcGUtY29udGFpbmVyIHtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGxlZnQ6IDBweDtcblx0dG9wOiAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDBweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ei1pbmRleDogMDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lci5vbiB7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdGhlaWdodDogMTAwJTtcblx0ei1pbmRleDogOTk5OTk5O1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLW92ZXJsYXkge1xuXHRkaXNwbGF5OiBibG9jaztcblx0b3BhY2l0eTogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwcHg7XG5cdHRvcDogMHB4O1xuXHR3aWR0aDogMTAwJTsgXG5cdGhlaWdodDogMTAwJTtcblx0ei1pbmRleDogOTAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDEpO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyLm9uIC5tZWRpYXN3aXBlLW92ZXJsYXkge1xuXHRvcGFjaXR5OiAxOyBcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1hcnJvdyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG5cdGRpc3BsYXk6IG5vbmU7XG5cdHRvcDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtNTBweDtcblx0d2lkdGg6IDQzcHg7XG5cdGhlaWdodDogOTVweDtcblx0ei1pbmRleDogOTUwO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLWxlZnQtYXJyb3cubWVkaWFzd2lwZS1hcnJvdyxcbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAjbWVkaWFzd2lwZS1yaWdodC1hcnJvdy5tZWRpYXN3aXBlLWFycm93IHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjcpO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLWFycm93IHNwYW4ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMzBweDtcblx0aGVpZ2h0OiAzOHB4O1xuXHRsZWZ0OiA3cHg7XG5cdHRvcDogMzFweDtcblx0ei1pbmRleDogMTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1hcnJvdy5tZWRpYXN3aXBlLXJpZ2h0LWFycm93IHNwYW4ge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogN3B4O1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyLm9uLm1lZGlhc3dpcGUtYWxsb3ctYXJyb3dzIC5tZWRpYXN3aXBlLWFycm93IHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4vKlxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLWxlZnQtYXJyb3cge1xuXHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUsMCk7IFxuXHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSwwKTsgXG5cdHRyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUsMCk7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIub246aG92ZXIgLm1lZGlhc3dpcGUtbGVmdC1hcnJvdyB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwJSwwKTsgXG5cdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAlLDApOyBcblx0dHJhbnNmb3JtOnRyYW5zbGF0ZSgwJSwwKTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1yaWdodC1hcnJvdyB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlLDApOyBcblx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSwwKTsgXG5cdHRyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSwwKTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lci5vbjpob3ZlciAubWVkaWFzd2lwZS1yaWdodC1hcnJvdyB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwJSwwKTsgXG5cdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAlLDApOyBcblx0dHJhbnNmb3JtOnRyYW5zbGF0ZSgwJSwwKTtcbn1cbiovXG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtYXJyb3c6aG92ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1sZWZ0LWFycm93IHtcblx0bGVmdDogMHB4O1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXJpZ2h0LWFycm93IHtcblx0cmlnaHQ6IDBweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1sZWZ0LWFycm93OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9saWZlc3R5bGVzL21lZGlhc3dpcGUvc3ByaXRlc2hlZXQucG5nJyk7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogNTVweCA1MHB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDJweCAwcHg7XG5cdHdpZHRoOiAxM3B4O1xuXHRoZWlnaHQ6IDI0cHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtOHB4O1xuXHRtYXJnaW4tdG9wOiAtMTJweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1yaWdodC1hcnJvdzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vbGlmZXN0eWxlcy9tZWRpYXN3aXBlL3Nwcml0ZXNoZWV0LnBuZycpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IDU1cHggNTBweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTQycHggLTI0cHg7XG5cdHdpZHRoOiAxM3B4O1xuXHRoZWlnaHQ6IDI0cHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtNnB4O1xuXHRtYXJnaW4tdG9wOiAtMTJweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1zbGlkZXMtY29udGFpbmVyIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwcHg7XG5cdHRvcDogMHB4O1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiA5MjU7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIuZGlzYWJsZS10b3VjaHBhZCAubWVkaWFzd2lwZS1pbnZpc2libGUtb3ZlcmxheSB7XG5cdHotaW5kZXg6IDkwMDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1pbnZpc2libGUtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMHB4O1xuXHR0b3A6IDBweDtcblx0ei1pbmRleDogOTM5O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXNsaWRlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0b3A6IDBweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1jdXJyZW50LXNsaWRlIHtcblx0bGVmdDogMHB4O1xuXHR6LWluZGV4OiA5MzA7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtcHJldmlvdXMtc2xpZGUge1xuXHRsZWZ0OiAtMTAwJTtcblx0ei1pbmRleDogOTI1O1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLW5leHQtc2xpZGUge1xuXHRsZWZ0OiAxMDAlO1xuXHR6LWluZGV4OiA5MjU7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtc2xpZGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcIjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogLTE7XG5cdGxlZnQ6IDUwJTtcblx0dG9wOiA1MCU7IFxuXHR3aWR0aDogMjhweDtcblx0aGVpZ2h0OiAyOHB4O1xuXHRib3JkZXI6IDNweCBzb2xpZCAjNjg2ODY4O1xuXHRib3JkZXItcmlnaHQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRtYXJnaW4tbGVmdDogLTE0cHg7XG5cdG1hcmdpbi10b3A6IC0xNHB4O1xuXHRhbmltYXRpb246IG1lZGlhc3dpcGUtcm90YXRlIDAuNnMgaW5maW5pdGUgbGluZWFyO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXNsaWRlLmxvYWRlZDpiZWZvcmUge1xuXHRkaXNwbGF5OiBub25lOyBcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1zbGlkZSAubWVkaWFzd2lwZS1zbGlkZS1jb250YWluZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDkzNTtcblx0b3BhY2l0eTogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0dG9wOiAwcHg7XG5cdGxlZnQ6IDBweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1zbGlkZS5sb2FkZWQgLm1lZGlhc3dpcGUtc2xpZGUtY29udGFpbmVyIHtcblx0b3BhY2l0eTogMTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1zbGlkZS1jb250YWluZXIgaW1nIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1heC13aWR0aDogaW5oZXJpdDtcblx0bWF4LWhlaWdodDogaW5oZXJpdDtcblx0dXNlci1kcmFnOiBub25lOyBcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtc2xpZGUtY29udGFpbmVyIGlmcmFtZSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgI21lZGlhc3dpcGUtdG91Y2hwYWQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDBweDtcblx0dG9wOiAwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHotaW5kZXg6IDk0MDtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lci5tcy16b29tLWluICNtZWRpYXN3aXBlLXRvdWNocGFkOmhvdmVyIHtcblx0Y3Vyc29yOiB6b29tLWluO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyLm1zLXpvb20tb3V0ICNtZWRpYXN3aXBlLXRvdWNocGFkOmhvdmVyIHtcblx0Y3Vyc29yOiB6b29tLW91dDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lci5tcy1ncmFiICNtZWRpYXN3aXBlLXRvdWNocGFkOmhvdmVyIHtcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgY3Vyc29yOiAtbW96LWdyYWI7XG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIubXMtZ3JhYmJpbmcgI21lZGlhc3dpcGUtdG91Y2hwYWQ6aG92ZXIge1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgY3Vyc29yOiAtbW96LWdyYWJiaW5nO1xuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1ib3R0b20tYmFyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwcHg7XG5cdGJvdHRvbTogMHB4O1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogOTUwO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLXNsaWRlLWNhcHRpb24ge1xuXHRmb250OiAzMDAgMTBweC8xMnB4IHNhbnMtc2VyaWY7XG5cdGNvbG9yOiAjZmZmZmZmO1xuXHRvcGFjaXR5OiAxO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRwYWRkaW5nOiA5cHggMTJweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwcHg7XG5cdGJvdHRvbTogMHB4O1xuXHRsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgI21lZGlhc3dpcGUtc2xpZGUtY2FwdGlvbi5vbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkge1xuXHQvKlxuXHQjbWVkaWFzd2lwZS1jb250YWluZXIgI21lZGlhc3dpcGUtc2xpZGUtY2FwdGlvbiB7XG5cdFx0cGFkZGluZzogMThweCAwcHg7XG5cdH1cblx0Ki9cbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS10b3AtYmFyIHtcblx0bGVmdDogMHB4O1xuXHR0b3A6IDBweDtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDk1MDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAjbWVkaWFzd2lwZS1nYWxsZXJ5LWluZGV4ZXMge1xuXHRkaXNwbGF5OiBub25lO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLWdhbGxlcnktaW5kZXhlcy5vbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDBweDtcblx0dG9wOiAwcHg7XG5cdGZvbnQ6IDMwMCAxMHB4LzEycHggc2Fucy1zZXJpZjtcblx0Y29sb3I6ICNmZmZmZmY7XG5cdG9wYWNpdHk6IDE7XG5cdGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG5cdHBhZGRpbmc6IDEwcHggMTJweDtcblx0ei1pbmRleDogOTUxO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLWNsb3NlLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDBweDtcblx0dG9wOiAwcHg7XG5cdHdpZHRoOiA5MHB4O1xuXHRoZWlnaHQ6IDkwcHg7IFxuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDEpO1xuXHR6LWluZGV4OiA5NTE7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgI21lZGlhc3dpcGUtY2xvc2UtYnV0dG9uOmhvdmVyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLWNsb3NlLWJ1dHRvbjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vbGlmZXN0eWxlcy9tZWRpYXN3aXBlL3Nwcml0ZXNoZWV0LnBuZycpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IDU1cHggNTBweDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xN3B4O1xuXHR3aWR0aDogMzJweDtcblx0aGVpZ2h0OiAzMnB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRsZWZ0OiA1MCU7XG5cdHRvcDogNTAlO1xuXHRtYXJnaW4tbGVmdDogLTE2cHg7XG5cdG1hcmdpbi10b3A6IC0xNnB4O1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLWZ1bGxzY3JlZW4tYnV0dG9uIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS1zaGFyZS1idXR0b24ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyICNtZWRpYXN3aXBlLXNoYXJlLW5hdiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMSk7XG5cdHJpZ2h0OiAwcHg7XG5cdGJvdHRvbTogMHB4O1xuXHRwYWRkaW5nOiA2cHggMTJweDtcblx0Zm9udC1zaXplOiAwcHg7XG5cdHotaW5kZXg6IDk1MTtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS10b3AtYmFyICNtZWRpYXN3aXBlLXNoYXJlLW5hdiBidXR0b24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiAwcHg7XG5cdGNvbG9yOiByZ2JhKDAsMCwwLDApO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG9wYWNpdHk6IDAuODtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMjJweDtcblx0aGVpZ2h0OiAxN3B4O1xufVxuI21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXRvcC1iYXIgI21lZGlhc3dpcGUtc2hhcmUtbmF2IGJ1dHRvbjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bGVmdDogNTAlO1xuXHR0b3A6IDUwJTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vbGlmZXN0eWxlcy9tZWRpYXN3aXBlL3Nwcml0ZXNoZWV0LnBuZycpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IDU1cHggNTBweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS10b3AtYmFyICNtZWRpYXN3aXBlLXNoYXJlLW5hdiBidXR0b246aG92ZXIge1xuXHRvcGFjaXR5OiAxLjA7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS10b3AtYmFyICNtZWRpYXN3aXBlLWZhY2Vib29rLXNoYXJlOmJlZm9yZSB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7XG5cdHdpZHRoOiA4cHg7XG5cdGhlaWdodDogMTZweDtcblx0bWFyZ2luLWxlZnQ6IC00cHg7XG5cdG1hcmdpbi10b3A6IC04cHg7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtdG9wLWJhciAjbWVkaWFzd2lwZS10d2l0dGVyLXNoYXJlOmJlZm9yZSB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IC05cHggMHB4O1xuXHR3aWR0aDogMTVweDtcblx0aGVpZ2h0OiAxM3B4O1xuXHRtYXJnaW4tbGVmdDogLTdweDtcblx0bWFyZ2luLXRvcDogLTZweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAubWVkaWFzd2lwZS10b3AtYmFyICNtZWRpYXN3aXBlLXBpbnRlcmVzdC1zaGFyZSB7XG5cdG1hcmdpbi1sZWZ0OiAycHg7XG59XG4jbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtdG9wLWJhciAjbWVkaWFzd2lwZS1waW50ZXJlc3Qtc2hhcmU6YmVmb3JlIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTI1cHggMHB4O1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRtYXJnaW4tbGVmdDogLThweDtcblx0bWFyZ2luLXRvcDogLThweDtcbn1cblxuLyogVHJhbnNpdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWVkaWFzd2lwZS1vcC10cmFuc2l0aW9uIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7IFxuXHQtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTsgXG5cdC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7IFxuXHQtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7IFxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG59XG4ubWVkaWFzd2lwZS1iZ2NvbG9yLXRyYW5zaXRpb24ge1xuXHQtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTsgXG5cdC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlOyBcblx0LW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTsgXG5cdC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTsgXG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTtcbn1cbi5tZWRpYXN3aXBlLWFsbC10cmFuc2l0aW9uIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTsgXG5cdC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7IFxuXHQtbXMtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2U7IFxuXHQtby10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTsgXG5cdHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xufVxuXG4vKiBJbnRlcmFjdGl2ZSBTdHlsZXMgLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jaW50ZXJhY3RpdmVDb250YWluZXIgaDMge1xuXHRtYXJnaW46IDBweCAwcHggLjg0ZW07XG5cdHBhZGRpbmc6IDBweCAwcHggMHB4IDBweDtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAuaW50ZXJhY3RpdmVQaG90b19kaXNjbGFpbWVyX2xpbmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IHJnYmEoMCwwLDAsMC44NSk7XG4gICAgZm9udC1zaXplOiAuODRlbTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNtZWRpYXN3aXBlLWNvbnRhaW5lciAuaW50ZXJhY3RpdmVQaG90b19kaXNjbGFpbWVyX2JveCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjZweCAyN3B4O1xuICAgIGNvbG9yOiAjNDU0NTQ1O1xuICAgIGZvbnQtc2l6ZTogLjdlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjk1KTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHotaW5kZXg6IDExMTExMTExMTExMiAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgLW8tYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgICAta2h0bWwtYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjEpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwOTlweCkge1xuXHQjbWVkaWFzd2lwZS1jb250YWluZXIgLm1lZGlhc3dpcGUtZnVsbHNjcmVlbi1idXR0b24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblx0I21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXNoYXJlLWJ1dHRvbiB7XG5cdFx0cmlnaHQ6IDQ3cHg7XG5cdH1cblx0I21lZGlhc3dpcGUtY29udGFpbmVyIC5tZWRpYXN3aXBlLXRvcC1iYXIgI21lZGlhc3dpcGUtc2hhcmUtbmF2IGJ1dHRvbiB7XG5cdFx0Zm9udDogMzAwIDE2cHgvMjRweCBzYW5zLXNlcmlmO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIG1lZGlhc3dpcGUtcm90YXRlIHtcbiAgMCUgICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlICB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbn0iLCJcblxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJHb3RoYW0gTmFycm93XCI7XG4gICAgc3JjOiB1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmMi9Hb3RoYW1OYXJyU1NtLVhMaWdodF9XZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZi9Hb3RoYW1OYXJyU1NtLVhMaWdodF9XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBOYXJyb3dcIjtcbiAgICBzcmM6IHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYyL0dvdGhhbU5hcnJTU20tWExpZ2h0SXRhbGljX1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbU5hcnJTU20tWExpZ2h0SXRhbGljX1dlYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWNcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtIE5hcnJvd1wiO1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZjIvR290aGFtTmFyclNTbS1MaWdodF9XZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZi9Hb3RoYW1OYXJyU1NtLUxpZ2h0X1dlYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWxcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtIE5hcnJvd1wiO1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZjIvR290aGFtTmFyclNTbS1MaWdodEl0YWxpY19XZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZi9Hb3RoYW1OYXJyU1NtLUxpZ2h0SXRhbGljX1dlYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWNcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtIE5hcnJvd1wiO1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZjIvR290aGFtTmFyclNTbS1Cb29rX1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbU5hcnJTU20tQm9va19XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBOYXJyb3dcIjtcbiAgICBzcmM6IHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYyL0dvdGhhbU5hcnJTU20tQm9va0l0YWxpY19XZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZi9Hb3RoYW1OYXJyU1NtLUJvb2tJdGFsaWNfV2ViLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJHb3RoYW0gTmFycm93XCI7XG4gICAgc3JjOiB1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmMi9Hb3RoYW1OYXJyU1NtLU1lZGl1bV9XZWIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZi9Hb3RoYW1OYXJyU1NtLU1lZGl1bV9XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBOYXJyb3dcIjtcbiAgICBzcmM6IHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYyL0dvdGhhbU5hcnJTU20tTWVkaXVtSXRhbGljX1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbU5hcnJTU20tTWVkaXVtSXRhbGljX1dlYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWNcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtXCI7XG4gICAgc3JjOiB1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmMi9Hb3RoYW1TU20tWExpZ2h0X1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbVNTbS1YTGlnaHRfV2ViLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJHb3RoYW1cIjtcbiAgICBzcmM6IHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYyL0dvdGhhbVNTbS1YTGlnaHRJdGFsaWNfV2ViLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYvR290aGFtU1NtLVhMaWdodEl0YWxpY19XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiO1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZjIvR290aGFtU1NtLUxpZ2h0X1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbVNTbS1MaWdodF9XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiO1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZjIvR290aGFtU1NtLUxpZ2h0SXRhbGljX1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbVNTbS1MaWdodEl0YWxpY19XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiO1xuICAgIHNyYzogdXJsKFwiaHR0cHM6Ly9jZG4udG9sbGJyb3RoZXJzLmNvbS9mb250cy9nb3RoYW0vd29mZjIvR290aGFtU1NtLUJvb2tfV2ViLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYvR290aGFtU1NtLUJvb2tfV2ViLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJHb3RoYW1cIjtcbiAgICBzcmM6IHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYyL0dvdGhhbVNTbS1Cb29rSXRhbGljX1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbVNTbS1Cb29rSXRhbGljX1dlYi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWNcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtXCI7XG4gICAgc3JjOiB1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmMi9Hb3RoYW1TU20tTWVkaXVtX1dlYi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoXCJodHRwczovL2Nkbi50b2xsYnJvdGhlcnMuY29tL2ZvbnRzL2dvdGhhbS93b2ZmL0dvdGhhbVNTbS1NZWRpdW1fV2ViLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJHb3RoYW1cIjtcbiAgICBzcmM6IHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYyL0dvdGhhbVNTbS1NZWRpdW1JdGFsaWNfV2ViLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLHVybChcImh0dHBzOi8vY2RuLnRvbGxicm90aGVycy5jb20vZm9udHMvZ290aGFtL3dvZmYvR290aGFtU1NtLU1lZGl1bUl0YWxpY19XZWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljXG59XG5cbiRiYXNlX2ZvbnRfd2VpZ2h0X3RoaW46IDIwMDtcbiRiYXNlX2ZvbnRfd2VpZ2h0X25vcm1hbDogMzAwO1xuJGJhc2VfZm9udF93ZWlnaHRfdGhpY2s6IDQwMDtcbiRiYXNlX2ZvbnRfd2VpZ2h0X2JvbGQ6IDcwMDtcblxuJGJhc2VfZm9udF9zaXplOiAxNXB4O1xuJGJhc2VfbGluZV9oZWlnaHQ6IDEuNTtcbiRiYXNlX2ZvbnRfY29sb3I6ICMwMDA7IC8vICMyNTIxMWU7XG5cblxuYm9keSwgYm9keSBzcGFuLCBib2R5IHAsIGJvZHkgLnd5c2l3eWctZm9udC1zaXplLW1lZGl1bSB7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICAvLy13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBOYXJyb3dcIixzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogJGJhc2VfZm9udF9zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYmFzZV9mb250X3dlaWdodF9ub3JtYWw7XG4gICAgY29sb3I6ICRiYXNlX2ZvbnRfY29sb3I7XG59XG5cblxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtXCIsc2Fucy1zZXJpZjtcbiAgfVxuICBcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxuICBcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogJG1lZF9ibHVlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cbiAgXG4gIGgzIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuICBcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogJG1lZF9ibHVlO1xuICB9XG4gIFxuXG5cbiAgLnNlYXJjaC1yZXN1bHQtbGluayB7XG4gICAgZm9udC1mYW1pbHk6IFwiR290aGFtXCIsc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGxpZ2h0X2JsdWU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIH1cblxuIiwiXG5ib2R5IHtcbiAgXG59XG5cblxuLnBhZ2UtbWFyZ2lucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9tYXJnaW5zLzQ7XG4gICAgcGFkZGluZy1yaWdodDogJHBhZ2VfbWFyZ2lucy80O1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9tYXJnaW5zLzI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWdlX21hcmdpbnMvMjtcbiAgICB9XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWdlX21hcmdpbnM7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWdlX21hcmdpbnM7XG4gICAgfVxuICAgIFxufVxuXG5cbi5ibG9ja3MtaXRlbXtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRncmF5XzEsIC4zKTtcbiAgICBwYWRkaW5nOiAzMHB4IDA7XG59XG5cblxuYS5ibHVlYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHRfYmx1ZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiLHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuXG5cbi5yZXF1ZXN0X2Rlc2NyaXB0aW9uIHRleHRhcmVhIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnJlcXVlc3QtZm9ybSB7XG4gICAgbWFyZ2luLWJvdHRvbTogODBweDtcbn1cblxuXG5saSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLyogc3Bhbm5pbmcgYWNyb3NzIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBwYWdlIGZvciB0aGlzIHNlYXJjaCByZXN1bHRzICovXG4uc2VhcmNoLXJlc3VsdHMtY29sdW1uIHtcbiAgICBmbGV4OiAxO1xufVxuXG4vL0hpZGUgZXh0cmEgc3VnZ2VzdGlvbnMgb24gdGhlIHN1Ym1pdCBwYWdlXG4uc2VhcmNoYm94LXN1Z2dlc3Rpb25zIGxpOm50aC1vZi10eXBlKDFuKzQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiXG5oZWFkZXIudG9waGVhZGVyIHtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrX2JsdWU7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgLmhlYWRfY29udGFpbiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC51c2VyLWluZm8gc3BhbiB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAudXNlci1pbmZvID4gW3JvbGU9XCJidXR0b25cIl0ge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3ViaGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyAgXG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICB9XG5cbiAgICAuc3ViaGVhZCwgLnVzZXItbmF2IGEsIC5uYXYtd3JhcHBlciAgYS5sb2dpbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICBmb250LWZhbWlseTogXCJHb3RoYW1cIixzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuc3ViaGVhZHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgIFxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKHdoaXRlLCAuMyk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEuYmx1ZWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICB9XG5cbiAgICAudXNlci1hdmF0YXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzdHVja19ib3R0b21fd2lkdGgpIHtcbiAgICAgICAgLnVzZXItbmF2IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIGJvdHRvbTogMHB4O1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDNweCAycHggcmdiYSgwLDAsMCwwLjIwKTtcbiAgICAgICAgICAgIC1tb3otYm94LXNoYWRvdzogMHB4IDBweCAzcHggMnB4IHJnYmEoMCwwLDAsMC4yMCk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAycHggcmdiYSgwLDAsMCwwLjIwKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwO1xuXG4gICAgICAgICAgICBhLmJsdWVidXR0b24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbn1cblxuXG4iLCJmb290ZXIge1xuXHRAbWVkaWEgKG1heC13aWR0aDogJHN0dWNrX2JvdHRvbV93aWR0aCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDsgLy9zcGFjZSBmb3Igc3R1Y2sgc3VibWl0IHJlcXVlc3QgYnV0dG9uXG4gICAgfVxuXG4gICAgLmZvb3RiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDQ4NzYsIDAuMSk7XG5cbiAgICAgICAgLmlubmVyZm9vdGJhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEyNXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIGg1IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgICAgIGg1IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuN2VtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb290ZXItaW5uZXIge1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkdvdGhhbVwiLHNhbnMtc2VyaWY7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc3R1Y2tfYm90dG9tX3dpZHRoKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEyNXB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgLy9tYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAucmlnaHQtbGVnYWwge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuXG4gICAgLmZvb3Rlci1sYW5ndWFnZS1zZWxlY3RvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG59XG4iLCJzZWN0aW9uLmhlcm8ge1xuICAgIGJhY2tncm91bmQ6ICRkYXJrX2JsdWU7XG5cbiAgICBoMSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAuc2VhcmNoLWZ1bGwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LWZhbWlseTogXCJHb3RoYW1cIixzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgIH1cblxuICAgIC5wb3B1bGFyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAyMHB4IDEwcHggMjBweDtcblxuICAgICAgICAuaGVyby1pbm5lciB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zZWFyY2ggaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5ibG9ja3MtaXRlbSB7XG4gICAgaW1nLnN2ZyB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgIH1cbn1cbi5ibG9ja3MtaXRlbS10aXRsZSB7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmJsb2Nrcy1pdGVtLWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICRncmF5XzE7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuXG4ucmVjZW50LWFjdGl2aXR5LWl0ZW0tcGFyZW50LCAucmVjZW50LWFjdGl2aXR5LWl0ZW0tbWV0YSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnJlY2VudC1hY3Rpdml0eS1pdGVtIHtcbiAgICBwYWRkaW5nOiAxNHB4IDA7XG59XG5cblxuc2VjdGlvbi5ob21lX2FydGljbGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgaDIge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuXG4gICAgLmFjdGl2aXR5LCAuYXJ0aWNsZXMge1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDUwcHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGxpZ2h0X2JsdWU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiR290aGFtXCIsc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpdml0eSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLmFydGljbGVzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgfVxufSIsIlxuXG4uY2F0ZWdvcnktY29udGFpbmVyLCAuc2VjdGlvbi1jb250YWluZXIge1xuXG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcblxuICAgIGgxIHtcbiAgICAgICAgY29sb3I6ICRkYXJrX2JsdWU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgIC8qIC5hcnRpY2xlLWxpc3QtaXRlbSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRsaWdodF9ibHVlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgfVxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkZ3JheV8xLCAwLjMpO1xuICAgIH0gKi9cblxuICAgIGg1LnN1YnNlY3Rpb24ge1xuICAgICAgICBtYXJnaW46IDEwcHggMCAwIDEwcHg7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFydGljbGUtbGlzdCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMTZweDtcbiAgICB9XG5cblxufVxuXG5cbi5jYXRlZ29yeS1ibG9jayB7XG4gICAgJi5ibG9ja3MtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcblxuICAgICAgICBwLnBhZ2UtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5zZWN0aW9uLXRyZWUge1xuICAgIC5nZW5lcmFsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLndhcnJhbnR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaG9tZS1jYXJlIHtcbiAgICAgICAgLmhvbWUtY2FyZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgLndhcnJhbnR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiXG5cblxuLnNlY3Rpb24tY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtZmxvdzogd3JhcDtcblxuICAgIGhlYWRlciB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cblxuICAgIC5zZWN0aW9uLWxpc3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc20pIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWN0aW9uLWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICAgIGRpdi5pY29uX2hvbGRlciB7XG4gICAgICAgICAgICAgICAgZmxleDogMCA1MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLmFjY29yZC1zcGFjZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjptYXgtaGVpZ2h0IDAuM3MgZWFzZS1vdXQ7IFxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBhOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGE6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYWNjb3JkLXNwYWNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDo1MDBweDsgLy8gc3RpbGwgaGF2ZSB0byBoYXJkLWNvZGUgYSB2YWx1ZSFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hcnRpY2xlcyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDYwcHg7XG4gICAgICAgIGZsZXg6IDE7IFxuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc20pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFydGljbGVIb2xkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXJ0aWNsZS1saXN0LWl0ZW0ge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYS5hcnRpY2xlLWxpc3QtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkbGlnaHRfYmx1ZTtcbiAgICB9XG59XG5cblxuXG4iLCJcblxuLmFydGljbGUtY29udGFpbmVyIHtcblxuICAgIC5hcnRpY2xlLXNpZGViYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5hcnRpY2xlIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICYud2l0aC1zaWRlYmFyIHtcblxuICAgICAgICAuYXJ0aWNsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAvKiBoMSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgICAgICB9ICovXG5cbiAgICAgICAgICAgIGFzaWRlLmFydGljbGUtc2lkZWJhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIDMwMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMzBweCAwIDA7IFxuXG4gICAgICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb290ZXIge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYXJ0aWNsZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICB9XG5cbiAgICBcblxuICAgIC5saWdodF9ibHVlX2JveCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJG1lZF9ibHVlLCAwLjEpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRtZWRfYmx1ZSwgMC4xKTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBjb2xvcjogJG1lZF9ibHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBjb2xvcjogJG1lZF9ibHVlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgcGFkZGluZzogMjBweCAwO1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAyMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdHJvbmcsIHN0cm9uZyBzcGFuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiR290aGFtIE5hcnJvd1wiLHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAvKiBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH0gKi9cblxuICAgIH1cblxuXG5cbiAgb2wge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgY291bnRlci1yZXNldDogaXRlbTtcbiAgICBtYXJnaW46IDIwcHggMCAyMHB4IDIwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgXG4gICAgPiBsaSB7XG4gICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBpdGVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDRweDtcbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAxMHB4O1xuICAgIH1cbiAgICBcbiAgICA+IGxpOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoaXRlbSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodF9ibHVlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBjb2xvcjogJGxpZ2h0X2JsdWU7XG4gICAgICAgIHdpZHRoOiAxLjVlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuXG59IiwiXG5cblxuLmFjdGl2aXRpZXNfY29udGFpbmVyIHtcblxuICAgIG1hcmdpbi10b3A6IDIwcHg7XG59IiwiXG4ucHJvZmlsZS1oZWFkZXIge1xuICAgIC5uYW1lIGEge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuXG4gICAgLnN0YXQtbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cblxuICAgIFxufVxuXG5cbi5wcm9maWxlLXNlY3Rpb24ge1xuICAgIGhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG59IiwiLnNlYXJjaC1yZXN1bHRzIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIGJvcmRlci10b3A6IDA7XG59XG5cbi5zZWFyY2gtcmVzdWx0cy1saXN0ID4gbGk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7XG59IiwiXG4vKiBnbyBhaGVhZCB1c2UgdGhpcyBmaWxlLiBObyBvbmUgd2lsbCBjYXJlLi4uIGl0J3MgYWxsIGdvb2QgKi9cbi8qIHRoaXMgaXMgZm9yIHNwZWNpZmljaXR5IGZpeGVzLi4uICovXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFFR0EscUNBQXFDO0FBZ0dyQyw4QkFBOEI7QUNoRTlCOzs7Ozs7RUFNRTtBQ3pDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRTtBQ25CRjs7Ozs7Ozs7Ozs7OztFQWFFO0FBRUYsa0JBQWtCLENBQWxCLElBQWtCO0VBQ2hCLEVBQUU7SUFBTSxpQkFBaUIsRUFBRSxZQUFZO0VBQ3ZDLElBQUk7SUFBSSxpQkFBaUIsRUFBRSxjQUFjOztBQUUzQyxlQUFlLENBQWYsSUFBZTtFQUNiLEVBQUU7SUFBTSxjQUFjLEVBQUUsWUFBWTtFQUNwQyxJQUFJO0lBQUksY0FBYyxFQUFFLGNBQWM7O0FBRXhDLFVBQVUsQ0FBVixJQUFVO0VBQ1IsRUFBRTtJQUFN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 */
