@charset "UTF-8";
html {
  box-sizing: border-box; }

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

.sprites, #logo-footer, .lancamento .new, .anime.node-teaser .nota i, .dl-tabs .dl-tab.active:after {
  background-image: url("../img/sprites.png?49a8111af835dcf8030e5ac76c79656eaa93599b"); }

@font-face {
  font-family: "icons";
  src: url("../fonts/icons.eot");
  src: url("../fonts/icons.eot?#iefix") format("eot"), url("../fonts/icons.woff") format("woff"), url("../fonts/icons.ttf") format("truetype"), url("../fonts/icons.svg#icons") format("svg");
  font-weight: normal;
  font-style: normal; }

.s-comment:before, .s-facebook:before, .s-google:before, .s-user:before {
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  text-decoration: inherit;
  -webkit-font-smoothing: antialiased; }

.s-comment:before {
  content: ""; }

.s-facebook:before {
  content: ""; }

.s-google:before {
  content: ""; }

.s-user:before {
  content: ""; }

html {
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

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

embed,
img,
object,
video {
  max-width: 100%;
  height: auto; }

img[src*=svg], svg {
  width: 100%;
  height: 100%;
  vertical-align: middle; }

/**
 * 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 */ }

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

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
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: 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 style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -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 */ }

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

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

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

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

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

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

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

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

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (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; }

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

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

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

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

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

td,
th {
  padding: 0; }

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

.center-wrapper, .not-front #block-system-main, .front section.second-row, #block-system-help, #animes-com-termo .view-filters form, #animes-com-termo .view-content {
  margin: 0 auto;
  max-width: 1240px;
  padding: 0 20px; }
  @media screen and (min-width: 1440px) {
    .center-wrapper, .not-front #block-system-main, .front section.second-row, #block-system-help, #animes-com-termo .view-filters form, #animes-com-termo .view-content {
      padding: 0; } }
  @media screen and (max-width: 460px) {
    .center-wrapper, .not-front #block-system-main, .front section.second-row, #block-system-help, #animes-com-termo .view-filters form, #animes-com-termo .view-content {
      padding: 0; } }

.green, #animes-com-termo .view-filters {
  background: #72C557; }

.clearfix::after, .lancamento.node-sticky::after, .anime-full .field-body::after {
  clear: both;
  content: "";
  display: table; }

.large-content, #lista-animes {
  margin: 0 auto;
  text-align: center;
  padding: 0 40px; }
  .large-content > h2, #lista-animes > h2, .large-content > div, #lista-animes > div {
    text-align: left; }
  .large-content.adapt, .adapt#lista-animes {
    width: 1030px; }
    @media (max-width: 436px) {
      .large-content.adapt, .adapt#lista-animes {
        width: 416px; } }
    @media (max-width: 743px) {
      .large-content.adapt, .adapt#lista-animes {
        width: 723px; } }
    @media screen and (min-width: 1355px) {
      .large-content.adapt, .adapt#lista-animes {
        width: 1335px; } }
    @media screen and (min-width: 1658px) {
      .large-content.adapt, .adapt#lista-animes {
        width: 1642px; } }

.button, form .form-submit, form .register, #revisioning-revisions-summary .submenu a {
  padding: 8px 18px;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 13px;
  display: inline-block;
  background: #59BA39;
  color: #FFF;
  cursor: pointer; }
  .button:hover, form .form-submit:hover, form .register:hover, #revisioning-revisions-summary .submenu a:hover {
    background-color: #6dc251; }
  .button:visited, form .form-submit:visited, form .register:visited, #revisioning-revisions-summary .submenu a:visited {
    color: #FFF; }
  .button.small, form .small.form-submit, form .small.register, #revisioning-revisions-summary .submenu a.small {
    font-size: 11px;
    margin: 0 8px;
    padding: 0 12px; }
    .button.small.favorite, form .small.favorite.form-submit, form .small.favorite.register, #revisioning-revisions-summary .submenu a.small.favorite {
      color: #FFF;
      background: #B22D00; }

.fadein {
  -webkit-animation: fadein 1s;
  -moz-animation: fadein 1s;
  animation: fadein 1s; }

@keyframes fadein {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-moz-keyframes fadein {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-webkit-keyframes fadein {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-ms-keyframes fadein {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@-o-keyframes fadein {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.spinner-wrapper, .pane-lancamentos .ajax-progress {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  background: rgba(255, 255, 255, 0.85); }
  .no-rgba .spinner-wrapper, .no-rgba .pane-lancamentos .ajax-progress, .pane-lancamentos .no-rgba .ajax-progress {
    opacity: 0.85; }

.spinner, .mfp-wrap .mfp-preloader,
.ajax-progress .throbber, .pane-lancamentos .ajax-progress .throbber {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: -46px 0 0 -13px;
  line-height: 77px;
  width: 50px;
  text-indent: -9999px; }
  .spinner .no-cssanimations, .mfp-wrap .mfp-preloader .no-cssanimations,
  .ajax-progress .throbber .no-cssanimations {
    text-indent: 0; }
  .spinner:before, .mfp-wrap .mfp-preloader:before,
  .ajax-progress .throbber:before, .pane-lancamentos .ajax-progress .throbber:before, .spinner:after, .mfp-wrap .mfp-preloader:after,
  .ajax-progress .throbber:after, .pane-lancamentos .ajax-progress .throbber:after {
    content: '';
    display: block;
    background-color: #72C557;
    width: 26px;
    height: 26px;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-animation: cubemove 1.8s infinite ease-in-out;
    animation: cubemove 1.8s infinite ease-in-out; }
  .spinner:after, .mfp-wrap .mfp-preloader:after,
  .ajax-progress .throbber:after, .pane-lancamentos .ajax-progress .throbber:after {
    -webkit-animation-delay: -0.9s;
    animation-delay: -0.9s; }

@-webkit-keyframes cubemove {
  25% {
    -webkit-transform: translateX(50px) rotate(-90deg) scale(0.5); }
  50% {
    -webkit-transform: translateX(50px) translateY(50px) rotate(-180deg); }
  75% {
    -webkit-transform: translateX(0px) translateY(50px) rotate(-270deg) scale(0.5); }
  100% {
    -webkit-transform: rotate(-360deg); } }

@keyframes cubemove {
  25% {
    transform: translateX(42px) rotate(-90deg) scale(0.5);
    -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); }
  50% {
    /* Hack to make FF rotate in the right direction */
    transform: translateX(42px) translateY(42px) rotate(-179deg);
    -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); }
  50.1% {
    transform: translateX(42px) translateY(42px) rotate(-180deg);
    -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); }
  75% {
    transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
    -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
  100% {
    transform: rotate(-360deg);
    -webkit-transform: rotate(-360deg); } }

@-webkit-keyframes cubemove_small {
  25% {
    -webkit-transform: translateX(22px) rotate(-90deg) scale(0.5); }
  50% {
    -webkit-transform: translateX(22px) translateY(22px) rotate(-180deg); }
  75% {
    -webkit-transform: translateX(0px) translateY(22px) rotate(-270deg) scale(0.5); }
  100% {
    -webkit-transform: rotate(-360deg); } }

@keyframes cubemove_small {
  25% {
    transform: translateX(42px) rotate(-90deg) scale(0.5);
    -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); }
  50% {
    /* Hack to make FF rotate in the right direction */
    transform: translateX(42px) translateY(42px) rotate(-179deg);
    -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); }
  50.1% {
    transform: translateX(42px) translateY(42px) rotate(-180deg);
    -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); }
  75% {
    transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
    -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
  100% {
    transform: rotate(-360deg);
    -webkit-transform: rotate(-360deg); } }

@font-face {
  font-family: 'anbient_icons';
  src: url("../fonts/anbient_icons.eot?d8mve");
  src: url("../fonts/anbient_icons.eot?#iefixd8mve") format("embedded-opentype"), url("../fonts/anbient_icons.woff?d8mve") format("woff"), url("../fonts/anbient_icons.ttf?d8mve") format("truetype"), url("../fonts/anbient_icons.svg?d8mve#anbient_icons") format("svg");
  font-weight: normal;
  font-style: normal; }

.comment.icon:before, .select2-container .select2-choice .select2-arrow b:before, ul.pager .pager-next a:before, ul.pager .pager-previous a:before, form .icon.search:after, .addthis_button:before, .breadcrumb a:first-child:before, form .icon.mail:after, form .icon.pass:after, form .icon.user:after, .hybridauth-facebook:before, .hybridauth-google:before, .icon.check:after, .field-atributos .field-item:after, input[type="checkbox"]:checked + label:before, .comment a.comment-edit:before, .comment a.comment-reply:before, .comment a.comment-delete:before, .rate-widget-yesno .like a:after, .rate-widget-yesno .dislike a:before, .page-anime .panel-pane .pane-title:before, #downloads > h2 > div:before, .panel-pane.inactive .pane-title:before, .messages.info:before, .messages.status:before, .messages.warning:before, .comment .comment-links li.comment-complaint a:before {
  font-family: 'anbient_icons';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.comment.icon:before {
  content: "\e600"; }

.select2-container .select2-choice .select2-arrow b:before {
  content: "\e601"; }

ul.pager .pager-next a:before, ul.pager .pager-previous a:before {
  content: "\e60a"; }

ul.pager .pager-next a:before {
  content: "\e60b"; }

form .icon.search:after {
  content: "\e602"; }

.addthis_button:before {
  content: "\e603"; }

.breadcrumb a:first-child:before {
  content: "\e604"; }

form .icon.mail:after {
  content: "\e605"; }

form .icon.pass:after {
  content: "\e606"; }

form .icon.user:after {
  content: "\e607"; }

.hybridauth-facebook:before {
  content: "\e608"; }

.hybridauth-google:before {
  content: "\e609"; }

.icon.check:after, .field-atributos .field-item:after, input[type="checkbox"]:checked + label:before {
  content: "\e60c"; }

.comment a.comment-edit:before {
  content: "\e60d"; }

.comment a.comment-reply:before {
  content: "\e60e"; }

.comment a.comment-delete:before {
  content: "\e60f"; }

.rate-widget-yesno .like a:after {
  content: "\e610"; }

.rate-widget-yesno .dislike a:before {
  content: "\e611"; }

.page-anime .panel-pane .pane-title:before, #downloads > h2 > div:before {
  content: "\e613"; }

.panel-pane.inactive .pane-title:before {
  content: "\e615"; }

.messages.info:before, .messages.status:before {
  content: "\e616"; }

.messages.warning:before {
  content: "\e617"; }

.comment .comment-links li.comment-complaint a:before {
  content: "\e618"; }

/**
* Typography: Headings, body text, lists, code, and more for a versatile and durable typography system.
*/
body {
  font-family: "Asap", "Droid Sans", Verdana, Tahoma, "DejaVu Sans", sans-serif;
  font-size: 16px;
  line-height: 24px; }

h1 {
  text-transform: uppercase;
  font-size: 36px; }

h2 {
  font-size: 18px;
  color: #333; }

a {
  text-decoration: none;
  color: #59BA39; }
  a:visited {
    color: #59BA39; }

ul ul,
ul ol,
ol ol,
ol ul {
  margin-bottom: 0; }

hr {
  height: 1px;
  border: 1px solid #666;
  padding-bottom: -1px;
  margin: 1em 0; }

strong {
  font-weight: bold; }

em {
  font-style: italic; }

::-moz-selection {
  background: #66B360;
  color: #FFF;
  text-shadow: none; }

::selection {
  background: #66B360;
  color: #FFF;
  text-shadow: none; }

#page-title {
  color: #FFF;
  cursor: default;
  display: inline-block;
  line-height: normal; }

.pane-title {
  text-transform: uppercase;
  font-weight: normal;
  font-size: 28px; }

body {
  background-color: #FAFAFA; }

ul.links.inline {
  list-style-type: none; }
  ul.links.inline, ul.links.inline li {
    margin: 0;
    padding: 0;
    display: inline; }
  ul.links.inline li {
    padding-right: 8px; }
  ul.links.inline a {
    text-decoration: underline;
    font-weight: bold; }

.field.inline {
  display: inline-block; }
  .field.inline .field-label, .field.inline .field-item, .field.inline .item {
    display: inline;
    margin-right: 8px; }
  .field.inline .field-items {
    display: inline-block;
    vertical-align: middle; }

.field-temas a:after, .field-fansub a:after {
  content: ","; }

.field-temas .item:last-child a:after, .field-fansub .item:last-child a:after {
  content: none; }

.field-atributos .field-item:after {
  color: #333;
  margin-left: 10px; }

/*!
Pure v0.5.0
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
https://github.com/yui/pure/blob/master/LICENSE.md
*/
table {
  /* Remove spacing between table cells (from Normalize.css) */
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
  border: 1px solid #cbcbcb;
  width: 100%; }

table caption {
  color: #000;
  font: italic 85%/1 arial, sans-serif;
  padding: 1em 0;
  text-align: center; }

table td,
table th {
  border-left: 1px solid #cbcbcb;
  /*  inner column border */
  border-width: 0 0 0 1px;
  font-size: inherit;
  margin: 0;
  overflow: visible;
  /*to make ths where the title is really long work*/
  padding: 0.5em 1em;
  /* cell padding */ }

table td:first-child,
table th:first-child {
  border-left-width: 0; }

table thead {
  background: #e0e0e0;
  color: #000;
  text-align: left;
  vertical-align: bottom; }

/*
striping:
   even - #fff (white)
   odd  - #f2f2f2 (light gray)
*/
table td {
  background-color: transparent; }

table .odd td {
  background-color: #f2f2f2; }

/* nth-child selector for modern browsers */
table tr:nth-child(2n-1) td {
  background-color: #f2f2f2; }

table tbody > tr:last-child td {
  border-bottom-width: 0; }

/**
 * Form elements: Inputs, buttons, etc.
 */
select {
  background: #FFF;
  border: 1px solid #72C557;
  margin-right: 18px;
  padding: 10px 7px;
  font-size: 14px;
  text-transform: uppercase;
  font-weight: bold;
  color: #333; }

label {
  vertical-align: middle; }

input[name="name"], input[name="pass"] {
  padding-left: 35px; }

input[type="checkbox"], input[type="radio"] {
  vertical-align: middle;
  opacity: 0; }
  input[type="checkbox"] + label, input[type="radio"] + label {
    cursor: pointer;
    display: inline-block; }
    input[type="checkbox"] + label:before, input[type="radio"] + label:before {
      content: "";
      display: inline-block;
      margin-top: -2px;
      margin-left: -19px;
      margin-right: 5px;
      vertical-align: middle;
      height: 14px;
      width: 14px;
      font-size: 12px;
      text-align: center;
      color: #666;
      border: 1px solid #A0A0A0; }

input[type="radio"] + label:before {
  height: 17px;
  width: 17px;
  background-color: #FFF;
  border-radius: 50%;
  line-height: 16px;
  text-indent: 1px;
  border-color: #EEE;
  box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, 0.3), 0px 1px 0px 0px rgba(255, 255, 255, 0.8);
  font-size: 26px; }

input[type="radio"]:checked + label:before {
  content: "\2022"; }

input.form-text:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 50px white inset;
  -webkit-text-fill-color: #333; }

.form-text {
  border: 1px solid #B6B6B6;
  padding: 4px;
  max-width: 100%;
  box-shadow: 0 0 0 2px #EEE; }

.select2-container .select2-choice {
  border-radius: 0;
  text-transform: uppercase;
  box-shadow: none;
  font-size: 14px;
  padding: 0;
  height: auto;
  font-weight: bold;
  font-size: 14px; }
  .select2-container .select2-choice .select2-chosen {
    margin-right: 8px;
    padding: 6px 8px; }
  .select2-container .select2-choice .select2-arrow {
    background: none;
    border: 0;
    line-height: 40px; }
    .select2-container .select2-choice .select2-arrow b {
      background: none; }

.select2-container .select2-choice, .select2-container.select2-dropdown-open .select2-choice {
  background: #FFF;
  color: #333;
  border: 1px solid #72C557; }

.select2-drop {
  border: 1px solid #72C557;
  border-top-color: #DFEFDC;
  border-radius: 0; }

.select2-results {
  margin: 0;
  padding: 0;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 14px; }
  .select2-results li {
    border-top: #DFEFDC 1px solid;
    color: #71C557;
    padding: 6px 8px; }
    .select2-results li:first-child {
      border-top: none; }
  .select2-results .select2-highlighted {
    background: #F1F9EE;
    color: #71C557; }

form label {
  font-size: 16px;
  color: #333;
  display: block;
  margin-bottom: 8px; }

form .field-prefix .icon:after {
  color: #A6DC98;
  position: absolute;
  margin-left: 8px;
  line-height: 30px; }

form .icon.pass:after {
  line-height: 30px; }

form .form-actions {
  margin: 20px 0; }
  form .form-actions .recover {
    font-size: 12px;
    margin-left: 10px; }

form .form-submit {
  display: inline;
  border: none;
  color: #FFF;
  background: #72C557;
  margin: 14px 14px 0 0; }

form .register {
  min-width: 234px;
  height: 40px;
  background: #72C557;
  color: #FFF; }

.form-item {
  margin: 18px 0; }

.form-text::-webkit-input-placeholder {
  color: #AAA;
  text-transform: lowercase;
  font-size: 14px; }

.form-text::-moz-placeholder {
  color: #AAA;
  text-transform: lowercase;
  font-size: 14px; }

.form-text:-moz-placeholder {
  color: #AAA;
  text-transform: lowercase;
  font-size: 14px; }

.form-text:-ms-input-placeholder {
  color: #AAA;
  text-transform: lowercase;
  font-size: 14px; }

.hybridauth-widget-wrapper {
  text-align: center; }
  .hybridauth-widget-wrapper h3 {
    display: none; }
  .hybridauth-widget-wrapper ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: inline-block; }
    .hybridauth-widget-wrapper ul::after {
      clear: both;
      content: "";
      display: table; }

.hybridauth-widget-wrapper ul.hybridauth-widget li {
  margin: 7px 0; }

.hybridauth-icon {
  color: #FFF;
  min-width: 234px;
  height: 40px;
  display: block;
  line-height: 40px;
  text-indent: 50px;
  position: relative;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: bold;
  padding-right: 20px; }
  .hybridauth-icon:before {
    font-weight: normal;
    text-indent: 0;
    left: 0;
    position: absolute;
    line-height: 40px;
    position: absolute;
    font-size: 20px;
    padding: 0 6px; }

.hybridauth-google {
  background: #D6492C; }
  .hybridauth-google:before {
    font-size: 27px;
    border-right: 1px solid #C9432D; }

.hybridauth-facebook {
  background: #3B5998; }
  .hybridauth-facebook:before {
    padding: 0 10px;
    border-right: 1px solid #314a7e; }

.page-user main .hybridauth-widget-wrapper {
  text-align: left; }

.page-user main form .center-align {
  text-align: left; }
  .page-user main form .center-align a {
    text-align: center; }

#login-form {
  width: 330px;
  margin-left: -165px;
  padding: 28px 28px 40px; }
  #login-form h2.title {
    font-size: 14px;
    color: #666;
    border-bottom: 2px solid #F0F0F0;
    padding-bottom: 6px;
    margin: 0 0 30px;
    font-weight: normal;
    text-align: center; }
    #login-form h2.title em {
      font-weight: bold;
      font-size: 20px;
      text-transform: uppercase;
      font-style: normal;
      margin: 0 8px; }
  #login-form label {
    display: none; }
  #login-form .description {
    display: none; }
  #login-form .form-item {
    text-align: center; }
  #login-form .form-text {
    width: 184px;
    display: inline-block; }
  #login-form .form-actions {
    text-align: center; }

.green-form {
  min-height: 260px; }
  .green-form .view-filters {
    background: #72C557; }
    .green-form .view-filters form {
      background: #67b14e;
      line-height: normal; }
      @media screen and (max-width: 460px) {
        .green-form .view-filters form {
          padding: 16px 0; } }
  .green-form .views-widget-sort-sort_bef_combine {
    float: right;
    display: inline-block;
    line-height: 53px; }
    .green-form .views-widget-sort-sort_bef_combine label {
      color: #E0EFDC; }
  .green-form .views-widget-filter-field_tipo_de_anime_tid {
    float: right;
    display: inline-block;
    line-height: 4em; }
    .green-form .views-widget-filter-field_tipo_de_anime_tid > label {
      color: #E0EFDC; }
  .green-form .views-widget-filter-title {
    line-height: 4em;
    display: inline-block;
    float: left; }
  .green-form .views-submit-button {
    float: none;
    display: block;
    line-height: 4em; }
    .green-form .views-submit-button.views-exposed-widget .form-submit {
      margin-top: 0; }

.green-form form {
  font-size: 13px;
  text-align: left; }
  @media screen and (max-width: 460px) {
    .green-form form {
      text-align: center; } }
  .green-form form input.form-text {
    border: none;
    height: 36px;
    line-height: 36px;
    padding-left: 34px;
    box-shadow: none; }
    .green-form form input.form-text::-webkit-input-placeholder {
      text-transform: uppercase;
      letter-spacing: -1px; }
    .green-form form input.form-text::-moz-placeholder {
      text-transform: uppercase;
      letter-spacing: -1px; }
    .green-form form input.form-text:-moz-placeholder {
      text-transform: uppercase;
      letter-spacing: -1px; }
    .green-form form input.form-text:-ms-input-placeholder {
      text-transform: uppercase;
      letter-spacing: -1px; }
  .green-form form label {
    color: #FFF;
    display: inline;
    text-transform: uppercase; }
  .green-form form .select2-choice, .green-form form.select2-dropdown-open .select2-choice {
    background: none;
    border: none;
    color: #FFF; }
  .green-form form .select2-container .select2-arrow {
    display: none; }
  .green-form form .views-exposed-widget {
    padding: 0;
    margin: 0 20px; }
    @media screen and (max-width: 460px) {
      .green-form form .views-exposed-widget {
        float: none; } }
  .green-form form .views-widget {
    display: inline-block; }
  .green-form form .icon.search:after {
    line-height: inherit;
    color: #AFAFAF; }
  .green-form form .ajax-progress .throbber:after, .green-form form .ajax-progress .throbber:before {
    background-color: #FFF; }
  .green-form form .form-type-bef-checkbox {
    display: inline-block;
    margin-left: 10px; }
    .green-form form .form-type-bef-checkbox input + label:before {
      border-color: #FFF;
      color: #FFF; }
  .green-form form .select2-container b {
    display: none; }

.comment-form {
  padding-left: 150px;
  margin-top: 13px;
  font-size: 14px; }
  .comment-form label {
    font-size: inherit;
    display: inline;
    vertical-align: inherit; }
  .comment-form .form-type-item label:after {
    content: ":";
    margin-left: -4px; }
  .comment-form .form-item-notify {
    margin: 10px 0 0; }
  .comment-form .form-item-notify-type {
    display: block;
    margin: 0px 20px; }
  .comment-form .form-actions {
    margin-top: 0; }
  .comment-form .form-type-select {
    display: none; }
  .comment-form > div .form-type-item {
    font-size: 15px; }
  .comment-form .form-type-textarea label {
    display: none; }
  .comment-form .filter-guidelines-item {
    border: 1px solid #C9CDCE;
    background: #EEF9FF;
    color: #666;
    padding: 14px 18px;
    line-height: 20px; }
    .comment-form .filter-guidelines-item a {
      font-weight: bold;
      color: #666; }
  .comment-form .filter-wrapper, .comment-form .filter-guidelines {
    border: none;
    padding: 0; }
  .comment-form .field-widget-text-textarea {
    padding: 0;
    margin-top: 12px; }
  .comment-form .messages:last-child {
    margin-bottom: 16px; }
  .comment-form.top-voted-standalone header {
    background: #B22D00; }

.comment-form-removing {
  overflow: hidden; }

.filter-pane label {
  text-transform: uppercase;
  color: #FFF;
  font-weight: bold;
  margin: 8px; }

.filter-pane .form-items {
  background: #7BBC68;
  padding: 13px 10px; }

.filter-pane a {
  border: 1px solid #65B14E;
  color: #FFF;
  padding: 2px 8px;
  margin: 4px;
  font-weight: bold;
  text-transform: uppercase; }
  .filter-pane a.active {
    background: #497e38;
    border: none; }
  .filter-pane a:hover {
    background: #61a74a; }

.filter-pane input[type=checkbox] + label:before {
  border-color: #FFF;
  color: #FFF; }

.filter-pane input.form-text {
  border: 1px solid #569B44;
  box-shadow: none;
  box-sizing: border-box;
  color: #65B14E; }

.filter-pane .item {
  min-width: 49%;
  display: inline-block; }

.filter-pane input.search {
  width: 100%;
  padding-left: 31px; }

.filter-pane .item.submit {
  text-align: right;
  width: 100%; }
  .filter-pane .item.submit input {
    margin: 0; }

.filter-pane .qualidade .form-items {
  padding-top: 4px; }
  .filter-pane .qualidade .form-items label {
    width: 30px;
    height: 18px;
    margin-left: 4px; }

.filter-pane .qualidade .item {
  min-width: 0; }

.filter-pane .episodios input {
  width: 25%; }

html {
  position: relative;
  min-height: 100%; }

body {
  min-height: 100%; }

main#panel {
  min-height: 100%; }

#main-prefix {
  background: #72C557;
  padding: 100px 40px 20px; }
  .front #main-prefix {
    padding: 0; }

.front #block-system-main {
  overflow-x: hidden; }

.not-front #block-system-main {
  padding: 30px 0; }

@media screen and (max-width: 1030px) {
  .front section.second-row {
    padding: 0 24px; } }

.dfp-tag-wrapper .dfp-tag-wrapper {
  text-align: center;
  margin: 40px; }

#dfp-ad-home_lado_da_enquete-wrapper {
  float: right;
  width: 300px; }
  @media screen and (max-width: 1030px) {
    #dfp-ad-home_lado_da_enquete-wrapper {
      float: none; } }
  #dfp-ad-home_lado_da_enquete-wrapper .dfp-tag-wrapper {
    margin: 26px 0; }

#dfp-ad-relacionados-wrapper {
  text-align: center; }
  @media screen and (min-width: 1280px) {
    #dfp-ad-relacionados-wrapper {
      display: inline-block; } }
  #dfp-ad-relacionados-wrapper .dfp-tag-wrapper {
    display: inline-block;
    margin: 5px; }

.pane-anbient-ads-anbient-ads-728x90 {
  text-align: center;
  margin: 0 auto; }

object[type^="application/gas-events"] {
  display: none; }

.element-invisible {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); }

.element-hidden {
  display: none; }

.comment.icon {
  padding-left: 20px;
  font-size: 13px; }
  .comment.icon:before {
    font-size: 18px;
    vertical-align: middle;
    margin-right: 6px; }

.addthis_button {
  display: inline-block;
  line-height: 18px;
  margin: 0 16px; }
  .addthis_button:before {
    margin-right: 3px; }

.atm-f {
  display: none; }

.mfp {
  background: #FAFAFA;
  width: 500px;
  margin-left: -250px;
  left: 50%;
  position: relative;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); }

.mfp-content {
  max-height: 100%; }

.mfp-server {
  padding: 20px;
  width: auto;
  height: 95%;
  left: 0;
  max-width: 700px;
  margin: 20px auto;
  font-size: 13px;
  line-height: normal; }
  .mfp-server textarea {
    min-height: 500px;
    width: 100%; }

.mfp-counter {
  width: 58px; }

.mfp-with-zoom .mfp-container, .mfp-with-zoom.mfp-bg {
  opacity: 0;
  -webkit-backface-visibility: hidden;
  /* ideally, transition speed should match zoom duration */
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out; }

.mfp-with-zoom.mfp-ready .mfp-container {
  opacity: 1; }

.mfp-with-zoom.mfp-ready.mfp-bg {
  opacity: 0.8; }

.mfp-with-zoom.mfp-removing .mfp-container, .mfp-with-zoom.mfp-removing.mfp-bg {
  opacity: 0; }

.ajax-progress {
  display: inline-block; }
  .ajax-progress .throbber {
    position: relative;
    margin: 0;
    line-height: 0;
    font-size: 0;
    left: 8px;
    top: -16px; }
    .cssanimations .ajax-progress .throbber {
      background-image: none; }
    .ajax-progress .throbber:before, .ajax-progress .throbber:after {
      position: static;
      width: 10px;
      height: 10px;
      -webkit-animation: cubemove_small 1.8s infinite ease-in-out;
      animation: cubemove_small 1.8s infinite ease-in-out; }
    .ajax-progress .throbber:after {
      -webkit-animation-delay: -0.9s;
      animation-delay: -0.9s; }
  .ajax-progress .message {
    display: none; }

.cke_button__spoiler_icon {
  width: 56px !important;
  background-size: auto !important; }

.messages-wrapper .messages {
  margin: 1em; }

.messages {
  position: relative;
  min-height: 18px;
  height: auto;
  background-color: #71C557;
  margin-top: 20px;
  color: #FFF;
  padding: 16px 16px 16px 60px;
  line-height: 1.33; }
  .page-contact .messages {
    font-size: 0.9em;
    margin-bottom: -20px; }
  .messages a {
    text-decoration: underline;
    font-weight: bold;
    color: inherit; }
  .maintenance-page .messages {
    margin-top: 100px; }
  .messages:before {
    position: absolute;
    font-size: 25px;
    margin-left: -44px; }
  .messages.error, .messages.error ul {
    background: #C0392B;
    color: #FFF; }
  .messages.warning {
    background: #FFF7C2;
    border: 1px solid #FFE180;
    color: #666; }
    .messages.warning:before {
      color: #FFD24D; }
  .messages.info, .messages.status {
    background: #DAEFF8;
    border: 1px solid #BFCFFF;
    color: #666; }
    .messages.info:before, .messages.status:before {
      color: #949DA0; }
  .messages ul {
    margin: 0;
    padding-left: 16px; }

#main-prefix .messages {
  background: #ECF0F1;
  color: #111; }

#revisioning-revisions-summary hr {
  border: none;
  height: 1px;
  margin: 5px; }

#revisioning-revisions-summary .submenu strong {
  display: none; }

@media screen and (max-width: 1024px) {
  .admin-menu #main {
    margin-top: 47px; } }

.slicknav_menu {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10; }

#header {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
  line-height: 46px;
  min-height: 131px;
  pointer-events: none; }
  #header div {
    pointer-events: all; }
  .front #header {
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAACDCAYAAABMbXFaAAAAhUlEQVQoz42SyxEDMQxC4XW5faTCHFKWlYu8u7KVz00zIAHGeryOJ5YHNpGTHNiMCThA5CQpsAhsJ4Vr1w58kvvLDXBpJGVUjSjAzV9HLoZOsiRBjeVVcr+MmKEboF3LbEve4jQdJAX/m/ybZNeCrEinN2B/+1nZIrl1yZbyY/G/JNl/yRvFioUCJgtqugAAAABJRU5ErkJggg==) repeat-x; }

#logo {
  width: 103px;
  height: 40px;
  margin-top: 5px;
  margin-left: 30px;
  float: left;
  position: relative; }
  @media screen and (max-width: 460px) {
    #logo {
      left: 28px; } }
  #logo a {
    display: block;
    height: 100%;
    width: 100%;
    text-indent: -9999px;
    position: absolute; }
  #logo img {
    vertical-align: top; }

main#main {
  padding-bottom: 334px; }
  @media screen and (max-width: 460px) {
    main#main {
      padding-bottom: 20px; } }

#footer {
  border-top: 4px solid #5CA447;
  background: #F0F0F0;
  padding: 16px 26px 28px;
  margin-top: 20px;
  height: 314px;
  clear: both;
  width: 100%;
  position: absolute;
  bottom: 0; }
  @media screen and (max-width: 460px) {
    #footer {
      height: auto;
      position: relative; } }
  #footer .bottom {
    clear: both; }
  #footer .block-views {
    float: left;
    margin-right: 90px;
    margin-bottom: 20px; }
    #footer .block-views h2 {
      font-weight: normal;
      font-size: 20px;
      color: #333;
      text-transform: uppercase; }
    #footer .block-views a {
      color: #666;
      font-size: 14px;
      line-height: 22px; }

#copykeys {
  color: #999;
  text-transform: uppercase;
  font-size: 10px;
  font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif;
  line-height: 14px; }

#logo-footer {
  background-position: 0px -60px;
  background-repeat: no-repeat;
  overflow: hidden;
  display: block;
  width: 100px;
  height: 28px;
  float: left;
  margin-right: 16px;
  margin-bottom: 20px; }

#tabs {
  text-transform: uppercase;
  font-weight: bold; }
  #tabs ul {
    list-style-type: none; }
    #tabs ul, #tabs ul li {
      margin: 0;
      padding: 0;
      display: inline; }
  #tabs li a {
    background: #FFF;
    padding: 5px 15px; }
  #tabs .active a {
    color: #243F1B; }
  #tabs .active:hover a {
    background: #F1F9EE; }

#block-system-user-menu {
  float: right;
  margin-right: 0;
  margin-top: 3px; }
  #block-system-user-menu ul.menu {
    list-style-type: none; }
    #block-system-user-menu ul.menu, #block-system-user-menu ul.menu li {
      margin: 0;
      padding: 0;
      display: inline; }
  #block-system-user-menu a {
    color: #FFF;
    text-transform: uppercase;
    font-weight: bold;
    font-size: 11px;
    padding: 6px 20px; }

#block-system-main-menu .root > li > a, #block-system-main-menu .nolink > span {
  text-shadow: #444 1px 1px 0; }
  .no-textshadow #block-system-main-menu .root > li > a, .no-textshadow #block-system-main-menu .nolink > span {
    filter: progid:DXImageTransform.Microsoft.Shadow(color=#444444,direction=45);
    filter: dropshadow(color=#444444, offx=1, offy=1); }

#block-system-main-menu {
  color: #FFF;
  text-transform: uppercase;
  margin-left: 20px;
  margin-top: 5px;
  float: left;
  font-weight: bold; }
  @media screen and (max-width: 460px) {
    #block-system-main-menu {
      display: none; } }
  #block-system-main-menu a {
    color: #FFF; }
  #block-system-main-menu .menu {
    list-style-type: none; }
    #block-system-main-menu .menu, #block-system-main-menu .menu li {
      margin: 0;
      padding: 0;
      display: inline; }
  #block-system-main-menu .nolink {
    cursor: default; }
  #block-system-main-menu .nolink, #block-system-main-menu a {
    padding: 6px 20px;
    line-height: normal; }
  #block-system-main-menu .submenu {
    position: absolute;
    left: 0;
    min-width: 100%;
    color: #666;
    font-weight: normal;
    margin-top: 6px;
    top: 0;
    visibility: hidden;
    opacity: 0;
    z-index: -1;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out; }
    #block-system-main-menu .submenu span, #block-system-main-menu .submenu a {
      color: #666;
      background: #FFF;
      background: rgba(255, 255, 255, 0.79);
      margin-top: 1px;
      display: block; }
    #block-system-main-menu .submenu li:hover a {
      color: #49B700; }
  #block-system-main-menu .expanded {
    position: relative; }
    #block-system-main-menu .expanded.active > span, #block-system-main-menu .expanded:hover > span {
      background: #FFF;
      color: #49B700;
      background: rgba(255, 255, 255, 0.79); }
    #block-system-main-menu .expanded.active .submenu, #block-system-main-menu .expanded:hover .submenu {
      visibility: visible;
      opacity: 100;
      top: 100%;
      z-index: 1; }

#panel button.toggle-button {
  display: none;
  top: 15px;
  color: #fff;
  position: absolute;
  -webkit-appearance: initial;
  background: none;
  border: none;
  font-size: 1.6em;
  left: 10px;
  z-index: 10;
  outline: none; }
  @media screen and (max-width: 460px) {
    #panel button.toggle-button {
      display: block; } }

#menu {
  background: #72C557;
  display: none; }
  @media screen and (max-width: 460px) {
    #menu {
      display: block; } }

main#panel {
  box-shadow: #333 2px 6px 10px;
  background: #FFF; }

.slideout-menu {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 0;
  width: 256px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: none; }

.slideout-panel {
  position: relative;
  z-index: 1; }

.slideout-open,
.slideout-open body,
.slideout-open .slideout-panel {
  overflow: hidden; }

.slideout-open .slideout-menu {
  display: block; }

@media screen and (max-width: 460px) {
  .slideout-open, .slideout-open body, .slideout-open .slideout-panel {
    overflow: visible; } }

.slideout-menu {
  font-weight: bold;
  color: #fff;
  text-shadow: #444 1px 1px 0;
  padding-top: 42px; }
  .slideout-menu ul li.expanded {
    list-style: none;
    margin: 20px 0 0 .5em; }
  .slideout-menu ul li.leaf {
    list-style: none;
    margin: 0; }
  .slideout-menu ul.menu a {
    color: #fff; }

.breadcrumb {
  font-size: 13px;
  font-weight: bold;
  margin: 0 16px; }
  .breadcrumb a {
    color: #FFF; }
    .breadcrumb a:first-child:before {
      margin-right: 8px; }
  .breadcrumb .nolink {
    display: none; }

.load-more-wrapper {
  text-align: center;
  clear: both; }

.pager-wrapper {
  text-align: center;
  display: block;
  clear: both; }

ul.pager {
  list-style: none;
  margin: 20px 0;
  padding: 0;
  display: inline-block; }
  ul.pager a {
    height: 100%;
    display: block;
    background: #72C557;
    color: #FFF;
    padding: 0 15px; }
  ul.pager li {
    height: 40px;
    line-height: 40px;
    background: #FFF;
    display: inline-block;
    color: #72C557;
    border: 1px solid #A7DA97;
    cursor: default;
    margin: 2px; }
    ul.pager li:hover a {
      background: #508a3d; }
  ul.pager .pager-next, ul.pager .pager-previous {
    background: none;
    border: none; }
    ul.pager .pager-next a, ul.pager .pager-previous a {
      background: none;
      font-size: 0px;
      padding: 0 4px;
      display: inline; }
      ul.pager .pager-next a:before, ul.pager .pager-previous a:before {
        font-size: 32px;
        color: #CCC;
        float: left;
        padding-top: 3px; }
    ul.pager .pager-next:hover a, ul.pager .pager-previous:hover a {
      background: none; }
      ul.pager .pager-next:hover a:before, ul.pager .pager-previous:hover a:before {
        color: #888; }
  ul.pager .pager-last, ul.pager .pager-first {
    display: none; }
  ul.pager .pager-current {
    padding: 0 15px; }
  ul.pager .pager-ellipsis {
    border: none;
    background: none;
    vertical-align: top;
    font-size: 20px; }

ul.pager-load-more {
  display: block;
  list-style-type: none; }
  ul.pager-load-more, ul.pager-load-more li {
    margin: 0;
    padding: 0;
    display: inline; }
  ul.pager-load-more li {
    height: auto; }
  ul.pager-load-more .pager-next a {
    background: #72C557;
    font-size: 14px;
    color: #FFF;
    padding: 0 35px;
    margin-top: 34px;
    text-transform: uppercase;
    display: inline-block;
    border: 2px solid #DDD;
    font-size: 16px;
    font-weight: bold; }
    ul.pager-load-more .pager-next a span:before {
      margin-right: 10px; }
    ul.pager-load-more .pager-next a:before {
      vertical-align: middle;
      line-height: 20px;
      color: inherit;
      float: none; }
  ul.pager-load-more .pager-next:hover a {
    background: #80cb68; }
    ul.pager-load-more .pager-next:hover a:before {
      color: #FFF; }

.user-picture {
  float: right;
  border: 1px solid black;
  margin-left: 6px;
  line-height: 0; }
  .user-picture a {
    display: block; }

.page-user .field-img {
  float: left;
  margin: 0 20px 20px 0; }

.page-user .main-role {
  font-size: 27px;
  color: #444; }

.page-user .user-profile-category h2 {
  display: none; }

.page-user .user-profile-category dt, .page-user .user-profile-category dd {
  display: inline;
  margin-left: 0;
  font-size: 13px;
  color: #777; }

#block-views-exp-search-panel-pane-1 {
  display: inline-block;
  float: right;
  height: 30px;
  line-height: 1;
  margin-top: 12px; }
  #block-views-exp-search-panel-pane-1 .form-submit {
    display: none; }

@media screen and (max-width: 460px) {
  #block-views-exp-search-panel-pane-1 {
    float: none; }
    #header #block-views-exp-search-panel-pane-1 {
      display: none; } }

.slideout-menu .search-form {
  display: inline-block;
  margin: 25px 0 0 3em; }

.search-form .views-exposed-widget {
  padding: 0;
  float: none;
  display: inline-block; }

.search-form input.form-search {
  border: 1px solid #569b44;
  box-shadow: none;
  padding-left: 31px;
  color: #65b14e; }

.form-item-keys .icon.search:after {
  margin-top: 14px; }

.form-search::-webkit-input-placeholder {
  font-size: inherit;
  color: #999; }

.form-search::-moz-placeholder {
  color: #999;
  font-size: inherit; }

#destaques {
  padding-bottom: 50px; }
  #destaques .caption {
    position: absolute;
    bottom: 0;
    z-index: 1;
    background: #FAFAFA;
    right: 10%;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 14px;
    margin: 0; }
    #destaques .caption a {
      color: #333;
      padding: 6px 20px;
      display: block; }
      #destaques .caption a:hover {
        color: #000;
        text-decoration: underline; }
  #destaques .slide {
    position: relative;
    width: 100%;
    z-index: 1;
    overflow: hidden; }
    #destaques .slide > a {
      line-height: 0;
      display: block; }
  #destaques picture {
    width: 100%; }
  #destaques img {
    width: 100%; }

#lancamentos {
  min-height: 498px; }
  #lancamentos.loading {
    position: absolute;
    left: 100%;
    width: 100%;
    top: 0; }

.pane-lancamentos {
  margin: 0 auto;
  padding: 0 10px 40px;
  border-bottom: 2px solid #F0F0F0;
  box-sizing: content-box;
  width: 300px;
  -webkit-transition: all 0.5s ease-out;
  -moz-transition: all 0.5s ease-out;
  transition: all 0.5s ease-out; }
  .pane-lancamentos .pane-content {
    position: relative;
    margin-right: -10px;
    box-sizing: border-box; }
  @media screen and (min-width: 630px) {
    .pane-lancamentos {
      width: 610px; } }
  @media screen and (min-width: 940px) {
    .pane-lancamentos {
      width: 920px; } }
  @media screen and (min-width: 1250px) {
    .pane-lancamentos {
      width: 1230px; } }
  @media screen and (min-width: 1560px) {
    .pane-lancamentos {
      width: 1540px; } }

.lancamento {
  position: relative;
  float: left;
  margin: 0 10px 10px 0;
  width: 300px;
  /*a.field-img{
    position: relative;
    z-index: 2;
    float: left;
  }*/ }
  @media screen and (min-width: 630px) {
    .lancamento {
      width: 100%; } }
  @media screen and (min-width: 940px) {
    .lancamento {
      width: 32.2%; } }
  @media screen and (min-width: 1250px) {
    .lancamento {
      width: 24%; } }
  .lancamento img {
    display: block;
    width: 100%; }
  .lancamento .new {
    position: absolute;
    left: -1px;
    top: 8px;
    background-position: 0px -41px;
    background-repeat: no-repeat;
    overflow: hidden;
    display: none;
    width: 50px;
    height: 19px;
    color: #FFF;
    text-transform: uppercase;
    font-size: 12px;
    line-height: 20px;
    text-indent: 7px;
    font-weight: bold; }
  .lancamento:nth-child(-n+4) .new {
    display: block; }
  .lancamento figure {
    margin: 0;
    line-height: 0; }
  .lancamento header {
    position: absolute;
    bottom: 0;
    background: #000;
    background-color: rgba(0, 0, 0, 0.8);
    padding: 7px 10px;
    width: 100%;
    line-height: 16px;
    opacity: 1;
    -webkit-transition: all 0.5s ease-out;
    -moz-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out; }
  .lancamento .title {
    font-weight: bold;
    font-size: 16px;
    letter-spacing: -1px;
    color: #FFF;
    text-transform: uppercase;
    display: block; }
    .lancamento .title.alt {
      max-width: 230px; }
  .lancamento .author {
    font-size: 12px; }
  .lancamento .download {
    text-align: center;
    margin: 6px 0; }
  .lancamento .field-body {
    font-size: 13px;
    line-height: 16px;
    padding-top: 10px; }
  .lancamento footer {
    font-size: 12px;
    text-transform: uppercase;
    margin-top: 9px; }
    .lancamento footer ul.links a {
      text-decoration: none; }
  .lancamento .wrapper {
    position: absolute;
    width: 100%;
    float: left;
    overflow: hidden; }
  .lancamento .content {
    border: 1px solid #CCC;
    border-top: 0;
    padding: 16px 21px;
    overflow: hidden;
    position: relative;
    z-index: 1;
    visibility: hidden;
    width: 100%;
    background: #FFF;
    margin-top: -100%;
    opacity: 0;
    top: -100%;
    -webkit-transition: all 0.4s ease-out;
    -moz-transition: all 0.4s ease-out;
    transition: all 0.4s ease-out; }
  .lancamento p {
    margin-top: 0; }
  .lancamento.active header, .lancamento.node-sticky header {
    background: none;
    border-left: 1px solid #CCC;
    border-right: 1px solid #CCC;
    opacity: 0;
    visibility: hidden; }
  .lancamento.active .title, .lancamento.node-sticky .title {
    color: #59BA39; }
  .lancamento.active .content, .lancamento.node-sticky .content {
    margin-top: 0;
    opacity: 1;
    visibility: visible; }

.lancamento.node-sticky {
  width: auto;
  margin: 0 0 10px 0;
  float: none; }
  @media screen and (min-width: 940px) {
    .lancamento.node-sticky a.field-img {
      float: left; } }
  .lancamento.node-sticky header {
    display: none; }
  .lancamento.node-sticky .content {
    background: none;
    border: none;
    height: auto;
    padding: 0 20px;
    margin: 20px 0 0 0; }
    @media screen and (min-width: 940px) {
      .lancamento.node-sticky .content {
        margin-top: 0; } }
  .lancamento.node-sticky .new {
    display: none; }
  .lancamento.node-sticky .title {
    font-size: 21px; }
    .lancamento.node-sticky .title.alt {
      max-width: none; }
  .lancamento.node-sticky .field-body {
    min-height: 90px; }
  .lancamento.node-sticky .wrapper {
    position: static;
    float: none;
    width: auto;
    overflow: visible; }
    @media screen and (min-width: 940px) {
      .lancamento.node-sticky .wrapper {
        overflow: hidden; } }
  .lancamento.node-sticky .center-align {
    float: none;
    margin-right: 16px; }
    @media screen and (min-width: 940px) {
      .lancamento.node-sticky .center-align {
        float: left; } }
  .lancamento.node-sticky footer {
    margin-top: 0;
    line-height: 54px; }

.page-downloads #block-system-main {
  max-width: none;
  overflow-x: hidden;
  padding: 0; }

#lista-animes {
  overflow: hidden; }
  #lista-animes .pane-content {
    margin: 0 -3px;
    position: relative;
    text-align: center; }
  #lista-animes .view.loading {
    position: absolute;
    left: 100%;
    width: 102%;
    top: 0; }
  #lista-animes .view.from-left {
    left: -100%; }

#animes .view-filters {
  padding-bottom: 190px;
  margin: 0 -40px -168px; }
  #animes .view-filters form {
    margin: 0 auto;
    width: 86%; }

#animes .view-empty {
  color: #FFF; }

.anime.node-teaser {
  margin: 8px;
  width: 300px;
  height: 160px;
  position: relative;
  overflow: hidden;
  display: inline-block;
  text-align: left; }
  .anime.node-teaser .content {
    position: absolute;
    top: 100%;
    width: 100%; }
  .anime.node-teaser h2, .anime.node-teaser .body {
    background: #000;
    background: rgba(0, 0, 0, 0.9);
    width: 100%;
    bottom: 0;
    position: absolute;
    width: 100%; }
  .anime.node-teaser .body {
    color: #FFF;
    font-size: 12px;
    position: absolute;
    top: 100%;
    height: 300px;
    padding: 0 12px; }
  .anime.node-teaser h2 {
    font-size: 15px;
    margin: 0;
    padding: 6px 12px; }
    .anime.node-teaser h2 a {
      color: #FFF; }
  .anime.node-teaser h3 {
    font-size: 12px;
    margin: 0; }
  .anime.node-teaser .nota {
    top: 0;
    right: -30px;
    position: absolute;
    color: #65B14E;
    font-size: 15px;
    font-weight: bold;
    text-align: center;
    z-index: 1;
    background: #FFF;
    width: 24px; }
    .anime.node-teaser .nota i {
      display: block;
      background-position: 0px 0px;
      background-repeat: no-repeat;
      overflow: hidden;
      display: block;
      width: 24px;
      height: 4px;
      bottom: -4px;
      position: relative; }
    .anime.node-teaser .nota div {
      padding-top: 11px;
      position: relative;
      bottom: -4px; }
  .anime.node-teaser .generos a:after {
    content: ","; }
  .anime.node-teaser .generos a:last-child:after {
    content: ""; }
  .anime.node-teaser footer {
    position: absolute;
    bottom: -40px;
    width: 100%;
    left: 0;
    padding: 4px 12px;
    color: #FFF;
    font-size: 15px;
    font-weight: bold; }
    .anime.node-teaser footer a {
      color: #FFF; }
  .anime.node-teaser:hover h2 a {
    -webkit-transition: all 0.7s ease-out;
    -moz-transition: all 0.7s ease-out;
    transition: all 0.7s ease-out;
    color: #72C557; }
  .anime.node-teaser:hover footer {
    bottom: 0;
    -webkit-transition: bottom 0.4s ease-out;
    -moz-transition: bottom 0.4s ease-out;
    transition: bottom 0.4s ease-out; }
  .anime.node-teaser:hover .nota {
    right: 20px;
    -webkit-transition: right 0.4s ease-out;
    -moz-transition: right 0.4s ease-out;
    transition: right 0.4s ease-out; }

#lista-de-animes .hide {
  display: none; }

#lista-de-animes table {
  width: 75%;
  margin-left: 25%;
  border: none;
  position: relative;
  margin-top: 25px; }
  @media screen and (max-width: 768px) {
    #lista-de-animes table {
      width: 100%;
      margin-left: 0; } }
  #lista-de-animes table thead {
    background: #72C557;
    color: #FFF;
    font-weight: bold;
    text-transform: uppercase;
    line-height: 18px; }
  #lista-de-animes table th {
    border: none;
    cursor: pointer; }
    #lista-de-animes table th:first-child {
      border-left: 22px solid #72C557;
      text-indent: -18px; }
  #lista-de-animes table tbody {
    background: #E3F1DF;
    border: 0;
    border-left: 6px solid #E3F1DF; }
    #lista-de-animes table tbody a {
      color: #444; }
      #lista-de-animes table tbody a:hover {
        color: #72C557; }
  #lista-de-animes table td {
    border: none; }
  #lista-de-animes table tr:nth-child(2n) td {
    background: none; }
  #lista-de-animes table tr:nth-child(2n-1) td {
    background: #FAFAFA; }

@media screen and (max-width: 460px) {
  #lista-de-animes .nota {
    display: none; } }

.alphafilter {
  list-style-type: none;
  cursor: default;
  background: #67b14e;
  padding: 8px;
  text-transform: uppercase;
  text-align: center;
  margin-left: 25%; }
  @media screen and (max-width: 768px) {
    .alphafilter {
      margin: 0; } }
  .alphafilter li {
    display: inline-block;
    background: #7BBC68;
    padding: 1px 8px;
    color: #FFF;
    font-weight: bold;
    font-size: 22px;
    cursor: pointer; }
    .alphafilter li.active {
      background: #497e38; }
    .alphafilter li:hover {
      background: #61a74a; }

.filter-pane {
  padding: 0 14px;
  background: #65B14E;
  color: #FFF;
  float: left;
  width: 24%; }
  @media screen and (max-width: 768px) {
    .filter-pane {
      width: 100%; } }

#noticias {
  float: left;
  width: 44%;
  margin-right: 20px; }
  @media screen and (max-width: 1030px) {
    #noticias {
      width: 56%; } }
  @media screen and (max-width: 768px) {
    #noticias {
      width: auto;
      float: none; } }

.noticia.node-teaser address {
  background: #F1F1F1;
  color: #999;
  font-size: 14px;
  padding: 4px 10px; }

.noticia.node-teaser .content {
  font-size: 13px;
  color: #525252;
  line-height: 16px; }

.not-front #noticias {
  width: 100%;
  float: none; }

.not-front #noticias footer {
  border-bottom: 2px solid #f0f0f0;
  padding: 0 10px 40px; }

.pane-poll-recent {
  width: 28%;
  float: left;
  font-size: 14px; }
  @media screen and (max-width: 1030px) {
    .pane-poll-recent {
      width: 41%; } }
  @media screen and (max-width: 768px) {
    .pane-poll-recent {
      width: auto;
      float: none; } }

.poll {
  color: #535353;
  font-size: 14px;
  margin-bottom: 20px; }
  .poll .bar {
    height: 20px;
    background: url(data:image/gif;base64,R0lGODlhCgAKAIAAAOHh4erq6iH5BAAHAP8ALAAAAAAKAAoAAAIRhB2ZB7rnAovTVcUavpJnyxUAOw==); }
    .poll .bar .foreground {
      background-color: #5DA447;
      height: 20px; }
  .poll h2 {
    font-weight: normal;
    text-transform: uppercase;
    color: #333;
    font-size: 28px;
    margin-bottom: 12px; }
  .poll .text {
    color: #5DA447;
    font-weight: bold; }
  .poll .percent {
    font-weight: bold;
    text-align: right; }
  .poll .title {
    margin-bottom: 12px;
    font-weight: normal; }
  .poll .total {
    text-align: left;
    margin-top: -16px; }

.page-anime #block-system-main {
  max-width: none;
  padding: 0; }

.node-anime a.icon {
  float: right;
  width: 30px;
  height: 18px; }

.node-anime .field-generos a {
  color: #243F1C;
  border-radius: 24px;
  border: 1px solid #243F1C;
  font-weight: bold;
  font-size: 11px;
  padding: 5px 10px;
  text-transform: uppercase;
  margin-right: 2px; }

.anime-full {
  padding: 0 20px; }
  .anime-full #page-title {
    margin-bottom: 0; }
  @media screen and (max-width: 460px) {
    .anime-full .node-info {
      width: 83%; } }
  @media screen and (max-width: 1030px) {
    .anime-full .node-info {
      width: 83%; } }
  .anime-full .author {
    text-align: right;
    font-size: 13px;
    color: #CEEBC4;
    font-weight: bold;
    float: right;
    margin-top: -46px; }
    @media screen and (max-width: 460px) {
      .anime-full .author {
        margin: -25px 0 20px 0; } }
  .anime-full .user-picture {
    width: 50px; }
  .anime-full .submitted {
    float: left; }
    .anime-full .submitted .username {
      color: #FFF;
      font-size: 16px;
      display: block; }
  .anime-full .generos {
    display: inline-block;
    border-right: 1px solid #243F1C;
    padding-right: 14px;
    margin-right: 14px;
    vertical-align: middle; }
  .anime-full .titulos-alt {
    color: #243F1C;
    font-size: 16px;
    font-weight: bold;
    display: inline-block;
    border-right: 1px solid #243F1C;
    padding-right: 14px;
    margin-right: 14px;
    vertical-align: middle; }
  .anime-full .addthis_toolbox {
    display: inline-block;
    vertical-align: middle;
    margin-right: 70px; }
    .anime-full .addthis_toolbox > a {
      margin: 0 8px;
      float: left; }
    .anime-full .addthis_toolbox img {
      vertical-align: middle; }
    .anime-full .addthis_toolbox .addthis_button_compact {
      padding-top: 5px; }
  .anime-full .poster-trailer {
    float: left;
    margin: 0 30px 38px 0;
    position: relative; }
    .anime-full .poster-trailer span img {
      display: block; }
    .anime-full .poster-trailer .trailer-button {
      cursor: pointer;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: #000;
      background: rgba(0, 0, 0, 0.8);
      color: white;
      line-height: 34px;
      text-transform: uppercase;
      text-decoration: none;
      text-align: center;
      font-weight: bold;
      font-size: 16px;
      display: block;
      text-indent: -4px; }
      .anime-full .poster-trailer .trailer-button:hover {
        background: #487E38;
        background: rgba(72, 126, 56, 0.8); }
      .anime-full .poster-trailer .trailer-button img {
        vertical-align: middle;
        margin-top: -2px;
        margin-right: 4px; }
  .anime-full .anime-info {
    margin: 30px 0; }
    @media screen and (max-width: 460px) {
      .anime-full .anime-info {
        padding: 20px 0; } }
    .anime-full .anime-info .field {
      color: #FFF;
      font-weight: bold;
      font-size: 14px;
      line-height: 22px; }
    .anime-full .anime-info a {
      color: #FFF;
      text-decoration: underline; }
    .anime-full .anime-info .field-nota {
      color: inherit;
      font-size: inherit;
      line-height: inherit; }
  .anime-full .info-right {
    background: #80CB68;
    display: block;
    padding: 20px;
    position: relative;
    margin: 20px 0 20px 278px;
    min-height: 112px; }
    @media screen and (max-width: 460px) {
      .anime-full .info-right {
        clear: both;
        margin: 0; } }
    .anime-full .info-right .inline {
      width: 45%; }
      @media screen and (max-width: 460px) {
        .anime-full .info-right .inline {
          width: 100%; } }
  .anime-full .field-body .field-label {
    font-size: 18px;
    margin: 14px 0;
    text-transform: uppercase; }
  .anime-full .field-body .item {
    font-size: 15px;
    font-weight: normal;
    line-height: 20px; }

.screenshots .pane-content {
  padding: 0 20px 26px 0;
  border-bottom: 2px solid #F0F0F0;
  margin-bottom: 22px; }
  @media screen and (max-width: 460px) {
    .screenshots .pane-content {
      padding: 0 20px 26px; } }

.screenshots .item {
  display: inline;
  margin: 0 10px 0 0; }

.screenshots a {
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in;
  display: inline-block; }

.screenshots img {
  display: block; }
  @media screen and (max-width: 460px) {
    .screenshots img {
      max-width: 125px; } }

.page-anime .panel-pane .pane-title, #downloads > h2 > div {
  font-size: 28px;
  color: #333;
  text-transform: uppercase;
  cursor: default; }

#rating, .node-anime-search .field-nota {
  position: absolute;
  right: 0;
  top: 0;
  text-align: center;
  color: #71C557;
  font-size: 12px;
  text-transform: uppercase;
  vertical-align: middle;
  background: #FFF;
  padding: 8px;
  font-weight: bold;
  cursor: default; }
  #rating .value, .node-anime-search .field-nota .value {
    font-size: 50px;
    letter-spacing: -1px;
    line-height: 48px; }
    @media screen and (max-width: 460px) {
      #rating .value, .node-anime-search .field-nota .value {
        font-size: 30px;
        line-height: 28px; } }
  #rating .rating-bottom, .node-anime-search .field-nota .rating-bottom {
    background: #243F1C;
    color: #FFF;
    margin: 0 -8px 0;
    line-height: 28px;
    position: absolute;
    bottom: 0;
    width: 100%; }
  #rating .widget, .node-anime-search .field-nota .widget {
    display: none;
    position: absolute;
    background-color: inherit;
    right: 0; }
    #rating .widget .field, .node-anime-search .field-nota .widget .field {
      width: 280px;
      margin: 15px; }
  #rating:hover .widget, .node-anime-search .field-nota:hover .widget {
    display: block; }

.not-logged-in #rating .widget {
  color: #FFF;
  white-space: nowrap;
  padding: 20px;
  font-weight: normal;
  text-transform: none; }

.node-anime-search {
  color: #666;
  font-size: 14px;
  position: relative; }
  .node-anime-search h2 {
    font-size: 20px; }
  .node-anime-search .field-content {
    margin-top: -10px; }
  .node-anime-search .field-titulos-alt {
    color: #999;
    margin-right: 20px;
    margin-bottom: 20px; }
  .node-anime-search .field-generos a {
    color: #AFAFAF;
    border-color: #AFAFAF; }
  .node-anime-search .field-poster {
    float: left;
    margin: 20px 20px 20px 0;
    clear: left; }
  .node-anime-search .field-body {
    margin: 20px 94px 18px 0; }
  .node-anime-search .field-nota {
    top: 76px;
    background: #72C557;
    color: #FFF;
    height: auto; }
    .node-anime-search .field-nota .field-label {
      font-size: 11px;
      margin: 0;
      line-height: 16px; }
    .node-anime-search .field-nota .item {
      font-size: 46px;
      margin: 7px 0px; }
  .node-anime-search svg path {
    fill: #333; }
  .node-anime-search .field-qualidade .field-label {
    margin-right: -4px; }
  .node-anime-search .field.inline {
    margin-right: 10px; }

#downloads {
  overflow: hidden; }
  #downloads .pane-title:before {
    content: none; }
  .page-anime #downloads .pane-title div {
    padding: 20px 0; }

.node-type-download main {
  overflow: hidden; }

.dl-tabs {
  border-bottom: 2px solid #E1E1E1;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px; }
  .dl-tabs img {
    vertical-align: inherit; }
  .dl-tabs li {
    float: left;
    line-height: 40px;
    margin: 0 10px;
    font-weight: bold;
    text-transform: uppercase; }
    .dl-tabs li > span {
      color: #333;
      margin-right: 20px; }
  .dl-tabs .dl-tab {
    position: relative;
    opacity: 0.6; }
    .dl-tabs .dl-tab.active {
      opacity: 1; }
      .dl-tabs .dl-tab.active:after {
        content: "";
        background-position: 0px -4px;
        background-repeat: no-repeat;
        overflow: hidden;
        display: block;
        width: 16px;
        height: 9px;
        display: block;
        line-height: 30px;
        left: 50%;
        bottom: -2px;
        margin-top: 18px;
        margin-left: -12px;
        position: relative; }
    .dl-tabs .dl-tab a {
      height: 40px;
      border: 1px solid #999;
      display: block;
      padding: 0 12px; }
    .dl-tabs .dl-tab a.padrao {
      padding: 6px 22px;
      background: #6FC557;
      width: 120px; }
  .dl-tabs .new a {
    font-size: 30px;
    font-weight: bold;
    line-height: 30px; }
    .dl-tabs .new a:hover {
      color: #88ce72; }

.dl-content {
  min-height: 172px;
  position: relative; }
  .dl-content .spinner, .dl-content .mfp-wrap .mfp-preloader, .mfp-wrap .dl-content .mfp-preloader, .dl-content
  .ajax-progress .throbber,
  .ajax-progress .dl-content .throbber {
    top: 178px;
    margin-left: -36px;
    display: none; }

.tabs-servidores {
  padding: 0;
  margin: 22px 0 0; }
  .tabs-servidores li {
    display: inline-block;
    vertical-align: top; }
    .tabs-servidores li a {
      background: #F0F0F0 url("data:image/gif;base64,R0lGODlhDgAUAKIAAMzMzM/Pz/X19dXV1dLS0v///wAAAAAAACH5BAEHAAUALAAAAAAOABQAAAM3WFrQvpC5FtekVc6sX74AB4oXuX3lMoDgIKxs4xZvPCv1dS8CMe0QQaAREHBogeIRZ4zEnlBAAgA7") no-repeat 16px center;
      padding: 5px 20px 5px 42px;
      box-sizing: content-box;
      height: 50px;
      line-height: 50px;
      border: 1px solid #E1E1E1;
      display: block; }
    .tabs-servidores li .edit {
      background: none;
      border: 0;
      line-height: normal;
      height: auto;
      padding: 0;
      position: absolute;
      right: 0;
      bottom: 100%;
      margin-bottom: 4px;
      cursor: pointer;
      font-style: italic;
      font-size: 12px;
      display: none;
      color: #6EC557; }
  .tabs-servidores .active {
    background: url("data:image/gif;base64,R0lGODlhDgAHAJEAAG7FV6Tblv///wAAACH5BAEHAAIALAAAAAAOAAcAAAIUlB9xuwGgGHovMkfrzdliTikfGBYAOw==") no-repeat bottom center;
    padding-bottom: 14px; }
    .tabs-servidores .active a {
      background-image: url("data:image/gif;base64,R0lGODlhDgAUAKIAAHDFV4HMa+T033jIYYrQdv///wAAAAAAACH5BAEHAAUALAAAAAAOABQAAAM3WFrQvpC5FtekVc6sX74AB4oXuX3lQoAgIaxs4xZvPCv1dS9CMO0QwaAxEHBog+IRZ4zEnlBAAgA7");
      background-color: #FFF;
      border-color: #6FC557;
      cursor: default; }
    .tabs-servidores .active .edit {
      display: block; }
  @media screen and (max-width: 460px) {
    .tabs-servidores li, .tabs-servidores .active {
      display: block;
      background: none;
      padding: 14px; } }

.linkchecked {
  color: white;
  margin-top: 12px; }

.download {
  position: relative;
  font-size: 14px;
  opacity: 1;
  -webkit-transition: opacity 500ms ease-in-out;
  -moz-transition: opacity 500ms ease-in-out;
  transition: opacity 500ms ease-in-out; }
  @media screen and (max-width: 460px) {
    .download .content {
      padding: 0 10px; } }
  .download.hide {
    opacity: 0;
    z-index: -1;
    position: absolute; }
  .download a {
    color: #6DC557; }
  .download .tabs-wrapper {
    border: 0; }
  .download .left {
    float: left;
    width: 50%;
    margin-bottom: 20px; }
    .download .left > .field {
      margin: 6px 0; }
    .download .left a {
      text-decoration: underline; }
  .download .inject {
    width: 30px;
    height: 18px; }
    .download .inject path {
      fill: #333; }
  .download .field-body {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAA3NCSVQICAjb4U/gAAAArlBMVEX///9wxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVdwxVf////t9+rZ69PW5tHU48/T4s/M4sbJ3MS13amy2Keh0pKry6GpyJ+gxZaiu5qMxXubvJF/x2qHvXeMun92w19wxVeGu3Zvw1aFuXZuwVVtwFWDtXRsvVRqu1NpuVJntVBms09ksE54omtirExgqUtfqEp1nmlfp0pdpEhioFBYm0QMARe1AAAAOnRSTlMAESIzRFVmd4iZqrvM3e7/////////////////////////////////////////////////////////kHJpQwAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMS8xOC8xMnvBvXgAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAABt0lEQVRIia2Wa1fCMAyGu4stbHMTUBRvoMZJ1TERFPz/f8ysZXhJNtgO74ednabPSdKkFyE4+bL4Sp818joGZCQcF/9HuyZ7EDhCAYCU+FHCCcDbgeDsWMWwkflVNQ6UK0QIRKEQbmFi5ANEihLoJgLgV8Lnppc6CNIpVIeYCX+RuulbbP+g+OCcfRDnN+Hu5+WnOAG1PpwkSXKekvFgg3SJJb1FIjl7JYZuGRax6LsCucyIYRsacaMfC+SaIKUT4ZFkLPJMAgvsRpBM81rk6YVaQtx7TkTHN8jnlDFFWB03puMWeaeLDLFZAK8COX1jnNhkHJqMRXJKhKZpPCYZg1zNGC8RupFMKhZhKomKZQ1yT/vFItWBcWUxgbHpTxfjm/FCU8Kmzy1ymq2+VhlTFrvIXClhMroYTZhxU0q+YXqYS48JzDYM15ZZH5E+t8ihrGj+fIDIgFY/8Cq32GyIyJBWf7vF6EbO1vOP+ZoJzK1yAjpfrpY5k37phjmUUq01V5byUGpx9LU6YNsc4y0ui05HKfaeLIXmf1fSzuAOeb02vcRbPBWMmj1IrKvmzx6rRo8rq9on3Df9UuTeJL/ebAAAAABJRU5ErkJggg==") no-repeat left center;
    color: #666;
    padding-left: 60px;
    width: 30%;
    display: block;
    min-height: 50px;
    float: right; }
    @media screen and (max-width: 460px) {
      .download .field-body {
        width: 100%;
        padding: 10px 10px 10px 60px;
        background-position-x: 5px; } }
    .download .field-body .field-label {
      color: #333;
      margin: 0; }
    .download .field-body .item {
      font-weight: normal; }
  .download .field-label {
    color: #666; }
  .download .field-items, .download .item {
    font-weight: bold;
    color: #333; }
  .download .field.inline {
    display: block; }
  .download .field-atributos .field-item {
    color: #666; }

.servidores-wrapper {
  position: relative;
  min-height: 110px; }

.servidor {
  background: #72C557;
  padding: 20px 18px;
  position: absolute;
  top: 0;
  left: 200%;
  width: 100%; }
  @media screen and (max-width: 460px) {
    .servidor {
      padding: 20px 15px; } }
  .servidor li {
    display: inline-block;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
    line-height: 44px; }
    .servidor li a {
      background: #FFF;
      padding: 12px 15px; }
      .servidor li a:hover {
        background: #243F1C;
        color: #FFF; }
    .servidor li.OFF span {
      background: #B7622B;
      padding: 12px 15px;
      color: #FFF;
      font-style: italic;
      font-weight: normal;
      cursor: default; }
  .servidor .actions {
    margin: -10px 12px 10px 0;
    text-transform: lowercase; }
    .servidor .actions a {
      color: #FFF;
      font-weight: bold;
      font-size: 13px;
      text-decoration: underline;
      cursor: pointer;
      margin-right: 16px; }
  .servidor.restrito {
    background: none;
    border: 10px solid #72C557; }
    @media screen and (max-width: 460px) {
      .servidor.restrito {
        border: 0;
        padding: 0 15px; } }
  .servidor .servidorfree {
    background: #72C557;
    font-size: 16px;
    color: #fff;
    padding: 5px 10px;
    margin: 10px 30px 25px 30px; }
    @media screen and (max-width: 460px) {
      .servidor .servidorfree {
        margin: 10px 0 25px 0; } }

.linkchecked {
  color: white;
  margin-top: 12px; }

#comments a {
  color: inherit;
  font-weight: normal; }

#comments span {
  background: #6FC557;
  padding: 0 8px 0 10px;
  color: #FFF;
  font-weight: bold;
  font-size: 23px;
  margin-left: 8px; }

#comments .indented {
  margin-left: 2%; }
  #comments .indented .indented .indented .indented .indented {
    margin-left: 0; }

#comments article:first-of-type {
  border-top: none; }

.comment {
  padding-top: 16px;
  padding-bottom: 14px;
  border-top: 1px solid #EFEFEF;
  position: relative; }
  .comment .new {
    color: #FF4D4D;
    /* font-weight: bold; */
    margin-left: 8px;
    float: right; }
  .comment.first {
    border: none;
    background: none; }
  .comment.comment-by-viewer {
    border-left: #8FCD7B 3px solid; }
  .comment .content {
    background: #FFF;
    min-height: 80px;
    float: left;
    width: 100%; }
  .comment .user-picture {
    float: left;
    border: none; }
  .comment .submitted {
    background: #EBEBEB;
    padding: 12px 16px; }
    .comment .submitted .username {
      color: #59BB39;
      display: inline;
      font-weight: bold; }
    .comment .submitted time {
      float: right;
      color: #999;
      font-size: 14px; }
  .comment .cbody {
    background: url("data:image/gif;base64,R0lGODlhFgAfALMAAOvr6+3t7ff39/Ly8vv7++/v7/X19f////n5+fHx8f///wAAAAAAAAAAAAAAAAAAACH5BAEHAAoALAAAAAAWAB8AAARSUMlJq7046827/2AojmRpnuZBCEZrIISGGAFg37hFGHjfU4SBb3iTHHjEpAJRSyaRziRhZihEfTrEoOnU7LhYDsIa7hDIRZAgFzqQScLSAEWKAAA7") no-repeat left -4px;
    padding-left: 22px;
    margin-left: 130px;
    position: relative; }
  .comment .field-comment-body {
    padding: 0 22px;
    min-height: 20px; }
  .comment .button, .comment form .form-submit, form .comment .form-submit, .comment form .register, form .comment .register, .comment #revisioning-revisions-summary .submenu a, #revisioning-revisions-summary .submenu .comment a {
    cursor: default; }
  .comment:hover .comment-links, .comment.active .comment-links {
    visibility: visible; }
  .comment .comment-links {
    padding: 6px 12px 2px;
    width: 100%;
    clear: both;
    visibility: hidden; }
    .comment .comment-links > .rate-widget {
      display: inline-block;
      margin-bottom: -4px;
      margin-left: 16px; }
    .comment .comment-links .links a {
      font-weight: normal;
      text-decoration: none;
      text-transform: uppercase;
      font-size: 12px; }
      .comment .comment-links .links a:before {
        margin-right: 4px; }

.main-role {
  font-style: italic;
  font-size: 12px;
  color: #888;
  margin-left: 8px; }

div.comment-warning {
  margin-top: 13px;
  font-size: 14px;
  color: #666; }
  div.comment-warning ol {
    padding: 0; }
    div.comment-warning ol li {
      list-style: number; }
  div.comment-warning strong {
    color: #333; }
  div.comment-warning a {
    text-decoration: underline;
    font-weight: bold;
    color: #666; }

#comment-add-section {
  text-align: center; }
  #comment-add-section .button, #comment-add-section form .form-submit, form #comment-add-section .form-submit, #comment-add-section form .register, form #comment-add-section .register, #comment-add-section #revisioning-revisions-summary .submenu a, #revisioning-revisions-summary .submenu #comment-add-section a {
    font-size: 16px; }
  #comment-add-section + .comment-form {
    border-bottom: 2px solid #EEE;
    padding: 14px 0;
    border-top: 2px solid #EEE; }

.comment .comment-links li.comment-complaint {
  float: right;
  margin-right: -16px; }
  .comment .comment-links li.comment-complaint a {
    font-size: 0px;
    height: 18px;
    display: inline-block; }
    .comment .comment-links li.comment-complaint a:hover {
      font-size: 12px; }
    .comment .comment-links li.comment-complaint a:before {
      font-size: 18px;
      color: #B22D00; }
  .comment .comment-links li.comment-complaint #modal-message {
    display: none; }

div.ctools-comment-abuse .modal-header {
  margin: -16px;
  background: #72C557;
  color: #FFF;
  font-weight: bold;
  text-transform: uppercase;
  padding: 10px 14px;
  border-bottom: 1px solid #555;
  font-weight: bold; }

div.ctools-comment-abuse .popups-close {
  float: right; }

div.ctools-comment-abuse table {
  background: #FAFAFA;
  border: 0;
  float: left;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); }

div.ctools-comment-abuse td {
  border: 0; }
  div.ctools-comment-abuse td.popups-border {
    display: none; }

div.ctools-comment-abuse textarea {
  width: 100%; }

.rate-widget-yesno {
  font-size: 14px;
  font-style: italic;
  color: #666;
  cursor: default;
  display: inline; }
  .rate-widget-yesno a {
    display: inline-block;
    box-sizing: content-box; }
    .rate-widget-yesno a:hover {
      font-weight: bold; }
  .rate-widget-yesno > div {
    display: inline-block; }
  .rate-widget-yesno .like .rate-button {
    color: #59BA39;
    margin-right: 6px; }
  .rate-widget-yesno .dislike .rate-button {
    color: #B22D00; }
  .rate-widget-yesno .like a:after {
    padding-left: 6px;
    font-size: 16px; }
  .rate-widget-yesno .dislike a:before {
    padding-right: 6px;
    font-size: 16px; }

#comment-top-voted .cbody {
  margin-left: 0;
  padding-left: 0; }

#comment-top-voted .submitted {
  background: #B22D00; }
  #comment-top-voted .submitted .username, #comment-top-voted .submitted .main-role {
    color: #FFF; }
  #comment-top-voted .submitted time {
    color: #FFF; }

div.spoiler {
  padding: 5px;
  line-height: 1.6; }
  div.spoiler div.spoiler-title {
    color: #000;
    font-size: 12px;
    font-weight: bold;
    padding: 4px 7px;
    border: 1px solid #bbb;
    border-bottom-color: #999;
    background: #EEE;
    cursor: pointer;
    text-transform: uppercase;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none; }
    div.spoiler div.spoiler-title div.spoiler-toggle {
      display: inline-block;
      margin-left: 4px;
      margin-right: 6px;
      cursor: pointer;
      border: 1px solid #CCC;
      height: 16px;
      line-height: 10px;
      vertical-align: middle;
      border-radius: 3px;
      -webkit-user-modify: read-only; }
      div.spoiler div.spoiler-title div.spoiler-toggle:before {
        font-size: 16px;
        color: #333;
        margin-left: 3px; }
      div.spoiler div.spoiler-title div.spoiler-toggle.hide-icon:before {
        content: "-";
        font-size: 28px; }
      div.spoiler div.spoiler-title div.spoiler-toggle.show-icon:before {
        content: "+"; }

div.spoiler div.spoiler-content {
  font-size: 13px;
  border: 1px solid #bbb;
  border-top: 0px;
  background: #F5F5F5;
  padding: 4px 10px; }

div.spoiler-content.hide {
  display: none; }

#comentarios-usuario .views-row {
  padding: 20px 20px 4px; }

#comentarios-usuario .views-row-even {
  background: #EEE; }

@media screen and (max-width: 460px) {
  #relacionados {
    padding: 20px; } }

#relacionados .pane-title a {
  color: inherit;
  outline: none; }

#relacionados .content {
  display: none; }

#relacionados h3 {
  font-size: 16px;
  color: #666;
  font-style: italic;
  font-weight: normal;
  text-transform: uppercase; }

#relacionados .title {
  color: #FFF;
  font-size: 15px;
  height: 34px;
  line-height: 34px;
  padding: 0 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  -o-text-overflow: ellipsis;
  white-space: nowrap;
  background: #000;
  background: rgba(0, 0, 0, 0.8);
  display: block; }

#relacionados .field {
  display: inline-block;
  vertical-align: top; }

#relacionados .item {
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  padding: 0 0 10px;
  position: relative;
  min-height: 34px;
  margin-right: 5px; }
  @media screen and (max-width: 460px) {
    #relacionados .item {
      width: 320px; } }
  #relacionados .item:hover a .title {
    color: #5ABC3A; }
  #relacionados .item:hover .img {
    height: 160px; }
  #relacionados .item a {
    display: block; }

#relacionados .img {
  width: 100%;
  max-height: 160px;
  height: 0px;
  overflow: hidden;
  -webkit-transition: height 300ms ease-out;
  -moz-transition: height 300ms ease-out;
  transition: height 300ms ease-out; }
  @media screen and (max-width: 460px) {
    #relacionados .img {
      height: 100%; } }
  #relacionados .img:hover {
    height: 100%; }
  #relacionados .img img {
    width: 100%; }

.page-taxonomy #block-system-main {
  max-width: none;
  overflow-x: hidden;
  padding: 0; }

.pane-custom.summary {
  color: #FFF;
  padding: 20px 0; }

#animes-com-termo .view-filters form {
  background: #67b14e;
  line-height: normal; }

.vantagens {
  display: inline-block;
  text-align: left; }
  .vantagens .right {
    float: left;
    margin-left: 30px; }
    @media screen and (max-width: 460px) {
      .vantagens .right {
        margin-left: 0px; } }
  .vantagens .button, .vantagens form .form-submit, form .vantagens .form-submit, .vantagens form .register, form .vantagens .register, .vantagens #revisioning-revisions-summary .submenu a, #revisioning-revisions-summary .submenu .vantagens a {
    color: #FFF;
    font-size: 0.9em; }
    @media screen and (max-width: 460px) {
      .vantagens .button, .vantagens form .form-submit, form .vantagens .form-submit, .vantagens form .register, form .vantagens .register, .vantagens #revisioning-revisions-summary .submenu a, #revisioning-revisions-summary .submenu .vantagens a {
        text-align: center; } }
  .vantagens h2 {
    color: #6EC557;
    text-transform: uppercase;
    font-size: 1.4em;
    margin: 0; }
    @media screen and (max-width: 460px) {
      .vantagens h2 {
        text-align: center; } }
  .vantagens ul {
    padding: 0;
    line-height: 1.5em; }
  .vantagens li {
    display: block;
    color: #666;
    font-weight: normal;
    font-size: 18px;
    margin: 0;
    line-height: 32px;
    cursor: initial; }
    .vantagens li.icon:after {
      float: left;
      line-height: inherit;
      margin-right: 10px;
      color: #72C557; }
  .vantagens small {
    font-size: 12px;
    display: block;
    margin-top: 8px;
    color: #AEAEAE;
    font-weight: bold; }
  .vantagens strong.link {
    color: #72C557;
    display: block;
    text-transform: uppercase; }
  .node-produto .vantagens .right {
    margin: 0;
    max-width: 500px; }
  .node-produto .vantagens .donate-img, .node-produto .vantagens .donate-img-small {
    margin-left: -60px; }

.donation-flag {
  display: inline-block;
  vertical-align: top;
  width: 265px;
  height: 265px;
  margin: 0 20px 40px 0;
  padding: 40px;
  border: 1px solid #6fc557;
  text-align: center; }
  .donation-flag a {
    vertical-align: middle; }

.donation-flag:hover {
  opacity: .8; }

.donation-area {
  text-align: center; }

.donate-img, .donate-img-small {
  width: 410px;
  height: 632px;
  background: url("../img/donate-img.png") no-repeat center;
  position: absolute;
  margin-left: 480px; }
  @media screen and (max-width: 768px) {
    .donate-img, .donate-img-small {
      margin-left: 452px; } }
  @media screen and (max-width: 1030px) {
    .donate-img, .donate-img-small {
      margin-left: 452px; } }

.donate-img-small {
  background-image: url("../img/donate-img-smaller.png");
  background-position: 0 0; }

.checkout-buttons .button-operator {
  margin: 0 14px 0 2px; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiY29uZmlnL19jb25maWcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19uZWF0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC1oZWxwZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3ByaXZhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vbWVnYS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19zcGFuLWNvbHVtbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3BhZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25vZGUtbmVhdC9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZmlsbC1wYXJlbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX21lZGlhLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL190by1kZXByZWNhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9kZS1uZWF0L25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub2RlLW5lYXQvbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2RpcmVjdGlvbi1jb250ZXh0LnNjc3MiLCJjb25maWcvX2Z1bmN0aW9ucy5zY3NzIiwiY29uZmlnL19taXhpbnMuc2NzcyIsImNvbmZpZy9fdmFyaWFibGVzLnNjc3MiLCJjb25maWcvdmFyaWFibGVzL19mb250cy5zY3NzIiwiY29uZmlnL3ZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJjb25maWcvdmFyaWFibGVzL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi9kaXN0L19zcHJpdGVzLnNjc3MiLCIuLi8uLi9kaXN0L19mb250aWNvbnMuc2NzcyIsImdsb2JhbC9fbm9ybWFsaXplLmNzcy5zY3NzIiwiZ2xvYmFsL19leHRlbmRhYmxlcy5zY3NzIiwiZ2xvYmFsL19mb250cy5zY3NzIiwiZ2xvYmFsL190eXBlLnNjc3MiLCJnbG9iYWwvX3N0eWxlZ3VpZGUuc2NzcyIsImdsb2JhbC9fdGFibGVzLnNjc3MiLCJnbG9iYWwvX2Zvcm1zLnNjc3MiLCJnbG9iYWwvX2xheW91dC5zY3NzIiwiZ2xvYmFsL19VSS5zY3NzIiwicGFydGlhbHMvX2hlYWRlci5zY3NzIiwicGFydGlhbHMvX2Zvb3Rlci5zY3NzIiwicGFydGlhbHMvX3RhYnMuc2NzcyIsInBhcnRpYWxzL19uYXZlZ2FjYW8uc2NzcyIsInBhcnRpYWxzL19icmVhZGNydW1icy5zY3NzIiwicGFydGlhbHMvX3BhZ2Vycy5zY3NzIiwicGFydGlhbHMvX3VzZXIuc2NzcyIsInBhcnRpYWxzL19zZWFyY2guc2NzcyIsInBhcnRpYWxzL19kZXN0YXF1ZXMuc2NzcyIsInBhcnRpYWxzL19sYW5jYW1lbnRvcy5zY3NzIiwicGFydGlhbHMvX2FuaW1lX2xpc3RhLnNjc3MiLCJwYXJ0aWFscy9fbm90aWNpYXMuc2NzcyIsInBhcnRpYWxzL19lbnF1ZXRlcy5zY3NzIiwicGFydGlhbHMvX2FuaW1lLnNjc3MiLCJwYXJ0aWFscy9fZG93bmxvYWRzLnNjc3MiLCJwYXJ0aWFscy9fY29tZW50YXJpb3Muc2NzcyIsInBhcnRpYWxzL19yZWxhY2lvbmFkb3Muc2NzcyIsInBhcnRpYWxzL190YXhvbm9taWEuc2NzcyIsInBhcnRpYWxzL19kb2Fjb2VzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdHlsZSBGaWxlXG4vL1xuLy8gVGhpcyBmaWxlIGdldHMgdHVybmVkIGludG8gc3R5bGUuY3NzLiBUaGlzIGZpbGUgc2hvdWxkIHJlYWxseVxuLy8gIGhvbGQgbm90aGluZyBleGNlcHQgZm9yIGltcG9ydHMgb2YgeW91ciBiYXNlLCBsYXlvdXQsIGFuZCBkZXNpZ25cbi8vICBwYXJ0aWFscy5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbmZpZ3VyYXRpb24sIG5vIENTUyBvdXRwdXQuXG4vLyAgIHZhcmlhYmxlc1xuLy8gICBtaXhpbnNcbi8vICAgZnVuY3Rpb25zXG4vLyAgIGNvbXBhc3MgZXh0ZW5zaW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0ICdjb25maWcvY29uZmlnJztcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTcHJpdGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCIuLi8uLi9kaXN0L3Nwcml0ZXNcIjtcbi8vQGltcG9ydCBcIi4uLy4uL2Rpc3Qvc3ZnX3Nwcml0ZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9kaXN0L2ZvbnRpY29uc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBnbG9iYWwgZWxlbWVudHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAnZ2xvYmFsL19ub3JtYWxpemUuY3NzLnNjc3MnO1xuQGltcG9ydCAnZ2xvYmFsL2V4dGVuZGFibGVzJztcbkBpbXBvcnQgJ2dsb2JhbC9mb250cyc7XG5AaW1wb3J0ICdnbG9iYWwvdHlwZSc7XG5AaW1wb3J0ICdnbG9iYWwvc3R5bGVndWlkZSc7XG5AaW1wb3J0ICdnbG9iYWwvdGFibGVzJztcbkBpbXBvcnQgJ2dsb2JhbC9mb3Jtcyc7XG5AaW1wb3J0ICdnbG9iYWwvbGF5b3V0JztcbkBpbXBvcnQgJ2dsb2JhbC9VSSc7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUGFydGlhbHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAncGFydGlhbHMvaGVhZGVyJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2Zvb3Rlcic7XG5AaW1wb3J0ICdwYXJ0aWFscy90YWJzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL25hdmVnYWNhbyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9wYWdlcnMnO1xuQGltcG9ydCAncGFydGlhbHMvdXNlcic7XG5AaW1wb3J0ICdwYXJ0aWFscy9zZWFyY2gnO1xuQGltcG9ydCAncGFydGlhbHMvZGVzdGFxdWVzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2xhbmNhbWVudG9zJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2FuaW1lX2xpc3RhJztcbkBpbXBvcnQgJ3BhcnRpYWxzL25vdGljaWFzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2VucXVldGVzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2FuaW1lJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2Rvd25sb2Fkcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9jb21lbnRhcmlvcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9yZWxhY2lvbmFkb3MnO1xuQGltcG9ydCAncGFydGlhbHMvdGF4b25vbWlhJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2RvYWNvZXMnO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBjb21wb250ZW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vL0BpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG4vL0BpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgcHJpbnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy9AaW1wb3J0ICdwcmludCc7XG4iLCIvLyBCYXNlIFBhcnRpYWxzXG4vL1xuLy8gVGhlc2UgZmlsZXMgd2lsbCBiZSBzaGFyZWQgYWNyb3NzIGFsbCB0aHJlZSBvZiB5b3VyIG91dHB1dCBDU1MgZmlsZXMuXG4vLyBHZW5lcmFsbHkgaW5jbHVkZWQgaGVyZSBhcmUgb25seSBDb21wYXNzIEV4dGVuc2lvbiBpbXBvcnRzIGFuZCBpbXBvcnRzXG4vLyBmb3IgdmFyaWFibGVzLCBmdW5jdGlvbnMsIG1peGlucywgYW5kIGV4dGVuZGFibGVzLlxuXG5AaW1wb3J0IFwiYm91cmJvblwiO1xuQGltcG9ydCBcIm5lYXRcIjtcblxuLy8gUHJpdmF0ZSBJbXBvcnRzXG4vL1xuLy8gQW55IG90aGVyIGltcG9ydHMgdG8gYWRkLiBOb3JtYWxseSwgdGhlc2UgZG8gbm90IGluY2x1ZGUgYW55IGNzcywgYnV0IGp1c3Rcbi8vIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBldGMuIHRvIGJlIHVzZWQgYnkgb3RoZXIgZmlsZXMuXG5cbkBpbXBvcnQgXCJmdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbiIsIi8vIEJvdXJib24gNC4yLjNcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDAsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsIDApKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEgKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMCwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDAsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KHVucXVvdGUoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xuXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xuXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcbn1cbiIsIi8vIE5lYXQgMS43LjJcbi8vIGh0dHA6Ly9uZWF0LmJvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDEyLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuLy8gSGVscGVyc1xuQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiO1xuXG4vLyBHcmlkXG5AaW1wb3J0IFwiZ3JpZC9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiZ3JpZC9vbWVnYVwiO1xuQGltcG9ydCBcImdyaWQvb3V0ZXItY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZ3JpZC9zcGFuLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJncmlkL3Jvd1wiO1xuQGltcG9ydCBcImdyaWQvc2hpZnRcIjtcbkBpbXBvcnQgXCJncmlkL3BhZFwiO1xuQGltcG9ydCBcImdyaWQvZmlsbC1wYXJlbnRcIjtcbkBpbXBvcnQgXCJncmlkL21lZGlhXCI7XG5AaW1wb3J0IFwiZ3JpZC90by1kZXByZWNhdGVcIjtcbkBpbXBvcnQgXCJncmlkL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXNwbGF5LWNvbnRleHRcIjtcbkBpbXBvcnQgXCJncmlkL2RpcmVjdGlvbi1jb250ZXh0XCI7XG4iLCIvLyBGdW5jdGlvbnNcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9uZXctYnJlYWtwb2ludFwiO1xuXG4vLyBTZXR0aW5nc1xuQGltcG9ydCBcInNldHRpbmdzL2dyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Rpc2FibGUtd2FybmluZ3NcIjtcbiIsIi8vIE5vdCBmdW5jdGlvbiBmb3IgTGlic2FzcyBjb21wYXRpYmlsaXR5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy9saWJzYXNzL2lzc3Vlcy8zNjhcbkBmdW5jdGlvbiBpcy1ub3QoJHZhbHVlKSB7XG4gIEByZXR1cm4gaWYoJHZhbHVlLCBmYWxzZSwgdHJ1ZSk7XG59XG5cbi8vIENoZWNrcyBpZiBhIG51bWJlciBpcyBldmVuXG5AZnVuY3Rpb24gaXMtZXZlbigkaW50KSB7XG4gIEByZXR1cm4gJGludCAlIDIgPT0gMDtcbn1cblxuLy8gQ2hlY2tzIGlmIGFuIGVsZW1lbnQgYmVsb25ncyB0byBhIGxpc3Qgb3Igbm90XG5AZnVuY3Rpb24gYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KG5vdC1iZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpKTtcbn1cblxuQGZ1bmN0aW9uIG5vdC1iZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpIHtcbiAgQHJldHVybiBpcy1ub3QoaW5kZXgoJGxpc3QsICR0ZXN0ZWQtaXRlbSkpO1xufVxuXG4vLyBDb250YWlucyBkaXNwbGF5IHZhbHVlXG5AZnVuY3Rpb24gY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIHtcbiAgQHJldHVybiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLWJsb2NrLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhpbmxpbmUsICRxdWVyeSk7XG59XG5cbi8vIFBhcnNlcyB0aGUgZmlyc3QgYXJndW1lbnQgb2Ygc3Bhbi1jb2x1bW5zKClcbkBmdW5jdGlvbiBjb250YWluZXItc3Bhbigkc3BhbjogJHNwYW4pIHtcbiAgQGlmIGxlbmd0aCgkc3BhbikgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNwYW4sIDMpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc3BhbikgPT0gMiB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNwYW4sIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkZ3JpZC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gY29udGFpbmVyLXNoaWZ0KCRzaGlmdDogJHNoaWZ0KSB7XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdCAhZ2xvYmFsO1xuXG4gIEBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAzIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDMpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hpZnQpID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzaGlmdCwgMik7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuLy8gR2VuZXJhdGVzIGEgc3RyaXBlZCBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucywgJGNvbG9yOiAkdmlzdWFsLWdyaWQtY29sb3IpIHtcbiAgJHRyYW5zcGFyZW50OiB0cmFuc3BhcmVudDtcblxuICAkY29sdW1uLXdpZHRoOiBmbGV4LWdyaWQoMSwgJGdyaWQtY29sdW1ucyk7XG4gICRndXR0ZXItd2lkdGg6IGZsZXgtZ3V0dGVyKCRncmlkLWNvbHVtbnMpO1xuICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi13aWR0aDtcblxuICAkdmFsdWVzOiAoJHRyYW5zcGFyZW50IDAsICRjb2xvciAwKTtcblxuICBAZm9yICRpIGZyb20gMSB0byAkZ3JpZC1jb2x1bW5zKjIge1xuICAgIEBpZiBpcy1ldmVuKCRpKSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJGNvbG9yICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkY29sdW1uLXdpZHRoO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGd1dHRlci13aWR0aDtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZXM7XG59XG5cbi8vIExheW91dCBkaXJlY3Rpb25cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQsICRkZWZhdWx0KSB7XG4gICRkaXJlY3Rpb246IG51bGw7XG5cbiAgQGlmIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJMVFJcIiBvciB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiUlRMXCIge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkbGF5b3V0KTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRkZWZhdWx0KTtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1mcm9tLWxheW91dCgkbGF5b3V0KSB7XG4gICRkaXJlY3Rpb246IG51bGw7XG5cbiAgQGlmIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJMVFJcIiB7XG4gICAgJGRpcmVjdGlvbjogcmlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGxlZnQ7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogbGVmdDtcblxuICBAaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG4gIH1cblxuICBAcmV0dXJuICRvcHBvc2l0ZS1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZXR1cm5zIGEgbWVkaWEgY29udGV4dCAobWVkaWEgcXVlcnkgLyBncmlkIGNvbnRleHQpIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIHZhcmlhYmxlIGFuZCBwYXNzZWQgdG8gYG1lZGlhKClgIGFzIGEgc2luZ2xlLWtleXdvcmQgYXJndW1lbnQuIE1lZGlhIGNvbnRleHRzIGRlZmluZWQgdXNpbmcgYG5ldy1icmVha3BvaW50YCBhcmUgdXNlZCBieSB0aGUgdmlzdWFsIGdyaWQsIGFzIGxvbmcgYXMgdGhleSBhcmUgZGVmaW5lZCBiZWZvcmUgaW1wb3J0aW5nIE5lYXQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeVxuLy8vICAgQSBsaXN0IG9mIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFuZCB2YWx1ZXMuIEVhY2ggYCRmZWF0dXJlYCBzaG91bGQgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYCR2YWx1ZWAuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLiBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmb3IgYCRmZWF0dXJlYCwgY2xpY2sgW2hlcmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYTEpLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJHRvdGFsLWNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBpbiB0aGUgbmV3IGdyaWQgY29udGV4dC4gQ2FuIGJlIHNldCBhcyBhIHNob3J0aGFuZCBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkbW9iaWxlOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggNDgwcHggNCk7XG4vLy9cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuLy8vICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAgLmVsZW1lbnQge1xuLy8vICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogNy40MjI5NyU7XG4vLy8gICAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIH1cbi8vLyAgICAgLmVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgICB9XG4vLy8gICB9XG5cbkBmdW5jdGlvbiBuZXctYnJlYWtwb2ludCgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICRxdWVyeTogJGRlZmF1bHQtZmVhdHVyZSBudGgoJHF1ZXJ5LCAxKSAkdG90YWwtY29sdW1ucztcbiAgfSBAZWxzZSBpZiBpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSB7XG4gICAgJHF1ZXJ5OiBhcHBlbmQoJHF1ZXJ5LCAkdG90YWwtY29sdW1ucyk7XG4gIH1cblxuICBAaWYgaXMtbm90KGJlbG9uZ3MtdG8oJHF1ZXJ5LCAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMpKSB7XG4gICAgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiBhcHBlbmQoJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzLCAkcXVlcnksIGNvbW1hKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGNvbHVtbi4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkZ3V0dGVyYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBtb2R1bGFyLXNjYWxlKCkgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI21vZHVsYXItc2NhbGUpLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiBtb2R1bGFyLXNjYWxlKDMsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGd1dHRlci4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkY29sdW1uYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBtb2R1bGFyLXNjYWxlKCkgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI21vZHVsYXItc2NhbGUpLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRndXR0ZXI6IG1vZHVsYXItc2NhbGUoMSwgMWVtLCAkZ29sZGVuKSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLiBJdHMgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIGEgbWVkaWEgcXVlcnkgdXNpbmcgdGhlIGBtZWRpYSgpYCBtaXhpbi4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0bGVzcylcblxuJGdyaWQtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBtYXgtd2lkdGggcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdGhhdCBpbmNsdWRlcyBgb3V0ZXItY29udGFpbmVyKClgLiBUbyBsZWFybiBtb3JlIGFib3V0IGBlbSgpYCBzZWUgW0JvdXJib24gZG9jc10oaHR0cDovL2JvdXJib24uaW8vZG9jcy8jcHgtdG8tZW0pLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG4vLy9cbiRtYXgtd2lkdGg6IGVtKDEwODgpICFkZWZhdWx0O1xuXG4vLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgaXQgc2V0cyB0aGUgYm94LXNpemluZyBwcm9wZXJ0eSBvZiBhbGwgZWxlbWVudHMgdG8gYGJvcmRlci1ib3hgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaHRtbCB7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi8vL1xuLy8vICAgKiwgKjo6YWZ0ZXIsICo6OmJlZm9yZSB7XG4vLy8gICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4vLy8gICB9XG5cbiRib3JkZXItYm94LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGRlZmF1bHQgW21lZGlhIGZlYXR1cmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYSkgdGhhdCBgbWVkaWEoKWAgYW5kIGBuZXctYnJlYWtwb2ludCgpYCByZXZlcnQgdG8gd2hlbiBvbmx5IGEgYnJlYWtwb2ludCB2YWx1ZSBpcyBwYXNzZWQuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtZmVhdHVyZTogbWluLXdpZHRoOyAvLyBEZWZhdWx0IEBtZWRpYSBmZWF0dXJlIGZvciB0aGUgYnJlYWtwb2ludCgpIG1peGluXG5cbi8vL1NldHMgdGhlIGRlZmF1bHQgbGF5b3V0IGRpcmVjdGlvbiBvZiB0aGUgZ3JpZC4gQ2FuIGJlIGBMVFJgIG9yIGBSVExgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy9AdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzcGxheXMgdGhlIHZpc3VhbCBncmlkIHdoZW4gc2V0IHRvIHRydWUuIFRoZSBvdmVybGFpZCBncmlkIG1heSBiZSBmZXcgcGl4ZWxzIG9mZiBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIncyByZW5kZXJpbmcgZW5naW5lIGFuZCBwaXhlbCByb3VuZGluZyBhbGdvcml0aG0uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJHZpc3VhbC1ncmlkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHZpc3VhbCBncmlkIGNvbG9yLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIENvbG9yXG5cbiR2aXN1YWwtZ3JpZC1jb2xvcjogI2VlZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGB6LWluZGV4YCBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIENhbiBiZSBgYmFja2AgKGJlaGluZCBjb250ZW50KSBvciBgZnJvbnRgIChpbiBmcm9udCBvZiBjb250ZW50KS4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJHZpc3VhbC1ncmlkLWluZGV4OiBiYWNrICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgb3BhY2l0eSBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0bGVzcylcblxuJHZpc3VhbC1ncmlkLW9wYWNpdHk6IDAuNCAhZGVmYXVsdDtcblxuJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc2FibGUgYWxsIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBEZWZhdWx0cyB0byBgZmFsc2VgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kZGlzYWJsZS13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiAtbmVhdC13YXJuKCRtZXNzYWdlKSB7XG4gIEBpZiAkZGlzYWJsZS13YXJuaW5ncyA9PSBmYWxzZSB7XG4gICAgQHdhcm4gXCIjeyRtZXNzYWdlfVwiO1xuICB9XG59XG4iLCIkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQ7XG4kZmctY29sdW1uOiAkY29sdW1uO1xuJGZnLWd1dHRlcjogJGd1dHRlcjtcbiRmZy1tYXgtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdldC1wYXJlbnQtY29sdW1ucygkY29sdW1ucykge1xuICBAaWYgJGNvbHVtbnMgIT0gJGdyaWQtY29sdW1ucyB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkY29sdW1ucyAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KSB7XG4gIEByZXR1cm4gJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlID09IHRydWUgb3IgJGRpc3BsYXkgPT0gdGFibGU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gdHJ1ZSB7XG4gIGh0bWwgeyAvLyBodHRwOi8vYml0Lmx5LzFxazJ0VlJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgKiB7XG4gICAgJixcbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFJlbW92ZXMgdGhlIGVsZW1lbnQncyBndXR0ZXIgbWFyZ2luLCByZWdhcmRsZXNzIG9mIGl0cyBwb3NpdGlvbiBpbiB0aGUgZ3JpZCBoaWVyYXJjaHkgb3IgZGlzcGxheSBwcm9wZXJ0eS4gSXQgY2FuIHRhcmdldCBhIHNwZWNpZmljIGVsZW1lbnQsIG9yIGV2ZXJ5IGBudGgtY2hpbGRgIG9jY3VycmVuY2UuIFdvcmtzIG9ubHkgd2l0aCBgYmxvY2tgIGxheW91dHMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeSBbYmxvY2tdXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50cy4gU3VwcG9ydGVkIGFyZ3VtZW50cyBhcmUgYG50aC1jaGlsZGAgc2VsZWN0b3JzICh0YXJnZXRzIGEgc3BlY2lmaWMgcHNldWRvIGVsZW1lbnQpIGFuZCBgYXV0b2AgKHRhcmdldHMgYGxhc3QtY2hpbGRgKS5cbi8vL1xuLy8vICAgV2hlbiBwYXNzZWQgYW4gYG50aC1jaGlsZGAgYXJndW1lbnQgb2YgdHlwZSBgKm5gIHdpdGggYGJsb2NrYCBkaXNwbGF5LCB0aGUgb21lZ2EgbWl4aW4gYXV0b21hdGljYWxseSBhZGRzIGEgY2xlYXIgdG8gdGhlIGAqbisxYCB0aCBlbGVtZW50LiBOb3RlIHRoYXQgY29tcG9zaXRlIGFyZ3VtZW50cyBzdWNoIGFzIGAybisxYCBkbyBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUuXG4vLy9cbi8vLyAgICoqRGVwcmVjYXRpb24gd2FybmluZyoqOiBUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhIGAkZGlyZWN0aW9uYCBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgYHJvdygkZGlyZWN0aW9uKWAgb3Igc2V0IGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYCBpbnN0ZWFkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYSg0bik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bikge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4rMSkge1xuLy8vICAgICBjbGVhcjogbGVmdDtcbi8vLyAgIH1cblxuQG1peGluIG9tZWdhKCRxdWVyeTogYmxvY2ssICRkaXJlY3Rpb246IGRlZmF1bHQpIHtcbiAgJHRhYmxlOiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpO1xuICAkYXV0bzogYmVsb25ncy10byhhdXRvLCAkcXVlcnkpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gd2lsbCBubyBsb25nZXIgdGFrZSBhICRkaXJlY3Rpb24gYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gIH1cblxuICBAaWYgJHRhYmxlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIik7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSBhbmQgJHRhYmxlID09IGZhbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQobnRoKCRxdWVyeSwgMSksICRkaXJlY3Rpb24pO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRvbyBtYW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9tZWdhKCkgbWl4aW4uXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJjpudGgtY2hpbGQoI3skcXVlcnl9KSB7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciBhbmQgdW5pdCgkcXVlcnkpID09IFwiblwiIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IGEgb3V0ZXIgY29udGFpbmVyIGJ5IGNlbnRyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAqem9vbTogMTtcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY29udGVudDogXCIgXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgfVxuXG5AbWl4aW4gb3V0ZXItY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJGxvY2FsLW1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnQgb2YgdGhlIGVsZW1lbnQgdG8gYGJsb2NrYC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGBibG9jay1jb2xsYXBzZWAsIGl0IGFsc28gcmVtb3ZlcyB0aGUgbWFyZ2luIGd1dHRlciBieSBhZGRpbmcgaXQgdG8gdGhlIGVsZW1lbnQgd2lkdGguXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgdGFibGVgLCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IHRvIGB0YWJsZS1jZWxsYCBhbmQgY2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIGVsZW1lbnQgd2l0aG91dCB0YWtpbmcgZ3V0dGVycyBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSByZXN1bHQgZG9lcyBub3QgYWxpZ24gd2l0aCB0aGUgYmxvY2stYmFzZWQgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy9cbi8vLyAgICAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDIgb2YgNik7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTtcbi8vLyAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICB3aWR0aDogMzAuMTEzODklO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cblxuQG1peGluIHNwYW4tY29sdW1ucygkc3BhbjogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zLCAkZGlzcGxheTogYmxvY2spIHtcbiAgJGNvbHVtbnM6IG50aCgkc3BhbiwgMSk7XG4gICRjb250YWluZXItY29sdW1uczogY29udGFpbmVyLXNwYW4oJHNwYW4pO1xuXG4gICRwYXJlbnQtY29sdW1uczogZ2V0LXBhcmVudC1jb2x1bW5zKCRjb250YWluZXItY29sdW1ucykgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAkZGlzcGxheS10YWJsZTogaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KTtcblxuICBAaWYgJGRpc3BsYXktdGFibGUgIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgfSBAZWxzZSB7XG4gICAgZmxvYXQ6ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn07XG5cbiAgICBAaWYgJGRpc3BsYXkgIT0gbm8tZGlzcGxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Uge1xuICAgICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSAnY29sbGFwc2UnIGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZC4gVXNlICdibG9jay1jb2xsYXBzZScgaW5zdGVhZC5cIik7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIG9yICRkaXNwbGF5ID09IGJsb2NrLWNvbGxhcHNlIHtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucykgKyBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgfVxuXG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGVzaWduYXRlcyB0aGUgZWxlbWVudCBhcyBhIHJvdyBvZiBjb2x1bW5zIGluIHRoZSBncmlkIGxheW91dC4gSXQgY2xlYXJzIHRoZSBmbG9hdHMgb24gdGhlIGVsZW1lbnQgYW5kIHNldHMgaXRzIGRpc3BsYXkgcHJvcGVydHkuIFJvd3MgY2FuJ3QgYmUgbmVzdGVkLCBidXQgdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmUgcm93IGVsZW1lbnTigJR3aXRoIGRpZmZlcmVudCBkaXNwbGF5IHByb3BlcnRpZXPigJRwZXIgbGF5b3V0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtkZWZhdWx0XVxuLy8vICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgZGlzcGxheSBjb250ZXh0IHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGl0cyBjaGlsZHJlbi4gQ2FuIGJlIGBibG9ja2Agb3IgYHRhYmxlYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFskZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uXVxuLy8vICBTZXRzIHRoZSBsYXlvdXQgZGlyZWN0aW9uLiBDYW4gYmUgYExUUmAgKGxlZnQtdG8tcmlnaHQpIG9yIGBSVExgIChyaWdodC10by1sZWZ0KS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgcm93KCk7XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgICp6b29tOiAxO1xuLy8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICB9XG4vLy9cbi8vLyAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgZGlzcGxheTogdGFibGU7XG4vLy8gfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY2xlYXI6IGJvdGg7XG4vLy8gfVxuXG5AbWl4aW4gcm93KCRkaXNwbGF5OiBkZWZhdWx0LCAkZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKSB7XG4gIEBpZiAkZGlyZWN0aW9uICE9ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24ge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpcmVjdGlvbiBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGlyZWN0aW9uICFnbG9iYWw7XG5cbiAgQGlmICRkaXNwbGF5ICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpc3BsYXkgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgQGlmICRkaXNwbGF5ID09IHRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogdHJ1ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucy4gUG9zaXRpdmUgYXJndW1lbnRzIHNoaWZ0IHRoZSBlbGVtZW50IHRvIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiwgd2hpbGUgbmVnYXRpdmUgb25lcyBzaGlmdCBpdCB0byB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJG4tY29sdW1ucyBbMV1cbi8vLyAgIE51bWJlciBvZiBjb2x1bW5zIGJ5IHdoaWNoIHRoZSBlbGVtZW50IHNoaWZ0cy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtMjUuNTg5NDElO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQoJG4tY29sdW1uczogMSkge1xuICBAaW5jbHVkZSBzaGlmdC1pbi1jb250ZXh0KCRuLWNvbHVtbnMpO1xufVxuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLCBpbiBhIHNwZWNpZmljIG5lc3RpbmcgY29udGV4dC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNoaWZ0XG4vLy8gICBBIGxpc3QgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gc2hpZnQgKGAkY29sdW1uc2ApIGFuZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgdGhlIHBhcmVudCBlbGVtZW50IChgJGNvbnRhaW5lci1jb2x1bW5zYCkuXG4vLy9cbi8vLyAgIFRoZSB0d28gdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMgb2YgNik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtNTIuNDE0NTglO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQtaW4tY29udGV4dCgkc2hpZnQ6ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucykge1xuICAkbi1jb2x1bW5zOiBudGgoJHNoaWZ0LCAxKTtcbiAgJHBhcmVudC1jb2x1bW5zOiBjb250YWluZXItc2hpZnQoJHNoaWZ0KSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkbi1jb2x1bW5zICogZmxleC1ncmlkKDEsICRwYXJlbnQtY29sdW1ucykgKyAkbi1jb2x1bW5zICogZmxleC1ndXR0ZXIoJHBhcmVudC1jb2x1bW5zKTtcblxuICAvLyBSZXNldCBuZXN0aW5nIGNvbnRleHRcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBZGRzIHBhZGRpbmcgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwYWRkaW5nIFtmbGV4LWd1dHRlcigpXVxuLy8vICAgQSBsaXN0IG9mIHBhZGRpbmcgdmFsdWUocykgdG8gdXNlLiBQYXNzaW5nIGBkZWZhdWx0YCBpbiB0aGUgbGlzdCB3aWxsIHJlc3VsdCBpbiB1c2luZyB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGFkZGluZyB2YWx1ZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWQoMzBweCAtMjBweCAxMHB4IGRlZmF1bHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nOiAzMHB4IC0yMHB4IDEwcHggMi4zNTc2NSU7XG4vLy8gICB9XG5cbkBtaXhpbiBwYWQoJHBhZGRpbmc6IGZsZXgtZ3V0dGVyKCkpIHtcbiAgJHBhZGRpbmctbGlzdDogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRwYWRkaW5nIHtcbiAgICAkdmFsdWU6IGlmKCR2YWx1ZSA9PSAnZGVmYXVsdCcsIGZsZXgtZ3V0dGVyKCksICR2YWx1ZSk7XG4gICAgJHBhZGRpbmctbGlzdDogam9pbigkcGFkZGluZy1saXN0LCAkdmFsdWUpO1xuICB9XG4gIHBhZGRpbmc6ICRwYWRkaW5nLWxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBGb3JjZXMgdGhlIGVsZW1lbnQgdG8gZmlsbCBpdHMgcGFyZW50IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLy8gICB9XG5cbkBtaXhpbiBmaWxsLXBhcmVudCgpIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGlmICRib3JkZXItYm94LXNpemluZyA9PSBmYWxzZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyBhIG1lZGlhLXF1ZXJ5IGJsb2NrIHdpdGggYW4gb3B0aW9uYWwgZ3JpZCBjb250ZXh0ICh0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZCkuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeVxuLy8vICAgQSBsaXN0IG9mIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFuZCB2YWx1ZXMsIHdoZXJlIGVhY2ggYCRmZWF0dXJlYCBzaG91bGQgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYCR2YWx1ZWAuXG4vLy8gICBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmb3IgYCRmZWF0dXJlYCwgY2xpY2sgW2hlcmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYTEpLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS5cbi8vL1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJHRvdGFsLWNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBpbiB0aGUgbmV3IGdyaWQgY29udGV4dC4gQ2FuIGJlIHNldCBhcyBhIHNob3J0aGFuZCBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKDc2OXB4KSB7XG4vLy8gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbWVkaWEobWluLXdpZHRoIDMyMHB4IG1heC13aWR0aCA0ODBweCwgNikge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkge1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG5cbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgJG1lZGlhLXF1ZXJ5OiBcInNjcmVlbiBhbmQgXCI7XG4gICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG5cbiAgICBAaWYgaXMtbm90KGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpKSB7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAkbG9vcC10bykgIWdsb2JhbDtcbiAgICAgICRsb29wLXRvOiAkbG9vcC10byAtIDE7XG4gICAgfVxuXG4gICAgJGk6IDE7XG4gICAgQHdoaWxlICRpIDw9ICRsb29wLXRvIHtcbiAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCIoXCIgKyBudGgoJHF1ZXJ5LCAkaSkgKyBcIjogXCIgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgXCIpIFwiO1xuXG4gICAgICBAaWYgKCRpICsgMSkgIT0gJGxvb3AtdG8ge1xuICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiYW5kIFwiO1xuICAgICAgfVxuXG4gICAgICAkaTogJGkgKyAyO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5OiRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBicmVha3BvaW50KCkgbWl4aW4gd2FzIHJlbmFtZWQgdG8gbWVkaWEoKSBpbiBOZWF0IDEuMC4gUGxlYXNlIHVwZGF0ZSB5b3VyIHByb2plY3Qgd2l0aCB0aGUgbmV3IHN5bnRheCBiZWZvcmUgdGhlIG5leHQgdmVyc2lvbiBidW1wLlwiKTtcblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAzIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAzKTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgYnJlYWtwb2ludCgpLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtb21lZ2EoJG50aCwgJGRpc3BsYXk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgbnRoLW9tZWdhKCkgbWl4aW4gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBvbWVnYSgpIGluc3RlYWQuXCIpO1xuICBAaW5jbHVkZSBvbWVnYSgkbnRoICRkaXNwbGF5LCAkZGlyZWN0aW9uKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGRpc3BsYXkgcHJvcGVydHkgdG8gYGJsb2NrYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBkaXNwbGF5IHByb3BlcnR5IGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUpO1xuLy8vICAgICAvLyBDb250ZXh0IGNoYW5nZWQgdG8gdGFibGUgZGlzcGxheVxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1kaXNwbGF5O1xuLy8vICAgLy8gQ29udGV4dCBpcyByZXNldCB0byBibG9jayBkaXNwbGF5XG5cbkBtaXhpbiByZXNldC1kaXNwbGF5IHtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXNwbGF5IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gdG8gdGhlIGRlZmF1bHQgdmFsdWUgc2V0IGluIGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBsYXlvdXQgZGlyZWN0aW9uIGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3coJGRpcmVjdGlvbjogUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpcmVjdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyBib3RoIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiBhbmQgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSwgUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIHRhYmxlIGFuZCByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWFsbDtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheSBhbmQgbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtYWxsIHtcbiAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbiAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGdyaWQtY29sdW1uLWdyYWRpZW50KCR2YWx1ZXMuLi4pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI3skdmFsdWVzfSlcIik7XG59XG5cbkBpZiAkdmlzdWFsLWdyaWQgPT0gdHJ1ZSBvciAkdmlzdWFsLWdyaWQgPT0geWVzIHtcbiAgYm9keTpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgb3BhY2l0eTogJHZpc3VhbC1ncmlkLW9wYWNpdHk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBiYWNrIHtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBmcm9udCB7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cyB7XG4gICAgICBAaWYgJGJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgRGlzcGxheSB2YWx1ZSB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgdGFibGVgIG9yIGBibG9ja2AuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBAaW5jbHVkZSBkaXNwbGF5LWNvbnRleHQodGFibGUpIHtcbi8vLyAgICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlzcGxheS1jb250ZXh0KCRkaXNwbGF5OiBibG9jaykge1xuICAkc2NvcGUtZGlzcGxheTogJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlO1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRkaXNwbGF5ID09IHRhYmxlICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkc2NvcGUtZGlzcGxheSAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFtsZWZ0LXRvLXJpZ2h0XVxuLy8vICAgTGF5b3V0IGRpcmVjdGlvbiB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgbGVmdC10by1yaWdodGAgb3IgYHJpZ2h0LXRvLWxlZnRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBAaW5jbHVkZSBkaXJlY3Rpb24tY29udGV4dChyaWdodC10by1sZWZ0KSB7XG4vLy8gICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgIGZsb2F0OiByaWdodDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlyZWN0aW9uLWNvbnRleHQoJGRpcmVjdGlvbjogbGVmdC10by1yaWdodCkge1xuICAkc2NvcGUtZGlyZWN0aW9uOiAkbGF5b3V0LWRpcmVjdGlvbjtcblxuICBAaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcImxlZnQtdG8tcmlnaHRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IExUUiAhZ2xvYmFsO1xuICB9IEBlbHNlIGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJyaWdodC10by1sZWZ0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBSVEwgIWdsb2JhbDtcbiAgfVxuXG4gIEBjb250ZW50O1xuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkc2NvcGUtZGlyZWN0aW9uICFnbG9iYWw7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZ1bmN0aW9ucyBQYXJ0aWFsXG4vL1xuLy8gQWxsIG9mIHlvdXIgZ2xvYmFsIGZ1bmN0aW9ucyBzaG91bGQgZ28gaW4gdGhpcyBmaWxlLlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIE1peGlucyBQYXJ0aWFsXG4vL1xuLy8gQWxsIG9mIHlvdXIgZ2xvYmFsIG1peGlucyBzaG91bGQgZ28gaW4gdGhpcyBmaWxlLlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBzcXVhcmUoJHNpemUpIHtcbiAgd2lkdGg6ICRzaXplO1xuICBoZWlnaHQ6ICRzaXplO1xufVxuXG5AbWl4aW4gY2lyY2xlKCRzaXplKSB7XG4gIEBpbmNsdWRlIHNxdWFyZSgkc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQG1peGluIHRyaWFuZ2xlLWRvd24oJHNpemUsICRjb2xvcil7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgd2lkdGg6MDtcbiAgaGVpZ2h0OjA7XG4gIGJvcmRlci1sZWZ0OiRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6JHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6JHNpemUgc29saWQgJGNvbG9yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWl4aW4gdHJpYW5nbGUtdXAoJHNpemUsICRjb2xvcil7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgd2lkdGg6MDtcbiAgaGVpZ2h0OjA7XG4gIGJvcmRlci1sZWZ0OiRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6JHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206JHNpemUgc29saWQgJGNvbG9yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIENvcGlhZG8gZG8gY29tcGFzc1xuLy8gaHR0cDovL2NvbXBhc3Mtc3R5bGUub3JnL3JlZmVyZW5jZS9jb21wYXNzL3R5cG9ncmFwaHkvbGlzdHMvaW5saW5lX2xpc3QvXG5AbWl4aW4gaW5saW5lLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICYsICYgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vL1xuLy8gVmFyaWFibGVzLlxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AaW1wb3J0ICd2YXJpYWJsZXMvZm9udHMnO1xuQGltcG9ydCAndmFyaWFibGVzL2NvbG9ycyc7XG5AaW1wb3J0ICd2YXJpYWJsZXMvYnJlYWtwb2ludCc7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBGb250IHZhcmlhYmxlcy5cbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJGJhc2UtZm9udC1zaXplOiAgIDE2cHg7XG4kYmFzZS1saW5lLWhlaWdodDogMjRweDtcblxuLy8gVGhlIGZvbGxvd2luZyBmb250IGZhbWlseSBkZWNsYXJhdGlvbnMgYXJlIGJhc2VkIG9uIHRoZSBNaWNyb3NvZnQgY29yZSB3ZWJcbi8vIGZvbnRzIHdoaWNoIGFyZSBjb21tb24gZm9udHMgYXZhaWxhYmxlIG9uIG1vc3QgY29tcHV0ZXIgc3lzdGVtcy4gVGhlIERlamFWdVxuLy8gYW5kIE5pbWJ1cyBTYW5zIGZvbnRzIGFyZSBjb21tb25seSBhdmFpbGFibGUgb24gTGludXggc3lzdGVtcyB3aGVyZSB0aGUgTVNcbi8vIGZvbnRzIGFyZSBsZXNzIGNvbW1vbi4gVGFob21hIGFuZCBIZWx2ZXRpY2EgYXJlIGFsc28gd2lkZWx5IGF2YWlsYWJsZS5cbi8vXG4vLyBBIHVzZXIncyB3ZWIgYnJvd3NlciB3aWxsIGxvb2sgYXQgdGhlIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGFuZCB3aWxsXG4vLyBhdHRlbXB0IHRvIHVzZSBlYWNoIGZvbnQgaW4gdHVybiB1bnRpbCBpdCBmaW5kcyBvbmUgdGhhdCBpcyBhdmFpbGFibGVcbi8vIG9uIHRoZSB1c2VyJ3MgY29tcHV0ZXIuIFRoZSBmaW5hbCBcImdlbmVyaWNcIiBmb250IChzYW5zLXNlcmlmLCBzZXJpZiBvclxuLy8gbW9ub3NwYWNlKSBoaW50cyBhdCB3aGF0IHR5cGUgb2YgZm9udCB0byB1c2UgaWYgdGhlIHdlYiBicm93c2VyIGRvZXNuJ3Rcbi8vIGZpbmQgYW55IG9mIHRoZSBmb250cyBpbiB0aGUgbGlzdC5cblxuLy8gRmlyc3QsIGxldCdzIGNyZWF0ZSBzb21lIGZvbnQgc3RhY2tzLlxuJHRpbWVzLW5ldy1yb21hbjogXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIEdlb3JnaWEsIFwiRGVqYVZ1IFNlcmlmXCIsIHNlcmlmO1xuJHRpbWVzOiAgICAgICAgICAgVGltZXMsIFwiVGltZXMgTmV3IFJvbWFuXCIsIEdlb3JnaWEsIFwiRGVqYVZ1IFNlcmlmXCIsIHNlcmlmO1xuJGdlb3JnaWE6ICAgICAgICAgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJEZWphVnUgU2VyaWZcIiwgc2VyaWY7XG5cbiR2ZXJkYW5hOiAgICAgICAgIFZlcmRhbmEsIFRhaG9tYSwgXCJEZWphVnUgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuJHRhaG9tYTogICAgICAgICAgVGFob21hLCBWZXJkYW5hLCBcIkRlamFWdSBTYW5zXCIsIHNhbnMtc2VyaWY7XG4kaGVsdmV0aWNhOiAgICAgICBIZWx2ZXRpY2EsIEFyaWFsLCBcIk5pbWJ1cyBTYW5zIExcIiwgc2Fucy1zZXJpZjtcbiRhcmlhbDogICAgICAgICAgIEFyaWFsLCBIZWx2ZXRpY2EsIFwiTmltYnVzIFNhbnMgTFwiLCBzYW5zLXNlcmlmO1xuXG4vLyBQcm9qZWN0LXNwZWNpZmljIGZvbnRzXG4vLyBQdXQgYW55IGZvbnQgZmFtaWxpZXMgaGVyZSB0aGF0IGFyZSBzcGVjaWZpYyB0byB5b3VyIHByb2plY3QuXG5cblxuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHdoeSBcInNhbnMtc2VyaWZcIiBpcyBhdCB0aGUgZW5kIG9mIHRoaXMgbGlzdCwgc2VlXG4vLyBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdGhvdWdodHMvMjAxMC8wMi8xMi9maXhlZC1tb25vc3BhY2Utc2l6aW5nL1xuJGNvdXJpZXI6ICAgICAgICAgXCJDb3VyaWVyIE5ld1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgbW9ub3NwYWNlLCBzYW5zLXNlcmlmO1xuXG4vLyBOb3cgY3JlYXRlIHNvbWUgdmFyaWFibGVzIGZvciB0aGUgZm9udCBzdGFja3Mgd2Ugd2FudCB0byB1c2Ugb24gdGhpcyBzaXRlLlxuJGJhc2UtZm9udC1mYW1pbHk6ICRnZW9yZ2lhOyAvLyBUaGUgZm9udCBmYW1pbHkgc2V0IG9uIHRoZSBodG1sIGVsZW1lbnQuXG4kZm9udC1ib2R5OiAgICAgICAgXCJBc2FwXCIsIFwiRHJvaWQgU2Fuc1wiLCAkdmVyZGFuYTtcbiRmb250LW1vbm9zcGFjZTogICAkY291cmllcjtcbiRmb3JtLWZvbnQtZmFtaWx5OiAkYXJpYWw7XG4kc2FuczogJGZvbnQtYm9keTtcbiRzZXJpZjogJ0xhdG8nLCAkdGltZXMtbmV3LXJvbWFuO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vL1xuLy8gQ29sb3IgdmFyaWFibGVzLlxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4kYmctY29sb3I6ICNGQUZBRkE7XG5cbi8vIFN0YW5kYXJkIGNvbG9yczogZm9yIHN0YW5kYXJkIDRLIGFuZCBvdGhlciBicmFuZCBjb2xvcnMuXG4vLyBOb3RlOiB0aGVzZSBhcmUganVzdCBmb3IgcmVmZXJlbmNlLCBhbmQgc29tZSBicmFuZHMgaGF2ZSBtdWx0aXBsZSBjb2xvcnMuXG4kYnJhbmQtY29sb3JzOiAoXG4gIGZhY2Vib29rICAgIDogIzNCNTk5OCxcbiAgdHdpdHRlciAgICAgOiAjMzNDQ0ZGLFxuICB5b3V0dWJlICAgICA6ICNGRjMzMzMsXG4gIHBpbnRlcmVzdCAgIDogIzk5MDAwMCxcbiAgc2t5cGUgICAgICAgOiAjMTJBNUY0LFxuICBmbGlja3IgICAgICA6ICNGRTA4ODMsXG4gIGZvdXJzcXVhcmUgIDogIzhGRDQwMCxcbiAgaW5zdGFncmFtICAgOiAjNEU0MzNDLFxuICBsaW5rZWRpbiAgICA6ICM0ODc1QjQsXG4gIHR1bWJsciAgICAgIDogIzJCNDk2NCxcbiAgdmltZW8gICAgICAgOiAjODZCMzJELFxuICBnb29nbGUgICAgICA6ICNENjQ5MkMsXG4gIGZrICAgICAgICAgIDogIzY2QjM2MCxcbik7XG5cbi8vIEJhc2UgY29sb3IgdmFyaWFibGVzLlxuJGxpbmsgICAgICAgICAgIDogIzU5QkEzOTtcbiR2aXNpdGVkICAgICAgICA6ICRsaW5rO1xuJHNlbGVjdGlvbi1iZyAgIDogIzY2QjM2MDtcbiRzZWxlY3Rpb24gICAgICA6ICNGRkY7XG5cbiR2ZXJkZTogIzcyQzU1NztcbiR2ZXJkZS1icmFuY286ICNGMUY5RUU7XG4kdmVyZGUtZXNjdXJvOiAjMjQzRjFCO1xuXG4kcmVkOiAjQjIyRDAwO1xuXG4kcmVkLWVycm9yOiAjRjFEN0Q3O1xuJHJlZC1lcnJvci1iZzogI0MwMzkyQjtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCB2YXJpYWJsZXMuXG4vLyBodHRwOi8vdGhvdWdodGJvdC5naXRodWIuaW8vbmVhdC1kb2NzL2xhdGVzdC9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4keHNtYWxsOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggNDYwcHgpOyAvLyBIYW5kaGVsZHNcbiRzbWFsbDogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDc2OHB4KTsgLy8gU29tZSBzbWFsbCB0YWJsZXRzXG4kbWVkaXVtOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggMTAzMHB4KTsgLy8gTW9zdCB0YWJsZXRzIGFuZCBkZXNrdG9wc1xuLy8gRGVmYXVsdCBpcyB0aGUgXCJMYXJnZVwiIGRlc2t0b3AgbGF5b3V0LiAxMjQwKytcbiR4bGFyZ2U6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAxNDQwcHgpOyAvLyAxNDQwKyBzY3JlZW5zXG4keHhsYXJnZTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoIDE2ODBweCk7IC8vIDE2ODArIHNjcmVlbnNcbiRmdWxscGx1czogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoIDE5MjBweCk7IC8vIEZVTExIRCsgc2NyZWVuc1xuXG4kbWF4LXdpZHRoOiAxMjQwcHg7IC8vIExhcmd1cmEgbcOheGltYSBwYXJhIHdyYXBwZXJzXG4iLCIgICAgJGJnLW5vdGEtYm90dG9tOiAtMHB4IC0wcHggMjRweCA0cHg7XG4gICAgJGluZGljYXRvci11cDogLTBweCAtNHB4IDE2cHggOXB4O1xuICAgICRjaGVja2JveC1tYXJrZWQ6IC0wcHggLTEzcHggMTRweCAxNHB4O1xuICAgICRjaGVja2JveDogLTBweCAtMjdweCAxNHB4IDE0cHg7XG4gICAgJHJpYmJvbi1uZXc6IC0wcHggLTQxcHggNTBweCAxOXB4O1xuICAgICRsb2dvLWdyYXk6IC0wcHggLTYwcHggMTAwcHggMjhweDtcbiAgICAkbm90YS1iZzogLTBweCAtODhweCAyNHB4IDM5cHg7XG4gICAgJHNsaWRlLWxlZnQ6IC0wcHggLTEyN3B4IDI4cHggNDZweDtcbiAgICAkc2xpZGUtcmlnaHQ6IC0wcHggLTE3M3B4IDI4cHggNDZweDtcblxuQG1peGluIHNwcml0ZS13aWR0aCgkc3ByaXRlKSB7XG4gIHdpZHRoOiBudGgoJHNwcml0ZSwgMyk7XG59XG5cbkBtaXhpbiBzcHJpdGUtaGVpZ2h0KCRzcHJpdGUpIHtcbiAgaGVpZ2h0OiBudGgoJHNwcml0ZSwgNCk7XG59XG5cbkBmdW5jdGlvbiBzcHJpdGUtd2lkdGgoJHNwcml0ZSkge1xuICBAcmV0dXJuIG50aCgkc3ByaXRlLCAzKTtcbn1cblxuQGZ1bmN0aW9uIHNwcml0ZS1oZWlnaHQoJHNwcml0ZSkge1xuICBAcmV0dXJuIG50aCgkc3ByaXRlLCA0KTtcbn1cblxuQG1peGluIHNwcml0ZS1wb3NpdGlvbigkc3ByaXRlKSB7XG4gICRzcHJpdGUtb2Zmc2V0LXg6IG50aCgkc3ByaXRlLCAxKTtcbiAgJHNwcml0ZS1vZmZzZXQteTogbnRoKCRzcHJpdGUsIDIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkc3ByaXRlLW9mZnNldC14ICAkc3ByaXRlLW9mZnNldC15O1xufVxuXG5AbWl4aW4gc3ByaXRlKCRzcHJpdGUsICRkaXNwbGF5OiBibG9jaykge1xuICBAaW5jbHVkZSBzcHJpdGUtcG9zaXRpb24oJHNwcml0ZSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xuICBAaW5jbHVkZSBzcHJpdGUtd2lkdGgoJHNwcml0ZSk7XG4gIEBpbmNsdWRlIHNwcml0ZS1oZWlnaHQoJHNwcml0ZSk7XG4gICAgQGV4dGVuZCAuc3ByaXRlcztcbn1cblxuXG4gICAgLnNwcml0ZXMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvc3ByaXRlcy5wbmc/NDlhODExMWFmODM1ZGNmODAzMGU1YWM3NmM3OTY1NmVhYTkzNTk5YicpO1xuICAgIH1cblxuIiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gIHNyYzogdXJsKCcuLi9mb250cy9pY29ucy5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2ljb25zLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VvdCcpLFxuICAgICAgIHVybCgnLi4vZm9udHMvaWNvbnMud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgIHVybCgnLi4vZm9udHMvaWNvbnMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgIHVybCgnLi4vZm9udHMvaWNvbnMuc3ZnI2ljb25zJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4laWNvbi1iYXNlLXN0eWxlcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4kaWNvbnM6IChcbiAgY29tbWVudDogXCJcXEVBMDFcIixcbiAgZmFjZWJvb2s6IFwiXFxFQTAyXCIsXG4gIGdvb2dsZTogXCJcXEVBMDNcIixcbiAgdXNlcjogXCJcXEVBMDRcIlxuKTtcblxuQGVhY2ggJG5hbWUsICRpY29uIGluICRpY29ucyB7XG4gIC5zLSN7JG5hbWV9OmJlZm9yZSB7XG4gICAgQGV4dGVuZCAlaWNvbi1iYXNlLXN0eWxlcztcbiAgICBjb250ZW50OiAkaWNvbjtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy9cbi8vIE5vcm1hbGl6YXRpb24gZnVuY3Rpb25zLlxuLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5odG1sIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuZW1iZWQsXG5pbWcsXG5vYmplY3QsXG52aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5pbWdbc3JjKj1zdmddLCBzdmcgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO31cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMSBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRXh0ZW5kYWJsZSBQYXJ0aWFsXG4vL1xuLy8gQWxsIG9mIHlvdXIgZ2xvYmFsIGV4dGVuZGFibGVzIHNob3VsZCBnbyBpbiB0aGlzIGZpbGUuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLmNlbnRlci1hbGlnbntcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2VudGVyLXdyYXBwZXJ7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgQGluY2x1ZGUgbWVkaWEoJHhsYXJnZSkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLmdyZWVue1xuICBiYWNrZ3JvdW5kOiAkdmVyZGU7XG59XG5cbi5jbGVhcmZpeHtcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cbi5sYXJnZS1jb250ZW50e1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwIDQwcHg7XG4gID4gaDIsID4gZGl2e1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgJi5hZGFwdHtcbiAgICB3aWR0aDogMTAzMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MzZweCkge1xuICAgICAgd2lkdGg6IDQxNnB4O1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzQzcHgpIHtcbiAgICAgIHdpZHRoOiA3MjNweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoMTM1NXB4KSB7XG4gICAgICB3aWR0aDogMTMzNXB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgxNjU4cHgpIHtcbiAgICAgIHdpZHRoOiAxNjQycHg7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCdXR0b25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmJ1dHRvbntcbiAgcGFkZGluZzogOHB4IDE4cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogJGxpbms7XG4gIGNvbG9yOiAjRkZGO1xuICBjdXJzb3I6cG9pbnRlcjtcbiAgJjpob3ZlcntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRsaW5rLCAxMiUpO1xuICB9XG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6I0ZGRjtcbiAgfVxuICAmLnNtYWxse1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBtYXJnaW46IDAgOHB4O1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAmLmZhdm9yaXRle1xuICAgICAgY29sb3I6I0ZGRjtcbiAgICAgIGJhY2tncm91bmQ6ICRyZWQ7XG4gICAgfVxuICB9XG59XG5cbi5mYWRlaW57XG4gIEBpbmNsdWRlIGFuaW1hdGlvbihmYWRlaW4gMXMpO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVpbiB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG5ALW1vei1rZXlmcmFtZXMgZmFkZWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlaW4ge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuQC1tcy1rZXlmcmFtZXMgZmFkZWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cbkAtby1rZXlmcmFtZXMgZmFkZWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIExvYWRlcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uc3Bpbm5lci13cmFwcGVye1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgLm5vLXJnYmEgJiB7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgfVxufVxuXG4uc3Bpbm5lcntcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW46IC00NnB4IDAgMCAtMTNweDtcbiAgbGluZS1oZWlnaHQ6IDc3cHg7XG4gIHdpZHRoOiA1MHB4O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgLm5vLWNzc2FuaW1hdGlvbnN7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG4gIH1cbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6Jyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHZlcmRlO1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGN1YmVtb3ZlIDEuOHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uOiBjdWJlbW92ZSAxLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICB9XG4gICY6YWZ0ZXIge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC45cztcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjlzO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBjdWJlbW92ZSB7XG4gIDI1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwcHgpIHJvdGF0ZSgtOTBkZWcpIHNjYWxlKDAuNSkgfVxuICA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MHB4KSB0cmFuc2xhdGVZKDUwcHgpIHJvdGF0ZSgtMTgwZGVnKSB9XG4gIDc1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgdHJhbnNsYXRlWSg1MHB4KSByb3RhdGUoLTI3MGRlZykgc2NhbGUoMC41KSB9XG4gIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpIH1cbn1cbkBrZXlmcmFtZXMgY3ViZW1vdmUge1xuICAyNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSByb3RhdGUoLTkwZGVnKSBzY2FsZSgwLjUpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHJvdGF0ZSgtOTBkZWcpIHNjYWxlKDAuNSk7XG4gIH0gNTAlIHtcbiAgICAvKiBIYWNrIHRvIG1ha2UgRkYgcm90YXRlIGluIHRoZSByaWdodCBkaXJlY3Rpb24gKi9cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDJweCkgdHJhbnNsYXRlWSg0MnB4KSByb3RhdGUoLTE3OWRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDJweCkgdHJhbnNsYXRlWSg0MnB4KSByb3RhdGUoLTE3OWRlZyk7XG4gIH0gNTAuMSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMTgwZGVnKTtcbiAgfSA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0yNzBkZWcpIHNjYWxlKDAuNSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMjcwZGVnKSBzY2FsZSgwLjUpO1xuICB9IDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGN1YmVtb3ZlX3NtYWxsIHtcbiAgMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjJweCkgcm90YXRlKC05MGRlZykgc2NhbGUoMC41KSB9XG4gIDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIycHgpIHRyYW5zbGF0ZVkoMjJweCkgcm90YXRlKC0xODBkZWcpIH1cbiAgNzUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KSB0cmFuc2xhdGVZKDIycHgpIHJvdGF0ZSgtMjcwZGVnKSBzY2FsZSgwLjUpIH1cbiAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZykgfVxufVxuQGtleWZyYW1lcyBjdWJlbW92ZV9zbWFsbCB7XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHJvdGF0ZSgtOTBkZWcpIHNjYWxlKDAuNSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDJweCkgcm90YXRlKC05MGRlZykgc2NhbGUoMC41KTtcbiAgfSA1MCUge1xuICAgIC8qIEhhY2sgdG8gbWFrZSBGRiByb3RhdGUgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiAqL1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMTc5ZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMTc5ZGVnKTtcbiAgfSA1MC4xJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0xODBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0xODBkZWcpO1xuICB9IDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCkgdHJhbnNsYXRlWSg0MnB4KSByb3RhdGUoLTI3MGRlZykgc2NhbGUoMC41KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0yNzBkZWcpIHNjYWxlKDAuNSk7XG4gIH0gMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTtcbiAgfVxufVxuXG5cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2FuYmllbnRfaWNvbnMnO1xuICBzcmM6dXJsKCcuLi9mb250cy9hbmJpZW50X2ljb25zLmVvdD9kOG12ZScpO1xuICBzcmM6dXJsKCcuLi9mb250cy9hbmJpZW50X2ljb25zLmVvdD8jaWVmaXhkOG12ZScpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJy4uL2ZvbnRzL2FuYmllbnRfaWNvbnMud29mZj9kOG12ZScpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vZm9udHMvYW5iaWVudF9pY29ucy50dGY/ZDhtdmUnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCcuLi9mb250cy9hbmJpZW50X2ljb25zLnN2Zz9kOG12ZSNhbmJpZW50X2ljb25zJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4laWNvbiB7XG4gIGZvbnQtZmFtaWx5OiAnYW5iaWVudF9pY29ucyc7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4laWNvbi1jb21tZW50IHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MDBcIjtcbn1cbiVpY29uLWRvd24ge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYwMVwiO1xufVxuJWljb24tbGVmdCB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjBhXCI7XG59XG4laWNvbi1yaWdodCB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjBiXCI7XG59XG4laWNvbi1zZWFyY2gge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYwMlwiO1xufVxuJWljb24tc2hhcmUge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYwM1wiO1xufVxuJWljb24tcmV0dXJuIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MDRcIjtcbn1cbiVpY29uLW1haWwge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYwNVwiO1xufVxuJWljb24tcGFzcyB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjA2XCI7XG59XG4laWNvbi11c2VyIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MDdcIjtcbn1cbiVpY29uLWZhY2Vib29rIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MDhcIjtcbn1cbiVpY29uLWdvb2dsZSB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjA5XCI7XG59XG4laWNvbi1jaGVjayB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjBjXCI7XG59XG4uaWNvbi5jaGVjazphZnRlciB7XG4gIEBleHRlbmQgJWljb24tY2hlY2s7XG59XG4laWNvbi1lZGl0IHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MGRcIjtcbn1cbiVpY29uLWFycm93LWxlZnQge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYwZVwiO1xufVxuJWljb24tZGVsZXRlIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MGZcIjtcbn1cbiVpY29uLWxpa2Uge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYxMFwiO1xufVxuJWljb24tZGlzbGlrZSB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjExXCI7XG59XG4laWNvbi11cDIge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYxMlwiO1xufVxuJWljb24tZG93bjIge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYxM1wiO1xufVxuJWljb24tbGVmdDIge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYxNFwiO1xufVxuJWljb24tcmlnaHQyIHtcbiAgQGV4dGVuZCAlaWNvbjtcbiAgY29udGVudDogXCJcXGU2MTVcIjtcbn1cbiVpY29uLWluZm8ge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYxNlwiO1xufVxuJWljb24tYWxlcnQge1xuICBAZXh0ZW5kICVpY29uO1xuICBjb250ZW50OiBcIlxcZTYxN1wiO1xufVxuJWljb24tZmxhZyB7XG4gIEBleHRlbmQgJWljb247XG4gIGNvbnRlbnQ6IFwiXFxlNjE4XCI7XG59XG5cbiIsIi8qKlxuKiBUeXBvZ3JhcGh5OiBIZWFkaW5ncywgYm9keSB0ZXh0LCBsaXN0cywgY29kZSwgYW5kIG1vcmUgZm9yIGEgdmVyc2F0aWxlIGFuZCBkdXJhYmxlIHR5cG9ncmFwaHkgc3lzdGVtLlxuKi9cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1ib2R5O1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xufVxuXG5cbi8vIEhlYWRpbmdzXG5cbmgxIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6IzMzMztcbn1cblxuaDMge1xuXG59XG5cbmg0IHtcblxufVxuXG5oNSB7XG5cbn1cblxuaDYge1xuXG59XG5cblxuLy8gTGlua3Ncbi8vXG4vLyBUaGUgb3JkZXIgb2YgbGluayBzdGF0ZXMgYXJlIGJhc2VkIG9uIEVyaWMgTWV5ZXIncyBhcnRpY2xlOlxuLy8gaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rob3VnaHRzLzIwMDcvMDYvMTEvd2hvLW9yZGVyZWQtdGhlLWxpbmstc3RhdGVzXG5hIHtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgY29sb3I6ICRsaW5rO1xuXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6ICR2aXNpdGVkO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG5cbiAgfVxuXG4gICY6YWN0aXZlLCAmLmFjdGl2ZSB7XG5cbiAgfVxufVxuXG5cbi8vIExpc3RzXG5cbnVsLCBvbCB7XG5cbn1cblxudWwgdWwsXG51bCBvbCxcbm9sIG9sLFxub2wgdWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG51bCB7XG5cbn1cblxub2wge1xuXG59XG5cbmxpIHtcblxufVxuXG51bC51bnN0eWxlZCxcbm9sLnVuc3R5bGVkIHtcblxufVxuXG4vLyBNaXNjLlxuXG5ociB7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNjY2O1xuICBwYWRkaW5nLWJvdHRvbTogLTFweDtcbiAgbWFyZ2luOiAxZW0gMDtcbn1cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vLyBSZW1vdmUgdGV4dC1zaGFkb3cgaW4gc2VsZWN0aW9uIGhpZ2hsaWdodDogaDVicC5jb20vaVxuLy8gVGhlc2Ugc2VsZWN0aW9uIGRlY2xhcmF0aW9ucyBoYXZlIHRvIGJlIHNlcGFyYXRlXG46Oi1tb3otc2VsZWN0aW9uIHsgYmFja2dyb3VuZDogJHNlbGVjdGlvbi1iZzsgY29sb3I6ICRzZWxlY3Rpb247IHRleHQtc2hhZG93OiBub25lOyB9XG46OnNlbGVjdGlvbiB7IGJhY2tncm91bmQ6ICRzZWxlY3Rpb24tYmc7IGNvbG9yOiAkc2VsZWN0aW9uOyB0ZXh0LXNoYWRvdzogbm9uZTsgfVxuXG4jcGFnZS10aXRsZXtcbiAgY29sb3I6I0ZGRjtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5wYW5lLXRpdGxle1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDI4cHg7XG59XG5cbiNtYWluIHtcbn1cbiIsImJvZHl7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvcjtcbn1cbnVsLmxpbmtzLmlubGluZXtcbiAgQGluY2x1ZGUgaW5saW5lLWxpc3QoKTtcbiAgbGl7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICB9XG4gIGF7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLmZpZWxkLmlubGluZXtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAuZmllbGQtbGFiZWwsIC5maWVsZC1pdGVtLCAuaXRlbXtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIH1cbiAgLmZpZWxkLWl0ZW1ze1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG4uZmllbGQtdGVtYXMsIC5maWVsZC1mYW5zdWJ7XG4gIGE6YWZ0ZXJ7XG4gICAgY29udGVudDogXCIsXCI7XG4gIH1cbiAgLml0ZW06bGFzdC1jaGlsZCBhOmFmdGVye1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cbn1cbi5maWVsZC1hdHJpYnV0b3MgLmZpZWxkLWl0ZW17XG4gIEBleHRlbmQgLmljb24uY2hlY2s7XG4gICY6YWZ0ZXJ7XG4gICAgY29sb3I6IzMzMztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxufVxuIiwiLyohXG5QdXJlIHYwLjUuMFxuQ29weXJpZ2h0IDIwMTQgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZS5cbmh0dHBzOi8vZ2l0aHViLmNvbS95dWkvcHVyZS9ibG9iL21hc3Rlci9MSUNFTlNFLm1kXG4qL1xudGFibGUge1xuICAgIC8qIFJlbW92ZSBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMgKGZyb20gTm9ybWFsaXplLmNzcykgKi9cbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGVtcHR5LWNlbGxzOiBzaG93O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmNiY2I7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbnRhYmxlIGNhcHRpb24ge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQ6IGl0YWxpYyA4NSUvMSBhcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbnRhYmxlIHRkLFxudGFibGUgdGgge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NiY2JjYjsvKiAgaW5uZXIgY29sdW1uIGJvcmRlciAqL1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMXB4O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qdG8gbWFrZSB0aHMgd2hlcmUgdGhlIHRpdGxlIGlzIHJlYWxseSBsb25nIHdvcmsqL1xuICAgIHBhZGRpbmc6IDAuNWVtIDFlbTsgLyogY2VsbCBwYWRkaW5nICovXG59XG50YWJsZSB0ZDpmaXJzdC1jaGlsZCxcbnRhYmxlIHRoOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbn1cblxudGFibGUgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICNlMGUwZTA7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vKlxuc3RyaXBpbmc6XG4gICBldmVuIC0gI2ZmZiAod2hpdGUpXG4gICBvZGQgIC0gI2YyZjJmMiAobGlnaHQgZ3JheSlcbiovXG50YWJsZSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG50YWJsZSAub2RkIHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4vKiBudGgtY2hpbGQgc2VsZWN0b3IgZm9yIG1vZGVybiBicm93c2VycyAqL1xudGFibGUgdHI6bnRoLWNoaWxkKDJuLTEpIHRkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG50YWJsZSB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG5cbiIsIi8qKlxuICogRm9ybSBlbGVtZW50czogSW5wdXRzLCBidXR0b25zLCBldGMuXG4gKi9cblxuZm9ybSB7XG59XG5cbmZpZWxkc2V0IHtcbn1cblxubGVnZW5kIHtcbn1cblxuXG5sYWJlbCxcbmlucHV0LFxuYnV0dG9uLFxudGV4dGFyZWEge1xuXG59XG5zZWxlY3R7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR2ZXJkZTtcbiAgbWFyZ2luLXJpZ2h0OiAxOHB4O1xuICBwYWRkaW5nOiAxMHB4IDdweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IzMzMztcbn1cblxubGFiZWwge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYnV0dG9uLFxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuXG5cbiAgJjpob3ZlciB7XG5cbiAgfVxuXG4gICY6YWN0aXZlIHtcblxuICB9XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuXG4gICY6Zm9jdXMge1xuXG4gIH1cbn1cblxuaW5wdXRbbmFtZT1cIm5hbWVcIl0sIGlucHV0W25hbWU9XCJwYXNzXCJdIHtcbiAgcGFkZGluZy1sZWZ0OiAzNXB4O1xufVxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLGlucHV0W3R5cGU9XCJyYWRpb1wiXXtcbiAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xuICBvcGFjaXR5OiAwOyAvLyBNVVNUIE5PVCBXT1JLIEZPUiA8IElFOVxuICAmK2xhYmVse1xuICAgIGN1cnNvcjpwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAmOmJlZm9yZXtcbiAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTlweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjojNjY2O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI0EwQTBBMDtcbiAgICB9XG4gIH1cbn1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXStsYWJlbDpiZWZvcmV7XG5cbn1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkK2xhYmVsOmJlZm9yZXtcbiAgQGV4dGVuZCAlaWNvbi1jaGVjaztcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXStsYWJlbDpiZWZvcmV7XG4gIGhlaWdodDogMTdweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIHRleHQtaW5kZW50OiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI0VFRTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDJweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgLjMpLCAwcHggMXB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAuOCk7XG4gIGZvbnQtc2l6ZTogMjZweDtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkK2xhYmVsOmJlZm9yZXtcbiAgY29udGVudDogXCJcXDIwMjJcIjtcbn1cblxuaW5wdXQuZm9ybS10ZXh0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgNTBweCB3aGl0ZSBpbnNldDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICMzMzM7XG59XG4uZm9ybS10ZXh0e1xuICBib3JkZXI6IDFweCBzb2xpZCAjQjZCNkI2O1xuICBwYWRkaW5nOiA0cHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICNFRUU7XG59XG4uc2VsZWN0Mi1jb250YWluZXJ7XG4gIC5zZWxlY3QyLWNob2ljZXtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC5zZWxlY3QyLWNob3NlbntcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgcGFkZGluZzogNnB4IDhweDtcbiAgICB9XG4gICAgLnNlbGVjdDItYXJyb3d7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICBie1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBAZXh0ZW5kICVpY29uLWRvd247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNlbGVjdDItY2hvaWNlLCAmLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBjb2xvcjojMzMzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR2ZXJkZTtcbiAgfVxufVxuLnNlbGVjdDItZHJvcHtcbiAgYm9yZGVyOiAxcHggc29saWQgJHZlcmRlO1xuICBib3JkZXItdG9wLWNvbG9yOiNERkVGREM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uc2VsZWN0Mi1yZXN1bHRze1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpe1xuICAgIGJvcmRlci10b3A6I0RGRUZEQyAxcHggc29saWQ7XG4gICAgY29sb3I6IzcxQzU1NztcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICBib3JkZXItdG9wOm5vbmU7XG4gICAgfVxuICB9XG4gIC5zZWxlY3QyLWhpZ2hsaWdodGVke1xuICAgIGJhY2tncm91bmQ6ICNGMUY5RUU7XG4gICAgY29sb3I6IzcxQzU1NztcbiAgfVxufVxuXG5cbmZvcm17XG4gIGxhYmVse1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjojMzMzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxuICAuZmllbGQtcHJlZml4IC5pY29uOmFmdGVye1xuICAgIGNvbG9yOiAjQTZEQzk4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIC5pY29uLnVzZXI6YWZ0ZXJ7XG4gICAgQGV4dGVuZCAlaWNvbi11c2VyO1xuICB9XG4gIC5pY29uLnBhc3M6YWZ0ZXJ7XG4gICAgQGV4dGVuZCAlaWNvbi1wYXNzO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIC5pY29uLm1haWw6YWZ0ZXJ7XG4gICAgQGV4dGVuZCAlaWNvbi1tYWlsO1xuICB9XG4gIC5pY29uLnNlYXJjaDphZnRlcntcbiAgICBAZXh0ZW5kICVpY29uLXNlYXJjaDtcbiAgfVxuICAuZm9ybS1hY3Rpb25ze1xuICAgIG1hcmdpbjogMjBweCAwO1xuICAgIC5yZWNvdmVye1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuICB9XG4gIC5mb3JtLXN1Ym1pdHtcbiAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kOiAkdmVyZGU7XG4gICAgbWFyZ2luOiAxNHB4IDE0cHggMCAwO1xuICB9XG4gIC5yZWdpc3RlcntcbiAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgbWluLXdpZHRoOiAyMzRweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYmFja2dyb3VuZDogJHZlcmRlO1xuICAgIGNvbG9yOiNGRkY7XG4gIH1cbn1cbi5mb3JtLWl0ZW17XG4gIG1hcmdpbjogMThweCAwO1xufVxuLmZvcm0tdGV4dHtcbiAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgY29sb3I6I0FBQTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuXG4uaHlicmlkYXV0aC13aWRnZXQtd3JhcHBlcntcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoM3tcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIHVse1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gIH1cbn1cbi5oeWJyaWRhdXRoLXdpZGdldC13cmFwcGVyIHVsLmh5YnJpZGF1dGgtd2lkZ2V0IGxpe1xuICBtYXJnaW46IDdweCAwO1xufVxuLmh5YnJpZGF1dGgtaWNvbntcbiAgY29sb3I6I0ZGRjtcbiAgbWluLXdpZHRoOiAyMzRweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIHRleHQtaW5kZW50OiA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmctcmlnaHQ6MjBweDtcbiAgJjpiZWZvcmV7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWluZGVudDogMDtcbiAgICBsZWZ0OjA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gIH1cbn1cbi5oeWJyaWRhdXRoLWdvb2dsZXtcbiAgYmFja2dyb3VuZDogbWFwLWdldCgkYnJhbmQtY29sb3JzLCBnb29nbGUpO1xuICAmOmJlZm9yZXtcbiAgICBAZXh0ZW5kICVpY29uLWdvb2dsZTtcbiAgICBmb250LXNpemU6IDI3cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0M5NDMyRDtcbiAgfVxufVxuLmh5YnJpZGF1dGgtZmFjZWJvb2t7XG4gIGJhY2tncm91bmQ6IG1hcC1nZXQoJGJyYW5kLWNvbG9ycywgZmFjZWJvb2spO1xuICAmOmJlZm9yZXtcbiAgICBAZXh0ZW5kICVpY29uLWZhY2Vib29rO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBkYXJrZW4obWFwLWdldCgkYnJhbmQtY29sb3JzLCBmYWNlYm9vayksIDclKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMb2dpbiBGb3JtXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5wYWdlLXVzZXIgbWFpbntcbiAgLmh5YnJpZGF1dGgtd2lkZ2V0LXdyYXBwZXJ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICBmb3JtIC5jZW50ZXItYWxpZ257XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBhe1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWpheCBMb2dpbiBGb3JtXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4jbG9naW4tZm9ybXtcbiAgd2lkdGg6IDMzMHB4O1xuICBtYXJnaW4tbGVmdDogLTE2NXB4O1xuICBwYWRkaW5nOiAyOHB4IDI4cHggNDBweDtcbiAgaDIudGl0bGV7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiM2NjY7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNGMEYwRjA7XG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICBtYXJnaW46IDAgMCAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGVte1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgbWFyZ2luOiAwIDhweDtcbiAgICB9XG4gIH1cbiAgbGFiZWx7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZGVzY3JpcHRpb257XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZm9ybS1pdGVte1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZm9ybS10ZXh0e1xuICAgIHdpZHRoOiAxODRweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLmZvcm0tYWN0aW9uc3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGaWx0cm8gZGUgQW5pbWVzIG5hIHDDoWdpbmEgZGUgbGlzdGFnZW1cbi8vIGRlIGFuaW1lcyBlIG5hIGRlIHRlcm1vIGRlIHRheG9ub21pYVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uZ3JlZW4tZm9ybXtcbiAgbWluLWhlaWdodDogMjYwcHg7XG4gIC52aWV3LWZpbHRlcnN7XG4gICAgYmFja2dyb3VuZDogJHZlcmRlO1xuICAgIGZvcm17XG4gICAgICBiYWNrZ3JvdW5kOiBzaGFkZSgkdmVyZGUsIDEwJSk7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC52aWV3cy13aWRnZXQtc29ydC1zb3J0X2JlZl9jb21iaW5le1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDUzcHg7XG4gICAgbGFiZWx7XG4gICAgICBjb2xvcjojRTBFRkRDO1xuICAgIH1cbiAgfVxuICAudmlld3Mtd2lkZ2V0LWZpbHRlci1maWVsZF90aXBvX2RlX2FuaW1lX3RpZHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiA0ZW07XG4gICAgPiBsYWJlbHtcbiAgICAgIGNvbG9yOiAjRTBFRkRDO1xuICAgIH1cbiAgfVxuICAudmlld3Mtd2lkZ2V0LWZpbHRlci10aXRsZXtcbiAgICBsaW5lLWhlaWdodDogNGVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAudmlld3Mtc3VibWl0LWJ1dHRvbntcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogNGVtO1xuICAgICYudmlld3MtZXhwb3NlZC13aWRnZXQgLmZvcm0tc3VibWl0IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG59XG4uZ3JlZW4tZm9ybSBmb3Jte1xuICBmb250LXNpemU6IDEzcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgfVxuICBpbnB1dC5mb3JtLXRleHR7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gICAgfVxuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgbGFiZWx7XG4gICAgY29sb3I6I0ZGRjtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAuc2VsZWN0Mi1jaG9pY2UsICYuc2VsZWN0Mi1kcm9wZG93bi1vcGVuIC5zZWxlY3QyLWNob2ljZXtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjojRkZGO1xuICB9XG4gIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1hcnJvd3tcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC52aWV3cy1leHBvc2VkLXdpZGdldHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCAyMHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgfVxuICAudmlld3Mtd2lkZ2V0e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuaWNvbi5zZWFyY2g6YWZ0ZXJ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6I0FGQUZBRjtcbiAgfVxuICAuYWpheC1wcm9ncmVzcyAudGhyb2JiZXI6YWZ0ZXIsIC5hamF4LXByb2dyZXNzIC50aHJvYmJlcjpiZWZvcmV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGO1xuICB9XG4gIC5mb3JtLXR5cGUtYmVmLWNoZWNrYm94e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBpbnB1dCtsYWJlbDpiZWZvcmV7XG4gICAgICBib3JkZXItY29sb3I6ICNGRkY7XG4gICAgICBjb2xvcjojRkZGO1xuICAgIH1cbiAgfVxuICAuc2VsZWN0Mi1jb250YWluZXJ7XG4gICAgYntcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb21lbnTDoXJpb3Ncbi8vLy8vLy8vLy8vLy8vLy8vXG4uY29tbWVudC1mb3Jte1xuICBwYWRkaW5nLWxlZnQ6IDE1MHB4O1xuICBtYXJnaW4tdG9wOiAxM3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxhYmVse1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG4gIH1cbiAgLmZvcm0tdHlwZS1pdGVtIGxhYmVsOmFmdGVye1xuICAgIGNvbnRlbnQ6IFwiOlwiO1xuICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICB9XG4gIC5mb3JtLWl0ZW0tbm90aWZ5e1xuICAgIG1hcmdpbjoxMHB4IDAgMDtcbiAgfVxuICAuZm9ybS1pdGVtLW5vdGlmeS10eXBle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMHB4IDIwcHg7XG4gIH1cbiAgLmZvcm0tYWN0aW9uc3tcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC8vIFNlbGVjdCBkZSBmb3JtYXRvc1xuICAuZm9ybS10eXBlLXNlbGVjdHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gID4gZGl2e1xuICAgIC5mb3JtLXR5cGUtaXRlbXtcbiAgICAgIGZvbnQtc2l6ZToxNXB4O1xuICAgIH1cbiAgfVxuICAuZm9ybS10eXBlLXRleHRhcmVhIGxhYmVse1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmZpbHRlci1ndWlkZWxpbmVzLWl0ZW17XG4gICAgYm9yZGVyOjFweCBzb2xpZCAjQzlDRENFO1xuICAgIGJhY2tncm91bmQ6ICNFRUY5RkY7XG4gICAgY29sb3I6IzY2NjtcbiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgYXtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6IzY2NjtcbiAgICB9XG4gIH1cbiAgLmZpbHRlci13cmFwcGVyLCAuZmlsdGVyLWd1aWRlbGluZXN7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLmZpZWxkLXdpZGdldC10ZXh0LXRleHRhcmVhe1xuICAgIHBhZGRpbmc6MDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG4gIC5tZXNzYWdlczpsYXN0LWNoaWxke1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cbiAgJi50b3Atdm90ZWQtc3RhbmRhbG9uZSBoZWFkZXJ7XG4gICAgYmFja2dyb3VuZDogJHJlZDtcbiAgfVxufVxuLmNvbW1lbnQtZm9ybS1yZW1vdmluZ3tcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmlsdHJvcyBkYSBsaXN0b25hXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5maWx0ZXItcGFuZXtcbiAgbGFiZWx7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjojRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbjogOHB4O1xuICB9XG4gIC5mb3JtLWl0ZW1ze1xuICAgIGJhY2tncm91bmQ6ICM3QkJDNjg7XG4gICAgcGFkZGluZzogMTNweCAxMHB4O1xuICB9XG4gIGF7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzY1QjE0RTtcbiAgICBjb2xvcjojRkZGO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgbWFyZ2luOiA0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAmLmFjdGl2ZXtcbiAgICAgIGJhY2tncm91bmQ6IHNoYWRlKCR2ZXJkZSwgMzYlKTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQ6IHNoYWRlKCR2ZXJkZSwgMTUlKTtcbiAgICB9XG4gIH1cbiAgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle1xuICAgIGJvcmRlci1jb2xvcjogI0ZGRjtcbiAgICBjb2xvcjojRkZGO1xuICB9XG4gIGlucHV0LmZvcm0tdGV4dHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNTY5QjQ0O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjojNjVCMTRFO1xuICB9XG4gIC5pdGVte1xuICAgIG1pbi13aWR0aDogNDklO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICBpbnB1dC5zZWFyY2h7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAzMXB4O1xuICB9XG4gIC5pdGVtLnN1Ym1pdHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBpbnB1dHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgLnF1YWxpZGFkZXtcbiAgICAuZm9ybS1pdGVtc3tcbiAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICBsYWJlbHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLml0ZW17XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICB9XG4gIC5lcGlzb2Rpb3N7XG4gICAgaW5wdXR7XG4gICAgICB3aWR0aDogMjUlO1xuICAgIH1cbiAgfVxuXG59XG4iLCJodG1sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuYm9keXtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbm1haW4jcGFuZWwge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4jbWFpbi1wcmVmaXh7XG4gIGJhY2tncm91bmQ6ICR2ZXJkZTtcbiAgcGFkZGluZzogMTAwcHggNDBweCAyMHB4O1xuICAuZnJvbnQgJiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uZnJvbnQgI2Jsb2NrLXN5c3RlbS1tYWlue1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4ubm90LWZyb250ICNibG9jay1zeXN0ZW0tbWFpbntcbiAgQGV4dGVuZCAuY2VudGVyLXdyYXBwZXI7XG4gIHBhZGRpbmc6IDMwcHggMDtcbn1cblxuLmZyb250IHNlY3Rpb24uc2Vjb25kLXJvd3tcbiAgQGV4dGVuZCAuY2VudGVyLXdyYXBwZXI7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0pe1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgfVxufVxuI2Jsb2NrLXN5c3RlbS1oZWxwe1xuICBAZXh0ZW5kIC5jZW50ZXItd3JhcHBlcjtcbn1cblxuLmRmcC10YWctd3JhcHBlciAuZGZwLXRhZy13cmFwcGVye1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogNDBweDtcbn1cbiNkZnAtYWQtaG9tZV9sYWRvX2RhX2VucXVldGUtd3JhcHBlcntcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMzAwcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0pe1xuICAgIGZsb2F0OiBub25lO1xuICB9XG4gIC5kZnAtdGFnLXdyYXBwZXJ7XG4gICAgbWFyZ2luOiAyNnB4IDA7XG4gIH1cbn1cbiNkZnAtYWQtcmVsYWNpb25hZG9zLXdyYXBwZXJ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgQGluY2x1ZGUgbWVkaWEoMTI4MHB4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5kZnAtdGFnLXdyYXBwZXJ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG59XG5cbi5wYW5lLWFuYmllbnQtYWRzLWFuYmllbnQtYWRzLTcyOHg5MHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxub2JqZWN0W3R5cGVePVwiYXBwbGljYXRpb24vZ2FzLWV2ZW50c1wiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIuZWxlbWVudC1pbnZpc2libGV7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xufVxuXG4uZWxlbWVudC1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29tbWVudC5pY29ue1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgJjpiZWZvcmV7XG4gICAgQGV4dGVuZCAlaWNvbi1jb21tZW50O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICB9XG59XG5cbi5hZGR0aGlzX2J1dHRvbntcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgbWFyZ2luOjAgMTZweDtcbiAgJjpiZWZvcmV7XG4gICAgQGV4dGVuZCAlaWNvbi1zaGFyZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgfVxufVxuLmF0bS1me1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTW9kYWwgUG9wdXBzXG4vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLm1mcHtcbiAgYmFja2dyb3VuZDogI0ZBRkFGQTtcbiAgd2lkdGg6IDUwMHB4O1xuICBtYXJnaW4tbGVmdDogLTI1MHB4O1xuICBsZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsMCwwLC42KTtcbn1cbi5tZnAtY29udGVudHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cbi5tZnAtc2VydmVyIHtcbiAgcGFkZGluZzogMjBweDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogOTUlO1xuICBsZWZ0OiAwO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBtYXJnaW46IDIwcHggYXV0bztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB0ZXh0YXJlYXtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ubWZwLWNvdW50ZXJ7XG4gIHdpZHRoOiA1OHB4O1xufVxuLm1mcC13aXRoLXpvb217XG4gIC5tZnAtY29udGFpbmVyLFxuICAmLm1mcC1iZyB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAvKiBpZGVhbGx5LCB0cmFuc2l0aW9uIHNwZWVkIHNob3VsZCBtYXRjaCB6b29tIGR1cmF0aW9uICovXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICB9XG4gICYubWZwLXJlYWR5IHtcbiAgICAubWZwLWNvbnRhaW5lciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgICYubWZwLWJnIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbiAgfVxuICAmLm1mcC1yZW1vdmluZyB7XG4gICAgLm1mcC1jb250YWluZXIsXG4gICAgJi5tZnAtYmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4ubWZwLXdyYXAgLm1mcC1wcmVsb2FkZXIsXG4uYWpheC1wcm9ncmVzcyAudGhyb2JiZXJ7XG4gIEBleHRlbmQgLnNwaW5uZXI7XG59XG5cbi5hamF4LXByb2dyZXNze1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC50aHJvYmJlcntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsZWZ0OiA4cHg7XG4gICAgdG9wOiAtMTZweDtcbiAgICAuY3NzYW5pbWF0aW9ucyAme1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXJ7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAtd2Via2l0LWFuaW1hdGlvbjogY3ViZW1vdmVfc21hbGwgMS44cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICAgIGFuaW1hdGlvbjogY3ViZW1vdmVfc21hbGwgMS44cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuOXM7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IC0wLjlzO1xuICAgIH1cbiAgfVxuICAubWVzc2FnZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5ja2VfYnV0dG9uX19zcG9pbGVyX2ljb257XG4gIC8vem9vbTogMy40O1xuICB3aWR0aDogNTZweCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vL1xuLy8gTUVTU0FHRVNcbi8vLy8vLy8vLy8vLy8vLy8vXG4ubWVzc2FnZXMtd3JhcHBlciAubWVzc2FnZXN7XG4gIG1hcmdpbjogMWVtO1xufVxuLm1lc3NhZ2Vze1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDE4cHg7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcxQzU1NztcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgY29sb3I6I0ZGRjtcbiAgcGFkZGluZzogMTZweCAxNnB4IDE2cHggNjBweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIC5wYWdlLWNvbnRhY3QgJiB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgfVxuICBhe1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG4gIC5tYWludGVuYW5jZS1wYWdlICZ7XG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gIH1cbiAgJjpiZWZvcmV7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBtYXJnaW4tbGVmdDogLTQ0cHg7XG4gIH1cbiAgJi5lcnJvciwgJi5lcnJvciB1bHtcbiAgICBiYWNrZ3JvdW5kOiAkcmVkLWVycm9yLWJnO1xuICAgIGNvbG9yOiAjRkZGO1xuICB9XG4gICYud2FybmluZ3tcbiAgICBiYWNrZ3JvdW5kOiAjRkZGN0MyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNGRkUxODA7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgJjpiZWZvcmV7XG4gICAgICBAZXh0ZW5kICVpY29uLWFsZXJ0O1xuICAgICAgY29sb3I6I0ZGRDI0RDtcbiAgICB9XG4gIH1cbiAgJi5pbmZvLCAmLnN0YXR1c3tcbiAgICBiYWNrZ3JvdW5kOiAjREFFRkY4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCRkNGRkY7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgJjpiZWZvcmV7XG4gICAgICBAZXh0ZW5kICVpY29uLWluZm87XG4gICAgICBjb2xvcjojOTQ5REEwO1xuICAgIH1cbiAgfVxuICB1bHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG59XG4jbWFpbi1wcmVmaXggLm1lc3NhZ2Vze1xuICBiYWNrZ3JvdW5kOiAjRUNGMEYxO1xuICBjb2xvcjojMTExO1xufVxuZm9ybS5tZXNzYWdlc3tcblxufVxuXG4jcmV2aXNpb25pbmctcmV2aXNpb25zLXN1bW1hcnl7XG4gIGhye1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxuICAuc3VibWVudXtcbiAgICBhe1xuICAgICAgQGV4dGVuZCAuYnV0dG9uO1xuICAgIH1cbiAgICBzdHJvbmd7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZG1pbiBtZW51XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFkbWluLW1lbnUgI21haW4ge1xuICAgIG1hcmdpbi10b3A6IDQ3cHg7XG4gIH1cbn1cbi5zbGlja25hdl9tZW51e1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xufVxuIiwiI2hlYWRlcntcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyO1xuICBsaW5lLWhlaWdodDogNDZweDtcbiAgbWluLWhlaWdodDogMTMxcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXZ7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfVxuICAuZnJvbnQgJntcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJiZy10b3BfZ3JlZW4ucG5nI2RhdGF1cmlcIikgcmVwZWF0LXg7XG4gIH1cbn1cbiNsb2dve1xuICB3aWR0aDogMTAzcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgIGxlZnQ6IDI4cHg7XG4gIH1cbiAgYXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIGltZ3tcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG59XG4iLCIvLyBGT09URVJcbm1haW4jbWFpbiB7XG4gIHBhZGRpbmctYm90dG9tOiAzMTRweCArIDIwcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgfVxufVxuI2Zvb3RlcntcbiAgYm9yZGVyLXRvcDo0cHggc29saWQgIzVDQTQ0NztcbiAgYmFja2dyb3VuZDogI0YwRjBGMDtcbiAgcGFkZGluZzoxNnB4IDI2cHggMjhweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgaGVpZ2h0OiAzMTRweDtcbiAgY2xlYXI6IGJvdGg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgPiAuc2VjdGlvbntcbiAgICAvLy5jZW50ZXI7XG4gIH1cbiAgLnJlZ2lvbi1mb290ZXJ7XG4gIH1cbiAgLmJvdHRvbXtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAuYmxvY2stdmlld3N7XG4gICAgZmxvYXQ6bGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6OTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGgye1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGNvbG9yOiMzMzM7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICBhe1xuICAgICAgY29sb3I6IzY2NjtcbiAgICAgIGZvbnQtc2l6ZToxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6MjJweDtcbiAgICB9XG4gIH1cbn1cblxuI2NvcHlrZXlze1xuICBjb2xvcjojOTk5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtZmFtaWx5OiAkYXJpYWw7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xufVxuXG4jbG9nby1mb290ZXJ7XG4gIEBpbmNsdWRlIHNwcml0ZSgkbG9nby1ncmF5KTtcbiAgZmxvYXQ6bGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuIiwiI3RhYnN7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB1bHtcbiAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdCgpO1xuICB9XG4gIGxpIGF7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBwYWRkaW5nOiA1cHggMTVweDtcbiAgfVxuICAuYWN0aXZlIGF7XG4gICAgY29sb3I6ICR2ZXJkZS1lc2N1cm87XG4gIH1cbiAgLmFjdGl2ZTpob3ZlciBhe1xuICAgIGJhY2tncm91bmQ6ICR2ZXJkZS1icmFuY287XG4gIH1cbn1cbiIsIiNibG9jay1zeXN0ZW0tdXNlci1tZW51e1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICB1bC5tZW51e1xuICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gIH1cbiAgYXtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nOiA2cHggMjBweDtcbiAgfVxufVxuI2Jsb2NrLXN5c3RlbS1tYWluLW1lbnUgLnJvb3QgPiBsaSA+IGEsICNibG9jay1zeXN0ZW0tbWFpbi1tZW51IC5ub2xpbmsgPiBzcGFue1xuICB0ZXh0LXNoYWRvdzogIzQ0NCAxcHggMXB4IDA7XG4gIC5uby10ZXh0c2hhZG93ICYge1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LlNoYWRvdyhjb2xvcj0jNDQ0NDQ0LGRpcmVjdGlvbj00NSk7XG4gICAgZmlsdGVyOiBkcm9wc2hhZG93KGNvbG9yPSM0NDQ0NDQsIG9mZng9MSwgb2ZmeT0xKTtcbiAgfVxufVxuI2Jsb2NrLXN5c3RlbS1tYWluLW1lbnV7XG4gIGNvbG9yOiNGRkY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgYXtcbiAgICBjb2xvcjojRkZGO1xuICB9XG4gIC5tZW51e1xuICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gIH1cbiAgLm5vbGlua3tcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cbiAgLm5vbGluaywgYXtcbiAgICBwYWRkaW5nOiA2cHggMjBweDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG4gIC5zdWJtZW51e1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBjb2xvcjojNjY2O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIHRvcDogMDtcblxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuM3MgZWFzZS1vdXQpO1xuICAgIHNwYW4sIGF7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC43OSk7XG4gICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgbGl7XG4gICAgICAmOmhvdmVyIGF7XG4gICAgICAgIGNvbG9yOiM0OUI3MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5leHBhbmRlZHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJi5hY3RpdmUsICY6aG92ZXJ7XG4gICAgICA+IHNwYW57XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgIGNvbG9yOiM0OUI3MDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjc5KTtcbiAgICAgIH1cbiAgICAgIC5zdWJtZW51e1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBvcGFjaXR5OiAxMDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuI3BhbmVsIGJ1dHRvbi50b2dnbGUtYnV0dG9ue1xuICBkaXNwbGF5OiBub25lO1xuICB0b3A6IDE1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogaW5pdGlhbDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDEuNmVtO1xuICBsZWZ0OiAxMHB4O1xuICB6LWluZGV4OiAxMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cblxuLy8gU2xpZGVvdXRcbmJvZHkge1xuLy8gIHdpZHRoOiAxMDAlO1xuLy8gIGhlaWdodDogMTAwJTtcbn1cblxuI21lbnUge1xuICBiYWNrZ3JvdW5kOiAjNzJDNTU3O1xuICBkaXNwbGF5OiBub25lO1xuICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbm1haW4jcGFuZWwge1xuICBib3gtc2hhZG93OiAjMzMzIDJweCA2cHggMTBweDtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbn1cblxuLnNsaWRlb3V0LW1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMDtcbiAgd2lkdGg6IDI1NnB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zbGlkZW91dC1wYW5lbCB7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4uc2xpZGVvdXQtb3Blbixcbi5zbGlkZW91dC1vcGVuIGJvZHksXG4uc2xpZGVvdXQtb3BlbiAuc2xpZGVvdXQtcGFuZWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2xpZGVvdXQtb3BlbiAuc2xpZGVvdXQtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AaW5jbHVkZSBtZWRpYSgkeHNtYWxsKXtcbiAgLnNsaWRlb3V0LW9wZW4sIC5zbGlkZW91dC1vcGVuIGJvZHksIC5zbGlkZW91dC1vcGVuIC5zbGlkZW91dC1wYW5lbCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cbi5zbGlkZW91dC1tZW51e1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAjNDQ0IDFweCAxcHggMDtcbiAgcGFkZGluZy10b3A6IDQycHg7XG4gIHVsIHtcbiAgICBsaS5leHBhbmRlZHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDIwcHggMCAwIC41ZW07XG4gICAgfVxuICAgIGxpLmxlYWZ7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAmLm1lbnUgYXtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuIiwiLmJyZWFkY3J1bWJ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMCAxNnB4O1xuICBhe1xuICAgIGNvbG9yOiNGRkY7XG4gICAgJjpmaXJzdC1jaGlsZDpiZWZvcmV7XG4gICAgICBAZXh0ZW5kICVpY29uLXJldHVybjtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxuICAubm9saW5re1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5sb2FkLW1vcmUtd3JhcHBlcntcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjbGVhcjogYm90aDtcbn1cblxuLnBhZ2VyLXdyYXBwZXJ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xufVxudWwucGFnZXJ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMjBweCAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGF7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICR2ZXJkZTtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gIH1cbiAgbGl7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiR2ZXJkZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQTdEQTk3O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBtYXJnaW46IDJweDtcbiAgICAmOmhvdmVyIGF7XG4gICAgICBiYWNrZ3JvdW5kOiBzaGFkZSgkdmVyZGUsIDMwJSk7XG4gICAgfVxuICB9XG4gIC5wYWdlci1uZXh0LCAucGFnZXItcHJldmlvdXN7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYXtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDBweDtcbiAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgJjpiZWZvcmV7XG4gICAgICAgIEBleHRlbmQgJWljb24tbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBjb2xvcjogI0NDQztcbiAgICAgICAgZmxvYXQ6bGVmdDtcbiAgICAgICAgcGFkZGluZy10b3A6IDNweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpob3ZlciBhe1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBjb2xvcjojODg4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucGFnZXItbmV4dCBhOmJlZm9yZXtcbiAgICBAZXh0ZW5kICVpY29uLXJpZ2h0O1xuICB9XG4gIC5wYWdlci1sYXN0LCAucGFnZXItZmlyc3R7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGFnZXItY3VycmVudHtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gIH1cbiAgLnBhZ2VyLWVsbGlwc2lze1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG59XG5cbnVsLnBhZ2VyLWxvYWQtbW9yZXtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gIGxpe1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAucGFnZXItbmV4dCBhe1xuICAgIGJhY2tncm91bmQ6ICR2ZXJkZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgcGFkZGluZzogMCAzNXB4O1xuICAgIG1hcmdpbi10b3A6IDM0cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAycHggc29saWQgI0RERDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgc3BhbjpiZWZvcmV7XG4gICAgICAvL0BleHRlbmQgJWljb24tbG9hZG1vcmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuICAgICY6YmVmb3Jle1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgY29sb3I6aW5oZXJpdDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgfVxuICAucGFnZXItbmV4dDpob3ZlciBhe1xuICAgIGJhY2tncm91bmQ6IHRpbnQoJHZlcmRlLCAxMCUpO1xuICAgICY6YmVmb3Jle1xuICAgICAgY29sb3I6I0ZGRjtcbiAgICB9XG4gIH1cbn1cbiIsIi51c2VyLXBpY3R1cmV7XG4gIGZsb2F0OiByaWdodDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIG1hcmdpbi1sZWZ0OjZweDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGF7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnBhZ2UtdXNlcntcbiAgLmZpZWxkLWltZ3tcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMjBweCAyMHB4IDA7XG4gIH1cbiAgLm1haW4tcm9sZXtcbiAgICBmb250LXNpemU6IDI3cHg7XG4gICAgY29sb3I6IzQ0NDtcbiAgfVxuICAudXNlci1wcm9maWxlLWNhdGVnb3J5e1xuICAgIGgye1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgZHQsIGRke1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjojNzc3O1xuICAgIH1cbiAgfVxufVxuIiwiI2Jsb2NrLXZpZXdzLWV4cC1zZWFyY2gtcGFuZWwtcGFuZS0xIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIC5mb3JtLXN1Ym1pdHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCR4c21hbGwpe1xuICAjYmxvY2stdmlld3MtZXhwLXNlYXJjaC1wYW5lbC1wYW5lLTF7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgI2hlYWRlciAmIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5zbGlkZW91dC1tZW51IC5zZWFyY2gtZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAyNXB4IDAgMCAzZW07XG59XG5cbi5zZWFyY2gtZm9ybSB7XG4gIC52aWV3cy1leHBvc2VkLXdpZGdldCB7XG4gICAgcGFkZGluZzowO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICBpbnB1dC5mb3JtLXNlYXJjaCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzU2OWI0NDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMzFweDtcbiAgICBjb2xvcjogIzY1YjE0ZTtcbiAgfVxufVxuLmZvcm0taXRlbS1rZXlzIC5pY29uLnNlYXJjaDphZnRlciB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG4uZm9ybS1zZWFyY2g6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmZvcm0tc2VhcmNoOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cbiIsIiNkZXN0YXF1ZXN7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICAuY2FwdGlvbntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogI0ZBRkFGQTtcbiAgICByaWdodDogMTAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBhe1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBwYWRkaW5nOiA2cHggMjBweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuc2xpZGV7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICA+IGEge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgcGljdHVyZXtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBWaWV3IGRlIExhbmNhbWVudG9zXG4jbGFuY2FtZW50b3N7XG4gIG1pbi1oZWlnaHQ6IDQ5OHB4O1xuICAmLmxvYWRpbmd7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAwO1xuICB9XG59XG5cbi8vIDIgY29sdW1ucyArXG4kY29sdW1uc18yOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggNjMwcHgpO1xuLy8gMyBjb2x1bW5zICtcbiRjb2x1bW5zXzM6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCA5NDBweCk7XG4ucGFuZS1sYW5jYW1lbnRvc3tcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMTBweCA0MHB4O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0YwRjBGMDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHdpZHRoOiAzMDBweDtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC41cyBlYXNlLW91dCk7XG4gIC5wYW5lLWNvbnRlbnR7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICBAaW5jbHVkZSBtZWRpYSgkY29sdW1uc18yKXtcbiAgICB3aWR0aDogNjEwcHg7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJGNvbHVtbnNfMyl7XG4gICAgd2lkdGg6IDkyMHB4O1xuICB9XG4gIC8vIDQgY29sdW5hc1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjUwcHgpe1xuICAgIHdpZHRoOiAxMjMwcHg7XG4gIH1cbiAgLy8gNSBjb2x1bmFzXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE1NjBweCl7XG4gICAgd2lkdGg6IDE1NDBweDtcbiAgfVxufVxuLmxhbmNhbWVudG97XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6bGVmdDtcbiAgbWFyZ2luOiAwIDEwcHggMTBweCAwO1xuICB3aWR0aDogMzAwcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCRjb2x1bW5zXzIpe1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRjb2x1bW5zXzMpe1xuICAgIHdpZHRoOiAzMi4yJTtcbiAgfVxuICAvLyA0IGNvbHVuYXNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI1MHB4KXtcbiAgICB3aWR0aDogMjQlO1xuICB9XG4gIGltZ3tcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubmV3IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFweDtcbiAgICB0b3A6IDhweDtcbiAgICBAaW5jbHVkZSBzcHJpdGUoJHJpYmJvbi1uZXcsIG5vbmUpO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtaW5kZW50OiA3cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgJjpudGgtY2hpbGQoLW4rNCkgLm5ldyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLyphLmZpZWxkLWltZ3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBmbG9hdDogbGVmdDtcbiAgfSovXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICB9XG4gIGhlYWRlcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuOCk7XG4gICAgcGFkZGluZzogN3B4IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgLy8gVHJhbnNpdGlvblxuICAgIG9wYWNpdHk6IDE7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC41cyBlYXNlLW91dCk7XG4gIH1cbiAgLnRpdGxle1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICBjb2xvcjojRkZGO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJi5hbHR7XG4gICAgICBtYXgtd2lkdGg6IDIzMHB4O1xuICAgIH1cbiAgfVxuICAuYXV0aG9ye1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuICAuZG93bmxvYWR7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogNnB4IDA7XG4gIH1cbiAgLmZpZWxkLWJvZHl7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICB9XG4gIGZvb3RlcntcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tdG9wOiA5cHg7XG4gICAgdWwubGlua3MgYXtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbiAgLndyYXBwZXJ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgLmNvbnRlbnR7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0NDQztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIHBhZGRpbmc6IDE2cHggMjFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIG1hcmdpbi10b3A6IC0xMDAlO1xuICAgIC8vIFRyYW5zaXRpb25cbiAgICBvcGFjaXR5OiAwO1xuICAgIHRvcDogLTEwMCU7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC40cyBlYXNlLW91dCk7XG4gIH1cbiAgcHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICYuYWN0aXZlLCAmLm5vZGUtc3RpY2t5e1xuICAgIGhlYWRlcntcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdDoxcHggc29saWQgI0NDQztcbiAgICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgI0NDQztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgIC50aXRsZXtcbiAgICAgIGNvbG9yOiRsaW5rO1xuICAgIH1cbiAgICAuY29udGVudHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbn1cbi5sYW5jYW1lbnRvLm5vZGUtc3RpY2t5e1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBmbG9hdDogbm9uZTtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIGEuZmllbGQtaW1ne1xuICAgIEBpbmNsdWRlIG1lZGlhKCRjb2x1bW5zXzMpe1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG4gIGhlYWRlcntcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5jb250ZW50e1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgbWFyZ2luOiAyMHB4IDAgMCAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRjb2x1bW5zXzMpe1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbiAgLm5ld3tcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50aXRsZXtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgJi5hbHR7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG4gIC5maWVsZC1ib2R5e1xuICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gIH1cbiAgLndyYXBwZXJ7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkY29sdW1uc18zKXtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG4gIC5jZW50ZXItYWxpZ257XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCRjb2x1bW5zXzMpe1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG4gIGZvb3RlcntcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1NHB4O1xuICB9XG59XG5cbi5wYW5lLWxhbmNhbWVudG9zIC5hamF4LXByb2dyZXNze1xuICBAZXh0ZW5kIC5zcGlubmVyLXdyYXBwZXI7XG4gIC50aHJvYmJlcntcbiAgICBAZXh0ZW5kIC5zcGlubmVyO1xuICB9XG59XG4iLCIucGFnZS1kb3dubG9hZHN7XG4gICNibG9jay1zeXN0ZW0tbWFpbntcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbiNsaXN0YS1hbmltZXN7XG4gIEBleHRlbmQgLmxhcmdlLWNvbnRlbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC5wYW5lLWNvbnRlbnR7XG4gICAgbWFyZ2luOiAwIC0zcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAudmlldy5sb2FkaW5ne1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDIlO1xuICAgIHRvcDogMDtcbiAgfVxuICAudmlldy5mcm9tLWxlZnR7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbn1cbiNhbmltZXN7XG4gIC52aWV3LWZpbHRlcnN7XG4gICAgcGFkZGluZy1ib3R0b206IDE5MHB4O1xuICAgIG1hcmdpbjogMCAtNDBweCAtMTY4cHg7XG4gICAgZm9ybXtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgd2lkdGg6IDg2JTtcbiAgICB9XG4gIH1cbiAgLnZpZXctZW1wdHl7XG4gICAgY29sb3I6I0ZGRjtcbiAgfVxufVxuLmFuaW1lLm5vZGUtdGVhc2Vye1xuICBtYXJnaW46IDhweDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDE2MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLmNvbnRlbnR7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBoMiwgLmJvZHl7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuOSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYm9keXtcbiAgICBjb2xvcjojRkZGO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGhlaWdodDogMzAwcHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICB9XG4gIGgye1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgYXtcbiAgICAgIGNvbG9yOiAjRkZGO1xuICAgIH1cbiAgfVxuICBoM3tcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5ub3Rhe1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTMwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbG9yOiAjNjVCMTRFO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGl7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIHNwcml0ZSgkYmctbm90YS1ib3R0b20pO1xuICAgICAgYm90dG9tOiAtIHNwcml0ZS1oZWlnaHQoJGJnLW5vdGEtYm90dG9tKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgZGl2e1xuICAgICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3R0b206IC0gc3ByaXRlLWhlaWdodCgkYmctbm90YS1ib3R0b20pO1xuICAgIH1cbiAgfVxuICAuZ2VuZXJvc3tcbiAgICBhOmFmdGVye1xuICAgICAgY29udGVudDogXCIsXCI7XG4gICAgfVxuICAgIGE6bGFzdC1jaGlsZDphZnRlcntcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG4gIGZvb3RlcntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtNDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgIGNvbG9yOiNGRkY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGF7XG4gICAgICBjb2xvcjojRkZGO1xuICAgIH1cbiAgfVxuICAmOmhvdmVye1xuICAgIGgyIGF7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjdzIGVhc2Utb3V0KTtcbiAgICAgIGNvbG9yOiR2ZXJkZTtcbiAgICB9XG4gICAgZm9vdGVye1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3R0b20gMC40cyBlYXNlLW91dCk7XG4gICAgfVxuICAgIC5ub3Rhe1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHJpZ2h0IDAuNHMgZWFzZS1vdXQpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMaXN0b25hIGRlIGFuaW1lc1xuLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4jbGlzdGEtZGUtYW5pbWVze1xuICAuaGlkZXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIHRhYmxle1xuICAgIHdpZHRoOiA3NSU7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsKXtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICAgIHRoZWFke1xuICAgICAgYmFja2dyb3VuZDogJHZlcmRlO1xuICAgICAgY29sb3I6I0ZGRjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIH1cbiAgICB0aHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAyMnB4IHNvbGlkICR2ZXJkZTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC0xOHB4O1xuICAgICAgfVxuICAgIH1cbiAgICB0Ym9keXtcbiAgICAgIGJhY2tncm91bmQ6ICNFM0YxREY7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkICNFM0YxREY7XG4gICAgICBhe1xuICAgICAgICBjb2xvcjojNDQ0O1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIGNvbG9yOiR2ZXJkZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0ZHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gICAgdHI6bnRoLWNoaWxkKDJuKSB0ZHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICAgIHRyOm50aC1jaGlsZCgybi0xKSB0ZHtcbiAgICAgIGJhY2tncm91bmQ6ICNGQUZBRkE7XG4gICAgfVxuICB9XG4gIC5ub3RhIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuLmFscGhhZmlsdGVye1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZDogc2hhZGUoJHZlcmRlLCAxMCUpO1xuICBwYWRkaW5nOiA4cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsKXtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgbGl7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICM3QkJDNjg7XG4gICAgcGFkZGluZzogMXB4IDhweDtcbiAgICBjb2xvcjojRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJi5hY3RpdmV7XG4gICAgICBiYWNrZ3JvdW5kOiBzaGFkZSgkdmVyZGUsIDM2JSk7XG4gICAgfVxuICAgICY6aG92ZXJ7XG4gICAgICBiYWNrZ3JvdW5kOiBzaGFkZSgkdmVyZGUsIDE1JSk7XG4gICAgfVxuICB9XG59XG4uZmlsdGVyLXBhbmV7XG4gIHBhZGRpbmc6IDAgMTRweDtcbiAgYmFja2dyb3VuZDogIzY1QjE0RTtcbiAgY29sb3I6I0ZGRjtcbiAgZmxvYXQ6bGVmdDtcbiAgd2lkdGg6IDI0JTtcbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsKXtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiI25vdGljaWFze1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQ0JTtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtKXtcbiAgICB3aWR0aDogNTYlO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbCl7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cbi5ub3RpY2lhLm5vZGUtdGVhc2Vye1xuICBhZGRyZXNze1xuICAgIGJhY2tncm91bmQ6ICNGMUYxRjE7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICB9XG4gIC5jb250ZW50e1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzUyNTI1MjtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgfVxufVxuXG4ubm90LWZyb250ICNub3RpY2lhcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbm9uZTtcbn1cbi5ub3QtZnJvbnQgI25vdGljaWFzIGZvb3RlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZjBmMGYwO1xuICBwYWRkaW5nOiAwIDEwcHggNDBweDtcbn1cbiIsIi5wYW5lLXBvbGwtcmVjZW50e1xuICB3aWR0aDogMjglO1xuICBmbG9hdDogbGVmdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBAaW5jbHVkZSBtZWRpYSgkbWVkaXVtKXtcbiAgICB3aWR0aDogNDElO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRzbWFsbCl7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8gUE9MTFxuLnBvbGx7XG4gIGNvbG9yOiM1MzUzNTM7XG4gIGZvbnQtc2l6ZToxNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAuYmFye1xuICAgIGhlaWdodDoyMHB4O1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhDZ0FLQUlBQUFPSGg0ZXJxNmlINUJBQUhBUDhBTEFBQUFBQUtBQW9BQUFJUmhCMlpCN3JuQW92VFZjVWF2cEpueXhVQU93PT0pO1xuICAgIC5mb3JlZ3JvdW5ke1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjojNURBNDQ3O1xuICAgICAgaGVpZ2h0OjIwcHg7XG4gICAgfVxuICB9XG4gIGgye1xuICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiMzMzM7XG4gICAgZm9udC1zaXplOjI4cHg7XG4gICAgbWFyZ2luLWJvdHRvbToxMnB4O1xuICB9XG4gIC50ZXh0e1xuICAgIGNvbG9yOiM1REE0NDc7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnBlcmNlbnR7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLnRpdGxle1xuICAgIG1hcmdpbi1ib3R0b206MTJweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG4gIC50b3RhbHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IC0xNnB4O1xuICB9XG59XG4iLCIucGFnZS1hbmltZSAjYmxvY2stc3lzdGVtLW1haW57XG4gIG1heC13aWR0aDpub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucGFnZS1hbmltZSAucGFuZWwtZGlzcGxheXtcblxufVxuXG4ubm9kZS1hbmltZXtcbiAgYS5pY29ue1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gIH1cbiAgLmZpZWxkLWdlbmVyb3MgYXtcbiAgICBjb2xvcjogIzI0M0YxQztcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjoxcHggc29saWQgIzI0M0YxQztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6MTFweDtcbiAgICBwYWRkaW5nOjVweCAxMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLXJpZ2h0OjJweDtcbiAgfVxufVxuLmFuaW1lLWZ1bGx7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgI3BhZ2UtdGl0bGV7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAubm9kZS1pbmZve1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpe1xuICAgICAgd2lkdGg6IDgzJTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bSl7XG4gICAgICB3aWR0aDogODMlO1xuICAgIH1cbiAgfVxuICAuYXV0aG9ye1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjojQ0VFQkM0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAtNDZweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKSB7XG4gICAgICBtYXJnaW46IC0yNXB4IDAgMjBweCAwO1xuICAgIH1cbiAgfVxuICAudXNlci1waWN0dXJle1xuICAgIHdpZHRoOiA1MHB4O1xuICB9XG4gIC5zdWJtaXR0ZWR7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgLnVzZXJuYW1le1xuICAgICAgY29sb3I6I0ZGRjtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuICAuZ2VuZXJvc3tcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzI0M0YxQztcbiAgICBwYWRkaW5nLXJpZ2h0OjE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OjE0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAudGl0dWxvcy1hbHR7XG4gICAgY29sb3I6ICMyNDNGMUM7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMjQzRjFDO1xuICAgIHBhZGRpbmctcmlnaHQ6MTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6MTRweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5hZGR0aGlzX3Rvb2xib3h7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLXJpZ2h0OiA3MHB4O1xuICAgID4gYXtcbiAgICAgIG1hcmdpbjowIDhweDtcbiAgICAgIGZsb2F0OmxlZnQ7XG4gICAgfVxuICAgIGltZ3tcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICAgIC5hZGR0aGlzX2J1dHRvbl9jb21wYWN0e1xuICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICB9XG4gIH1cbiAgLnBvc3Rlci10cmFpbGVye1xuICAgIGZsb2F0OmxlZnQ7XG4gICAgbWFyZ2luOjAgMzBweCAzOHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YWZ0ZXJ7XG4gICAgICBAZXh0ZW5kIC5jbGVhcmZpeDtcbiAgICB9XG4gICAgc3BhbiBpbWd7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLnRyYWlsZXItYnV0dG9ue1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWluZGVudDogLTRweDtcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0ODdFMzg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzIsIDEyNiwgNTYsIDAuOCk7XG4gICAgICB9XG4gICAgICBpbWd7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuYW5pbWUtaW5mb3tcbiAgICBtYXJnaW46MzBweCAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICB9XG4gICAgLmZpZWxke1xuICAgICAgY29sb3I6I0ZGRjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOjE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICB9XG4gICAgYXtcbiAgICAgIGNvbG9yOiNGRkY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgLmZpZWxkLW5vdGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gIH1cbiAgLmluZm8tcmlnaHR7XG4gICAgYmFja2dyb3VuZDogIzgwQ0I2ODtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDIwcHggMCAyMHB4IDI3OHB4O1xuICAgIG1pbi1oZWlnaHQ6IDExMnB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAuaW5saW5le1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICAgIGEuaWNvbntcbiAgICB9XG4gIH1cbiAgLmZpZWxkLWJvZHl7XG4gICAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gICAgLmZpZWxkLWxhYmVse1xuICAgICAgZm9udC1zaXplOjE4cHg7XG4gICAgICBtYXJnaW46MTRweCAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gICAgLml0ZW17XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi5zY3JlZW5zaG90c3tcbiAgLnBhbmUtY29udGVudHtcbiAgICBwYWRkaW5nOiAwIDIwcHggMjZweCAwO1xuICAgIGJvcmRlci1ib3R0b206MnB4IHNvbGlkICNGMEYwRjA7XG4gICAgbWFyZ2luLWJvdHRvbTogMjJweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKSB7XG4gICAgICBwYWRkaW5nOiAwIDIwcHggMjZweDtcbiAgICB9XG4gIH1cbiAgLml0ZW17XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgfVxuICBhIHtcbiAgICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgICBjdXJzb3I6IHpvb20taW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgICAgbWF4LXdpZHRoOiAxMjVweDtcbiAgICB9XG4gIH1cbn1cbi5wYWdlLWFuaW1lIC5wYW5lbC1wYW5lIC5wYW5lLXRpdGxlLCAjZG93bmxvYWRzID4gaDIgPiBkaXZ7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgY29sb3I6IzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICY6YmVmb3Jle1xuICAgIEBleHRlbmQgJWljb24tZG93bjI7XG4gIH1cbn1cbi5wYW5lbC1wYW5lLmluYWN0aXZlIC5wYW5lLXRpdGxlOmJlZm9yZXtcbiAgQGV4dGVuZCAlaWNvbi1yaWdodDI7XG59XG5cbiNyYXRpbmcsIC5ub2RlLWFuaW1lLXNlYXJjaCAuZmllbGQtbm90YXtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICAvL2hlaWdodDogMTEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM3MUM1NTc7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbiAgcGFkZGluZzogOHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAudmFsdWV7XG4gICAgZm9udC1zaXplOiA1MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cbiAgfVxuICAucmF0aW5nLWJvdHRvbXtcbiAgICBiYWNrZ3JvdW5kOiAjMjQzRjFDO1xuICAgIGNvbG9yOiNGRkY7XG4gICAgbWFyZ2luOiAwIC04cHggMDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC53aWRnZXR7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICByaWdodDogMDtcbiAgICAuZmllbGR7XG4gICAgICB3aWR0aDogMjgwcHg7XG4gICAgICBtYXJnaW46IDE1cHg7XG4gICAgfVxuICB9XG4gICY6aG92ZXIgLndpZGdldHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLm5vdC1sb2dnZWQtaW4gI3JhdGluZ3tcbiAgLndpZGdldHtcbiAgICBjb2xvcjojRkZGO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOm5vbmU7XG4gIH1cbn1cblxuLm5vZGUtYW5pbWUtc2VhcmNoe1xuICBjb2xvcjojNjY2O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaDJ7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG4gIC5maWVsZC1jb250ZW50e1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICB9XG4gIC5maWVsZC10aXR1bG9zLWFsdHtcbiAgICBjb2xvcjojOTk5O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG4gIC5maWVsZC1nZW5lcm9ze1xuICAgIGF7XG4gICAgICBjb2xvcjojQUZBRkFGO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjQUZBRkFGO1xuICAgIH1cbiAgfVxuICAuZmllbGQtcG9zdGVye1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMjBweCAyMHB4IDIwcHggMDtcbiAgICBjbGVhcjogbGVmdDtcbiAgfVxuICAuZmllbGQtYm9keXtcbiAgICBtYXJnaW46IDIwcHggOTRweCAxOHB4IDA7XG4gIH1cbiAgLmZpZWxkLW5vdGF7XG4gICAgdG9wOiA3NnB4O1xuICAgIGJhY2tncm91bmQ6ICR2ZXJkZTtcbiAgICBjb2xvcjojRkZGO1xuICAgIGhlaWdodDogYXV0bztcbiAgICAuZmllbGQtbGFiZWx7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG4gICAgLml0ZW17XG4gICAgICBmb250LXNpemU6IDQ2cHg7XG4gICAgICBtYXJnaW46IDdweCAwcHg7XG4gICAgfVxuICB9XG4gIHN2ZyBwYXRoe1xuICAgIGZpbGw6ICMzMzM7XG4gIH1cbiAgLmZpZWxkLXF1YWxpZGFkZSAuZmllbGQtbGFiZWx7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICB9XG4gIC5maWVsZC5pbmxpbmV7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG59XG4iLCIjZG93bmxvYWRze1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAucGFuZS10aXRsZTpiZWZvcmV7XG4gICAgY29udGVudDogbm9uZTtcbiAgfVxuICAucGFnZS1hbmltZSAmIC5wYW5lLXRpdGxlIGRpdntcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gIH1cbn1cbi5ub2RlLXR5cGUtZG93bmxvYWQgbWFpbntcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5kbC10YWJze1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0UxRTFFMTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGltZ3tcbiAgICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcbiAgfVxuICBsaXtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgID4gc3BhbntcbiAgICAgIGNvbG9yOiMzMzM7XG4gICAgICBtYXJnaW4tcmlnaHQ6MjBweDtcbiAgICB9XG4gIH1cbiAgLmRsLXRhYntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3BhY2l0eTogMC42O1xuICAgICYuYWN0aXZle1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIEBpbmNsdWRlIHNwcml0ZSgkaW5kaWNhdG9yLXVwKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvdHRvbTogLTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMThweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgfVxuICAgIGF7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBib3JkZXI6MXB4IHNvbGlkICM5OTk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICB9XG4gICAgYS5wYWRyYW97XG4gICAgICBwYWRkaW5nOiA2cHggMjJweDtcbiAgICAgIGJhY2tncm91bmQ6ICM2RkM1NTc7XG4gICAgICB3aWR0aDogMTIwcHg7XG4gICAgfVxuICB9XG4gIC5uZXcgYXtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiBsaWdodGVuKCR2ZXJkZSwgNyUpO1xuICAgIH1cbiAgfVxufVxuXG4uZGwtY29udGVudHtcbiAgbWluLWhlaWdodDogMTcycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLnNwaW5uZXJ7XG4gICAgdG9wOiAxNzhweDtcbiAgICBtYXJnaW4tbGVmdDogLTM2cHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4udGFicy1zZXJ2aWRvcmVze1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDIycHggMCAwO1xuICBsaXtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBhe1xuICAgICAgYmFja2dyb3VuZDogI0YwRjBGMCB1cmwoXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhEZ0FVQUtJQUFNek16TS9Qei9YMTlkWFYxZExTMHYvLy93QUFBQUFBQUNINUJBRUhBQVVBTEFBQUFBQU9BQlFBQUFNM1dGclF2cEM1RnRla1ZjNnNYNzRBQjRvWHVYM2xNb0RnSUt4czR4WnZQQ3YxZFM4Q01lMFFRYUFSRUhCb2dlSVJaNHpFbmxCQUFnQTdcIilcbiAgICAgICBuby1yZXBlYXQgMTZweCBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiA1cHggMjBweCA1cHggNDJweDtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgaGVpZ2h0OjUwcHg7XG4gICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgIGJvcmRlcjoxcHggc29saWQgI0UxRTFFMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuZWRpdHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgY29sb3I6IzZFQzU1Nzs7XG4gICAgfVxuICB9XG4gIC5hY3RpdmV7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRGdBSEFKRUFBRzdGVjZUYmx2Ly8vd0FBQUNINUJBRUhBQUlBTEFBQUFBQU9BQWNBQUFJVWxCOXh1d0dnR0hvdk1rZnJ6ZGxpVGlrZkdCWUFPdz09XCIpIG5vLXJlcGVhdCBib3R0b20gY2VudGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNHB4O1xuICAgIGF7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhEZ0FVQUtJQUFIREZWNEhNYStUMDMzaklZWXJRZHYvLy93QUFBQUFBQUNINUJBRUhBQVVBTEFBQUFBQU9BQlFBQUFNM1dGclF2cEM1RnRla1ZjNnNYNzRBQjRvWHVYM2xRb0FnSWF4czR4WnZQQ3YxZFM5Q01PMFF3YUF4RUhCb2crSVJaNHpFbmxCQUFnQTdcIik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgICAgYm9yZGVyLWNvbG9yOiM2RkM1NTc7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICAgIC5lZGl0e1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpIHtcbiAgICBsaSwgLmFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxNHB4O1xuICAgIH1cbiAgfVxufVxuLmxpbmtjaGVja2Vke1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG4uZG93bmxvYWR7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBvcGFjaXR5OiAxO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgNTAwbXMgZWFzZS1pbi1vdXQpO1xuICBAaW5jbHVkZSBtZWRpYSAoJHhzbWFsbCkge1xuICAgIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB9XG4gIH1cbiAgJi5oaWRle1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIGF7XG4gICAgY29sb3I6IzZEQzU1NztcbiAgfVxuICAudGFicy13cmFwcGVye1xuICAgIGJvcmRlcjogMDtcbiAgfVxuICAubGVmdHtcbiAgICBmbG9hdDpsZWZ0O1xuICAgIHdpZHRoOjUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgID4gLmZpZWxke1xuICAgICAgbWFyZ2luOjZweCAwO1xuICAgIH1cbiAgICBhe1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gIH1cbiAgLy8gU1ZHXG4gIC5pbmplY3R7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHBhdGh7XG4gICAgICBmaWxsOiAjMzMzO1xuICAgIH1cbiAgfVxuICAuZmllbGQtYm9keXtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQU1BQUFBcDRYaURBQUFBQTNOQ1NWUUlDQWpiNFUvZ0FBQUFybEJNVkVYLy8vOXd4VmR3eFZkd3hWZHd4VmR3eFZkd3hWZHd4VmR3eFZkd3hWZHd4VmR3eFZkd3hWZHd4VmR3eFZmLy8vL3Q5K3JaNjlQVzV0SFU0OC9UNHMvTTRzYkozTVMxM2FteTJLZWgwcEtyeTZHcHlKK2d4WmFpdTVxTXhYdWJ2SkYveDJxSHZYZU11bjkydzE5d3hWZUd1M1p2dzFhRnVYWnV3VlZ0d0ZXRHRYUnN2VlJxdTFOcHVWSm50VkJtczA5a3NFNTRvbXRpckV4Z3FVdGZxRXAxbm1sZnAwcGRwRWhpb0ZCWW0wUU1BUmUxQUFBQU9uUlNUbE1BRVNJelJGVm1kNGlacXJ2TTNlNy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL2tISnBRd0FBQUFsd1NGbHpBQUFMRWdBQUN4SUIwdDErL0FBQUFCWjBSVmgwUTNKbFlYUnBiMjRnVkdsdFpRQXhNUzh4T0M4eE1udkJ2WGdBQUFBY2RFVllkRk52Wm5SM1lYSmxBRUZrYjJKbElFWnBjbVYzYjNKcmN5QkRVemJvdkxLTUFBQUJ0MGxFUVZSSWlhMldhMWZDTUF5R3U0c3RiSE1UVUJSdm9NWkoxVEVSRlB6L2Y4eXNaWGhKTnRnTzc0ZWRuYWJQU2RLa0Z5RTQrYkw0U3A4MThqb0daQ1FjRi85SHV5WjdFRGhDQVlDVStGSENDY0RiZ2VEc1dNV3drZmxWTlE2VUswUUlSS0VRYm1GaTVBTkVpaExvSmdMZ1Y4TG5wcGM2Q05JcFZJZVlDWCtSdXVsYmJQK2crT0NjZlJEbk4rSHU1K1duT0FHMVBwd2tTWEtla3ZGZ2czU0pKYjFGSWpsN0pZWnVHUmF4NkxzQ3VjeUlZUnNhY2FNZkMrU2FJS1VUNFpGa0xQSk1BZ3ZzUnBCTTgxcms2WVZhUXR4N1RrVEhOOGpubERGRldCMDNwdU1XZWFlTERMRlpBSzhDT1gxam5OaGtISnFNUlhKS2hLWnBQQ1laZzF6TkdDOFJ1cEZNS2haaEtvbUtaUTF5VC92Rkl0V0JjV1V4Z2JIcFR4ZmptL0ZDVThLbXp5MXltcTIrVmhsVEZydklYQ2xoTXJvWVRaaHhVMHErWVhxWVM0OEp6RFlNMTVaWkg1RSt0OGlockdqK2ZJRElnRlkvOENxMzJHeUl5SkJXZjd2RjZFYk8xdk9QK1pvSnpLMXlBanBmcnBZNWszN3Boam1VVXEwMVY1YnlVR3B4OUxVNllOc2M0eTB1aTA1SEtmYWVMSVhtZjFmU3p1QU9lYjAydmNSYlBCV01tajFJckt2bXp4NnJSbzhycTlvbjNEZjlVdVRlSkwvZWJBQUFBQUJKUlU1RXJrSmdnZz09XCIpXG4gICAgIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjtcbiAgICBjb2xvcjojNjY2O1xuICAgIHBhZGRpbmctbGVmdDo2MHB4O1xuICAgIHdpZHRoOiAzMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCA2MHB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiA1cHg7XG4gICAgfVxuICAgIC5maWVsZC1sYWJlbHtcbiAgICAgIGNvbG9yOiMzMzM7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIC5pdGVte1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG4gIH1cbiAgLmZpZWxkLWxhYmVse1xuICAgIGNvbG9yOiM2NjY7XG4gIH1cbiAgLmZpZWxkLWl0ZW1zLCAuaXRlbXtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjojMzMzO1xuICB9XG4gIC5maWVsZC5pbmxpbmV7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmZpZWxkLWF0cmlidXRvcyAuZmllbGQtaXRlbXtcbiAgICBjb2xvcjogIzY2NjtcbiAgfVxufVxuLnNlcnZpZG9yZXMtd3JhcHBlcntcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxMTBweDtcbn1cblxuLnNlcnZpZG9ye1xuICBiYWNrZ3JvdW5kOiAkdmVyZGU7XG4gIHBhZGRpbmc6MjBweCAxOHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMjAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vQGluY2x1ZGUgdHJhbnNpdGlvbihsZWZ0LHJpZ2h0IDgwMG1zIGVhc2UtaW4tb3V0KTtcbiAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgfVxuICBsaXtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICAgIGF7XG4gICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgICAgcGFkZGluZzogMTJweCAxNXB4O1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgYmFja2dyb3VuZDogIzI0M0YxQztcbiAgICAgICAgY29sb3I6I0ZGRjtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5PRkYgc3BhbntcbiAgICAgIGJhY2tncm91bmQ6ICNCNzYyMkI7XG4gICAgICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gICAgICBjb2xvcjojRkZGO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGN1cnNvcjpkZWZhdWx0O1xuICAgIH1cbiAgfVxuICAuYWN0aW9uc3tcbiAgICBtYXJnaW46IC0xMHB4IDEycHggMTBweCAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gICAgYXtcbiAgICAgIGNvbG9yOiNGRkY7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZToxM3B4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB9XG4gIH1cbiAgJi5yZXN0cml0b3tcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMTBweCBzb2xpZCAjNzJDNTU3O1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpe1xuICAgICAgYm9yZGVyOjA7XG4gICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgfVxuICB9XG4gIC5zZXJ2aWRvcmZyZWV7XG4gICAgYmFja2dyb3VuZDogIzcyQzU1NztcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgbWFyZ2luOiAxMHB4IDMwcHggMjVweCAzMHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpe1xuICAgICAgbWFyZ2luOiAxMHB4IDAgMjVweCAwO1xuICAgIH1cbiAgfVxufVxuXG4ubGlua2NoZWNrZWR7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuXG4iLCIjY29tbWVudHN7XG4gIGF7XG4gICAgY29sb3I6aW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG4gIHNwYW57XG4gICAgYmFja2dyb3VuZDogIzZGQzU1NztcbiAgICBwYWRkaW5nOiAwIDhweCAwIDEwcHg7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAyM3B4O1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIH1cbn1cbiNjb21tZW50c3tcbiAuaW5kZW50ZWR7XG4gICAgbWFyZ2luLWxlZnQ6IDIlO1xuICAgIC5pbmRlbnRlZCAuaW5kZW50ZWQgLmluZGVudGVkIC5pbmRlbnRlZCB7XG4gICAgICBtYXJnaW4tbGVmdDowO1xuICAgIH1cbiAgfVxuICBhcnRpY2xlOmZpcnN0LW9mLXR5cGUge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gIH1cbn1cblxuLmNvbW1lbnR7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTRweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFRkVGRUY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLm5ldyB7XG4gICAgY29sb3I6ICNGRjRENEQ7XG4gICAgLyogZm9udC13ZWlnaHQ6IGJvbGQ7ICovXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgJi5maXJzdHtcbiAgICBib3JkZXI6bm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG4gICYuY29tbWVudC1ieS12aWV3ZXJ7XG4gICAgYm9yZGVyLWxlZnQ6ICM4RkNEN0IgM3B4IHNvbGlkO1xuICAgIC8vYm9yZGVyLWJvdHRvbTogIzhGQ0Q3QiAxcHggc29saWQ7XG4gIH1cbiAgLmNvbnRlbnR7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBtaW4taGVpZ2h0OjgwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnVzZXItcGljdHVyZXtcbiAgICBmbG9hdDpsZWZ0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuICAuc3VibWl0dGVke1xuICAgIGJhY2tncm91bmQ6ICNFQkVCRUI7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIC51c2VybmFtZXtcbiAgICAgIGNvbG9yOiM1OUJCMzk7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgdGltZXtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxuICAuY2JvZHl7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRmdBZkFMTUFBT3ZyNiszdDdmZjM5L0x5OHZ2NysrL3Y3L1gxOWYvLy8vbjUrZkh4OGYvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUNINUJBRUhBQW9BTEFBQUFBQVdBQjhBQUFSU1VNbEpxNzA0NjgyNy8yQW9qbVJwbnVaQkNFWnJJSVNHR0FGZzM3aEZHSGpmVTRTQmIzaVRISGpFcEFKUlN5YVJ6aVJoWmloRWZUckVvT25VN0xoWURzSWE3aERJUlpBZ0Z6cVFTY0xTQUVXS0FBQTdcIilcbiAgICAgbm8tcmVwZWF0IGxlZnQgLTRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuZmllbGQtY29tbWVudC1ib2R5e1xuICAgIHBhZGRpbmc6IDAgMjJweDtcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xuICB9XG4gIC5idXR0b257XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG4gICY6aG92ZXIgLmNvbW1lbnQtbGlua3MsICYuYWN0aXZlIC5jb21tZW50LWxpbmtze1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbiAgLmNvbW1lbnQtbGlua3N7XG4gICAgcGFkZGluZzogNnB4IDEycHggMnB4O1xuICAgIHdpZHRoOjEwMCU7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgID4gLnJhdGUtd2lkZ2V0e1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTRweDtcbiAgICAgIG1hcmdpbi1sZWZ0OjE2cHg7XG4gICAgfVxuICAgIC5saW5rcyBhe1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGEuY29tbWVudC1lZGl0OmJlZm9yZXtcbiAgICBAZXh0ZW5kICVpY29uLWVkaXQ7XG4gIH1cbiAgYS5jb21tZW50LXJlcGx5OmJlZm9yZXtcbiAgICBAZXh0ZW5kICVpY29uLWFycm93LWxlZnQ7XG4gIH1cbiAgYS5jb21tZW50LWRlbGV0ZTpiZWZvcmV7XG4gICAgQGV4dGVuZCAlaWNvbi1kZWxldGU7XG4gIH1cbn1cbi5tYWluLXJvbGV7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzg4ODtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuZGl2LmNvbW1lbnQtd2FybmluZ3tcbiAgbWFyZ2luLXRvcDogMTNweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjojNjY2O1xuICBvbHtcbiAgICBwYWRkaW5nOjA7XG4gICAgbGl7XG4gICAgICBsaXN0LXN0eWxlOiBudW1iZXI7XG4gICAgfVxuICB9XG4gIHN0cm9uZ3tcbiAgICBjb2xvcjojMzMzO1xuICB9XG4gIGF7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IzY2NjtcbiAgfVxufVxuXG4jY29tbWVudC1hZGQtc2VjdGlvbntcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAuYnV0dG9ue1xuICAgIGZvbnQtc2l6ZTogMTZweFxuICB9XG4gICYrLmNvbW1lbnQtZm9ybXtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0VFRTtcbiAgICBwYWRkaW5nOiAxNHB4IDA7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNFRUU7XG4gIH1cbn1cblxuLy8gREVOw5pOQ0lBU1xuLmNvbW1lbnQgLmNvbW1lbnQtbGlua3MgbGkuY29tbWVudC1jb21wbGFpbnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogLTE2cHg7XG4gIGF7XG4gICAgZm9udC1zaXplOiAwcHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAmOmhvdmVye1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgICAmOmJlZm9yZXtcbiAgICAgIEBleHRlbmQgJWljb24tZmxhZztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGNvbG9yOiRyZWQ7XG4gICAgfVxuICB9XG5cbiAgI21vZGFsLW1lc3NhZ2V7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuZGl2LmN0b29scy1jb21tZW50LWFidXNle1xuICAubW9kYWwtaGVhZGVye1xuICAgIG1hcmdpbjogLTE2cHg7XG4gICAgYmFja2dyb3VuZDogJHZlcmRlO1xuICAgIGNvbG9yOiNGRkY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnBvcHVwcy1jbG9zZXtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgdGFibGV7XG4gICAgYmFja2dyb3VuZDogI0ZBRkFGQTtcbiAgICBib3JkZXI6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYm94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjYpO1xuICB9XG4gIHRke1xuICAgIGJvcmRlcjogMDtcbiAgICAvL2JhY2tncm91bmQ6IG5vbmU7XG4gICAgJi5wb3B1cHMtYm9yZGVye1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgdGV4dGFyZWF7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuXG4vLyBSQVRJTkdcbi5yYXRlLXdpZGdldC15ZXNub3tcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiM2NjY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgZGlzcGxheTogaW5saW5lO1xuICBhe1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAmOmhvdmVye1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG4gID4gZGl2e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAubGlrZSAucmF0ZS1idXR0b257XG4gICAgY29sb3I6IzU5QkEzOTtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuICAuZGlzbGlrZSAucmF0ZS1idXR0b257XG4gICAgY29sb3I6I0IyMkQwMDtcbiAgfVxuICAubGlrZSBhe1xuXG4gICAgJjphZnRlcntcbiAgICAgIEBleHRlbmQgJWljb24tbGlrZTtcbiAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxuICAuZGlzbGlrZSBhe1xuICAgICY6YmVmb3Jle1xuICAgICAgQGV4dGVuZCAlaWNvbi1kaXNsaWtlO1xuICAgICAgcGFkZGluZy1yaWdodDogNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxufVxuXG4jY29tbWVudC10b3Atdm90ZWR7XG4gIC5jYm9keXtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLnN1Ym1pdHRlZHtcbiAgICBiYWNrZ3JvdW5kOiAjQjIyRDAwO1xuICAgIC51c2VybmFtZSwgLm1haW4tcm9sZXtcbiAgICAgIGNvbG9yOiNGRkY7XG4gICAgfVxuICAgIHRpbWV7XG4gICAgICBjb2xvcjojRkZGO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU1BPSUxFUlNcbi8vLy8vLy8vLy8vLy8vLy8vXG5kaXYuc3BvaWxlciB7XG4gIHBhZGRpbmc6IDVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgZGl2LnNwb2lsZXItdGl0bGUge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzk5OTtcbiAgICBiYWNrZ3JvdW5kOiAjRUVFO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuICAgIGRpdi5zcG9pbGVyLXRvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGNvbG9yOiMzMzM7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICB9XG4gICAgICAmLmhpZGUtaWNvbjpiZWZvcmV7XG4gICAgICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICB9XG4gICAgICAmLnNob3ctaWNvbjpiZWZvcmV7XG4gICAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5kaXYuc3BvaWxlciBkaXYuc3BvaWxlci1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICBib3JkZXItdG9wOiAwcHg7XG4gIGJhY2tncm91bmQ6ICNGNUY1RjU7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xufVxuZGl2LnNwb2lsZXItY29udGVudC5oaWRle1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jY29tZW50YXJpb3MtdXN1YXJpb3tcbiAgLnZpZXdzLXJvd3tcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNHB4O1xuICB9XG4gIC52aWV3cy1yb3ctZXZlbntcbiAgICBiYWNrZ3JvdW5kOiAjRUVFO1xuICB9XG59XG4iLCIjcmVsYWNpb25hZG9ze1xuICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxuICAucGFuZS10aXRsZSBhe1xuICAgIGNvbG9yOmluaGVyaXQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAuY29udGVudHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGgze1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG4gIC50aXRsZXtcbiAgICBjb2xvcjojRkZGO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgLW8tdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC44KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuZmllbGR7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cbiAgLml0ZW17XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOjEuMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZzowIDAgMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKSB7XG4gICAgICB3aWR0aDogMzIwcHg7XG4gICAgfVxuICAgICY6aG92ZXIgYSAudGl0bGV7Y29sb3I6IzVBQkMzQTt9XG4gICAgJjpob3ZlciAuaW1ne1xuICAgICAgaGVpZ2h0OjE2MHB4O1xuICAgIH1cbiAgICBhe1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIC5pbWd7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGhlaWdodCAzMDBtcyBlYXNlLW91dCk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCkge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAmOmhvdmVye1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIucGFnZS10YXhvbm9teSAjYmxvY2stc3lzdGVtLW1haW57XG4gIG1heC13aWR0aDogbm9uZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xufVxuLnBhbmUtY3VzdG9tLnN1bW1hcnl7XG4gIGNvbG9yOiNGRkY7XG4gIHBhZGRpbmc6IDIwcHggMDtcbn1cblxuI2FuaW1lcy1jb20tdGVybW97XG4gIC52aWV3LWZpbHRlcnN7XG4gICAgQGV4dGVuZCAuZ3JlZW47XG4gICAgZm9ybXtcbiAgICAgIEBleHRlbmQgLmNlbnRlci13cmFwcGVyO1xuICAgICAgYmFja2dyb3VuZDogc2hhZGUoJHZlcmRlLCAxMCUpO1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG4gIH1cbiAgLnZpZXctY29udGVudHtcbiAgICBAZXh0ZW5kIC5jZW50ZXItd3JhcHBlcjtcbiAgfVxufVxuIiwiLy8gRE9Bw4fDlUVTXG4udmFudGFnZW5ze1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC5yaWdodHtcbiAgICBmbG9hdDpsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OjMwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJHhzbWFsbCl7XG4gICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIH1cbiAgfVxuICAuYnV0dG9ue1xuICAgIGNvbG9yOiNGRkY7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkeHNtYWxsKXtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbiAgaDJ7XG4gICAgY29sb3I6IzZFQzU1NztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZToxLjRlbTtcbiAgICBtYXJnaW46MDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCR4c21hbGwpe1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuICB1bHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgfVxuICBsaXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjojNjY2O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgJi5pY29uOmFmdGVye1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIGNvbG9yOiR2ZXJkZTtcbiAgICB9XG4gIH1cbiAgc21hbGx7XG4gICAgZm9udC1zaXplOjEycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDo4cHg7XG4gICAgY29sb3I6I0FFQUVBRTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICBzdHJvbmcubGlua3tcbiAgICBjb2xvcjokdmVyZGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAubm9kZS1wcm9kdXRvICZ7XG4gICAgLnJpZ2h0e1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICB9XG4gICAgLmRvbmF0ZS1pbWd7XG4gICAgICBtYXJnaW4tbGVmdDogLTYwcHg7XG4gICAgfVxuICB9XG59XG5cbi5kb25hdGlvbi1mbGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMjY1cHg7XG4gIGhlaWdodDogMjY1cHg7XG4gIG1hcmdpbjogMCAyMHB4IDQwcHggMDtcbiAgcGFkZGluZzogNDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzZmYzU1NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG4uZG9uYXRpb24tZmxhZzpob3ZlciB7XG4gIG9wYWNpdHk6IC44O1xufVxuLmRvbmF0aW9uLWFyZWEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kb25hdGUtaW1ne1xuICB3aWR0aDogNDEwcHg7XG4gIGhlaWdodDogNjMycHg7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9kb25hdGUtaW1nLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiA0ODBweDtcbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsKXtcbiAgICBtYXJnaW4tbGVmdDogNDUycHg7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bSl7XG4gICAgbWFyZ2luLWxlZnQ6IDQ1MnB4O1xuICB9XG59XG5cbi5kb25hdGUtaW1nLXNtYWxse1xuICBAZXh0ZW5kIC5kb25hdGUtaW1nO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvZG9uYXRlLWltZy1zbWFsbGVyLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xufVxuXG4uY2hlY2tvdXQtYnV0dG9ucyAuYnV0dG9uLW9wZXJhdG9ye1xuICBtYXJnaW46IDAgMTRweCAwIDJweDtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBd0ZHRSxJQUFJLENBQUM7RUFDSCxVQUFVLEVBQUUsVUFBVyxHQUN4Qjs7QUFFRCxDQUFDLEVBQUQsQ0FBQyxBQUVFLE9BQU8sRUFGVixDQUFDLEFBR0UsUUFBUSxDQUFDO0VBQ1IsVUFBVSxFQUFFLE9BQVEsR0FDckI7O0Ft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S0FBTTtFQUNiLE1BQU0sRUFBRSxLQUFNO0VBQ2QsVUFBVSxFQUFFLDRCQUFHLENBQTBCLFNBQVMsQ0FBQyxNQUFNO0VBQ3pELFFBQVEsRUFBRSxRQUFTO0VBQ25CLFdBQVcsRUFBRSxLQUFNLEdBT3BCO0V4Q2hCRyxNQUFNLENBQU4sTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0l3Q0loQyxXQUFXLEVBY1gsaUJBQWlCLENBZE47TUFPUCxXQUFXLEVBQUUsS0FBTSxHQUt0QjtFeENoQkcsTUFBTSxDQUFOLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtJd0NJakMsV0FBVyxFQWNYLGlCQUFpQixDQWROO01BVVAsV0FBVyxFQUFFLEtBQU0sR0FFdEI7O0FBRUQsaUJBQWlCLENBQUE7RUFFZixnQkFBZ0IsRUFBRSxvQ0FBRztFQUNyQixtQkFBbUIsRUFBRSxHQUFJLEdBQzFCOztBQUVELGlCQUFpQixDQUFDLGdCQUFnQixDQUFBO0VBQ2hDLE1BQU0sRUFBRSxZQUFhLEdBQ3RCIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
