@import url(normalize.css);
@import url(/scripts/libs/owlCarousel/owl.carousel.css);
* {
  box-sizing: border-box; }

.front-end * {
  box-sizing: border-box; }

.front-end *:before,
.front-end *:after {
  box-sizing: border-box; }

#canvas * {
  box-sizing: border-box; }

.box * {
  box-sizing: border-box; }

.box *:before,
.box *:after {
  box-sizing: border-box; }

html {
  -webkit-tap-highlight-color: transparent;
  color: #4f4f4f; }

body {
  padding-top: 115px;
  background-color: #f8f8f8;
  background-image: url("/images/background-dotted.png");
  background-position: center;
  margin: 0; }

body.front-end {
  position: relative;
  overflow-x: hidden; }

section, footer {
  clear: both; }

ul {
  list-style-type: none;
  padding: 0px;
  margin: 0px; }

video {
  width: 100% !important;
  height: 100% !important;
  /*@include breakpoint(tablet-horizontal) {
        width: auto !important;
        height: auto !important;
    }*/ }

img {
  vertical-align: middle; }

.creditsTable {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

.creditsTable tr:nth-child(even) {
  background-color: #dddddd;
}

.creditsTable td, th {
	  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

.img-responsive {
  display: block;
  width: 100% \9;
  max-width: 100%;
  height: auto; }

.exercise-pause-warning{
    display: block;
    margin: 1em;
    background-color: #ffc817;
    padding: 1em;
}
.btn-exercise i{
  font-size:22px;
}
.box .btn-exercise{
  display: inline-flex;
  vertical-align: bottom;
  font-size: 16px;
  width: 100%;
  margin: 0.25em;
}

.box .btn-exercise--accent{
  background-color: #ffc817;
  color:black;
}

.btn-container .btn-exercise--tertiary{
  background: #e5e5e5;
  color: black;
}

.box .btn-exercise--secondary{
  background-color: #008b00;
  color: white;
}
.box .btn-exercise--secondary:active, .box .btn-exercise--secondary:focus, .box .btn-exercise--secondary:hover{
  background-color: #3c9b3c;
  color: white;
}

.box .btn-exercise--accent:active, .box .btn-exercise--accent:focus, .box .btn-exercise--accent:hover{
  background-color: #ffd960;
  color:black;
}

.container-tooltip{
  padding: 0em 1em 1em 0em;
}
.container-tooltip span{
  vertical-align: top;
  margin-right: 1em;
  font-weight: bold;
}

.container-tooltip .btn-tooltip{
  cursor: default;
  border-radius: 5em;
  font-size: 12px;
  padding: 5px;
  display: inline-flex;
  vertical-align: bottom;
}
.btn-tooltip i{
  font-size: 16px;
  cursor: pointer;
}

.error {
  color: #e9353b; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0; }

.pageWysiwygBlock {
  margin-bottom: 10px; }

.pageWysiwygBlock ul {
  color: #de2130; }

.pageWysiwygBlock a {
  text-decoration: underline; }

.mceContentBody img {
  max-width: 100%;
  height: auto; }

.mceContentBody img[align="left"],
.mceContentBody img[style*="float: left"],
.mceContentBody img[style*="float:left"] {
  margin: 5px 10px 0px 0px; }

.mceContentBody img[align="right"],
.mceContentBody img[style*="float: right"],
.mceContentBody img[style*="float:right"] {
  margin: 5px 0px 0px 10px; }

.container {
  max-width: 1200px;
  padding-left: 15px;
  padding-right: 15px;
  margin: auto; }

.padded {
  padding: 15px; }
  @media (min-width: 768px) {
    .padded {
      padding: 30px; } }

.padded-x {
  padding-left: 15px;
  padding-right: 15px; }
  @media (min-width: 768px) {
    .padded-x {
      padding-left: 30px; } }
  @media (min-width: 768px) {
    .padded-x {
      padding-right: 30px; } }

.padded-y {
  padding-top: 15px;
  padding-bottom: 15px; }
  @media (min-width: 768px) {
    .padded-y {
      padding-top: 30px; } }
  @media (min-width: 768px) {
    .padded-y {
      padding-bottom: 30px; } }

.padded-nested {
  *zoom: 1; }
  .padded-nested:before, .padded-nested:after {
    content: " ";
    display: table; }
  .padded-nested:after {
    clear: both; }
  .padded-nested, .padded-nested .padded-x {
    padding-left: 7.5px;
    padding-right: 7.5px; }
    @media (min-width: 768px) {
      .padded-nested, .padded-nested .padded-x {
        padding-left: 15px; } }
    @media (min-width: 768px) {
      .padded-nested, .padded-nested .padded-x {
        padding-right: 15px; } }

.vertical-center {
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  width: 100%; }

.pull-bottom {
  padding-bottom: 0;
  margin-bottom: 0; }

.background-gray-dark {
  background-color: #8a8a8a; }
  .background-gray-dark .contain, .background-gray-dark h2, .background-gray-dark h3, .background-gray-dark p {
    color: white; }

.background-gray {
  background-color: #ebebeb; }

.background-white {
  background-color: white; }

.background-primary {
  background-color: #de2130; }

.text-primary {
  color: #de2130; 
}

textarea:disabled {
  background-color: #eee !important;
}

.clear {
  clear: both; }

.backgrounded {
  position: relative;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat; }

.fill-width {
  width: 100%; }

.list-inlined li {
  display: inline-block;
  float: none;
  width: auto;
  margin-bottom: 0; }

.list-dashed a {
  margin-bottom: 2px; }

.list-dashed li:before {
  content: "- "; }

.invisible {
  visibility: hidden; }

[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
  display: none !important; }

.red{
  color:red;
}

.input {
  margin-bottom: 15px;
  -webkit-border-radius: 4px;
  border-radius: 4px;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  width: 100%;
  display: block;
  padding: 10px 12px;
  background-color: #ebebeb;
  color: #4f4f4f;
  font-family: "museo-sans-rounded", Tahoma, Segoe, sans-serif;
  font-weight: 300;
  border: none;
  border: 1px solid #ebebeb; }
  @media (min-width: 768px) {
    .input {
      margin-bottom: 30px; } }
  input::-moz-placeholder, textarea::-moz-placeholder, select::-moz-placeholder {
    color: #4f4f4f;
    opacity: 1; }
  input:-ms-input-placeholder, textarea:-ms-input-placeholder, select:-ms-input-placeholder {
    color: #4f4f4f; }
  input::-webkit-input-placeholder, textarea::-webkit-input-placeholder, select::-webkit-input-placeholder {
    color: #4f4f4f; }
  input:last-child, textarea:last-child, select:last-child {
    margin-bottom: 0; }
  input.light, textarea.light, select.light {
    background-color: white; }

input[type="submit"] {
  width: auto; }

input[type="checkbox"] {
  width: auto;
  display: inline-block;
  margin-bottom: 0;
  margin-top: 0;
  vertical-align: middle;
  cursor: pointer; }

@media (min-width: 768px) {
  .input-inline {
    display: table;
    width: 100%; }
    .input-inline > * {
      display: table-cell;
      padding: 0 10px;
      vertical-align: middle; }
      .input-inline > *:first-child {
        padding-left: 0; }
      .input-inline > *:last-child {
        padding-right: 0; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .input-inline > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .input-inline > *.hidden-mobile {
        display: table-cell; }
      .input-inline > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .input-inline > *.hidden-tween {
        display: table-cell; }
      .input-inline > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .input-inline > *.hidden-tablet {
        display: table-cell; }
      .input-inline > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .input-inline > *.hidden-desktop {
        display: table-cell; }
      .input-inline > *.hidden-desktop-l {
        display: none; } }

.input-inline input, .input-inline textarea, .input-inline select {
  margin-bottom: 15px; }
  @media (min-width: 768px) {
    .input-inline input, .input-inline textarea, .input-inline select {
      margin-bottom: 30px; } }

.input-inline:last-child {
  margin-bottom: 0; }

.input-grouped input, .input-grouped textarea, .input-grouped select {
  -webkit-border-radius: 0;
  border-radius: 0;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */ }

.input-grouped > * {
  margin-left: 0;
  margin-right: 0;
  overflow: hidden;
  padding-left: 0;
  padding-right: 0; }
  .input-grouped > *:first-child {
    border-bottom-left-radius: 3px;
    border-top-left-radius: 3px; }
  .input-grouped > *:last-child {
    border-bottom-right-radius: 3px;
    border-top-right-radius: 3px; }

.input-submit {
  margin-top: 10px;
  text-align: center; }
  @media (min-width: 768px) {
    .input-submit {
      margin-top: 20px; } }

.form-bordered {
  clear: both; }
  .form-bordered input, .form-bordered textarea, .form-bordered select {
    -webkit-border-radius: 3px;
    border-radius: 3px;
    background-clip: padding-box;
    /* stops bg color from leaking outside the border: */
    background-color: transparent;
    border: 1px solid white;
    color: white; }
    .form-bordered input ::-webkit-input-placeholder, .form-bordered textarea ::-webkit-input-placeholder, .form-bordered select ::-webkit-input-placeholder {
      color: white; }
    .form-bordered input :-moz-placeholder, .form-bordered textarea :-moz-placeholder, .form-bordered select :-moz-placeholder {
      color: white; }
    .form-bordered input ::-moz-placeholder, .form-bordered textarea ::-moz-placeholder, .form-bordered select ::-moz-placeholder {
      color: white; }
    .form-bordered input :-ms-input-placeholder, .form-bordered textarea :-ms-input-placeholder, .form-bordered select :-ms-input-placeholder {
      color: white; }

.file-wrapper {
  position: relative; }
  .file-wrapper label {
    cursor: pointer;
    white-space: nowrap; }
    .file-wrapper label .icon {
      margin-right: 3px;
      vertical-align: middle;
      margin-top: -1px; }
  .file-wrapper input {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    visibility: hidden; }

[class^="icon-"], [class*=" icon-"] {
  font-family: 'font-awesome';
  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;
  display: inline-block; }

.icon-chevron-thin-left:before {
  content: "\e600"; }

.icon-chevron-thin-right:before {
  content: "\e601"; }

.icon-play-sharp-circle:before {
  content: "\e602"; }

.icon-glass:before {
  content: "\f000"; }

.icon-music:before {
  content: "\f001"; }

.icon-search2:before {
  content: "\f002"; }

.icon-envelope-o:before {
  content: "\f003"; }

.icon-heart:before {
  content: "\f004"; }

.icon-star:before {
  content: "\f005"; }

.icon-star-o:before {
  content: "\f006"; }

.icon-user:before {
  content: "\f007"; }

.icon-film:before {
  content: "\f008"; }

.icon-th-large:before {
  content: "\f009"; }

.icon-th:before {
  content: "\f00a"; }

.icon-th-list:before {
  content: "\f00b"; }

.icon-check:before {
  content: "\f00c"; }

.icon-close2:before {
  content: "\f00d"; }

.icon-remove:before {
  content: "\f00d"; }

.icon-times:before {
  content: "\f00d"; }

.icon-search-plus:before {
  content: "\f00e"; }

.icon-search-minus:before {
  content: "\f010"; }

.icon-power-off:before {
  content: "\f011"; }

.icon-signal:before {
  content: "\f012"; }

.icon-cog:before {
  content: "\f013"; }

.icon-gear:before {
  content: "\f013"; }

.icon-trash-o:before {
  content: "\f014"; }

.icon-home:before {
  content: "\f015"; }

.icon-file-o:before {
  content: "\f016"; }

.icon-clock-o:before {
  content: "\f017"; }

.icon-road:before {
  content: "\f018"; }

.icon-download:before {
  content: "\f019"; }

.icon-arrow-circle-o-down:before {
  content: "\f01a"; }

.icon-arrow-circle-o-up:before {
  content: "\f01b"; }

.icon-inbox:before {
  content: "\f01c"; }

.icon-play-circle-o:before {
  content: "\f01d"; }

.icon-repeat:before {
  content: "\f01e"; }

.icon-rotate-right:before {
  content: "\f01e"; }

.icon-refresh:before {
  content: "\f021"; }

.icon-list-alt:before {
  content: "\f022"; }

.icon-lock:before {
  content: "\f023"; }

.icon-flag:before {
  content: "\f024"; }

.icon-headphones:before {
  content: "\f025"; }

.icon-volume-off:before {
  content: "\f026"; }

.icon-volume-down:before {
  content: "\f027"; }

.icon-volume-up:before {
  content: "\f028"; }

.icon-qrcode:before {
  content: "\f029"; }

.icon-barcode:before {
  content: "\f02a"; }

.icon-tag:before {
  content: "\f02b"; }

.icon-tags:before {
  content: "\f02c"; }

.icon-book:before {
  content: "\f02d"; }

.icon-bookmark:before {
  content: "\f02e"; }

.icon-print:before {
  content: "\f02f"; }

.icon-camera:before {
  content: "\f030"; }

.icon-font:before {
  content: "\f031"; }

.icon-bold:before {
  content: "\f032"; }

.icon-italic:before {
  content: "\f033"; }

.icon-text-height:before {
  content: "\f034"; }

.icon-text-width:before {
  content: "\f035"; }

.icon-align-left:before {
  content: "\f036"; }

.icon-align-center:before {
  content: "\f037"; }

.icon-align-right:before {
  content: "\f038"; }

.icon-align-justify:before {
  content: "\f039"; }

.icon-list:before {
  content: "\f03a"; }

.icon-dedent:before {
  content: "\f03b"; }

.icon-outdent:before {
  content: "\f03b"; }

.icon-indent:before {
  content: "\f03c"; }

.icon-video-camera:before {
  content: "\f03d"; }

.icon-image:before {
  content: "\f03e"; }

.icon-photo:before {
  content: "\f03e"; }

.icon-picture-o:before {
  content: "\f03e"; }

.icon-pencil:before {
  content: "\f040"; }

.icon-map-marker:before {
  content: "\f041"; }

.icon-adjust:before {
  content: "\f042"; }

.icon-tint:before {
  content: "\f043"; }

.icon-edit:before {
  content: "\f044"; }

.icon-pencil-square-o:before {
  content: "\f044"; }

.icon-share-square-o:before {
  content: "\f045"; }

.icon-check-square-o:before {
  content: "\f046"; }

.icon-arrows:before {
  content: "\f047"; }

.icon-step-backward:before {
  content: "\f048"; }

.icon-fast-backward:before {
  content: "\f049"; }

.icon-backward:before {
  content: "\f04a"; }

.icon-play:before {
  content: "\f04b"; }

.icon-pause:before {
  content: "\f04c"; }

.icon-stop:before {
  content: "\f04d"; }

.icon-forward:before {
  content: "\f04e"; }

.icon-fast-forward:before {
  content: "\f050"; }

.icon-step-forward:before {
  content: "\f051"; }

.icon-eject:before {
  content: "\f052"; }

.icon-chevron-left:before {
  content: "\f053"; }

.icon-chevron-right:before, .channels-block .channel .selected:before {
  content: "\f054"; }

.icon-plus-circle:before {
  content: "\f055"; }

.icon-minus-circle:before {
  content: "\f056"; }

.icon-times-circle:before {
  content: "\f057"; }

.icon-check-circle:before {
  content: "\f058"; }

.icon-question-circle:before {
  content: "\f059"; }

.icon-info-circle:before {
  content: "\f05a"; }

.icon-crosshairs:before {
  content: "\f05b"; }

.icon-times-circle-o:before {
  content: "\f05c"; }

.icon-check-circle-o:before {
  content: "\f05d"; }

.icon-ban:before {
  content: "\f05e"; }

.icon-arrow-left:before {
  content: "\f060"; }

.icon-arrow-right:before {
  content: "\f061"; }

.icon-arrow-up:before {
  content: "\f062"; }

.icon-arrow-down:before {
  content: "\f063"; }

.icon-mail-forward:before {
  content: "\f064"; }

.icon-share:before {
  content: "\f064"; }

.icon-expand:before {
  content: "\f065"; }

.icon-compress:before {
  content: "\f066"; }

.icon-plus:before {
  content: "\f067"; }

.icon-minus:before {
  content: "\f068"; }

.icon-asterisk:before {
  content: "\f069"; }

.icon-exclamation-circle:before {
  content: "\f06a"; }

.icon-gift:before {
  content: "\f06b"; }

.icon-leaf:before {
  content: "\f06c"; }

.icon-fire:before {
  content: "\f06d"; }

.icon-eye:before {
  content: "\f06e"; }

.icon-eye-slash:before {
  content: "\f070"; }

.icon-exclamation-triangle:before {
  content: "\f071"; }

.icon-warning:before {
  content: "\f071"; }

.icon-plane:before {
  content: "\f072"; }

.icon-calendar:before {
  content: "\f073"; }

.icon-random:before {
  content: "\f074"; }

.icon-comment:before {
  content: "\f075"; }

.icon-magnet:before {
  content: "\f076"; }

.icon-chevron-up:before {
  content: "\f077"; }

.icon-chevron-down:before {
  content: "\f078"; }

.icon-retweet:before {
  content: "\f079"; }

.icon-shopping-cart:before {
  content: "\f07a"; }

.icon-folder:before {
  content: "\f07b"; }

.icon-folder-open:before {
  content: "\f07c"; }

.icon-arrows-v:before {
  content: "\f07d"; }

.icon-arrows-h:before {
  content: "\f07e"; }

.icon-bar-chart:before {
  content: "\f080"; }

.icon-bar-chart-o:before {
  content: "\f080"; }

.icon-twitter-square:before {
  content: "\f081"; }

.icon-facebook-square:before {
  content: "\f082"; }

.icon-camera-retro:before {
  content: "\f083"; }

.icon-key:before {
  content: "\f084"; }

.icon-cogs:before {
  content: "\f085"; }

.icon-gears:before {
  content: "\f085"; }

.icon-comments:before {
  content: "\f086"; }

.icon-thumbs-o-up:before {
  content: "\f087"; }

.icon-thumbs-o-down:before {
  content: "\f088"; }

.icon-star-half:before {
  content: "\f089"; }

.icon-heart-o:before {
  content: "\f08a"; }

.icon-sign-out:before {
  content: "\f08b"; }

.icon-linkedin-square:before {
  content: "\f08c"; }

.icon-thumb-tack:before {
  content: "\f08d"; }

.icon-external-link:before {
  content: "\f08e"; }

.icon-sign-in:before {
  content: "\f090"; }

.icon-trophy:before {
  content: "\f091"; }

.icon-github-square:before {
  content: "\f092"; }

.icon-upload:before {
  content: "\f093"; }

.icon-lemon-o:before {
  content: "\f094"; }

.icon-phone:before {
  content: "\f095"; }

.icon-square-o:before {
  content: "\f096"; }

.icon-bookmark-o:before {
  content: "\f097"; }

.icon-phone-square:before {
  content: "\f098"; }

.icon-twitter:before {
  content: "\f099"; }

.icon-facebook:before {
  content: "\f09a"; }

.icon-facebook-f:before {
  content: "\f09a"; }

.icon-github:before {
  content: "\f09b"; }

.icon-unlock:before {
  content: "\f09c"; }

.icon-credit-card:before {
  content: "\f09d"; }

.icon-rss:before {
  content: "\f09e"; }

.icon-hdd-o:before {
  content: "\f0a0"; }

.icon-bullhorn:before {
  content: "\f0a1"; }

.icon-bell-o:before {
  content: "\f0a2"; }

.icon-certificate:before {
  content: "\f0a3"; }

.icon-hand-o-right:before {
  content: "\f0a4"; }

.icon-hand-o-left:before {
  content: "\f0a5"; }

.icon-hand-o-up:before {
  content: "\f0a6"; }

.icon-hand-o-down:before {
  content: "\f0a7"; }

.icon-arrow-circle-left:before {
  content: "\f0a8"; }

.icon-arrow-circle-right:before {
  content: "\f0a9"; }

.icon-arrow-circle-up:before {
  content: "\f0aa"; }

.icon-arrow-circle-down:before {
  content: "\f0ab"; }

.icon-globe:before {
  content: "\f0ac"; }

.icon-wrench:before {
  content: "\f0ad"; }

.icon-tasks:before {
  content: "\f0ae"; }

.icon-filter:before {
  content: "\f0b0"; }

.icon-briefcase:before {
  content: "\f0b1"; }

.icon-arrows-alt:before {
  content: "\f0b2"; }

.icon-group:before {
  content: "\f0c0"; }

.icon-users:before {
  content: "\f0c0"; }

.icon-chain:before {
  content: "\f0c1"; }

.icon-link:before {
  content: "\f0c1"; }

.icon-cloud:before {
  content: "\f0c2"; }

.icon-flask:before {
  content: "\f0c3"; }

.icon-cut:before {
  content: "\f0c4"; }

.icon-scissors:before {
  content: "\f0c4"; }

.icon-copy:before {
  content: "\f0c5"; }

.icon-files-o:before {
  content: "\f0c5"; }

.icon-paperclip:before {
  content: "\f0c6"; }

.icon-floppy-o:before {
  content: "\f0c7"; }

.icon-save:before {
  content: "\f0c7"; }

.icon-square:before {
  content: "\f0c8"; }

.icon-bars:before {
  content: "\f0c9"; }

.icon-navicon:before {
  content: "\f0c9"; }

.icon-reorder:before {
  content: "\f0c9"; }

.icon-list-ul:before {
  content: "\f0ca"; }

.icon-list-ol:before {
  content: "\f0cb"; }

.icon-strikethrough:before {
  content: "\f0cc"; }

.icon-underline:before {
  content: "\f0cd"; }

.icon-table:before {
  content: "\f0ce"; }

.icon-magic:before {
  content: "\f0d0"; }

.icon-truck:before {
  content: "\f0d1"; }

.icon-pinterest:before {
  content: "\f0d2"; }

.icon-pinterest-square:before {
  content: "\f0d3"; }

.icon-google-plus-square:before {
  content: "\f0d4"; }

.icon-google-plus:before {
  content: "\f0d5"; }

.icon-money:before {
  content: "\f0d6"; }

.icon-caret-down:before {
  content: "\f0d7"; }

.icon-caret-up:before {
  content: "\f0d8"; }

.icon-caret-left:before {
  content: "\f0d9"; }

.icon-caret-right:before {
  content: "\f0da"; }

.icon-columns:before {
  content: "\f0db"; }

.icon-sort:before {
  content: "\f0dc"; }

.icon-unsorted:before {
  content: "\f0dc"; }

.icon-sort-desc:before {
  content: "\f0dd"; }

.icon-sort-down:before {
  content: "\f0dd"; }

.icon-sort-asc:before {
  content: "\f0de"; }

.icon-sort-up:before {
  content: "\f0de"; }

.icon-envelope:before {
  content: "\f0e0"; }

.icon-linkedin:before {
  content: "\f0e1"; }

.icon-rotate-left:before {
  content: "\f0e2"; }

.icon-undo:before {
  content: "\f0e2"; }

.icon-gavel:before {
  content: "\f0e3"; }

.icon-legal:before {
  content: "\f0e3"; }

.icon-dashboard:before {
  content: "\f0e4"; }

.icon-tachometer:before {
  content: "\f0e4"; }

.icon-comment-o:before {
  content: "\f0e5"; }

.icon-comments-o:before {
  content: "\f0e6"; }

.icon-bolt:before {
  content: "\f0e7"; }

.icon-flash:before {
  content: "\f0e7"; }

.icon-sitemap:before {
  content: "\f0e8"; }

.icon-umbrella:before {
  content: "\f0e9"; }

.icon-clipboard:before {
  content: "\f0ea"; }

.icon-paste:before {
  content: "\f0ea"; }

.icon-lightbulb-o:before {
  content: "\f0eb"; }

.icon-exchange:before {
  content: "\f0ec"; }

.icon-cloud-download:before {
  content: "\f0ed"; }

.icon-cloud-upload:before {
  content: "\f0ee"; }

.icon-user-md:before {
  content: "\f0f0"; }

.icon-stethoscope:before {
  content: "\f0f1"; }

.icon-suitcase:before {
  content: "\f0f2"; }

.icon-bell:before {
  content: "\f0f3"; }

.icon-coffee:before {
  content: "\f0f4"; }

.icon-cutlery:before {
  content: "\f0f5"; }

.icon-file-text-o:before {
  content: "\f0f6"; }

.icon-building-o:before {
  content: "\f0f7"; }

.icon-hospital-o:before {
  content: "\f0f8"; }

.icon-ambulance:before {
  content: "\f0f9"; }

.icon-medkit:before {
  content: "\f0fa"; }

.icon-fighter-jet:before {
  content: "\f0fb"; }

.icon-beer:before {
  content: "\f0fc"; }

.icon-h-square:before {
  content: "\f0fd"; }

.icon-plus-square:before {
  content: "\f0fe"; }

.icon-angle-double-left:before {
  content: "\f100"; }

.icon-angle-double-right:before {
  content: "\f101"; }

.icon-angle-double-up:before {
  content: "\f102"; }

.icon-angle-double-down:before {
  content: "\f103"; }

.icon-angle-left:before {
  content: "\f104"; }

.icon-angle-right:before {
  content: "\f105"; }

.icon-angle-up:before {
  content: "\f106"; }

.icon-angle-down:before {
  content: "\f107"; }

.icon-desktop:before {
  content: "\f108"; }

.icon-laptop:before {
  content: "\f109"; }

.icon-tablet:before {
  content: "\f10a"; }

.icon-mobile:before {
  content: "\f10b"; }

.icon-mobile-phone:before {
  content: "\f10b"; }

.icon-circle-o:before {
  content: "\f10c"; }

.icon-quote-left:before {
  content: "\f10d"; }

.icon-quote-right:before {
  content: "\f10e"; }

.icon-spinner:before {
  content: "\f110"; }

.icon-circle:before, .posts-block .post .header-wrapper .details .detail + .detail:before {
  content: "\f111"; }

.icon-mail-reply:before {
  content: "\f112"; }

.icon-reply:before {
  content: "\f112"; }

.icon-github-alt:before {
  content: "\f113"; }

.icon-folder-o:before {
  content: "\f114"; }

.icon-folder-open-o:before {
  content: "\f115"; }

.icon-smile-o:before {
  content: "\f118"; }

.icon-frown-o:before {
  content: "\f119"; }

.icon-meh-o:before {
  content: "\f11a"; }

.icon-gamepad:before {
  content: "\f11b"; }

.icon-keyboard-o:before {
  content: "\f11c"; }

.icon-flag-o:before {
  content: "\f11d"; }

.icon-flag-checkered:before {
  content: "\f11e"; }

.icon-terminal:before {
  content: "\f120"; }

.icon-code:before {
  content: "\f121"; }

.icon-mail-reply-all:before {
  content: "\f122"; }

.icon-reply-all:before {
  content: "\f122"; }

.icon-star-half-empty:before {
  content: "\f123"; }

.icon-star-half-full:before {
  content: "\f123"; }

.icon-star-half-o:before {
  content: "\f123"; }

.icon-location-arrow:before {
  content: "\f124"; }

.icon-crop:before {
  content: "\f125"; }

.icon-code-fork:before {
  content: "\f126"; }

.icon-chain-broken:before {
  content: "\f127"; }

.icon-unlink:before {
  content: "\f127"; }

.icon-question:before {
  content: "\f128"; }

.icon-info:before {
  content: "\f129"; }

.icon-exclamation:before {
  content: "\f12a"; }

.icon-superscript:before {
  content: "\f12b"; }

.icon-subscript:before {
  content: "\f12c"; }

.icon-eraser:before {
  content: "\f12d"; }

.icon-puzzle-piece:before {
  content: "\f12e"; }

.icon-microphone:before {
  content: "\f130"; }

.icon-microphone-slash:before {
  content: "\f131"; }

.icon-shield:before {
  content: "\f132"; }

.icon-calendar-o:before {
  content: "\f133"; }

.icon-fire-extinguisher:before {
  content: "\f134"; }

.icon-rocket:before {
  content: "\f135"; }

.icon-maxcdn:before {
  content: "\f136"; }

.icon-chevron-circle-left:before {
  content: "\f137"; }

.icon-chevron-circle-right:before {
  content: "\f138"; }

.icon-chevron-circle-up:before {
  content: "\f139"; }

.icon-chevron-circle-down:before {
  content: "\f13a"; }

.icon-html5:before {
  content: "\f13b"; }

.icon-css3:before {
  content: "\f13c"; }

.icon-anchor:before {
  content: "\f13d"; }

.icon-unlock-alt:before {
  content: "\f13e"; }

.icon-bullseye:before {
  content: "\f140"; }

.icon-ellipsis-h:before {
  content: "\f141"; }

.icon-ellipsis-v:before {
  content: "\f142"; }

.icon-rss-square:before {
  content: "\f143"; }

.icon-play-circle:before {
  content: "\f144"; }

.icon-ticket:before {
  content: "\f145"; }

.icon-minus-square:before {
  content: "\f146"; }

.icon-minus-square-o:before {
  content: "\f147"; }

.icon-level-up:before {
  content: "\f148"; }

.icon-level-down:before {
  content: "\f149"; }

.icon-check-square:before {
  content: "\f14a"; }

.icon-pencil-square:before {
  content: "\f14b"; }

.icon-external-link-square:before {
  content: "\f14c"; }

.icon-share-square:before {
  content: "\f14d"; }

.icon-compass:before {
  content: "\f14e"; }

.icon-caret-square-o-down:before {
  content: "\f150"; }

.icon-toggle-down:before {
  content: "\f150"; }

.icon-caret-square-o-up:before {
  content: "\f151"; }

.icon-toggle-up:before {
  content: "\f151"; }

.icon-caret-square-o-right:before {
  content: "\f152"; }

.icon-toggle-right:before {
  content: "\f152"; }

.icon-eur:before {
  content: "\f153"; }

.icon-euro:before {
  content: "\f153"; }

.icon-gbp:before {
  content: "\f154"; }

.icon-dollar:before {
  content: "\f155"; }

.icon-usd:before {
  content: "\f155"; }

.icon-inr:before {
  content: "\f156"; }

.icon-rupee:before {
  content: "\f156"; }

.icon-cny:before {
  content: "\f157"; }

.icon-jpy:before {
  content: "\f157"; }

.icon-rmb:before {
  content: "\f157"; }

.icon-yen:before {
  content: "\f157"; }

.icon-rouble:before {
  content: "\f158"; }

.icon-rub:before {
  content: "\f158"; }

.icon-ruble:before {
  content: "\f158"; }

.icon-krw:before {
  content: "\f159"; }

.icon-won:before {
  content: "\f159"; }

.icon-bitcoin:before {
  content: "\f15a"; }

.icon-btc:before {
  content: "\f15a"; }

.icon-file:before {
  content: "\f15b"; }

.icon-file-text:before {
  content: "\f15c"; }

.icon-sort-alpha-asc:before {
  content: "\f15d"; }

.icon-sort-alpha-desc:before {
  content: "\f15e"; }

.icon-sort-amount-asc:before {
  content: "\f160"; }

.icon-sort-amount-desc:before {
  content: "\f161"; }

.icon-sort-numeric-asc:before {
  content: "\f162"; }

.icon-sort-numeric-desc:before {
  content: "\f163"; }

.icon-thumbs-up:before {
  content: "\f164"; }

.icon-thumbs-down:before {
  content: "\f165"; }

.icon-youtube-square:before {
  content: "\f166"; }

.icon-youtube:before {
  content: "\f167"; }

.icon-xing:before {
  content: "\f168"; }

.icon-xing-square:before {
  content: "\f169"; }

.icon-youtube-play:before {
  content: "\f16a"; }

.icon-dropbox:before {
  content: "\f16b"; }

.icon-stack-overflow:before {
  content: "\f16c"; }

.icon-instagram:before {
  content: "\f16d"; }

.icon-flickr:before {
  content: "\f16e"; }

.icon-adn:before {
  content: "\f170"; }

.icon-bitbucket:before {
  content: "\f171"; }

.icon-bitbucket-square:before {
  content: "\f172"; }

.icon-tumblr:before {
  content: "\f173"; }

.icon-tumblr-square:before {
  content: "\f174"; }

.icon-long-arrow-down:before {
  content: "\f175"; }

.icon-long-arrow-up:before {
  content: "\f176"; }

.icon-long-arrow-left:before {
  content: "\f177"; }

.icon-long-arrow-right:before {
  content: "\f178"; }

.icon-apple:before {
  content: "\f179"; }

.icon-windows:before {
  content: "\f17a"; }

.icon-android:before {
  content: "\f17b"; }

.icon-linux:before {
  content: "\f17c"; }

.icon-dribbble:before {
  content: "\f17d"; }

.icon-skype:before {
  content: "\f17e"; }

.icon-foursquare:before {
  content: "\f180"; }

.icon-trello:before {
  content: "\f181"; }

.icon-female:before {
  content: "\f182"; }

.icon-male:before {
  content: "\f183"; }

.icon-gittip:before {
  content: "\f184"; }

.icon-gratipay:before {
  content: "\f184"; }

.icon-sun-o:before {
  content: "\f185"; }

.icon-moon-o:before {
  content: "\f186"; }

.icon-archive:before {
  content: "\f187"; }

.icon-bug:before {
  content: "\f188"; }

.icon-vk:before {
  content: "\f189"; }

.icon-weibo:before {
  content: "\f18a"; }

.icon-renren:before {
  content: "\f18b"; }

.icon-pagelines:before {
  content: "\f18c"; }

.icon-stack-exchange:before {
  content: "\f18d"; }

.icon-arrow-circle-o-right:before {
  content: "\f18e"; }

.icon-arrow-circle-o-left:before {
  content: "\f190"; }

.icon-caret-square-o-left:before {
  content: "\f191"; }

.icon-toggle-left:before {
  content: "\f191"; }

.icon-dot-circle-o:before {
  content: "\f192"; }

.icon-wheelchair:before {
  content: "\f193"; }

.icon-vimeo-square:before {
  content: "\f194"; }

.icon-try:before {
  content: "\f195"; }

.icon-turkish-lira:before {
  content: "\f195"; }

.icon-plus-square-o:before {
  content: "\f196"; }

.icon-space-shuttle:before {
  content: "\f197"; }

.icon-slack:before {
  content: "\f198"; }

.icon-envelope-square:before {
  content: "\f199"; }

.icon-wordpress:before {
  content: "\f19a"; }

.icon-openid:before {
  content: "\f19b"; }

.icon-bank:before {
  content: "\f19c"; }

.icon-institution:before {
  content: "\f19c"; }

.icon-university:before {
  content: "\f19c"; }

.icon-graduation-cap:before {
  content: "\f19d"; }

.icon-mortar-board:before {
  content: "\f19d"; }

.icon-yahoo:before {
  content: "\f19e"; }

.icon-google:before {
  content: "\f1a0"; }

.icon-reddit:before {
  content: "\f1a1"; }

.icon-reddit-square:before {
  content: "\f1a2"; }

.icon-stumbleupon-circle:before {
  content: "\f1a3"; }

.icon-stumbleupon:before {
  content: "\f1a4"; }

.icon-delicious:before {
  content: "\f1a5"; }

.icon-digg:before {
  content: "\f1a6"; }

.icon-pied-piper:before {
  content: "\f1a7"; }

.icon-pied-piper-alt:before {
  content: "\f1a8"; }

.icon-drupal:before {
  content: "\f1a9"; }

.icon-joomla:before {
  content: "\f1aa"; }

.icon-language:before {
  content: "\f1ab"; }

.icon-fax:before {
  content: "\f1ac"; }

.icon-building:before {
  content: "\f1ad"; }

.icon-child:before {
  content: "\f1ae"; }

.icon-paw:before {
  content: "\f1b0"; }

.icon-spoon:before {
  content: "\f1b1"; }

.icon-cube:before {
  content: "\f1b2"; }

.icon-cubes:before {
  content: "\f1b3"; }

.icon-behance:before {
  content: "\f1b4"; }

.icon-behance-square:before {
  content: "\f1b5"; }

.icon-steam:before {
  content: "\f1b6"; }

.icon-steam-square:before {
  content: "\f1b7"; }

.icon-recycle:before {
  content: "\f1b8"; }

.icon-automobile:before {
  content: "\f1b9"; }

.icon-car:before {
  content: "\f1b9"; }

.icon-cab:before {
  content: "\f1ba"; }

.icon-taxi:before {
  content: "\f1ba"; }

.icon-tree:before {
  content: "\f1bb"; }

.icon-spotify:before {
  content: "\f1bc"; }

.icon-deviantart:before {
  content: "\f1bd"; }

.icon-soundcloud:before {
  content: "\f1be"; }

.icon-database:before {
  content: "\f1c0"; }

.icon-file-pdf-o:before {
  content: "\f1c1"; }

.icon-file-word-o:before {
  content: "\f1c2"; }

.icon-file-excel-o:before {
  content: "\f1c3"; }

.icon-file-powerpoint-o:before {
  content: "\f1c4"; }

.icon-file-image-o:before {
  content: "\f1c5"; }

.icon-file-photo-o:before {
  content: "\f1c5"; }

.icon-file-picture-o:before {
  content: "\f1c5"; }

.icon-file-archive-o:before {
  content: "\f1c6"; }

.icon-file-zip-o:before {
  content: "\f1c6"; }

.icon-file-audio-o:before {
  content: "\f1c7"; }

.icon-file-sound-o:before {
  content: "\f1c7"; }

.icon-file-movie-o:before {
  content: "\f1c8"; }

.icon-file-video-o:before {
  content: "\f1c8"; }

.icon-file-code-o:before {
  content: "\f1c9"; }

.icon-vine:before {
  content: "\f1ca"; }

.icon-codepen:before {
  content: "\f1cb"; }

.icon-jsfiddle:before {
  content: "\f1cc"; }

.icon-life-bouy:before {
  content: "\f1cd"; }

.icon-life-buoy:before {
  content: "\f1cd"; }

.icon-life-ring:before {
  content: "\f1cd"; }

.icon-life-saver:before {
  content: "\f1cd"; }

.icon-support:before {
  content: "\f1cd"; }

.icon-circle-o-notch:before {
  content: "\f1ce"; }

.icon-ra:before {
  content: "\f1d0"; }

.icon-rebel:before {
  content: "\f1d0"; }

.icon-empire:before {
  content: "\f1d1"; }

.icon-ge:before {
  content: "\f1d1"; }

.icon-git-square:before {
  content: "\f1d2"; }

.icon-git:before {
  content: "\f1d3"; }

.icon-hacker-news:before {
  content: "\f1d4"; }

.icon-tencent-weibo:before {
  content: "\f1d5"; }

.icon-qq:before {
  content: "\f1d6"; }

.icon-wechat:before {
  content: "\f1d7"; }

.icon-weixin:before {
  content: "\f1d7"; }

.icon-paper-plane:before {
  content: "\f1d8"; }

.icon-send:before {
  content: "\f1d8"; }

.icon-paper-plane-o:before {
  content: "\f1d9"; }

.icon-send-o:before {
  content: "\f1d9"; }

.icon-history:before {
  content: "\f1da"; }

.icon-circle-thin:before {
  content: "\f1db"; }

.icon-genderless:before {
  content: "\f1db"; }

.icon-header:before {
  content: "\f1dc"; }

.icon-paragraph:before {
  content: "\f1dd"; }

.icon-sliders:before {
  content: "\f1de"; }

.icon-share-alt:before {
  content: "\f1e0"; }

.icon-share-alt-square:before {
  content: "\f1e1"; }

.icon-bomb:before {
  content: "\f1e2"; }

.icon-futbol-o:before {
  content: "\f1e3"; }

.icon-soccer-ball-o:before {
  content: "\f1e3"; }

.icon-tty:before {
  content: "\f1e4"; }

.icon-binoculars:before {
  content: "\f1e5"; }

.icon-plug:before {
  content: "\f1e6"; }

.icon-slideshare:before {
  content: "\f1e7"; }

.icon-twitch:before {
  content: "\f1e8"; }

.icon-yelp:before {
  content: "\f1e9"; }

.icon-newspaper-o:before {
  content: "\f1ea"; }

.icon-wifi:before {
  content: "\f1eb"; }

.icon-calculator:before {
  content: "\f1ec"; }

.icon-paypal:before {
  content: "\f1ed"; }

.icon-google-wallet:before {
  content: "\f1ee"; }

.icon-cc-visa:before {
  content: "\f1f0"; }

.icon-cc-mastercard:before {
  content: "\f1f1"; }

.icon-cc-discover:before {
  content: "\f1f2"; }

.icon-cc-amex:before {
  content: "\f1f3"; }

.icon-cc-paypal:before {
  content: "\f1f4"; }

.icon-cc-stripe:before {
  content: "\f1f5"; }

.icon-bell-slash:before {
  content: "\f1f6"; }

.icon-bell-slash-o:before {
  content: "\f1f7"; }

.icon-trash:before {
  content: "\f1f8"; }

.icon-copyright:before {
  content: "\f1f9"; }

.icon-at:before {
  content: "\f1fa"; }

.icon-eyedropper:before {
  content: "\f1fb"; }

.icon-paint-brush:before {
  content: "\f1fc"; }

.icon-birthday-cake:before {
  content: "\f1fd"; }

.icon-area-chart:before {
  content: "\f1fe"; }

.icon-pie-chart:before {
  content: "\f200"; }

.icon-line-chart:before {
  content: "\f201"; }

.icon-lastfm:before {
  content: "\f202"; }

.icon-lastfm-square:before {
  content: "\f203"; }

.icon-toggle-off:before {
  content: "\f204"; }

.icon-toggle-on:before {
  content: "\f205"; }

.icon-bicycle:before {
  content: "\f206"; }

.icon-bus:before {
  content: "\f207"; }

.icon-ioxhost:before {
  content: "\f208"; }

.icon-angellist:before {
  content: "\f209"; }

.icon-cc:before {
  content: "\f20a"; }

.icon-ils:before {
  content: "\f20b"; }

.icon-shekel:before {
  content: "\f20b"; }

.icon-sheqel:before {
  content: "\f20b"; }

.icon-meanpath:before {
  content: "\f20c"; }

.icon-buysellads:before {
  content: "\f20d"; }

.icon-connectdevelop:before {
  content: "\f20e"; }

.icon-dashcube:before {
  content: "\f210"; }

.icon-forumbee:before {
  content: "\f211"; }

.icon-leanpub:before {
  content: "\f212"; }

.icon-sellsy:before {
  content: "\f213"; }

.icon-shirtsinbulk:before {
  content: "\f214"; }

.icon-simplybuilt:before {
  content: "\f215"; }

.icon-skyatlas:before {
  content: "\f216"; }

.icon-cart-plus:before {
  content: "\f217"; }

.icon-cart-arrow-down:before {
  content: "\f218"; }

.icon-diamond:before {
  content: "\f219"; }

.icon-ship:before {
  content: "\f21a"; }

.icon-user-secret:before {
  content: "\f21b"; }

.icon-motorcycle:before {
  content: "\f21c"; }

.icon-street-view:before {
  content: "\f21d"; }

.icon-heartbeat:before {
  content: "\f21e"; }

.icon-venus:before {
  content: "\f221"; }

.icon-mars:before {
  content: "\f222"; }

.icon-mercury:before {
  content: "\f223"; }

.icon-transgender:before {
  content: "\f224"; }

.icon-transgender-alt:before {
  content: "\f225"; }

.icon-venus-double:before {
  content: "\f226"; }

.icon-mars-double:before {
  content: "\f227"; }

.icon-venus-mars:before {
  content: "\f228"; }

.icon-mars-stroke:before {
  content: "\f229"; }

.icon-mars-stroke-v:before {
  content: "\f22a"; }

.icon-mars-stroke-h:before {
  content: "\f22b"; }

.icon-neuter:before {
  content: "\f22c"; }

.icon-facebook-official:before {
  content: "\f230"; }

.icon-pinterest-p:before {
  content: "\f231"; }

.icon-whatsapp:before {
  content: "\f232"; }

.icon-server:before {
  content: "\f233"; }

.icon-user-plus:before {
  content: "\f234"; }

.icon-user-times:before {
  content: "\f235"; }

.icon-bed:before {
  content: "\f236"; }

.icon-hotel:before {
  content: "\f236"; }

.icon-viacoin:before {
  content: "\f237"; }

.icon-train:before {
  content: "\f238"; }

.icon-subway:before {
  content: "\f239"; }

.icon-medium:before {
  content: "\f23a"; }

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'brandon_icons';
    src: url('../font/brandon_icons.svg?55363371#brandon_icons') format('svg');
  }
}
*/
.socialbtn {
  background-image: url("../images/spritesheet-social.png");
  background-repeat: no-repeat;
  text-decoration: none;
  width: 48px;
  height: 48px;
  display: inline-block; }
  .socialbtn.twitter_white {
    background-position: -1px -1px; }
  .socialbtn.linkedin_white {
    background-position: -1px -51px; }
  .socialbtn.twitter_grey {
    background-position: -1px -101px; }
  .socialbtn.linkedin_grey {
    background-position: -1px -151px; }
  .socialbtn.facebook_grey {
    background-position: -1px -201px; }
  .socialbtn.google_grey {
    background-position: -1px -251px; }

.btn-group {
  padding-top: 7.5px;
  padding-bottom: 2.5px; }
  @media (min-width: 768px) {
    .btn-group {
      padding-top: 15px; } }
  @media (min-width: 768px) {
    .btn-group {
      padding-bottom: 5px; } }
  .btn-group .btn {
    margin-right: 5px;
    margin-bottom: 5px; }
    @media (min-width: 768px) {
      .btn-group .btn {
        margin-right: 10px; } }
    @media (min-width: 768px) {
      .btn-group .btn {
        margin-bottom: 10px; } }

.btn--yellow {
  -webkit-transition: box-shadow 250ms;
  -moz-transition: box-shadow 250ms;
  -ms-transition: box-shadow 250ms;
  -o-transition: box-shadow 250ms;
  transition: box-shadow 250ms;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  display: inline-block;
  padding: 10px 35px;
  background-color: #ffc817;
  color: black;
  text-decoration: none;
  white-space: nowrap;
  text-transform: uppercase;
  border: none;
  text-align: center;
  cursor: pointer; }
  .btn:hover, .btn:active, .btn:focus {
    background-color: #ffd960;
    text-decoration: none;
    color: black; }

.btn {
  -webkit-transition: box-shadow 250ms;
  -moz-transition: box-shadow 250ms;
  -ms-transition: box-shadow 250ms;
  -o-transition: box-shadow 250ms;
  transition: box-shadow 250ms;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  display: inline-block;
  padding: 10px 35px;
  background-color: #de2130;
  color: white;
  text-decoration: none;
  white-space: nowrap;
  text-transform: uppercase;
  border: none;
  text-align: center;
  cursor: pointer; }
  .btn:hover, .btn:active, .btn:focus {
    background-color: #e13745;
    text-decoration: none;
    color: white; }

.btns-inline {
  display: table;
  width: 100%; }
  .btns-inline > * {
    display: table-cell;
    padding: 0 7.5px;
    vertical-align: middle; }
    .btns-inline > *:first-child {
      padding-left: 0; }
    .btns-inline > *:last-child {
      padding-right: 0; }
    @media (min-width: 1px) {
      .btns-inline > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      .btns-inline > *.hidden-mobile {
        display: table-cell; }
      .btns-inline > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      .btns-inline > *.hidden-tween {
        display: table-cell; }
      .btns-inline > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      .btns-inline > *.hidden-tablet {
        display: table-cell; }
      .btns-inline > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      .btns-inline > *.hidden-desktop {
        display: table-cell; }
      .btns-inline > *.hidden-desktop-l {
        display: none; } }

.btn-back {
  margin-bottom: 15px; }
  .btn-back .icon {
    vertical-align: middle;
    display: inline-block;
    margin-right: 10px;
    margin-top: -1px; }

.btn-showmore{
  width: 100%;
    padding: 1em;
    background: rgb(248, 248, 248);
    border-color: lightgray;
    border-style: solid;
    font-weight: bold;
    font-size: 16px;
}
.lst-border{
  border-color: lightgray;
    border-style: solid;
    border-bottom: 0;
    border-width: 2px;
}
.lst-border-full{
  border-color: lightgray;
    border-style: solid;
    border-width: 2px;
}
.lst-manage{
  min-height:55px;
  background: white;
  padding: 1em;
}
.lst-manage:hover{
  min-height:55px;
  background: #ffefef;
}
.validation-err{
  color:red;
  margin-top:10px;
}
.btn-edit{
  float: right;
  color: #b1b1b1;
}
html {
  font-size: 14px; }

body {
  font-family: "museo-sans-rounded", Tahoma, Segoe, sans-serif; }

p {
  margin-top: 0;
  margin-bottom: 15px;
  font-weight: 300; }
  p:last-child {
    margin-bottom: 0; }
  p a {
    text-decoration: underline; }

a, .link {
  color: #de2130; }
  a:hover, a:focus, .link:hover, .link:focus {
    color: #e9353b;
    text-decoration: none; }
  a:focus, .link:focus {
    outline: thin dotted;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px; }

.link-dark, .login-block .form-wrapper .options .forgot, .dashboard-block .exercises .exercise .controls .control, .channels-block .channel a {
  color: #4f4f4f; }
  .link-dark:hover, .login-block .form-wrapper .options .forgot:hover, .dashboard-block .exercises .exercise .controls .control:hover, .channels-block .channel a:hover, .link-dark:focus, .login-block .form-wrapper .options .forgot:focus, .dashboard-block .exercises .exercise .controls .control:focus, .channels-block .channel a:focus {
    color: #e9353b; }

b, .bold {
  font-weight: 700; }

.thin {
  font-weight: 300; }

.thinnest {
  font-weight: 100; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: #4f4f4f;
  font-family: "museo-sans-rounded", Tahoma, Segoe, sans-serif;
  font-weight: 500;
  margin-bottom: 20px; }

h1, .h1 {
  font-size: 36px;
  font-size: 2.57143rem;
  font-weight: 100;
  color: #de2130; }

h2, .h2 {
  font-size: 24px;
  font-size: 1.71429rem;
  font-weight: 100; }

h3, .h3 {
  font-size: 20px;
  font-size: 1.42857rem; }

h4, .h4 {
  font-size: 18px;
  font-size: 1.28571rem;
  margin-bottom: 10px; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  margin-top: 0; }

.uppercase {
  text-transform: uppercase; }

.highlight {
  color: #de2130; }

.highlighted {
  font-weight: 700; }

.subbed {
  margin-bottom: 0; }

/*
*   Owl Carousel Owl Demo Theme 
*   v1.3.3
*/
.owl-controls {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  z-index: 2;
  margin-top: -50px; }
  .owl-controls:after {
    content: " ";
    display: block;
    clear: both; }
  @media (min-width: 768px) {
    .owl-controls {
      margin-top: -60px; } }
  .owl-controls .owl-nav {
    display: inline-block; }
    .owl-controls .owl-nav .owl-next, .owl-controls .owl-nav .owl-prev {
      position: absolute;
      color: white;
      display: inline-block;
      zoom: 1;
      *display: inline;
      font-size: 60px; }
      @media (min-width: 768px) {
        .owl-controls .owl-nav .owl-next, .owl-controls .owl-nav .owl-prev {
          font-size: 100px; } }
      .owl-controls .owl-nav .owl-next .icon, .owl-controls .owl-nav .owl-prev .icon {
        display: inline-block;
        vertical-align: middle;
        margin-top: -1px; }
    .owl-controls .owl-nav .owl-next {
      right: -10px; }
    .owl-controls .owl-nav .owl-prev {
      left: -10px; }
  .owl-controls.clickable .owl-buttons div:hover {
    text-decoration: none; }
  .owl-controls .owl-dots {
    display: inline-block;
    vertical-align: middle;
    margin-bottom: -2px; }
    .owl-controls .owl-dots .owl-dot {
      display: inline-block;
      zoom: 1;
      vertical-align: bottom;
      *display: inline; }
      .owl-controls .owl-dots .owl-dot span {
        display: block;
        width: 14px;
        height: 14px;
        margin: 5px 4px;
        -webkit-border-radius: 20px;
        -moz-border-radius: 20px;
        border-radius: 20px;
        background: white; }
      .owl-controls .owl-dots .owl-dot.active span {
        background: #de2130; }

.owl-item {
  overflow: hidden; }
  .owl-item.loading {
    min-height: 150px;
    background: url(/scripts/libs/owlCarousel/AjaxLoader.gif) no-repeat center center; }

.owl-carousel, .hero-block .contain, .hero-block .item, .owl-wrapper-outer, .owl-wrapper, .owl-stage, .owl-stage-outer, .owl-item {
  height: 100%; }

.owl-carousel {
  overflow: hidden; }
  .owl-carousel .body {
    opacity: 0;
    filter: alpha(opacity=0); }

.owl-carousel .active .body {
  -webkit-transition: all 150ms ease-in;
  -moz-transition: all 150ms ease-in;
  -ms-transition: all 150ms ease-in;
  -o-transition: all 150ms ease-in;
  transition: all 150ms ease-in;
  opacity: 1;
  filter: alpha(opacity=100); }

.owl-carousel.transitioning .body, .owl-carousel.transitioning .active .body {
  -webkit-transition: all 150ms ease-out;
  -moz-transition: all 150ms ease-out;
  -ms-transition: all 150ms ease-out;
  -o-transition: all 150ms ease-out;
  transition: all 150ms ease-out;
  opacity: 0;
  filter: alpha(opacity=0); }

.encircled {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  display: inline-block;
  width: 85px;
  height: 85px;
  text-align: center;
  line-height: 85px;
  background-color: white; }
  .encircled .icon {
    line-height: 81px; }
  .encircled:before {
    border-color: white; }

.encircled-doubled {
  position: relative;
  margin: 8px; }
  .encircled-doubled:before {
    -webkit-border-radius: 50%;
    border-radius: 50%;
    background-clip: padding-box;
    /* stops bg color from leaking outside the border: */
    content: " ";
    position: absolute;
    top: -8px;
    bottom: -8px;
    left: -8px;
    right: -8px;
    border-width: 4px;
    border-style: solid; }

.encircled-gray {
  background-color: #ebebeb; }
  .encircled-gray:before {
    border-color: #ebebeb; }

.encircled-white {
  background-color: white; }
  .encircled-white:before {
    border-color: white; }

.encircled-social {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  display: inline-block;
  width: 40px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  display: block;
  font-size: 21px; }
  .encircled-social .icon {
    line-height: 36px; }
  .encircled-social .icon {
    display: inline-block;
    vertical-align: middle; }
  .encircled-social .icon-twitter {
    margin-top: -2px; }
  .encircled-social .icon-linkedin {
    margin-top: -4px;
    margin-right: -2px; }
  .encircled-social .icon-facebook {
    margin-left: -2px;
    margin-top: -2px; }
  .encircled-social .icon-google-plus {
    margin-top: -2px; }

@media (min-width: 1px) {
  .hidden-mobile {
    display: none; } }

@media (min-width: 480px) {
  .hidden-mobile {
    display: block; }
  .hidden-tween {
    display: none; } }

@media (min-width: 768px) {
  .hidden-tween {
    display: block; }
  .hidden-tablet {
    display: none; } }

@media (min-width: 960px) {
  .hidden-tablet {
    display: block; }
  .hidden-desktop {
    display: none; } }

@media (min-width: 1200px) {
  .hidden-desktop {
    display: block; }
  .hidden-desktop-l {
    display: none; } }

.modal {
  -webkit-transition: opacity 250ms;
  -moz-transition: opacity 250ms;
  -ms-transition: opacity 250ms;
  -o-transition: opacity 250ms;
  transition: opacity 250ms;
  opacity: 0;
  filter: alpha(opacity=0);
  position: fixed;
  visibility: hidden;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  z-index: 999;
  cursor: pointer; }
  .modal.active {
    opacity: 1;
    filter: alpha(opacity=100);
    visibility: visible; }
    .modal.active .modal-content {
      margin-top: 0; }
  .modal .modal-background {
    opacity: 0.7;
    filter: alpha(opacity=70);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    height: 100%;
    background-color: black; }
  .modal .modal-inner {
    -moz-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    top: 50%;
    width: 100%;
    position: absolute;
    width: auto;
    left: 30px;
    right: 30px;
    cursor: pointer; }
  .modal .modal-content {
    -webkit-transition: margin-top 100ms;
    -moz-transition: margin-top 100ms;
    -ms-transition: margin-top 100ms;
    -o-transition: margin-top 100ms;
    transition: margin-top 100ms;
    padding: 15px;
    position: relative;
    margin: auto;
    margin-top: -40px;
    max-width: 700px;
    background-color: white;
    cursor: auto; }
    @media (min-width: 768px) {
      .modal .modal-content {
        padding: 30px; } }

.box {
  -webkit-border-radius: 5px;
  border-radius: 5px;
  background-clip: padding-box;
  /* stops bg color from leaking outside the border: */
  background-color: white;
  border: 1px solid #ebebeb;
  padding: 20px; }
  .box.gray {
    background-color: #f8f8f8; }

.navbar-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10; }
  .navbar-wrapper a {
    text-decoration: none; }
  .navbar-wrapper .navbar {
    display: table;
    width: 100%;
    position: relative;
    background-color: white;
    border-bottom: 1px solid #ebebeb;
    padding: 15px; }
    .navbar-wrapper .navbar > * {
      display: table-cell;
      padding: 0 15px;
      vertical-align: middle; }
      .navbar-wrapper .navbar > *:first-child {
        padding-left: 0; }
      .navbar-wrapper .navbar > *:last-child {
        padding-right: 0; }
      @media (min-width: 1px) {
        .navbar-wrapper .navbar > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .navbar-wrapper .navbar > *.hidden-mobile {
          display: table-cell; }
        .navbar-wrapper .navbar > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .navbar-wrapper .navbar > *.hidden-tween {
          display: table-cell; }
        .navbar-wrapper .navbar > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .navbar-wrapper .navbar > *.hidden-tablet {
          display: table-cell; }
        .navbar-wrapper .navbar > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .navbar-wrapper .navbar > *.hidden-desktop {
          display: table-cell; }
        .navbar-wrapper .navbar > *.hidden-desktop-l {
          display: none; } }
  .navbar-wrapper .logos-wrapper {
    width: 100%; }
    .navbar-wrapper .logos-wrapper h2 {
      line-height: 16px; }
    .navbar-wrapper .logos-wrapper .logos {
      display: inline-block;
      vertical-align: bottom; }
    .navbar-wrapper .logos-wrapper .logos-inner {
      display: table;
      width: 100%; }
      .navbar-wrapper .logos-wrapper .logos-inner > * {
        display: table-cell;
        padding: 0 5px;
        vertical-align: bottom; }
        .navbar-wrapper .logos-wrapper .logos-inner > *:first-child {
          padding-left: 0; }
        .navbar-wrapper .logos-wrapper .logos-inner > *:last-child {
          padding-right: 0; }
        @media (min-width: 1px) {
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-mobile {
            display: none; } }
        @media (min-width: 480px) {
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-mobile {
            display: table-cell; }
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-tween {
            display: none; } }
        @media (min-width: 768px) {
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-tween {
            display: table-cell; }
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-tablet {
            display: none; } }
        @media (min-width: 960px) {
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-tablet {
            display: table-cell; }
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-desktop {
            display: none; } }
        @media (min-width: 1200px) {
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-desktop {
            display: table-cell; }
          .navbar-wrapper .logos-wrapper .logos-inner > *.hidden-desktop-l {
            display: none; } }
    .navbar-wrapper .logos-wrapper .logo-wrapper a {
      display: inline-block; }
    .navbar-wrapper .logos-wrapper .logo-wrapper .logo {
      max-height: 40px; }
  .navbar-wrapper .search-wrapper {
    min-width: 330px;
    display: none; }
    @media (min-width: 960px) {
      .navbar-wrapper .search-wrapper {
        display: table-cell; } }
  .navbar-wrapper .menu-wrapper {
    white-space: nowrap; }
    .navbar-wrapper .menu-wrapper .profile-pic {
      display: inline-block;
      vertical-align: top;
      margin-right: -1px;
      position: relative; }
    .navbar-wrapper .menu-wrapper .menu-icon {
      display: inline-block;
      padding: 12px 12px;
      background-color: #ebebeb;
      color: #4f4f4f;
      min-width: 42px;
      text-align: center;
      font-size: 19px;
      border: 1px solid #cecece; }
      .navbar-wrapper .menu-wrapper .menu-icon:hover, .navbar-wrapper .menu-wrapper .menu-icon:focus {
        text-decoration: none; }
    .navbar-wrapper .menu-wrapper .icon-navicon:before {
      margin-right: -3px; }
    .navbar-wrapper .menu-wrapper .links {
      -webkit-transition: all 100ms;
      -moz-transition: all 100ms;
      -ms-transition: all 100ms;
      -o-transition: all 100ms;
      transition: all 100ms;
      opacity: 0;
      filter: alpha(opacity=0);
      visibility: hidden;
      margin-top: -20px;
      position: absolute;
      top: 100%;
      right: 0;
      white-space: nowrap;
      background-color: white;
      border-left: 1px solid #ebebeb; }
      .navbar-wrapper .menu-wrapper .links.active {
        opacity: 1;
        filter: alpha(opacity=100);
        margin-top: 0;
        visibility: visible; }
      .navbar-wrapper .menu-wrapper .links a {
        display: block;
        padding: 7.5px 15px;
        border-bottom: 1px solid #ebebeb;
        color: #4f4f4f; }
        .navbar-wrapper .menu-wrapper .links a.active, .navbar-wrapper .menu-wrapper .links a:hover {
          color: #de2130; }
        .navbar-wrapper .menu-wrapper .links a:hover {
          background-color: #ebebeb;
          text-decoration: none; }

.footer-main {
  display: table;
  width: 100%;
  padding-top: 60px;
  padding-bottom: 30px; }
  .footer-main > * {
    display: table-cell;
    padding: 0 15px;
    vertical-align: middle; }
    .footer-main > *:first-child {
      padding-left: 0; }
    .footer-main > *:last-child {
      padding-right: 0; }
    @media (min-width: 1px) {
      .footer-main > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      .footer-main > *.hidden-mobile {
        display: table-cell; }
      .footer-main > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      .footer-main > *.hidden-tween {
        display: table-cell; }
      .footer-main > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      .footer-main > *.hidden-tablet {
        display: table-cell; }
      .footer-main > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      .footer-main > *.hidden-desktop {
        display: table-cell; }
      .footer-main > *.hidden-desktop-l {
        display: none; } }
  .footer-main .body {
    width: 100%; }
  .footer-main .logo-wrapper .logo {
    max-height: 36px; }

.sidebar .box {
  margin-bottom: 30px; }

.sidebar .h4 {
  font-weight: 100; }

.loading-wrapper {
  position: relative; }

.loading {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0; }
  .loading .loading-background {
    opacity: 0.3;
    filter: alpha(opacity=30);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: black; }
  .loading .loading-content {
    -moz-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    top: 50%;
    width: 100%;
    text-align: center;
    color: white; }

.loading-infinite {
  text-align: center; }

.printonly {
  display: none; }

@media print {
  * {
    text-shadow: none !important;
    color: #000 !important;
    background: transparent !important;
    box-shadow: none !important; }
  .post.box .body {
    display: none; }
  a,
  a:visited {
    text-decoration: underline; }
  /*a[href]:after {
        content: " (" attr(href) ")";
    }
    abbr[title]:after {
        content: " (" attr(title) ")";
    }*/
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  select {
    background: #fff !important; }
  body {
    padding-top: 0 !important; }
  .times-block .controls {
    display: none !important; }
  .navbar-wrapper {
    display: none !important; }
  .newpost-block {
    display: none !important; }
  .print-block {
    display: none !important; }
  .printonly {
    display: block; } }

@media print {
  a[href]:after {
      content: "";
  }

  .icon-circle:before, .posts-block .post .header-wrapper .details .detail + .detail:before {
    content: "";
  }
  .print-hide {
    display: none !important;
  }
  .post-container {
    page-break-inside: avoid;
    box-shadow: 0px 0px 13px -4px grey !important;
    margin-top: 30px;
  }
  .image {
    -webkit-print-color-adjust:exact;
  }

  .posts-block .post .header-wrapper .details .detail + .detail {
    display: inline-block;
  }
  .printonly {
    display: block !important; 
  }

  .post.box.post-reply {
    background: #eaeaea !important;
    border-bottom: 5px solid #afafaf;
  }
  
}

.printonly {
  display: none;
}

.print-button {
  background: #df2026;
    color: white;
    padding-left: 10px !important;
    border-radius: 5px;
    text-shadow: 0px 0px 4px #afafaf;
    box-shadow: 1px 0px 10px -2px #ff7777
}


.print-button:hover {
  background: #ec383e;
  color: white;
}

.print-button:focus {
  background: #ad0b11;
  color: white;
}

.box input.search {
  width: 100%;
  border-radius: 4px;
  border: 1px solid rgb(143, 190, 251);
  padding: 5px;
}

.body-block {
  text-align: center; }
  .body-block .nav li {
    position: relative;
    display: inline-block;
    padding: 0 5px;
    text-transform: uppercase; }
    @media (min-width: 480px) {
      .body-block .nav li {
        padding: 0 20px; } }
    .body-block .nav li:before {
      content: "|";
      position: absolute;
      left: -2px; }
    .body-block .nav li:first-child:before {
      content: ""; }

.login-block {
  padding-left: 15px;
  padding-right: 15px;
  max-width: 690px;
  margin: auto; }
  @media (min-width: 768px) {
    .login-block {
      padding-left: 30px; } }
  @media (min-width: 768px) {
    .login-block {
      padding-right: 30px; } }
  .login-block .logo-wrapper {
    text-align: center; }
    .login-block .logo-wrapper .logo {
      display: inline-block;
      width: 100%;
      max-width: 300px; }
  .login-block .form-wrapper {
    margin: 30px 0;
    padding: 30px;
    background-color: white; }
    @media (min-width: 480px) {
      .login-block .form-wrapper {
        margin: 30px; } }
    .login-block .form-wrapper .heading {
      text-align: center;
      margin-bottom: 30px; }
    .login-block .form-wrapper .form {
      max-width: 370px;
      margin: auto; }
      .login-block .form-wrapper .form input {
        padding: 15px; }
    .login-block .form-wrapper .options {
      text-align: center; }
      .login-block .form-wrapper .options .forgot {
        margin-bottom: 15px;
        display: inline-block; }
        @media (min-width: 768px) {
          .login-block .form-wrapper .options .forgot {
            margin-bottom: 30px; } }
      .login-block .form-wrapper .options .btn {
        min-width: 165px; }

.dashboard-block {
  max-width: 800px;
  margin: auto;
  padding: 0 15px; }
  .dashboard-block header {
    display: table;
    width: 100%;
    margin-bottom: 15px; }
    .dashboard-block header > * {
      display: table-cell;
      padding: 0 15px;
      vertical-align: middle; }
      .dashboard-block header > *:first-child {
        padding-left: 0; }
      .dashboard-block header > *:last-child {
        padding-right: 0; }
      @media (min-width: 1px) {
        .dashboard-block header > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .dashboard-block header > *.hidden-mobile {
          display: table-cell; }
        .dashboard-block header > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .dashboard-block header > *.hidden-tween {
          display: table-cell; }
        .dashboard-block header > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .dashboard-block header > *.hidden-tablet {
          display: table-cell; }
        .dashboard-block header > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .dashboard-block header > *.hidden-desktop {
          display: table-cell; }
        .dashboard-block header > *.hidden-desktop-l {
          display: none; } }
  .dashboard-block .header-wrapper {
    width: 100%; }
    .dashboard-block .header-wrapper .header {
      margin-bottom: 0; }
  .dashboard-block .sort-wrapper {
    white-space: nowrap; }
    .dashboard-block .sort-wrapper label, .dashboard-block .sort-wrapper select {
      display: inline-block; }
    .dashboard-block .sort-wrapper label {
      margin-right: 15px; }
    .dashboard-block .sort-wrapper select {
      width: auto; }
  .dashboard-block .exercises .exercise {
    display: table;
    width: 100%;
    margin-bottom: 30px; }
    .dashboard-block .exercises .exercise > * {
      display: table-cell;
      padding: 0 0;
      vertical-align: middle; }
      .dashboard-block .exercises .exercise > *:first-child {
        padding-left: 0; }
      .dashboard-block .exercises .exercise > *:last-child {
        padding-right: 0; }
      @media (min-width: 1px) {
        .dashboard-block .exercises .exercise > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .dashboard-block .exercises .exercise > *.hidden-mobile {
          display: table-cell; }
        .dashboard-block .exercises .exercise > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .dashboard-block .exercises .exercise > *.hidden-tween {
          display: table-cell; }
        .dashboard-block .exercises .exercise > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .dashboard-block .exercises .exercise > *.hidden-tablet {
          display: table-cell; }
        .dashboard-block .exercises .exercise > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .dashboard-block .exercises .exercise > *.hidden-desktop {
          display: table-cell; }
        .dashboard-block .exercises .exercise > *.hidden-desktop-l {
          display: none; } }
    .dashboard-block .exercises .exercise.box {
      padding: 0; }
    .dashboard-block .exercises .exercise .content {
      width: 100%;
      padding: 30px;
      vertical-align: top; }
      .dashboard-block .exercises .exercise .content .body {
        color: #8a8a8a;
        margin-bottom: 15px; }
      .dashboard-block .exercises .exercise .content .details {
        font-size: 16px;
        font-size: 1.14286rem;
        text-align: left; }
        .dashboard-block .exercises .exercise .content .details th, .dashboard-block .exercises .exercise .content .details td {
          padding-bottom: 8px; }
        .dashboard-block .exercises .exercise .content .details th {
          padding-right: 15px; }
        .dashboard-block .exercises .exercise .content .details a {
          margin-left: 15px;
          display: inline-block; }
        .dashboard-block .exercises .exercise .content .details .icon {
          display: inline-block;
          margin-right: 3px;
          font-size: 16px;
          vertical-align: text-top; }
    .dashboard-block .exercises .exercise .controls {
      min-width: 185px; }
      .dashboard-block .exercises .exercise .controls a {
        text-decoration: none; }
      .dashboard-block .exercises .exercise .controls .control {
        display: block;
        padding: 30px 46px;
        text-align: center; }
        .dashboard-block .exercises .exercise .controls .control:hover {
          text-decoration: none; }
        .dashboard-block .exercises .exercise .controls .control .icon {
          display: block;
          font-size: 24px;
          margin-bottom: 5px; }
        .dashboard-block .exercises .exercise .controls .control .label {
          font-size: 16px;
          font-size: 1.14286rem; }
        .dashboard-block .exercises .exercise .controls .control + .control {
          border-top: 1px solid #ebebeb; }

.channels-block .channel {
  margin-bottom: 15px; }
  .channels-block .channel a {
    display: inline-block;
    text-decoration: none;
    margin-bottom: 6px; }
    .channels-block .channel a:focus {
      color: #4f4f4f; }
    .channels-block .channel a:hover {
      color: #de2130; }
  .channels-block .channel .heading {
    margin-bottom: 5px; }
  .channels-block .channel .selected, .channels-block .channel .selected:focus {
    color: #de2130; }
  .channels-block .channel .selected:before {
    font-family: 'font-awesome';
    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;
    display: inline-block;
    vertical-align: middle;
    color: #bd353a;
    margin-top: -3px;
    margin-right: 2px; }

.new-post-block {
  margin-bottom: 30px; }
  .new-post-block .character-count {
    float: right; }
  .new-post-block .character-length-twitter {
    color: #4f4f4f; }
  .new-post-block .character-length-facebook {
    color: red; }
  .new-post-block .header {
    margin-bottom: 20px; }
    .new-post-block .header > * {
      display: inline-block;
      vertical-align: bottom;
      margin-bottom: 0; }
    .new-post-block .header span {
      color: #b2b2b2;
      margin: 0 3px;
      margin-bottom: 2px; }
  .new-post-block .field-image {
    padding: 8px; }
  .new-post-block .field-group {
    display: table;
    width: 100%;
    margin-top: 15px;
    display: none; }
    .new-post-block .field-group > * {
      display: table-cell;
      padding: 0 7.5px;
      vertical-align: middle; }
      .new-post-block .field-group > *:first-child {
        padding-left: 0; }
      .new-post-block .field-group > *:last-child {
        padding-right: 0; }
      @media (min-width: 1px) {
        .new-post-block .field-group > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .new-post-block .field-group > *.hidden-mobile {
          display: table-cell; }
        .new-post-block .field-group > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .new-post-block .field-group > *.hidden-tween {
          display: table-cell; }
        .new-post-block .field-group > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .new-post-block .field-group > *.hidden-tablet {
          display: table-cell; }
        .new-post-block .field-group > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .new-post-block .field-group > *.hidden-desktop {
          display: table-cell; }
        .new-post-block .field-group > *.hidden-desktop-l {
          display: none; } }
  .new-post-block .expanded .field-message {
     }
  .new-post-block .expanded .field-group {
    display: block; }

.posts-block .post {
  margin-bottom: 30px; }
  .posts-block .post.expanded .icon-ellipsis-h {
    color: #df2026; }
  .posts-block .post .header-wrapper {
    display: table;
    width: 100%;
    margin-bottom: 15px; }
    .posts-block .post .header-wrapper > * {
      display: table-cell;
      padding: 0 7.5px;
      vertical-align: middle; }
      .posts-block .post .header-wrapper > *:first-child {
        padding-left: 0; }
      .posts-block .post .header-wrapper > *:last-child {
        padding-right: 0; }
      @media (min-width: 1px) {
        .posts-block .post .header-wrapper > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .posts-block .post .header-wrapper > *.hidden-mobile {
          display: table-cell; }
        .posts-block .post .header-wrapper > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .posts-block .post .header-wrapper > *.hidden-tween {
          display: table-cell; }
        .posts-block .post .header-wrapper > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .posts-block .post .header-wrapper > *.hidden-tablet {
          display: table-cell; }
        .posts-block .post .header-wrapper > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .posts-block .post .header-wrapper > *.hidden-desktop {
          display: table-cell; }
        .posts-block .post .header-wrapper > *.hidden-desktop-l {
          display: none; } }
    .posts-block .post .header-wrapper .image img {
      max-width: none;
      width: 50px; }
    .posts-block .post .header-wrapper .header, .posts-block .post .header-wrapper .details {
      display: inline-block;
      vertical-align: text-bottom; }
    .posts-block .post .header-wrapper .header {
      margin-bottom: 0; }
    .posts-block .post .header-wrapper .details {
      font-size: 18px;
      font-size: 1.28571rem;
      color: #b2b2b2;
      font-weight: 300;
      margin-left: 4px; }
      .posts-block .post .header-wrapper .details .detail.at a {
        color: #b2b2b2;
        text-decoration: none; }
        .posts-block .post .header-wrapper .details .detail.at a:hover {
          color: #de2130; }
      .posts-block .post .header-wrapper .details .detail + .detail {
        position: relative;
        padding-left: 20px; }
        .posts-block .post .header-wrapper .details .detail + .detail:before {
          font-family: 'font-awesome';
          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;
          display: inline-block;
          font-size: 6px;
          position: absolute;
          left: 5px;
          top: 50%;
          margin-top: -3px; }
  .posts-block .post .body {
    color: #8a8a8a;
    word-break: break-word; }
  .posts-block .post .image {
    margin-top: 15px; }
    .posts-block .post .image img {
      max-width: auto;
      width: 100%; }
  .posts-block .post .video {
    margin-top: 15px; }
  .posts-block .post .original-post {
    margin-top: 15px; }
    .posts-block .post .original-post.expandable:hover {
      cursor: pointer;
      background-color: white; }
    .posts-block .post .original-post .header {
      font-size: 14px;
      font-size: 1rem;
      font-weight: 500;
      margin-bottom: 3px;
      color: #4f4f4f; }
    .posts-block .post .original-post .body {
      font-size: 12px;
      font-size: 0.85714rem; }
  .posts-block .post .actions .action {
    display: inline-block;
    margin-top: 15px;
    margin-right: 15px;
    color: #b2b2b2;
    text-decoration: none;
    font-size: 12px; }
    .posts-block .post .actions .action:hover {
      color: #8a8a8a; }
    .posts-block .post .actions .action.selected {
      color: #d0cb4f; }
    .posts-block .post .actions .action .icon {
      font-size: 16px;
      vertical-align: text-top;
      margin-top: -1px; }
    .posts-block .post .actions .action .icon-star {
      margin-right: 1px; }

.times-block {
  padding: 15px; }
  .times-block .time-wrapper {
    display: table;
    width: 100%; }
    .times-block .time-wrapper > * {
      display: table-cell;
      padding: 0 3px;
      vertical-align: middle; }
      .times-block .time-wrapper > *:first-child {
        padding-left: 0; }
      .times-block .time-wrapper > *:last-child {
        padding-right: 0; }
      @media (min-width: 1px) {
        .times-block .time-wrapper > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .times-block .time-wrapper > *.hidden-mobile {
          display: table-cell; }
        .times-block .time-wrapper > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .times-block .time-wrapper > *.hidden-tween {
          display: table-cell; }
        .times-block .time-wrapper > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .times-block .time-wrapper > *.hidden-tablet {
          display: table-cell; }
        .times-block .time-wrapper > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .times-block .time-wrapper > *.hidden-desktop {
          display: table-cell; }
        .times-block .time-wrapper > *.hidden-desktop-l {
          display: none; } }
    .times-block .time-wrapper .icon-clock-o {
      color: #de2130;
      font-size: 22px; }
  .times-block .controls .icon {
    margin-left: 5px; }
  .times-block .controls .icon-pause, .times-block .controls .icon-play {
    font-size: 12px; }
  .times-block .controls .btn {
    width: 100%;
    margin-top: 15px;
    padding-left: 15px;
    padding-right: 15px; }
  .times-block .controls .btn-start {
    margin-top: 0; }
  .times-block .controls .btn-start, .times-block .controls .btn-continue {
    background-color: #5cb85c; }
  .times-block .controls .btn-pause {
    background-color: #f0ad4e; }
  .times-block .controls .btn-stop {
    background-color: #5bc0de; }
  .times-block .controls .btn-abandon {
    background-color: #d9534f; }
  .times-block.status-idle .btn-pause, .times-block.status-idle .btn-continue, .times-block.status-idle .btn-stop, .times-block.status-idle .btn-abandon {
    display: none; }
  .times-block.status-started .btn-start, .times-block.status-started .btn-continue {
    display: none; }
  .times-block.status-paused .btn-start, .times-block.status-paused .btn-pause {
    display: none; }
  .times-block.status-complete .btn-start, .times-block.status-complete .btn-pause, .times-block.status-complete .btn-continue, .times-block.status-complete .btn-stop, .times-block.status-complete .btn-abandon {
    display: none; }
  .times-block.status-abandoned .btn-start, .times-block.status-abandoned .btn-pause, .times-block.status-abandoned .btn-continue, .times-block.status-abandoned .btn-stop, .times-block.status-abandoned .btn-abandon {
    display: none; }

.trends-block a {
  text-decoration: none; }
  .trends-block a:hover {
    text-decoration: underline; }

.trends-block .trends .trend {
  margin-bottom: 5px; }

.profile-block .image {
  width: 100%;
  margin-bottom: 15px;
  display: block; }

.profile-block .header-wrapper .header {
  font-weight: 500;
  margin-bottom: 0; }

.profile-block .header-wrapper .details {
  font-size: 18px;
  font-size: 1.28571rem;
  color: #b2b2b2;
  font-weight: 300;
  margin-bottom: 15px; }

.profile-block .body, .profile-block .body p {
  color: #8a8a8a;
  font-weight: 500; }

@media (min-width: 768px) {
  .exercise-template {
    display: table;
    width: 100%; }
    .exercise-template > * {
      display: table-cell;
      padding: 0 15px;
      vertical-align: top; }
      .exercise-template > *:first-child {
        padding-left: 0; }
      .exercise-template > *:last-child {
        padding-right: 0; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .exercise-template > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .exercise-template > *.hidden-mobile {
        display: table-cell; }
      .exercise-template > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .exercise-template > *.hidden-tween {
        display: table-cell; }
      .exercise-template > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .exercise-template > *.hidden-tablet {
        display: table-cell; }
      .exercise-template > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .exercise-template > *.hidden-desktop {
        display: table-cell; }
      .exercise-template > *.hidden-desktop-l {
        display: none; } }

@media (min-width: 768px) {
  .exercise-template .sidebar-wrapper {
    width: 23.33333%; } }

.exercise-template .sidebar-wrapper.leftside .sidebar {
  display: table;
  width: 100%; }
  .exercise-template .sidebar-wrapper.leftside .sidebar > * {
    display: table-cell;
    padding: 0 15px;
    vertical-align: top; }
    .exercise-template .sidebar-wrapper.leftside .sidebar > *:first-child {
      padding-left: 0; }
    .exercise-template .sidebar-wrapper.leftside .sidebar > *:last-child {
      padding-right: 0; }
    @media (min-width: 1px) {
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-mobile {
        display: table-cell; }
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-tween {
        display: table-cell; }
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-tablet {
        display: table-cell; }
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-desktop {
        display: table-cell; }
      .exercise-template .sidebar-wrapper.leftside .sidebar > *.hidden-desktop-l {
        display: none; } }
  @media (min-width: 768px) {
    .exercise-template .sidebar-wrapper.leftside .sidebar {
      display: block; }
      .exercise-template .sidebar-wrapper.leftside .sidebar > * {
        display: block;
        width: auto;
        padding: 0; } }
  .exercise-template .sidebar-wrapper.leftside .sidebar .mobile {
    display: table-cell; }
    @media (min-width: 768px) {
      .exercise-template .sidebar-wrapper.leftside .sidebar .mobile {
        display: none; } }

.exercise-template .sidebar-wrapper.rightside {
  display: none; }
  @media (min-width: 768px) {
    .exercise-template .sidebar-wrapper.rightside {
      display: table-cell; } }

@media (min-width: 768px) {
  .exercise-template .content-wrapper {
    width: 48.33333%; } }

.profile-dropdown-toggle {
  display: block;
  position: relative;
  float: right;
  padding: 9px 10px;
  margin-top: 8px;
  margin-right: 15px;
  margin-bottom: 8px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 0; }

.c-avatar__add-btn{
  text-align: center;
}
.c-avatar__add-btn i{
  font-size: 40px;
  cursor: pointer;
}
.c-avatar__add-btn i:hover{
  color:#de2130;
}
.c-avatar__add{
  padding: 1em;
  margin-bottom: 1em;
  background: #f8f8f8;
  border: 1px solid #cccccc;
}

.c-avatar__btn{
  margin-top: 1em;
}

.c-avatar__item{
  display: flex;
  max-width: 50%;
  margin: 0 auto;
  border: 0;
  border-bottom: 1px solid #eee;
  padding: 1em;
  margin-bottom: 1em;
}

.c-avatar__item-img{
  width:40%;
}

.c-avatar__item-img img{
  max-width: 50%;
}

.c-avatar__item-text{
  width: 50%;
  font-weight: bold;
  /* text-align: right; */
  padding-top: 30px;
  padding-left: 20px;
  font-size: 16px;
  color: #585858;
}

.c-avatar__remove-btn{
  width: 30%;
  font-weight: bold;
  text-align: right;
  padding-top: 30px;
}

.c-avatar__remove-btn i:hover{
  color:#de2130;
}
.btn-delete:hover{
  background-color: #ffd960;
  color: black;
}
.btn-delete{
  -webkit-transition: box-shadow 250ms;
  -moz-transition: box-shadow 250ms;
  -ms-transition: box-shadow 250ms;
  -o-transition: box-shadow 250ms;
  transition: box-shadow 250ms;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  background-clip: padding-box;
  display: inline-block;
  padding: 10px 15px;
  background-color: #ffc817;
  color: black;
  text-decoration: none;
  white-space: nowrap;
  text-transform: uppercase;
  border: none;
  text-align: center;
  cursor: pointer;
}
.btn-delete--primary{
  -webkit-transition: box-shadow 250ms;
  -moz-transition: box-shadow 250ms;
  -ms-transition: box-shadow 250ms;
  -o-transition: box-shadow 250ms;
  transition: box-shadow 250ms;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  background-clip: padding-box;
  display: inline-block;
  padding: 10px 15px;
  background-color: #de2130;
  color: white;
  text-decoration: none;
  white-space: nowrap;
  text-transform: uppercase;
  border: none;
  text-align: center;
  cursor: pointer;
}

.timer{
  text-align: center;
  font-size: 2em;
  /* height: 50px; */
}

.display-picture--rounded{
  width: 80px;
  height: 80px;
  background-size: cover;
  border-radius: 100%;
  background-position: center;
}

.exercise-details{
  display:inline-block;
}

.exercise-details__item{
  width:100%;
  display:flex;
  font-size: 16px;
}

.exercise-details__item a{
  margin-left: 5px;
}

.exercise-details__item a i{
  font-size:1em;
}

.exercise-details__item b{
  margin-right: 5px;
}
/* //Soz */
.control--disabled{
  color: #8a8a8a !important;
  cursor: not-allowed !important;
}

.button--disabled{
  background-color: #8a8a8a !important;
  cursor: not-allowed !important;
}

.file-upload{
  padding: 8px;
  border: #de2130c2 2px solid;
  border-radius: 10px;
  color: #000000ad;
}

.file-upload input{
  display:none;
}

.file-upload:hover{
  padding: 8px;
  border: #de213078 2px solid;
  border-radius: 10px;
  color: #00000078;
}

.file-upload:active, .file-upload:focus{
  padding: 8px;
  border: #de213078 2px solid;
  border-radius: 10px;
  color: #00000078;
  -webkit-box-shadow: -1px 1px 5px -2px rgba(0,0,0,0.75);
-moz-box-shadow: -1px 1px 5px -2px rgba(0,0,0,0.75);
box-shadow: -1px 1px 5px -2px rgba(0,0,0,0.75);
}

.btn-stop-exercise{
  display: flex;
  font-size: 1.3em;
  padding-top: 10px;
}
.btn-stop-exercise a{
  margin:auto;
}

.btn-stop-exercise a i{
  font-size: 1em;
}

input.no-arrow-controls::-webkit-outer-spin-button,
input.no-arrow-controls::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
}

input.no-arrow-controls[type=number] {
    -moz-appearance: textfield;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3MvX3N1c3kuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2UvX3N1c3kuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvX3N1LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L3N1L191dGlsaXRpZXMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvc3UvX3NldHRpbmdzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L3N1L192YWxpZGF0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L3N1L19ncmlkLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9fZmxvYXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L19zaGFyZWQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L19zdXBwb3J0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19zdXBwb3J0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19wcmVmaXguc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX2JhY2tncm91bmQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX2JveC1zaXppbmcuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fY2xlYXJmaXguc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9faW5zcGVjdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19vdXRwdXQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX2JhY2tncm91bmQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fY29udGFpbmVyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX21hcmdpbnMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fcGFkZGluZy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2NvbnRhaW5lci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX3NwYW4uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L2Zsb2F0L19lbmQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L2Zsb2F0L19pc29sYXRlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NldHRpbmdzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3ZhbGlkYXRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3JpZHMuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYm94LXNpemluZy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250ZXh0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JhY2tncm91bmQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fY29udGFpbmVyLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3V0dGVycy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19pc29sYXRlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2dhbGxlcnkuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcm93cy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19tYXJnaW5zLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3BhZGRpbmcuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYmxlZWQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYnJlYWtwb2ludC1wbHVnaW4uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19jb250ZXh0LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19wYXJzZXJzLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3F1ZXJ5LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3NpbmdsZS9fZGVmYXVsdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19kb3VibGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZG91YmxlLXN0cmluZy5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy90cmlwbGUvX2RlZmF1bHQuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX25vLXF1ZXJ5LnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19yZXNwb25kLXRvLnNjc3MiLCJiYXNlL192YXJpYWJsZXMuc2NzcyIsImhlbHBlcnMvbWl4aW5zL19taXhpbnMuc2NzcyIsImhlbHBlcnMvbWl4aW5zL19pbWFnZXMuc2NzcyIsImJhc2UvX3NjYWZmb2xkaW5nLnNjc3MiLCJmZWF0dXJlcy9fZm9ybXMuc2NzcyIsImZlYXR1cmVzL19pY29ucy5zY3NzIiwiZmVhdHVyZXMvX2J1dHRvbnMuc2NzcyIsImZlYXR1cmVzL190eXBlLnNjc3MiLCJmZWF0dXJlcy9fb3dsLWNhcm91c2VsLnNjc3MiLCJmZWF0dXJlcy9fZW5jaXJjbGUuc2NzcyIsImZlYXR1cmVzL192aXNpYmlsaXR5LnNjc3MiLCJmZWF0dXJlcy9fbW9kYWwuc2NzcyIsImZlYXR1cmVzL19ib3hlcy5zY3NzIiwiZmVhdHVyZXMvX25hdmJhci5zY3NzIiwiZmVhdHVyZXMvX2Zvb3Rlci5zY3NzIiwiZmVhdHVyZXMvX3NpZGViYXIuc2NzcyIsImZlYXR1cmVzL19sb2FkaW5nLnNjc3MiLCJmZWF0dXJlcy9fcHJpbnQuc2NzcyIsImJsb2Nrcy9fYm9keS5zY3NzIiwiYmxvY2tzL19sb2dpbi5zY3NzIiwiYmxvY2tzL19kYXNoYm9hcmQuc2NzcyIsImJsb2Nrcy9fZXhlcmNpc2Uuc2NzcyIsImJsb2Nrcy9fY2hhbm5lbHMuc2NzcyIsImJsb2Nrcy9fbmV3LXBvc3Quc2NzcyIsImJsb2Nrcy9fcG9zdHMuc2NzcyIsImJsb2Nrcy9fdGltZXMuc2NzcyIsImJsb2Nrcy9fdHJlbmRzLnNjc3MiLCJibG9ja3MvX3Byb2ZpbGUuc2NzcyIsInRlbXBsYXRlcy9fZXhlcmNpc2Uuc2NzcyIsImJhc2UvX3NoYW1lLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gbGlicmFyaWVzXHJcbkBpbXBvcnQgXCJzdXN5XCI7XHJcbkBpbXBvcnQgXCJicmVha3BvaW50XCI7XHJcbkBpbXBvcnQgXCJub3JtYWxpemUuY3NzXCI7XHJcblxyXG5cclxuLy8gYmFzZSAvLyBoZWxwZXJzLlxyXG4vL0BpbXBvcnQgXCJiYXNlL25vcm1hbGl6ZVwiO1xyXG5AaW1wb3J0IFwiYmFzZS92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbWl4aW5zL21peGluc1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9taXhpbnMvaW1hZ2VzXCI7XHJcbkBpbXBvcnQgXCJiYXNlL3NjYWZmb2xkaW5nXCI7XHJcblxyXG5cclxuLy9AaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL2Jvb3RzdHJhcFwiO1xyXG4vLyBAaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL3ZhcmlhYmxlc1wiO1xyXG4vLyBAaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL21peGluc1wiO1xyXG4vLyBAaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL25hdmJhclwiO1xyXG4vLyBAaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL2Ryb3Bkb3duc1wiO1xyXG5cclxuXHJcbi8vIGZlYXR1cmVzIFxyXG5AaW1wb3J0IFwiZmVhdHVyZXMvZm9ybXNcIjtcclxuQGltcG9ydCBcImZlYXR1cmVzL2ljb25zXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9idXR0b25zXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy90eXBlXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9vd2wtY2Fyb3VzZWxcIjtcclxuQGltcG9ydCBcImZlYXR1cmVzL2VuY2lyY2xlXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy92aXNpYmlsaXR5XCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9tb2RhbFwiO1xyXG5AaW1wb3J0IFwiZmVhdHVyZXMvYm94ZXNcIjtcclxuQGltcG9ydCBcImZlYXR1cmVzL25hdmJhclwiO1xyXG5AaW1wb3J0IFwiZmVhdHVyZXMvZm9vdGVyXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9zaWRlYmFyXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9sb2FkaW5nXCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9wcmludFwiO1xyXG5cclxuXHJcbi8vIGJsb2Nrc1xyXG5AaW1wb3J0IFwiYmxvY2tzL2JvZHlcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9sb2dpblwiO1xyXG5AaW1wb3J0IFwiYmxvY2tzL2Rhc2hib2FyZFwiO1xyXG5AaW1wb3J0IFwiYmxvY2tzL2V4ZXJjaXNlXCI7XHJcbkBpbXBvcnQgXCJibG9ja3MvY2hhbm5lbHNcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9uZXctcG9zdFwiO1xyXG5AaW1wb3J0IFwiYmxvY2tzL3Bvc3RzXCI7XHJcbkBpbXBvcnQgXCJibG9ja3MvdGltZXNcIjtcclxuQGltcG9ydCBcImJsb2Nrcy90cmVuZHNcIjtcclxuQGltcG9ydCBcImJsb2Nrcy9wcm9maWxlXCI7XHJcblxyXG5cclxuLy8gdGVtcGxhdGVzXHJcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvZXhlcmNpc2VcIjtcclxuXHJcblxyXG4vLyAhaW1wb3J0YW50c1xyXG5AaW1wb3J0IFwiYmFzZS9zaGFtZVwiO1xyXG5cclxuXHJcbi8vIHVuc29ydGVkXHJcblxyXG4ucHJvZmlsZS1kcm9wZG93bi10b2dnbGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBwYWRkaW5nOiA5cHggMTBweDtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbn0iLCIvLyBTdXN5XG4vLyA9PT09XG5cbkBpbXBvcnQgJ3N1c3kvbGFuZ3VhZ2Uvc3VzeSc7XG4iLCIvLyBTdXN5IE5leHQgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbiRzdXN5LXZlcnNpb246IDIuMTtcblxuQGltcG9ydCBcIi4uL3N1XCI7XG5AaW1wb3J0IFwiLi4vb3V0cHV0L2Zsb2F0XCI7XG5cbkBpbXBvcnQgXCJzdXN5L3NldHRpbmdzXCI7XG5AaW1wb3J0IFwic3VzeS92YWxpZGF0aW9uXCI7XG5AaW1wb3J0IFwic3VzeS9ncmlkc1wiO1xuQGltcG9ydCBcInN1c3kvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcInN1c3kvY29udGV4dFwiO1xuQGltcG9ydCBcInN1c3kvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcInN1c3kvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwic3VzeS9zcGFuXCI7XG5AaW1wb3J0IFwic3VzeS9ndXR0ZXJzXCI7XG5AaW1wb3J0IFwic3VzeS9pc29sYXRlXCI7XG5AaW1wb3J0IFwic3VzeS9nYWxsZXJ5XCI7XG5AaW1wb3J0IFwic3VzeS9yb3dzXCI7XG5AaW1wb3J0IFwic3VzeS9tYXJnaW5zXCI7XG5AaW1wb3J0IFwic3VzeS9wYWRkaW5nXCI7XG5AaW1wb3J0IFwic3VzeS9ibGVlZFwiO1xuQGltcG9ydCBcInN1c3kvYnJlYWtwb2ludC1wbHVnaW5cIjtcbiIsIi8vIFN1XG4vLyA9PVxuXG5AaW1wb3J0IFwic3UvdXRpbGl0aWVzXCI7XG5AaW1wb3J0IFwic3Uvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJzdS92YWxpZGF0aW9uXCI7XG5AaW1wb3J0IFwic3UvZ3JpZFwiO1xuIiwiLy8gTWFwIEZ1bmN0aW9uc1xuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIFRydW5jYXRlIExpc3Rcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gUmV0dXJuIGEgbGlzdCwgdHJ1bmNhdGVkIHRvIGEgZ2l2ZW4gbGVuZ3RoXG5AZnVuY3Rpb24gX3N1c3ktdHJ1bmNhdGUtbGlzdChcbiAgJGxpc3QsXG4gICRsZW5ndGhcbikge1xuICAkX3JldHVybjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICAkX3JldHVybjogaWYoJGkgPD0gJGxlbmd0aCwgYXBwZW5kKCRfcmV0dXJuLCBudGgoJGxpc3QsICRpKSksICRfcmV0dXJuKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gRGVlcCBHZXRcbi8vIC0tLS0tLS0tXG4vLyAtIFJldHVybiBhIHZhbHVlIGRlZXAgaW4gbmVzdGVkIG1hcHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLWdldChcbiAgJG1hcCxcbiAgJGtleXMuLi5cbikge1xuICAkX3JldHVybjogJG1hcDtcblxuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICBAaWYgdHlwZS1vZigkX3JldHVybikgPT0gbWFwIHtcbiAgICAgICRfcmV0dXJuOiBtYXAtZ2V0KCRfcmV0dXJuLCAka2V5KTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIERlZXAgU2V0XG4vLyAtLS0tLS0tLVxuLy8gLSBTZXQgYSB2YWx1ZSBkZWVwIGluIG5lc3RlZCBtYXBzXG5AZnVuY3Rpb24gX3N1c3ktZGVlcC1zZXQoXG4gICRtYXAsXG4gICRrZXlzLXZhbHVlLi4uXG4pIHtcbiAgJF92YWx1ZTogbnRoKCRrZXlzLXZhbHVlLCAtMSk7XG4gICRfa2V5czogX3N1c3ktdHJ1bmNhdGUtbGlzdCgka2V5cy12YWx1ZSwgbGVuZ3RoKCRrZXlzLXZhbHVlKSAtIDEpO1xuICAkX2xlbmd0aDogbGVuZ3RoKCRfa2V5cyk7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRfbGVuZ3RoIHtcbiAgICAkX246IDAgLSAkaTtcbiAgICAkX2xldmVsOiBfc3VzeS10cnVuY2F0ZS1saXN0KCRfa2V5cywgJF9sZW5ndGggKyAkX24pO1xuICAgICRfbGV2ZWw6IF9zdXN5LWRlZXAtZ2V0KCRtYXAsICRfbGV2ZWwuLi4pO1xuICAgICRfbWVyZ2U6IG50aCgkX2tleXMsICRfbik7XG4gICAgJF9tZXJnZTogKCRfbWVyZ2U6ICRfdmFsdWUpO1xuICAgICRfcmV0dXJuOiBpZigkX2xldmVsLCBtYXAtbWVyZ2UoJF9sZXZlbCwgJF9tZXJnZSksICRfbWVyZ2UpO1xuICAgICRfdmFsdWU6ICRfcmV0dXJuO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBEZWVwIE1lcmdlXG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gMiBvYmplY3RzIG9mIGFueSBkZXB0aCwgbWVyZ2VkXG5AZnVuY3Rpb24gX3N1c3ktZGVlcC1tZXJnZShcbiAgJG1hcDEsXG4gICRtYXAyXG4pIHtcblxuICBAaWYgdHlwZS1vZigkbWFwMSkgIT0gbWFwIG9yIHR5cGUtb2YoJG1hcDIpICE9IG1hcCB7XG4gICAgJG1hcDE6ICRtYXAyO1xuICB9IEBlbHNlIHtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcDIge1xuICAgICAgJF9uZXc6ICgka2V5OiBfc3VzeV9kZWVwLW1lcmdlKG1hcC1nZXQoJG1hcDEsICRrZXkpLCAkdmFsdWUpKTtcbiAgICAgICRtYXAxOiBtYXAtbWVyZ2UoJG1hcDEsICRfbmV3KTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRtYXAxO1xufVxuXG5cbi8vIERlZXAgSGFzLUtleVxuLy8gLS0tLS0tLS0tLS0tXG4vLyAtIFJldHVybiB0cnVlIGlmIGEgZGVlcCBrZXkgZXhpc3RzXG5AZnVuY3Rpb24gX3N1c3ktZGVlcC1oYXMta2V5KFxuICAkbWFwLFxuICAka2V5cy4uLlxuKSB7XG4gICRfcmV0dXJuOiBudWxsO1xuICAkX3N0b3A6IGZhbHNlO1xuXG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgIEBpZiBub3QoJF9zdG9wKSB7XG4gICAgICAkX3JldHVybjogbWFwLWhhcy1rZXkoJG1hcCwgJGtleSk7XG4gICAgfVxuXG4gICAgQGlmICRfcmV0dXJuIHtcbiAgICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX3N0b3A6IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFNldHRpbmdzXG4vLyA9PT09PT09PVxuXG4vLyBWZXJzaW9uXG4vLyAtLS0tLS0tXG4kc3UtdmVyc2lvbjogMS4xO1xuXG5cbi8vIERlZmF1bHQgU2V0dGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFBSSVZBVEU6IFRoZSBiYXNpYyBzZXR0aW5nc1xuJHN1c3ktZGVmYXVsdHM6IChcbiAgY29sdW1uczogNCxcbiAgZ3V0dGVyczogLjI1LFxuKTtcblxuXG4vLyBVc2VyIFNldHRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyAtIERlZmluZSB0aGUgJHN1c3kgdmFyaWFibGUgd2l0aCBhIG1hcCBvZiB5b3VyIG93biBzZXR0aW5ncy5cbi8vIC0gU2V0IEVJVEhFUiAkY29sdW1uLXdpZHRoIE9SICRjb250YWluZXJcbi8vIC0gVXNlICRjb2x1bW4td2lkdGggZm9yIHN0YXRpYyBsYXlvdXRzXG4kc3VzeTogKCkgIWRlZmF1bHQ7XG5cblxuLy8gU3VzeSBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogQWRkIGRlZmF1bHRzIHRvIFN1c3lcbkBtaXhpbiBzdXN5LWRlZmF1bHRzKFxuICAkZGVmYXVsdHNcbikge1xuICAkc3VzeS1kZWZhdWx0czogbWFwLW1lcmdlKCRzdXN5LWRlZmF1bHRzLCAkZGVmYXVsdHMpICFnbG9iYWw7XG59XG5cblxuLy8gU3VzeSBTZXRcbi8vIC0tLS0tLS0tXG4vLyBDaGFuZ2Ugb25lIHNldHRpbmdcbi8vIC0gJGtleSAgIDogc2V0dGluZyBuYW1lXG4vLyAtICR2YWx1ZSA6IHNldHRpbmcgdmFsdWVcbkBtaXhpbiBzdXN5LXNldChcbiAgJGtleS12YWx1ZS4uLlxuKSB7XG4gICRzdXN5OiBfc3VzeS1kZWVwLXNldCgkc3VzeSwgJGtleS12YWx1ZS4uLikgIWdsb2JhbDtcbn1cblxuXG4vLyBTdXN5IEdldFxuLy8gLS0tLS0tLS1cbi8vIFJldHVybiBvbmUgc2V0dGluZyBmcm9tIGEgZ3JpZFxuLy8gLSAka2V5ICAgICA6IDxrZXl3b3JkPlxuLy8gLSAkbGF5b3V0ICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBzdXN5LWdldChcbiAgJGtleSxcbiAgJGxheW91dDogbWFwLW1lcmdlKCRzdXN5LWRlZmF1bHRzLCAkc3VzeSlcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICAkX29wdGlvbnM6ICRsYXlvdXQgJHN1c3kgJHN1c3ktZGVmYXVsdHM7XG4gICRfYnJlYWs6IGZhbHNlO1xuICAkX3JldHVybjogbnVsbDtcblxuICBAZWFjaCAkb3B0IGluICRfb3B0aW9ucyB7XG4gICAgQGlmIHR5cGUtb2YoJG9wdCkgPT0gbWFwIGFuZCBub3QoJF9icmVhaykge1xuICAgICAgJF9rZXlzZXQ6IF9zdXN5LWRlZXAtaGFzLWtleSgkb3B0LCAka2V5Li4uKTtcbiAgICAgIEBpZiAkX2tleXNldCB7XG4gICAgICAgICRfcmV0dXJuOiBfc3VzeS1kZWVwLWdldCgkb3B0LCAka2V5Li4uKTtcbiAgICAgICAgJF9icmVhazogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gTWF0aCBWYWxpZGF0aW9uXG4vLyA9PT09PT09PT09PT09PT1cblxuXG4vLyBWYWxpZCBDb2x1bW5zXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBDaGVjayB0aGF0IGEgY29sdW1uIHNldHRpbmcgaXMgdmFsaWQuXG5AZnVuY3Rpb24gdmFsaWQtY29sdW1ucyhcbiAgJGNvbHVtbnMsXG4gICRzaWxlbnQ6IGZhbHNlXG4pIHtcbiAgJHR5cGU6IHR5cGUtb2YoJGNvbHVtbnMpO1xuICAkcmV0dXJuOiBudWxsO1xuXG4gIEBpZiAkdHlwZSA9PSBudW1iZXIgYW5kIHVuaXRsZXNzKCRjb2x1bW5zKSB7XG4gICAgJHJldHVybjogJGNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgJHR5cGUgPT0gbGlzdCB7XG4gICAgJGZhaWw6IG51bGw7XG4gICAgQGVhY2ggJGNvbCBpbiAkY29sdW1ucyB7XG4gICAgICBAaWYgdHlwZS1vZigkY29sKSA9PSBudW1iZXIge1xuICAgICAgICAkZmFpbDogJGZhaWwgb3IgaWYodW5pdGxlc3MoJGNvbCksIG51bGwsIHRydWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRmYWlsOiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICAkcmV0dXJuOiBpZigkZmFpbCwgJHJldHVybiwgJGNvbHVtbnMpO1xuICB9XG5cbiAgQGlmICRyZXR1cm4gIT0gJGNvbHVtbnMgYW5kIG5vdCgkc2lsZW50KSB7XG4gICAgJHJldHVybjogbnVsbDtcbiAgICAkd2FybjogJyRjb2x1bW5zIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXIgb3IgbGlzdCBvZiB1bml0bGVzcyBudW1iZXJzLic7XG4gICAgQHdhcm4gJHdhcm4gKyAnIEN1cnJlbnQgdmFsdWUgWyN7JHR5cGV9XTogI3skY29sdW1uc30nO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG5cbi8vIFZhbGlkIEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIHRoYXQgYSBndXR0ZXIgc2V0dGluZyBpcyB2YWxpZC5cbkBmdW5jdGlvbiB2YWxpZC1ndXR0ZXJzKFxuICAkZ3V0dGVycyxcbiAgJHNpbGVudDogZmFsc2Vcbikge1xuICAkdHlwZTogdHlwZS1vZigkZ3V0dGVycyk7XG4gICRyZXR1cm46IG51bGw7XG5cbiAgQGlmICR0eXBlID09IG51bWJlciBhbmQgdW5pdGxlc3MoJGd1dHRlcnMpIHtcbiAgICAkcmV0dXJuOiAkZ3V0dGVycztcbiAgfSBAZWxzZSBpZiBub3QoJHNpbGVudCkge1xuICAgICR3YXJuOiAnJGd1dHRlcnMgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlci4nO1xuICAgIEB3YXJuICR3YXJuICsgJyBDdXJyZW50IHZhbHVlIFsjeyR0eXBlfV06ICN7JGd1dHRlcnN9JztcbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cbiIsIi8vIENvbHVtbiBtYXRoXG4vLyA9PT09PT09PT09PVxuXG5cbi8vIElzIFN5bW1ldHJpY2FsXG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGEgZ3JpZCBpcyBzeW1tZXRyaWNhbC5cbi8vIC0gWyRjb2x1bW5zXSAgIDogPG51bWJlcj4gfCA8bGlzdD5cbkBmdW5jdGlvbiBpcy1zeW1tZXRyaWNhbChcbiAgJGNvbHVtbnM6IHN1c3ktZ2V0KGNvbHVtbnMpXG4pIHtcbiAgJGNvbHVtbnM6IHZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGNvbHVtbnMpID09IG51bWJlciwgJGNvbHVtbnMsIG51bGwpO1xufVxuXG5cbi8vIFN1c3kgQ291bnRcbi8vIC0tLS0tLS0tLS1cbi8vIEZpbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIGEgZ2l2ZW4gbGF5b3V0XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG5AZnVuY3Rpb24gc3VzeS1jb3VudChcbiAgJGNvbHVtbnM6IHN1c3ktZ2V0KGNvbHVtbnMpXG4pIHtcbiAgJGNvbHVtbnM6IHZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICBAcmV0dXJuIGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKSBvciBsZW5ndGgoJGNvbHVtbnMpO1xufVxuXG5cbi8vIFN1c3kgU3VtXG4vLyAtLS0tLS0tLVxuLy8gRmluZCB0aGUgdG90YWwgc3VtIG9mIGNvbHVtbi11bml0cyBpbiBhIGxheW91dFxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuLy8gLSBbJGd1dHRlcnNdICAgOiA8cmF0aW8+XG4vLyAtIFskc3ByZWFkXSAgICA6IGZhbHNlL25hcnJvdyB8IHdpZGUgfCB3aWRlclxuQGZ1bmN0aW9uIHN1c3ktc3VtKFxuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zKSxcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycyksXG4gICRzcHJlYWQgICA6IGZhbHNlXG4pIHtcbiAgJGNvbHVtbnM6IHZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAkZ3V0dGVyczogdmFsaWQtZ3V0dGVycygkZ3V0dGVycyk7XG5cbiAgJHNwcmVhZDogaWYoJHNwcmVhZCA9PSB3aWRlLCAwLCBpZigkc3ByZWFkID09IHdpZGVyLCAxLCAtMSkpO1xuICAkZ3V0dGVyLXN1bTogKHN1c3ktY291bnQoJGNvbHVtbnMpICsgJHNwcmVhZCkgKiAkZ3V0dGVycztcbiAgJGNvbHVtbi1zdW06IGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKTtcblxuICBAaWYgbm90KCRjb2x1bW4tc3VtKSB7XG4gICAgQGVhY2ggJGNvbHVtbiBpbiAkY29sdW1ucyB7XG4gICAgICAkY29sdW1uLXN1bTogKCRjb2x1bW4tc3VtIG9yIDApICsgJGNvbHVtbjtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRjb2x1bW4tc3VtICsgJGd1dHRlci1zdW07XG59XG5cblxuLy8gU3VzeSBTbGljZVxuLy8gLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGEgc3Vic2V0IG9mIGNvbHVtbnMgYXQgYSBnaXZlbiBsb2NhdGlvbi5cbi8vIC0gJHNwYW4gICAgICAgIDogPG51bWJlcj5cbi8vIC0gJGxvY2F0aW9uICAgIDogPG51bWJlcj5cbi8vIC0gWyRjb2x1bW5zXSAgIDogPG51bWJlcj4gfCA8bGlzdD5cbkBmdW5jdGlvbiBzdXN5LXNsaWNlKFxuICAkc3BhbixcbiAgJGxvY2F0aW9uLFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRzdWItY29sdW1uczogJHNwYW47XG5cbiAgQGlmIG5vdChpcy1zeW1tZXRyaWNhbCgkY29sdW1ucykpIHtcbiAgICAkbG9jYXRpb246ICRsb2NhdGlvbiBvciAxO1xuICAgICRzdWItY29sdW1uczogKCk7XG4gICAgQGZvciAkaSBmcm9tICRsb2NhdGlvbiB0byAoJGxvY2F0aW9uICsgJHNwYW4pIHtcbiAgICAgICRzdWItY29sdW1uczogYXBwZW5kKCRzdWItY29sdW1ucywgbnRoKCRjb2x1bW5zLCAkaSkpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN1Yi1jb2x1bW5zO1xufVxuXG5cbi8vIFN1c3lcbi8vIC0tLS1cbi8vIEZpbmQgdGhlIHN1bSBvZiBhIGNvbHVtbi1zcGFuLlxuLy8gLSAkc3BhbiAgICAgICAgOiA8bnVtYmVyPlxuLy8gLSAkbG9jYXRpb24gICAgOiA8bnVtYmVyPlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuLy8gLSBbJGd1dHRlcnNdICAgOiA8cmF0aW8+XG4vLyAtIFskc3ByZWFkXSAgICA6IGZhbHNlL25hcnJvdyB8IHdpZGUgfCB3aWRlclxuQGZ1bmN0aW9uIHN1c3koXG4gICRzcGFuLFxuICAkbG9jYXRpb24gICAgIDogZmFsc2UsXG4gICRjb2x1bW5zICAgICAgOiBzdXN5LWdldChjb2x1bW5zKSxcbiAgJGd1dHRlcnMgICAgICA6IHN1c3ktZ2V0KGd1dHRlcnMpLFxuICAkc3ByZWFkICAgICAgIDogZmFsc2Vcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRndXR0ZXJzOiB2YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgJHNwYW46IHN1c3ktc2xpY2UoJHNwYW4sICRsb2NhdGlvbiwgJGNvbHVtbnMpO1xuXG4gIEByZXR1cm4gc3VzeS1zdW0oJHNwYW4sICRndXR0ZXJzLCAkc3ByZWFkKTtcbn1cbiIsIi8vIEZsb2F0IEFQSVxuLy8gPT09PT09PT09XG5cbkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuQGltcG9ydCBcImZsb2F0L2NvbnRhaW5lclwiO1xuQGltcG9ydCBcImZsb2F0L3NwYW5cIjtcbkBpbXBvcnQgXCJmbG9hdC9lbmRcIjtcbkBpbXBvcnQgXCJmbG9hdC9pc29sYXRlXCI7XG4iLCIvLyBTaGFyZWQgQVBJXG4vLyA9PT09PT09PT09XG5cbkBpbXBvcnQgXCJzdXBwb3J0XCI7XG5cbkBpbXBvcnQgXCJzaGFyZWQvaW5zcGVjdFwiO1xuQGltcG9ydCBcInNoYXJlZC9vdXRwdXRcIjtcbkBpbXBvcnQgXCJzaGFyZWQvZGlyZWN0aW9uXCI7XG5AaW1wb3J0IFwic2hhcmVkL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJzaGFyZWQvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwic2hhcmVkL21hcmdpbnNcIjtcbkBpbXBvcnQgXCJzaGFyZWQvcGFkZGluZ1wiO1xuXG5cblxuIiwiLy8gU3VzeSBCcm93c2VyIFN1cHBvcnRcbi8vID09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgXCJzdXBwb3J0L3N1cHBvcnRcIjtcbkBpbXBvcnQgXCJzdXBwb3J0L3ByZWZpeFwiO1xuQGltcG9ydCBcInN1cHBvcnQvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcInN1cHBvcnQvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcInN1cHBvcnQvcmVtXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9jbGVhcmZpeFwiO1xuIiwiLy8gQnJvd3NlciBTdXBwb3J0XG4vLyA9PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBTdXBwb3J0IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICB1c2UtY3VzdG9tOiAoXG4gICAgY2xlYXJmaXg6IGZhbHNlLFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHRydWUsXG4gICAgYmFja2dyb3VuZC1vcHRpb25zOiBmYWxzZSxcbiAgICBicmVha3BvaW50OiB0cnVlLFxuICAgIGJveC1zaXppbmc6IHRydWUsXG4gICAgcmVtOiB0cnVlLFxuICApLFxuKSk7XG5cblxuLy8gU3VzeSBTdXBwb3J0IFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTZW5kIHByb3BlcnR5LXZhbHVlIHBhaXJzIHRvIHRoZSBwcm9wZXIgc3VwcG9ydCBtb2R1bGVzLlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktc3VwcG9ydChcbiAgJHByb3AsXG4gICR2YWxcbikge1xuICAvLyBCYWNrZ3JvdW5kIFN1cHBvcnRcbiAgQGlmICRwcm9wID09IGJhY2tncm91bmQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIHN1c3ktYmFja2dyb3VuZC1pbWFnZSgkdmFsKTtcbiAgfSBAZWxzZSBpZiAkcHJvcCA9PSBiYWNrZ3JvdW5kLXNpemUge1xuICAgIEBpbmNsdWRlIHN1c3ktYmFja2dyb3VuZC1zaXplKCR2YWwpO1xuICB9IEBlbHNlIGlmICRwcm9wID09IGJhY2tncm91bmQtb3JpZ2luIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJhY2tncm91bmQtb3JpZ2luKCR2YWwpO1xuICB9IEBlbHNlIGlmICRwcm9wID09IGJhY2tncm91bmQtY2xpcCB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLWNsaXAoJHZhbCk7XG4gIH1cblxuICAvLyBCb3gtU2l6aW5nIFN1cHBvcnRcbiAgQGVsc2UgaWYgJHByb3AgPT0gYm94LXNpemluZyB7XG4gICAgQGluY2x1ZGUgc3VzeS1ib3gtc2l6aW5nKCR2YWwpO1xuICB9XG5cbiAgLy8gUmVtIFN1cHBvcnRcbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIHN1c3ktcmVtKCRwcm9wLCAkdmFsKTtcbiAgfVxufVxuXG5cbi8vIFN1c3kgU3VwcG9ydCBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIHN1cHBvcnQgb2YgYSBmZWF0dXJlLlxuLy8gLSAkZmVhdHVyZSAgICAgICA6IDxzdHJpbmc+XG4vLyAgICAgICAgICAgICAgICAgICAgLSBlLmcgXCJyZW1cIiBvciBcImJveC1zaXppbmdcIlxuLy8gLSAkcmVxdWlyZW1lbnRzICA6IDxtYXA+XG4vLyAgICAgICAgICAgICAgICAgICAgLSBlLmcgKHZhcmlhYmxlOiByZW0td2l0aC1weC1mYWxsYmFjaywgbWl4aW46IHJlbSlcbi8vIC0gJHdhcm4gICAgICAgICAgOiA8Ym9vbD5cbkBmdW5jdGlvbiBzdXN5LXN1cHBvcnQoXG4gICRmZWF0dXJlLFxuICAkcmVxdWlyZW1lbnRzOiAoKSxcbiAgJHdhcm46IHRydWVcbikge1xuICAkX3N1cHBvcnQ6IHN1c3ktZ2V0KHVzZS1jdXN0b20gJGZlYXR1cmUpO1xuXG4gIEBpZiAkX3N1cHBvcnQge1xuICAgICRfZmFpbDogZmFsc2U7XG5cbiAgICBAZWFjaCAkX3R5cGUsICRfcmVxIGluICRyZXF1aXJlbWVudHMge1xuICAgICAgQGVhY2ggJF9pIGluICRfcmVxIHtcbiAgICAgICAgJF9wYXNzOiBjYWxsKCN7JF90eXBlfS1leGlzdHMsICRfaSk7XG5cbiAgICAgICAgQGlmIG5vdCgkX3Bhc3MpIHtcbiAgICAgICAgICAkX2ZhaWw6IHRydWU7XG4gICAgICAgICAgQGlmICR3YXJuIHtcbiAgICAgICAgICAgIEB3YXJuIFwiWW91IHJlcXVlc3RlZCBjdXN0b20gc3VwcG9ydCBvZiAjeyRmZWF0dXJlfSwgYnV0IHRoZSAjeyRfaX0gI3skX3R5cGV9IGlzIG5vdCBhdmFpbGFibGUuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJF9zdXBwb3J0OiBpZigkX2ZhaWwsIGZhbHNlLCAkX3N1cHBvcnQpO1xuICB9XG5cbiAgQHJldHVybiAkX3N1cHBvcnQ7XG59XG4iLCIvLyBTdXN5IFByZWZpeFxuLy8gPT09PT09PT09PT1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBzaW1wbGUgcHJlZml4ZWQgcHJvcGVydGllcy5cbi8vIC0gJHByb3AgICAgICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICAgICAgOiA8Y3NzIHZhbHVlPlxuLy8gLSBbJHByZWZpeF0gIDogPGJyb3dzZXIgcHJlZml4IGxpc3Q+XG5AbWl4aW4gc3VzeS1wcmVmaXgoXG4gICRwcm9wLFxuICAkdmFsLFxuICAkcHJlZml4OiBvZmZpY2lhbFxuKSB7XG4gIEBlYWNoICRmaXggaW4gJHByZWZpeCB7XG4gICAgJGZpeDogaWYoJGZpeCA9PSBvZmZpY2lhbCBvciBub3QoJGZpeCksICRwcm9wLCAnLSN7JGZpeH0tI3skcHJvcH0nKTtcbiAgICBAaW5jbHVkZSBzdXN5LXJlbSgkZml4LCAkdmFsKTtcbiAgfVxufVxuIiwiLy8gQmFja2dyb3VuZCBQcm9wZXJ0aWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBCYWNrZ3JvdW5kIEltYWdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLWltYWdlPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1pbWFnZShcbiAgJGltYWdlXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLWltYWdlLCAobWl4aW46IGJhY2tncm91bmQtaW1hZ2UpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZS4uLik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpbWFnZTtcbiAgfVxufVxuXG4vLyBTdXN5IEJhY2tncm91bmQgU2l6ZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJGltYWdlOiA8YmFja2dyb3VuZC1zaXplPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1zaXplKFxuICAkc2l6ZVxuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYmFja2dyb3VuZC1vcHRpb25zLCAobWl4aW46IGJhY2tncm91bmQtc2l6ZSkpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoJHNpemUpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBPcmlnaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLW9yaWdpbj5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtb3JpZ2luKFxuICAkb3JpZ2luXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLW9wdGlvbnMsIChtaXhpbjogYmFja2dyb3VuZC1vcmlnaW4pKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1vcmlnaW4oJG9yaWdpbik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiAkb3JpZ2luO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBDbGlwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG4vLyAtICRpbWFnZTogPGJhY2tncm91bmQtY2xpcD5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtY2xpcChcbiAgJGNsaXBcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJhY2tncm91bmQtb3B0aW9ucywgKG1peGluOiBiYWNrZ3JvdW5kLWNsaXApKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1jbGlwKCRjbGlwKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1jbGlwOiAkY2xpcDtcbiAgfVxufVxuIiwiLy8gQm94IFNpemluZ1xuLy8gPT09PT09PT09PVxuXG4vLyBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJG1vZGVsOiA8Ym94LXNpemluZz5cbkBtaXhpbiBzdXN5LWJveC1zaXppbmcoXG4gICRtb2RlbDogY29udGVudC1ib3hcbikge1xuICBAaWYgJG1vZGVsIHtcbiAgICBAaWYgc3VzeS1zdXBwb3J0KGJveC1zaXppbmcsIChtaXhpbjogYm94LXNpemluZyksICR3YXJuOiBmYWxzZSkge1xuICAgICAgQGluY2x1ZGUgYm94LXNpemluZygkbW9kZWwpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByZWZpeDogKG1veiwgd2Via2l0LCBvZmZpY2lhbCk7XG4gICAgICBAaW5jbHVkZSBzdXN5LXByZWZpeChib3gtc2l6aW5nLCAkbW9kZWwsICRwcmVmaXgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRGVidWdnaW5nXG4vLyA9PT09PT09PT1cblxuLy8gU3VzeSBJbnNwZWN0XG4vLyAtLS0tLS0tLS0tLS1cbi8vIE91dHB1dCBhcmd1bWVudHMgcGFzc2VkIHRvIGEgaW5zcGVjdC5cbi8vIC0gJG1peGluICA6IDxzdXN5IG1peGluPlxuLy8gLSAkaW5zcGVjICAgOiA8bWl4aW4gYXJndW1lbnRzPlxuXG5AbWl4aW4gc3VzeS1pbnNwZWN0KCRtaXhpbiwgJGluc3BlY3QuLi4pIHtcbiAgJHNob3c6IGZhbHNlO1xuXG4gIEBlYWNoICRpdGVtIGluICRpbnNwZWN0IHtcbiAgICBAaWYgaW5kZXgoJGl0ZW0sIGluc3BlY3QpIHtcbiAgICAgICRzaG93OiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2hvdyBvciBzdXN5LWdldChkZWJ1ZyBpbnNwZWN0KSB7XG4gICAgLXN1c3ktI3skbWl4aW59OiBpbnNwZWN0KCRpbnNwZWN0KTtcbiAgfVxufVxuIiwiLy8gT3V0cHV0XG4vLyA9PT09PT1cblxuLy8gT3V0cHV0XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBDU1Mgd2l0aCBwcm9wZXIgYnJvd3NlciBzdXBwb3J0LlxuLy8gLSAkc3R5bGVzICA6IDxtYXAgb2YgY3NzIHByb3BlcnR5LXZhbHVlIHBhaXJzPlxuQG1peGluIG91dHB1dChcbiAgJHN0eWxlc1xuKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsIGluICRzdHlsZXMge1xuICAgIEBpbmNsdWRlIHN1c3ktc3VwcG9ydCgkcHJvcCwgJHZhbCk7XG4gIH1cbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIEdyaWQgQmFja2dyb3VuZCBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cbi8vIC0gU3ViLXBpeGVsIHJvdW5kaW5nIGNhbiBsZWFkIHRvIHNldmVyYWwgcGl4ZWxzIHZhcmlhdGlvbiBiZXR3ZWVuIGJyb3dzZXJzLlxuXG4vLyBHcmlkIEJhY2tncm91bmQgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRpbWFnZTogYmFja2dyb3VuZC1pbWFnZVxuLy8gLSAkc2l6ZTogYmFja2dyb3VuZC1zaXplXG4vLyAtICRjbGlwOiBiYWNrZ3JvdW5kLWNsaXBcbi8vIC0gWyRmbG93XTogbHRyIHwgcnRsXG5AbWl4aW4gYmFja2dyb3VuZC1ncmlkLW91dHB1dCAoXG4gICRpbWFnZSxcbiAgJHNpemU6IG51bGwsXG4gICRjbGlwOiBudWxsLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkb3V0cHV0OiAoXG4gICAgYmFja2dyb3VuZC1pbWFnZTogJGltYWdlLFxuICAgIGJhY2tncm91bmQtc2l6ZTogJHNpemUsXG4gICAgYmFja2dyb3VuZC1vcmlnaW46ICRjbGlwLFxuICAgIGJhY2tncm91bmQtY2xpcDogJGNsaXAsXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogZnJvbSgkZmxvdykgdG9wLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFNoYXJlZCBDb250YWluZXIgQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFskd2lkdGhdICAgICAgICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGp1c3RpZnldICAgICAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0XG4vLyAtIFskbWF0aF0gICAgICAgICAgOiBmbHVpZCB8IHN0YXRpY1xuQG1peGluIGNvbnRhaW5lci1vdXRwdXQoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICAkb3V0cHV0OiAoXG4gICAgI3skcHJvcGVydHl9OiAkd2lkdGggb3IgMTAwJSxcbiAgICBtYXJnaW4tbGVmdDogbnRoKCRqdXN0aWZ5LCAxKSxcbiAgICBtYXJnaW4tcmlnaHQ6IG50aCgkanVzdGlmeSwgMiksXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gTWFyZ2lucyBBUElcbi8vID09PT09PT09PT09XG5cbi8vIE1hcmdpbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gbWFyZ2luLW91dHB1dChcbiAgJGJlZm9yZSxcbiAgJGFmdGVyLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBtYXJnaW4tI3skZnJvbX06ICRiZWZvcmUsXG4gICAgbWFyZ2luLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFBhZGRpbmcgQVBJXG4vLyA9PT09PT09PT09PVxuXG4vLyBQYWRkaW5nIE91dHB1dFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gcGFkZGluZy1vdXRwdXQoXG4gICRiZWZvcmUsXG4gICRhZnRlcixcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG4gICRmcm9tOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgcGFkZGluZy0jeyRmcm9tfTogJGJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIEZsb2F0IENvbnRhaW5lciBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgQ29udGFpbmVyXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIC0gWyR3aWR0aF0gICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskanVzdGlmeV0gICAgICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbi8vIC0gWyRtYXRoXSAgIDogZmx1aWQgfCBzdGF0aWNcbkBtaXhpbiBmbG9hdC1jb250YWluZXIoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBzdXN5LWNsZWFyZml4O1xuICBAaW5jbHVkZSBjb250YWluZXItb3V0cHV0KCR3aWR0aCwgJGp1c3RpZnksICRwcm9wZXJ0eSk7XG59XG4iLCIvLyBGbG9hdCBTcGFuIEFQSVxuLy8gPT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgU3BhbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICR3aWR0aCAgICAgICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvYXRdICAgICAgICAgICA6IGZyb20gfCB0b1xuLy8gLSBbJG1hcmdpbi1iZWZvcmVdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJG1hcmdpbi1hZnRlcl0gICAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYmVmb3JlXSAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYWZ0ZXJdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGZsb3ddICAgICAgICAgICAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1zcGFuLW91dHB1dChcbiAgJHdpZHRoLFxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb20sXG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbCxcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsLFxuICAkcGFkZGluZy1iZWZvcmUgICA6IG51bGwsXG4gICRwYWRkaW5nLWFmdGVyICAgIDogbnVsbCxcbiAgJGZsb3cgICAgICAgICAgICAgOiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gICR0byAgICAgOiB0bygkZmxvdyk7XG4gICRmcm9tICAgOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGg6ICR3aWR0aCxcbiAgICBmbG9hdDogaWYoJGZsb2F0ID09IHRvLCAkdG8sIG51bGwpIG9yIGlmKCRmbG9hdCA9PSBmcm9tLCAkZnJvbSwgbnVsbCksXG4gICAgbWFyZ2luLSN7JGZyb219OiAkbWFyZ2luLWJlZm9yZSxcbiAgICBtYXJnaW4tI3skdG99OiAkbWFyZ2luLWFmdGVyLFxuICAgIHBhZGRpbmctI3skZnJvbX06ICRwYWRkaW5nLWJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJHBhZGRpbmctYWZ0ZXIsXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBGbG9hdCBJc29sYXRpb24gQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09XG5cbi8vIElzb2xhdGUgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gLSAkcHVzaCAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gaXNvbGF0ZS1vdXRwdXQoXG4gICRwdXNoLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBmbG9hdDogJGZyb20sXG4gICAgbWFyZ2luLSN7JGZyb219OiAkcHVzaCxcbiAgICBtYXJnaW4tI3skdG99OiAtMTAwJSxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBTdXN5IFNldHRpbmdzXG4vLyA9PT09PT09PT09PT09XG5cbi8vIFN1c3kgTGFuZ3VhZ2UgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGNvbnRhaW5lcjogYXV0byxcbiAgbWF0aDogZmx1aWQsXG4gIG91dHB1dDogZmxvYXQsXG4gIGNvbnRhaW5lci1wb3NpdGlvbjogY2VudGVyLFxuICBndXR0ZXItcG9zaXRpb246IGFmdGVyLFxuICBnbG9iYWwtYm94LXNpemluZzogY29udGVudC1ib3gsXG4gIGRlYnVnOiAoXG4gICAgaW1hZ2U6IGhpZGUsXG4gICAgY29sb3I6IHJnYmEoIzY2ZiwgLjI1KSxcbiAgICBvdXRwdXQ6IGJhY2tncm91bmQsXG4gICAgdG9nZ2xlOiB0b3AgcmlnaHQsXG4gICksXG4pKTtcblxuXG4vLyBWYWxpZCBLZXl3b3JkIFZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURTogRE9OVCdUIFRPVUNIXG4kc3VzeS1rZXl3b3JkczogKFxuICBjb250YWluZXI6IGF1dG8sXG4gIG1hdGg6IHN0YXRpYyBmbHVpZCxcbiAgb3V0cHV0OiBpc29sYXRlIGZsb2F0LFxuICBjb250YWluZXItcG9zaXRpb246IGxlZnQgY2VudGVyIHJpZ2h0LFxuICBmbG93OiBsdHIgcnRsLFxuICBndXR0ZXItcG9zaXRpb246IGJlZm9yZSBhZnRlciBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYyxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCBjb250ZW50LWJveCxcbiAgc3BhbjogZnVsbCxcbiAgZWRnZTogZmlyc3QgYWxwaGEgbGFzdCBvbWVnYSBmdWxsLFxuICBzcHJlYWQ6IG5hcnJvdyB3aWRlIHdpZGVyLFxuICBndXR0ZXItb3ZlcnJpZGU6IG5vLWd1dHRlcnMgbm8tZ3V0dGVyLFxuICByb2xlOiBuZXN0LFxuICBjbGVhcjogYnJlYWsgbm9icmVhayxcbiAgZGVidWcgaW1hZ2U6IHNob3cgaGlkZSBzaG93LWNvbHVtbnMgc2hvdy1iYXNlbGluZSxcbiAgZGVidWcgb3V0cHV0OiBiYWNrZ3JvdW5kIG92ZXJsYXksXG4pO1xuXG5cbi8vIFBhcnNlIFN1c3kgS2V5d29yZHMgYW5kIE1hcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1zZXR0aW5ncyhcbiAgJHNob3J0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIHN0cmluZ3NcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBzdHJpbmcge1xuICAgICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHN1c3kta2V5d29yZHMge1xuICAgICAgICAgIEBpZiBpbmRleCgkdmFsdWUsICRpdGVtKSB7XG4gICAgICAgICAgICAkX2tleS12YWx1ZTogYXBwZW5kKCRrZXksICRpdGVtKTtcbiAgICAgICAgICAgICRfcmV0dXJuOiBfc3VzeS1kZWVwLXNldCgkX3JldHVybiwgJF9rZXktdmFsdWUuLi4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgLy8gbWFwc1xuICAgICAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpdGVtKSA9PSBtYXAge1xuICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBQYXJzZSBDb2x1bW5zICYgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1sYXlvdXQoXG4gICRzaG9ydFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcbiAgJF9jb2x1bW5zOiAoKTtcbiAgJF9ndXR0ZXJzOiBudWxsO1xuXG4gIEBpZiBub3QodW5pdGxlc3MobnRoKG50aCgkc2hvcnQsIDEpLCAxKSkpIHtcbiAgICAkX2d1dHRlcnM6IG50aCgkc2hvcnQsIDEpO1xuICB9IEBlbHNlIHtcbiAgICAkX2NvbHVtbnM6IChjb2x1bW5zOiBudGgoJHNob3J0LCAxKSk7XG4gICAgJF9ndXR0ZXJzOiBpZihsZW5ndGgoJHNob3J0KSA+IDEsIG50aCgkc2hvcnQsIDIpLCAkX2d1dHRlcnMpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJF9ndXR0ZXJzKSA9PSBsaXN0IGFuZCBsZW5ndGgoJF9ndXR0ZXJzKSA+IDAge1xuICAgICRfZ3V0dGVyczogKFxuICAgICAgZ3V0dGVyczogbnRoKCRfZ3V0dGVycywgMikgLyBudGgoJF9ndXR0ZXJzLCAxKSxcbiAgICAgIGNvbHVtbi13aWR0aDogbnRoKCRfZ3V0dGVycywgMSksXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9ndXR0ZXJzOiBpZigkX2d1dHRlcnMsIChndXR0ZXJzOiAkX2d1dHRlcnMpLCAoKSk7XG4gIH1cblxuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2NvbHVtbnMpO1xuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2d1dHRlcnMpO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gUGFyc2UgR3JpZC9Db250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ncmlkKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm46IHBhcnNlLXNldHRpbmdzKCRzaG9ydCk7XG4gICRfbGF5b3V0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIG51bWJlciBvciBsaXN0XG4gICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIG9yIHR5cGUtb2YoJGl0ZW0pID09IGxpc3Qge1xuICAgICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbGlzdCBvciB1bml0bGVzcygkaXRlbSkge1xuICAgICAgICAgICRfbGF5b3V0OiBhcHBlbmQoJF9sYXlvdXQsICRpdGVtKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNvbnRhaW5lcjogJGl0ZW0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRfbGF5b3V0OiBpZihsZW5ndGgoJF9sYXlvdXQpID4gMCwgcGFyc2UtbGF5b3V0KCRfbGF5b3V0KSwgJF9sYXlvdXQpO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJF9yZXR1cm4sICRfbGF5b3V0KTtcbn1cblxuXG4vLyBQYXJzZSBTcGFuXG4vLyAtLS0tLS0tLS0tXG5AZnVuY3Rpb24gcGFyc2Utc3BhbihcbiAgJHNob3J0LFxuICAka2V5OiBzcGFuXG4pIHtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRzaG9ydCkgPT0gbWFwIHtcbiAgICAkX3JldHVybjogJHNob3J0O1xuICB9IEBlbHNlIHtcbiAgICAkX2F0OiBpbmRleCgkc2hvcnQsIGF0KTtcblxuICAgIEBpZiAkX2F0IHtcbiAgICAgICRfbG9jaTogJF9hdCArIDE7XG4gICAgICAkX2xvY2F0aW9uOiBudGgoJHNob3J0LCAkX2xvY2kpO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGxvY2F0aW9uOiAkX2xvY2F0aW9uKSk7XG4gICAgICAkc2hvcnQ6IHNldC1udGgoJHNob3J0LCAkX2F0LCBudWxsKTtcbiAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfbG9jaSwgbnVsbCk7XG4gICAgfVxuXG4gICAgJF9pOiAxO1xuICAgICRfc3BhbjogKCk7XG5cbiAgICBAd2hpbGUgJF9pIDw9IGxlbmd0aCgkc2hvcnQpIHtcbiAgICAgICRfdGhpczogbnRoKCRzaG9ydCwgJF9pKTtcblxuICAgICAgQGlmIHR5cGUtb2YoJF90aGlzKSA9PSBudW1iZXIge1xuICAgICAgICAkX3NwYW46IGFwcGVuZCgkX3NwYW4sICRfdGhpcyk7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICB9IEBlbHNlIGlmICRfdGhpcyA9PSBvZiB7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICAgICRfaTogbGVuZ3RoKCRzaG9ydCkgKyAxO1xuICAgICAgfVxuXG4gICAgICAkX2k6ICRfaSArIDE7XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkX3NwYW4pID4gMCB7XG4gICAgICAkX3NwYW46IGlmKGxlbmd0aCgkX3NwYW4pID09IDEsIG50aCgkX3NwYW4sIDEpLCAkX3NwYW4pO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRrZXk6ICRfc3BhbikpO1xuICAgIH1cblxuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIHBhcnNlLWdyaWQoJHNob3J0KSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIFBhcnNlIEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ndXR0ZXJzKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9ndXR0ZXJzOiBwYXJzZS1zcGFuKCRzaG9ydCwgZ3V0dGVyLW92ZXJyaWRlKTtcbiAgJF9zcGFuOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRfZ3V0dGVycyk7XG5cbiAgQGlmICRfc3BhbiBhbmQgbm90KG1hcC1nZXQoJF9ndXR0ZXJzLCBjb2x1bW5zKSkge1xuICAgICRfY29udGV4dDogKCk7XG4gICAgJF9uZXc6ICgpO1xuXG4gICAgQGVhY2ggJGl0ZW0gaW4gJF9zcGFuIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBudW1iZXIgYW5kIHVuaXRsZXNzKCRpdGVtKSB7XG4gICAgICAgICRfY29udGV4dDogYXBwZW5kKCRfY29udGV4dCwgJGl0ZW0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRfbmV3OiBhcHBlbmQoJF9uZXcsICRpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkX2NvbnRleHQ6IHBhcnNlLWdyaWQoJF9jb250ZXh0KTtcbiAgICAkX25ldzogaWYobGVuZ3RoKCRfbmV3KSA9PSAwLCBudWxsLCAkX25ldyk7XG4gICAgJF9uZXc6IGlmKGxlbmd0aCgkX25ldykgPT0gMSwgbnRoKCRfbmV3LCAxKSwgJF9uZXcpO1xuICAgICRfbmV3OiAoZ3V0dGVyLW92ZXJyaWRlOiBpZigkX25ldyAhPSAkX3NwYW4sICRfbmV3LCAkX3NwYW4pKTtcblxuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9uZXcpO1xuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9jb250ZXh0KTtcbiAgfVxuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuIiwiLy8gVmFsaWRhdGlvblxuLy8gPT09PT09PT09PVxuXG5cbi8vIFZhbGlkYXRlIENvbHVtbiBNYXRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHZhbGlkLWNvbHVtbi1tYXRoKFxuICAkbWF0aCxcbiAgJGNvbHVtbi13aWR0aFxuKSB7XG4gIEBpZiAkbWF0aCA9PSBzdGF0aWMgYW5kIG5vdCgkY29sdW1uLXdpZHRoKSB7XG4gICAgQHdhcm4gJ1N0YXRpYyBtYXRoIHJlcXVpcmVzIGEgdmFsaWQgY29sdW1uLXdpZHRoIHNldHRpbmcuJztcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkY29sdW1uLXdpZHRoO1xuICB9XG59XG4iLCIvLyBHcmlkIFN5bnRheFxuLy8gPT09PT09PT09PT1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gU2V0IGEgbmV3IGxheW91dCB1c2luZyBhIHNob3J0aGFuZFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG4vLyAtICRjbGVhbjogYm9vbGVhblxuQG1peGluIGxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRzdXN5ICAgICA6IF9nZXQtbGF5b3V0KCRsYXlvdXQsICRjbGVhbikgIWdsb2JhbDtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QobGF5b3V0LCAkaW5zcGVjdCk7XG59XG5cblxuLy8gVXNlIEdyaWRcbi8vIC0tLS0tLS0tXG4vLyBVc2UgYW4gYXJiaXRyYXJ5IGxheW91dCBmb3IgYSBzZWN0aW9uIG9mIGNvZGVcbi8vIC0gJGxheW91dDogPHNldHRpbmdzPlxuLy8gLSAkY2xlYW46IGJvb2xlYW5cbkBtaXhpbiB3aXRoLWxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRvbGQgICAgICA6ICRzdXN5O1xuICAkc3VzeSAgICAgOiBfZ2V0LWxheW91dCgkbGF5b3V0LCAkY2xlYW4pICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHdpdGgtbGF5b3V0LCAkaW5zcGVjdCk7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJHN1c3k6ICRvbGQgIWdsb2JhbDtcbn1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIGEgcGFyc2VkIGxheW91dCBtYXAgYmFzZWQgb24gc2hvcnRoYW5kIHN5bnRheFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gbGF5b3V0KFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbn1cblxuXG4vLyBHZXQgTGF5b3V0XG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuZXcgbGF5b3V0IGJhc2VkIG9uIGN1cnJlbnQgYW5kIGdpdmVuIHNldHRpbmdzXG4vLyAtICRsYXlvdXQ6IDxzZXR0aW5ncz5cbi8vIC0gJGNsZWFuOiBib29sZWFuXG5AZnVuY3Rpb24gX2dldC1sYXlvdXQoXG4gICRsYXlvdXQsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkbGF5b3V0OiBsYXlvdXQoJGxheW91dCk7XG4gIEByZXR1cm4gaWYoJGNsZWFuLCAkbGF5b3V0LCBfc3VzeS1kZWVwLW1lcmdlKCRzdXN5LCAkbGF5b3V0KSk7XG59XG4iLCIvLyBTdXN5IEJveCBTaXppbmdcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIEdsb2JhbCBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgYm94IG1vZGVsIGdsb2JhbGx5IG9uIGFsbCBlbGVtZW50cy5cbi8vIC0gWyRib3hdOiBib3JkZXItYm94IHwgY29udGVudC1ib3hcbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gZ2xvYmFsLWJveC1zaXppbmcoXG4gICRib3g6IHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSxcbiAgJGluaGVyaXQ6IGZhbHNlXG4pIHtcbiAgJGluc3BlY3Q6ICRib3g7XG5cbiAgQGlmICRpbmhlcml0IHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAgaHRtbCB7IEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpOyB9XG4gICAgICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG4gICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTsgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdsb2JhbC1ib3gtc2l6aW5nLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHVwZGF0ZS1ib3gtbW9kZWwoJGJveCk7XG59XG5cbi8vIEJvcmRlciBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gQSBsZWdhY3kgc2hvcnRjdXQuLi5cbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gYm9yZGVyLWJveC1zaXppbmcoXG4gICRpbmhlcml0OiBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIGdsb2JhbC1ib3gtc2l6aW5nKGJvcmRlci1ib3gsICRpbmhlcml0KTtcbn1cblxuLy8gVXBkYXRlIEJveCBNb2RlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVXBkYXRlcyBnbG9iYWwgYm94IG1vZGVsIHNldHRpbmdcbkBtaXhpbiB1cGRhdGUtYm94LW1vZGVsKFxuICAkYm94XG4pIHtcbiAgQGlmICRib3ggIT0gc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpIHtcbiAgQGluY2x1ZGUgc3VzeS1zZXQoZ2xvYmFsLWJveC1zaXppbmcsICRib3gpO1xuICB9XG59XG4iLCIvLyBDb250ZXh0IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gTmVzdGVkIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgZ3JpZCBmb3IgbmVzdGVkIGNvbnRleHQuXG4vLyAtICRjb250ZXh0ICAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGNvbnRleHQgICAgOiBwYXJzZS1zcGFuKCRjb250ZXh0KTtcbiAgJHNwYW4gICAgICAgOiBzdXN5LWdldChzcGFuLCAkY29udGV4dCk7XG4gICRsb2NhdGlvbiAgIDogZ2V0LWxvY2F0aW9uKCRjb250ZXh0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBzdXN5LXNsaWNlKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbn1cblxuLy8gTmVzdGVkIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBVc2UgYSBzdWJzZXQgZ3JpZCBmb3IgYSBuZXN0ZWQgY29udGV4dFxuLy8gLSAkY29udGV4dCAgIDogPHNwYW4+XG4vLyAtIEBjb250ZW50ICAgOiA8Y29udGVudD5cbkBtaXhpbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLXNwYW4oJGNvbnRleHQpO1xuICAkb2xkICAgICAgOiBzdXN5LWdldChjb2x1bW5zKTtcbiAgJHN1c3kgICAgIDogbWFwLW1lcmdlKCRzdXN5LCAoY29sdW1uczogbmVzdGVkKCRjb250ZXh0KSkpICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KG5lc3RlZCwgJGluc3BlY3QpO1xuICBAY29udGVudDtcblxuICAkc3VzeSAgICAgOiBtYXAtbWVyZ2UoJHN1c3ksIChjb2x1bW5zOiAkb2xkKSkgIWdsb2JhbDtcbn1cbiIsIi8vIEJhY2tncm91bmQgR3JpZCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzOiBmYWxzZTtcblxuXG4vLyBTaG93IEdyaWQvc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFNob3cgZ3JpZCBvbiBhbnkgZWxlbWVudCB1c2luZyBlaXRoZXIgYmFja2dyb3VuZCBvciBvdmVybGF5LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBzaG93LWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0OiAkZ3JpZDtcbiAgJF9vdXRwdXQ6IGRlYnVnLWdldChvdXRwdXQsICRncmlkKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc2hvdy1ncmlkLCAkaW5zcGVjdCk7XG4gIEBpZiAkX291dHB1dCA9PSBvdmVybGF5IHtcbiAgICBAaW5jbHVkZSBvdmVybGF5LWdyaWQoJGdyaWQpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQoJGdyaWQpO1xuICB9XG59XG5cbkBtaXhpbiBzaG93LWdyaWRzKFxuICAkZ3JpZDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGdyaWQpO1xufVxuXG4vLyBCYWNrZ3JvdW5kIEdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gU2hvdyBhIGdyaWQgYmFja2dyb3VuZCBvbiBhbnkgZWxlbWVudC5cbi8vIC0gWyRncmlkXSAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gYmFja2dyb3VuZC1ncmlkKFxuICAkZ3JpZDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkZ3JpZDtcbiAgJF9vdXRwdXQgIDogZ2V0LWJhY2tncm91bmQoJGdyaWQpO1xuXG4gIEBpZiBsZW5ndGgoJF9vdXRwdXQpID4gMCB7XG4gICAgJF9mbG93OiBzdXN5LWdldChmbG93LCAkZ3JpZCk7XG5cbiAgICAkX2ltYWdlOiAoKTtcbiAgICBAZWFjaCAkbmFtZSwgJGxheWVyIGluIG1hcC1nZXQoJF9vdXRwdXQsIGltYWdlKSB7XG4gICAgICAkX2RpcmVjdGlvbjogaWYoJG5hbWUgPT0gYmFzZWxpbmUsIHRvIGJvdHRvbSwgdG8gdG8oJF9mbG93KSk7XG4gICAgICAkX2ltYWdlOiBhcHBlbmQoJF9pbWFnZSwgbGluZWFyLWdyYWRpZW50KCRfZGlyZWN0aW9uLCAkbGF5ZXIpLCBjb21tYSk7XG4gICAgfVxuICAgICRfb3V0cHV0OiBtYXAtbWVyZ2UoJF9vdXRwdXQsIChpbWFnZTogJF9pbWFnZSkpO1xuXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1ncmlkLW91dHB1dCgkX291dHB1dC4uLik7XG4gICAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGJhY2tncm91bmQtZ3JpZCwgJGluc3BlY3QpO1xuICB9XG59XG5cblxuLy8gT3ZlcmxheSBHcmlkXG4vLyAtLS0tLS0tLS0tLS1cbi8vIEdlbmVyYXRlIGFuIGljb24gdG8gdHJpZ2dlciBncmlkLW92ZXJsYXlzIG9uIGFueSBnaXZlbiBlbGVtZW50cy5cbi8vICRncmlkcy4uLiAgOiA8c2VsZWN0b3I+IFs8c2V0dGluZ3M+XSBbLCA8c2VsZWN0b3I+XSpcbkBtaXhpbiBvdmVybGF5LWdyaWQgKFxuICAkZ3JpZDogJHN1c3lcbikge1xuICBAaWYgbm90KCRzdXN5LW92ZXJsYXktZ3JpZC1oZWFkLWV4aXN0cykge1xuICAgIEBhdC1yb290IGhlYWQgeyBAaW5jbHVkZSBvdmVybGF5LWhlYWQoJGdyaWQpOyB9XG4gICAgQGF0LXJvb3QgaGVhZDpiZWZvcmUgeyBAaW5jbHVkZSBvdmVybGF5LXRyaWdnZXI7IH1cbiAgICBAYXQtcm9vdCBoZWFkOmhvdmVyIHsgQGluY2x1ZGUgb3ZlcmxheS10cmlnZ2VyLWhvdmVyOyB9XG4gICAgJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBoZWFkOmhvdmVyIH4gJixcbiAgaGVhZDpob3ZlciB+IGJvZHkgJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtb3ZlcmxheS1iYXNlO1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1ncmlkKCRncmlkKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBbUHJpdmF0ZV0gT3ZlcmxheSBUcmlnZ2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb3ZlcmxheS10cmlnZ2VyIHtcbiAgY29udGVudDogXCJ8fHxcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250OiB7XG4gICAgZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgIHNpemU6IDE2cHg7XG4gICAgd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cblxuLy8gW1ByaXZhdGVdIE92ZXJsYXkgVHJpZ2dlciBIb3ZlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIG92ZXJsYXktdHJpZ2dlci1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEod2hpdGUsIC41KTtcbiAgY29sb3I6IHJlZDtcbn1cblxuXG4vLyBbUHJpdmF0ZV0gT3ZlcmxheSBIZWFkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA8aGVhZD4gc3R5bGVzIHRvIGNyZWF0ZSBncmlkIG92ZXJsYXkgdG9nZ2xlXG5AbWl4aW4gb3ZlcmxheS1oZWFkIChcbiAgJGdyaWQ6ICRzdXN5XG4pIHtcbiAgJF90b2dnbGU6IGRlYnVnLWdldCh0b2dnbGUsICRncmlkKTtcbiAgJF9ob3J6OiBudWxsO1xuICAkX3ZlcnQ6IG51bGw7XG5cbiAgQGVhY2ggJHNpZGUgaW4gJF90b2dnbGUge1xuICAgICRfaG9yejogaWYoJHNpZGUgPT0gbGVmdCBvciAkc2lkZSA9PSByaWdodCwgJHNpZGUsICRfaG9yeik7XG4gICAgJF92ZXJ0OiBpZigkc2lkZSA9PSB0b3Agb3IgJHNpZGUgPT0gYm90dG9tLCAkc2lkZSwgJF92ZXJ0KTtcbiAgfVxuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gICN7JF9ob3J6fTogMTBweDtcbiAgI3skX3ZlcnR9OiAxMHB4O1xuICB6LWluZGV4OiA5OTk7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHdoaXRlLCAuMjUpO1xufVxuXG5cbi8vIFtQcml2YXRlXSBHcmlkIE92ZXJsYXkgQmFzZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCYXNlIHN0eWxlcyBmb3IgZ2VuZXJhdGluZyBhIGdyaWQgb3ZlcmxheVxuQG1peGluIGdyaWQtb3ZlcmxheS1iYXNlKCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgY29udGVudDogXCIgXCI7XG4gIHotaW5kZXg6IDk5ODtcbn1cblxuXG4vLyBHZXQgU3ltbWV0cmljYWwgQmFja2dyb3VuZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGdyaWQ6IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LWJhY2tncm91bmQtc3ltKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICAgICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2d1dHRlcnMgICAgICAgOiBzdXN5LWdldChndXR0ZXJzLCAkZ3JpZCk7XG4gICRfY29sdW1uLXdpZHRoICA6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGdyaWQpO1xuICAkX21hdGggICAgICAgICAgOiBzdXN5LWdldChtYXRoLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgICAgICAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF90cmFucyAgICAgICAgIDogdHJhbnNwYXJlbnQ7XG4gICRfbGlnaHQgICAgICAgICA6IGxpZ2h0ZW4oJF9jb2xvciwgMTUlKTtcblxuICAkX2VuZCAgICAgICAgICAgOiAxICsgJF9ndXR0ZXJzO1xuICAkX2FmdGVyICAgICAgICAgOiBwZXJjZW50YWdlKDEvJF9lbmQpO1xuICAkX3N0b3BzICAgICAgICAgOiAoKTtcbiAgJF9zaXplICAgICAgICAgIDogc3BhbigxICRncmlkIHdpZGUpO1xuXG4gIEBpZiBpcy1pbnNpZGUoJGdyaWQpIHtcbiAgICAkX3N0b3BzOiAkX2NvbG9yLCAkX2xpZ2h0O1xuICB9IEBlbHNlIGlmIGlzLXNwbGl0KCRncmlkKSB7XG4gICAgJF9zcGxpdDogJF9ndXR0ZXJzLzI7XG4gICAgJF9iZWZvcmU6IHBlcmNlbnRhZ2UoJF9zcGxpdC8kX2VuZCk7XG4gICAgJF9hZnRlcjogcGVyY2VudGFnZSgoMSArICRfc3BsaXQpLyRfZW5kKTtcbiAgICAkX3N0b3BzOiAkX3RyYW5zICRfYmVmb3JlLCAkX2NvbG9yICRfYmVmb3JlLCAkX2xpZ2h0ICRfYWZ0ZXIsICRfdHJhbnMgJF9hZnRlcjtcbiAgfSBAZWxzZSB7XG4gICAgJF9zdG9wczogJF9jb2xvciwgJF9saWdodCAkX2FmdGVyLCAkX3RyYW5zICRfYWZ0ZXI7XG4gIH1cblxuICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgJF9zaXplOiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSAqICRfZW5kO1xuICB9XG5cbiAgJF9vdXRwdXQ6IChcbiAgICBpbWFnZTogKGNvbHVtbnM6ICRfc3RvcHMpLFxuICAgIHNpemU6ICRfc2l6ZSxcbiAgKTtcblxuICBAcmV0dXJuICRfb3V0cHV0O1xufVxuXG5cbi8vIEdldCBBc3ltbWV0cmljYWwgSW5zaWRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1hc3ltLWluc2lkZShcbiAgJGdyaWRcbikge1xuICAkZ3JpZCAgICAgOiBwYXJzZS1ncmlkKCRncmlkKTtcbiAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGdyaWQpO1xuXG4gICRfY29sb3IgICA6IGRlYnVnLWdldChjb2xvcik7XG4gICRfbGlnaHQgICA6IGxpZ2h0ZW4oJF9jb2xvciwgMTUlKTtcbiAgJF9zdG9wcyAgIDogKCk7XG5cbiAgQGZvciAkbG9jYXRpb24gZnJvbSAxIHRocm91Z2ggc3VzeS1jb3VudCgkX2NvbHVtbnMpIHtcbiAgICAkdGhpcy1zdG9wOiAoKTtcblxuICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0YXJ0OiBwYXJzZS1zcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfY29sb3IgJHN0YXJ0LCBjb21tYSk7XG4gICAgfVxuXG4gICAgQGlmICRsb2NhdGlvbiA9PSBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQsIGNvbW1hKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfZW5kOiBwYXJzZS1zcGFuKDEgYXQgKCRsb2NhdGlvbiArIDEpICRncmlkKTtcbiAgICAgICRfZW5kOiBnZXQtaXNvbGF0aW9uKCRfZW5kKTtcbiAgICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCAkX2xpZ2h0ICRfZW5kLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJF9zdG9wczogam9pbigkX3N0b3BzLCAkdGhpcy1zdG9wLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRfc3RvcHM7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBTcGxpdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1hc3ltLXNwbGl0KFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3N0b3BzICAgOiAoKTtcblxuICBAZm9yICRsb2NhdGlvbiBmcm9tIDEgdGhyb3VnaCBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICR0aGlzLXN0b3A6ICgpO1xuXG4gICAgJHN0YXJ0OiBwYXJzZS1zcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAkc3RhcnQ6IGdldC1pc29sYXRpb24oJHN0YXJ0KTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgdHJhbnNwYXJlbnQgJHN0YXJ0LCBjb21tYSk7XG4gICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfY29sb3IgJHN0YXJ0LCBjb21tYSk7XG5cbiAgICAkX2VuZDogJHN0YXJ0ICsgc3BhbigxIGF0ICRsb2NhdGlvbiAkZ3JpZCk7XG4gICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQgJF9lbmQsIGNvbW1hKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgdHJhbnNwYXJlbnQgJF9lbmQsIGNvbW1hKTtcblxuICAgICRfc3RvcHM6IGpvaW4oJF9zdG9wcywgJHRoaXMtc3RvcCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkX3N0b3BzO1xufVxuXG5cbi8vIEdldCBBc3ltbWV0cmljYWwgT3V0c2lkZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0tb3V0c2lkZShcbiAgJGdyaWRcbikge1xuICAkZ3JpZCAgICAgOiBwYXJzZS1ncmlkKCRncmlkKTtcbiAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGdyaWQpO1xuXG4gICRfY29sb3IgICA6IGRlYnVnLWdldChjb2xvcik7XG4gICRfbGlnaHQgICA6IGxpZ2h0ZW4oJF9jb2xvciwgMTUlKTtcbiAgJF90cmFucyAgIDogdHJhbnNwYXJlbnQ7XG4gICRfc3RvcHMgICA6ICgpO1xuXG4gIEBmb3IgJGxvY2F0aW9uIGZyb20gMSB0aHJvdWdoIHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgJHRoaXMtc3RvcDogKCk7XG5cbiAgICBAaWYgJGxvY2F0aW9uID09IDEge1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfY29sb3IsIGNvbW1hKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRzdGFydDogcGFyc2Utc3BhbigxIGF0ICRsb2NhdGlvbiAkZ3JpZCk7XG4gICAgICAkc3RhcnQ6IGdldC1pc29sYXRpb24oJHN0YXJ0KTtcbiAgICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCAkX2NvbG9yICRzdGFydCwgY29tbWEpO1xuICAgIH1cblxuICAgIEBpZiAkbG9jYXRpb24gPT0gc3VzeS1jb3VudCgkX2NvbHVtbnMpIHtcbiAgICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCAkX2xpZ2h0LCBjb21tYSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZ3V0dGVyOiBnZXQtc3Bhbi13aWR0aChmaXJzdCAkbG9jYXRpb24gJGdyaWQpO1xuXG4gICAgICAkX2VuZDogcGFyc2Utc3BhbigxIGF0ICgkbG9jYXRpb24gKyAxKSAkZ3JpZCk7XG4gICAgICAkX2VuZDogZ2V0LWlzb2xhdGlvbigkX2VuZCk7XG5cbiAgICAgICRndXR0ZXI6ICRfbGlnaHQgJGd1dHRlciwgJF90cmFucyAkZ3V0dGVyLCAkX3RyYW5zICRfZW5kO1xuICAgICAgJHRoaXMtc3RvcDogam9pbigkdGhpcy1zdG9wLCAkZ3V0dGVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJF9zdG9wczogam9pbigkX3N0b3BzLCAkdGhpcy1zdG9wLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRfc3RvcHM7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBCYWNrZ3JvdW5kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGdyaWQ6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtYmFja2dyb3VuZC1hc3ltKFxuICAkZ3JpZFxuKSB7XG4gICRfc3RvcHM6ICgpO1xuXG4gIEBpZiBpcy1pbnNpZGUoJGdyaWQpIHtcbiAgICAkX3N0b3BzOiBnZXQtYXN5bS1pbnNpZGUoJGdyaWQpO1xuICB9IEBlbHNlIGlmIGlzLXNwbGl0KCRncmlkKSB7XG4gICAgJF9zdG9wczogZ2V0LWFzeW0tc3BsaXQoJGdyaWQpO1xuICB9IEBlbHNlIHtcbiAgICAkX3N0b3BzOiBnZXQtYXN5bS1vdXRzaWRlKCRncmlkKTtcbiAgfVxuXG4gIEByZXR1cm4gKGltYWdlOiAoY29sdW1uczogJF9zdG9wcykpO1xufVxuXG5cbi8vIEdldCBCYWNrZ3JvdW5kXG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1iYWNrZ3JvdW5kKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX3Nob3cgICAgOiBzdXN5LWdldChkZWJ1ZyBpbWFnZSwgJGdyaWQpO1xuICAkX3JldHVybiAgOiAoKTtcblxuICBAaWYgJF9zaG93IGFuZCAkX3Nob3cgIT0gaGlkZSB7XG4gICAgJF9saW5lLWhlaWdodDogdmFyaWFibGUtZXhpc3RzKGJhc2UtbGluZS1oZWlnaHQpO1xuICAgICRfbGluZS1oZWlnaHQ6IGlmKCRfbGluZS1oZWlnaHQsICRiYXNlLWxpbmUtaGVpZ2h0LCBmYWxzZSk7XG4gICAgJF9jb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgICBAaWYgJF9zaG93ICE9IHNob3ctYmFzZWxpbmUge1xuICAgICAgJF9zeW06IGlzLXN5bW1ldHJpY2FsKCRfY29sdW1ucyk7XG4gICAgICAkX3JldHVybjogaWYoJF9zeW0sIGdldC1iYWNrZ3JvdW5kLXN5bSgkZ3JpZCksIGdldC1iYWNrZ3JvdW5kLWFzeW0oJGdyaWQpKTtcbiAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChjbGlwOiBjb250ZW50LWJveCkpO1xuICAgIH0gQGVsc2UgaWYgbm90KCRfbGluZS1oZWlnaHQpIHtcbiAgICAgIEB3YXJuICdQbGVhc2UgcHJvdmlkZSAkYmFzZS1saW5lLWhlaWdodCBpbiBvcmRlciB0byBzZWUgYmFzZWxpbmUgZ3JpZHMuJztcbiAgICB9XG5cbiAgICBAaWYgJF9saW5lLWhlaWdodCB7XG4gICAgICBAaWYgJF9zaG93ICE9IHNob3ctY29sdW1ucyB7XG4gICAgICAgICRfY29sb3I6IHZhcmlhYmxlLWV4aXN0cyhncmlkLWJhY2tncm91bmQtYmFzZWxpbmUtY29sb3IpO1xuICAgICAgICAkX2NvbG9yOiBpZigkX2NvbG9yLCAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yLCAjMDAwKTtcblxuICAgICAgICAkX2ltYWdlOiBtYXAtZ2V0KCRfcmV0dXJuLCBpbWFnZSk7XG4gICAgICAgICRfc2l6ZTogbWFwLWdldCgkX3JldHVybiwgc2l6ZSk7XG4gICAgICAgICRfYmFzZWxpbmU6IChiYXNlbGluZTogKCRfY29sb3IgMXB4LCB0cmFuc3BhcmVudCAxcHgpKTtcbiAgICAgICAgJF9iYXNlbGluZS1zaXplOiAxMDAlICRfbGluZS1oZWlnaHQ7XG5cbiAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxuICAgICAgICAgIGltYWdlOiBpZigkX2ltYWdlLCBtYXAtbWVyZ2UoJF9pbWFnZSwgJF9iYXNlbGluZSksICRfYmFzZWxpbmUpLFxuICAgICAgICAgIHNpemU6IGlmKCRfc2l6ZSwgKCRfc2l6ZSwgJF9iYXNlbGluZS1zaXplKSwgJF9iYXNlbGluZS1zaXplKSxcbiAgICAgICAgKSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkX3Nob3cgPT0gc2hvdyB7XG4gICAgICAgICRfY2xpcDogbWFwLWdldCgkX3JldHVybiwgY2xpcCk7XG4gICAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChjbGlwOiBqb2luKCRfY2xpcCwgYm9yZGVyLWJveCwgY29tbWEpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIG1hcC1nZXQoJF9yZXR1cm4sIGltYWdlKSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGZsb3c6IHN1c3ktZ2V0KGZsb3csICRncmlkKSkpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBHZXQgRGVidWdcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIGRlYnVnIHNldHRpbmdcbi8vIC0gJGtleTogPHNldHRpbmc+XG5AZnVuY3Rpb24gZGVidWctZ2V0KFxuICAka2V5LFxuICAkZ3JpZDogJHN1c3lcbikge1xuICAka2V5OiBqb2luKGRlYnVnLCAka2V5LCBzcGFjZSk7XG4gIEByZXR1cm4gc3VzeS1nZXQoJGtleSwgJGdyaWQpO1xufVxuIiwiLy8gQ29udGFpbmVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBhIGNvbnRhaW5lciBlbGVtZW50XG4vLyAtIFskbGF5b3V0XSAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gY29udGFpbmVyKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICAgIDogJGxheW91dDtcbiAgJGxheW91dCAgICAgOiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuXG4gICRfd2lkdGggICAgIDogZ2V0LWNvbnRhaW5lci13aWR0aCgkbGF5b3V0KTtcbiAgJF9qdXN0aWZ5ICAgOiBwYXJzZS1jb250YWluZXItcG9zaXRpb24oc3VzeS1nZXQoY29udGFpbmVyLXBvc2l0aW9uLCAkbGF5b3V0KSk7XG4gICRfcHJvcGVydHkgIDogaWYoc3VzeS1nZXQobWF0aCwgJGxheW91dCkgPT0gc3RhdGljLCB3aWR0aCwgbWF4LXdpZHRoKTtcblxuICAkX2JveCAgICAgICA6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRsYXlvdXQpO1xuXG4gIEBpZiAkX2JveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkX2JveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGNvbnRhaW5lciwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBmbG9hdC1jb250YWluZXIoJF93aWR0aCwgJF9qdXN0aWZ5LCAkX3Byb3BlcnR5KTtcbiAgQGluY2x1ZGUgc2hvdy1ncmlkKCRsYXlvdXQpO1xufVxuXG4vLyBDb250YWluZXIgW2Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBjb250YWluZXIgd2lkdGhcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgQHJldHVybiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xufVxuXG4vLyBHZXQgQ29udGFpbmVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgdGhlIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF06IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtY29udGFpbmVyLXdpZHRoKFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gICRsYXlvdXQgICAgICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfd2lkdGggICAgICAgICA6IHN1c3ktZ2V0KGNvbnRhaW5lciwgJGxheW91dCk7XG4gICRfY29sdW1uLXdpZHRoICA6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGxheW91dCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRsYXlvdXQpO1xuXG4gIEBpZiBub3QoJF93aWR0aCkgb3IgJF93aWR0aCA9PSBhdXRvIHtcbiAgICBAaWYgdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCkge1xuICAgICAgJF9jb2x1bW5zICAgOiBzdXN5LWdldChjb2x1bW5zLCAkbGF5b3V0KTtcbiAgICAgICRfZ3V0dGVycyAgIDogc3VzeS1nZXQoZ3V0dGVycywgJGxheW91dCk7XG4gICAgICAkX3NwcmVhZCAgICA6IGlmKGlzLXNwbGl0KCRsYXlvdXQpLCB3aWRlLCBuYXJyb3cpO1xuICAgICAgJF93aWR0aCAgICAgOiBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpICogJF9jb2x1bW4td2lkdGg7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX3dpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF93aWR0aDtcbn1cblxuLy8gUGFyc2UgQ29udGFpbmVyIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhcnNlIHRoZSAkY29udGFpbmVyLXBvc2l0aW9uIGludG8gbWFyZ2luIHZhbHVlcy5cbi8vIC0gWyRqdXN0aWZ5XSAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0IHwgPGxlbmd0aD4gWzxsZW5ndGg+XVxuQGZ1bmN0aW9uIHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihcbiAgJGp1c3RpZnk6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGNvbnRhaW5lci1wb3NpdGlvbilcbikge1xuICAkX3JldHVybjogaWYoJGp1c3RpZnkgPT0gbGVmdCwgMCwgYXV0bykgaWYoJGp1c3RpZnkgPT0gcmlnaHQsIDAsIGF1dG8pO1xuXG4gIEBpZiBub3QoaW5kZXgobGVmdCByaWdodCBjZW50ZXIsICRqdXN0aWZ5KSkge1xuICAgICRfcmV0dXJuOiBudGgoJGp1c3RpZnksIDEpO1xuICAgICRfcmV0dXJuOiAkX3JldHVybiBpZihsZW5ndGgoJGp1c3RpZnkpID4gMSwgbnRoKCRqdXN0aWZ5LCAyKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFNwYW4gU3ludGF4XG4vLyA9PT09PT09PT09PVxuXG4vLyBTcGFuIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkb3V0cHV0OiBzcGFuLW1hdGgoJHNwYW4pO1xuICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY2xlYXI6IHN1c3ktZ2V0KGNsZWFyLCAkc3Bhbik7XG5cbiAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkY29udGVudC1ib3g6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSAhPSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcbiAgJGJveDogJGJveCBvciBpZihpcy1pbnNpZGUoJHNwYW4pIGFuZCAkY29udGVudC1ib3gsIGJvcmRlci1ib3gsIG51bGwpO1xuXG4gIEBpZiAkY2xlYXIgPT0gYnJlYWsge1xuICAgIEBpbmNsdWRlIGJyZWFrO1xuICB9IEBlbHNlIGlmICRjbGVhciA9PSBub2JyZWFrIHtcbiAgICBAaW5jbHVkZSBub2JyZWFrO1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNwYW4sICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiAkYm94KSk7XG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIEBpZiB2YWxpZC1jb2x1bW5zKCRuZXN0aW5nLCBzaWxlbnQpIHtcbiAgICBAaW5jbHVkZSBuZXN0ZWQoJHNwYW4pIHsgQGNvbnRlbnQ7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU3BhbiBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBzcGFuLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBzcGFuKFxuICAkc3BhblxuKSB7XG4gIEByZXR1cm4gZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xufVxuXG4vLyBTcGFuIE1hdGhcbi8vIC0tLS0tLS0tLVxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBzcGFuLW1hdGgoXG4gICRzcGFuXG4pIHtcbiAgJG5lc3QgICAgICAgICAgICAgOiBpZihzdXN5LWdldChyb2xlLCAkc3BhbikgPT0gbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkc3BsaXQtbmVzdCAgICAgICA6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJGVkZ2UgICAgICAgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRsb2NhdGlvbiAgICAgICAgIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcblxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb207XG4gICRwYWRkaW5nLWJlZm9yZSAgIDogbnVsbDtcbiAgJHBhZGRpbmctYWZ0ZXIgICAgOiBudWxsO1xuICAkbWFyZ2luLWJlZm9yZSAgICA6IG51bGw7XG4gICRtYXJnaW4tYWZ0ZXIgICAgIDogbnVsbDtcblxuICAvLyBjYWxjdWxhdGUgd2lkdGhzXG4gICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xuICAkc3BhbjogaWYoJHNwbGl0LW5lc3QgYW5kIG5vdCgkc3ByZWFkKSwgbWFwLW1lcmdlKCRzcGFuLCAoc3ByZWFkOiB3aWRlKSksICRzcGFuKTtcbiAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG4gICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgLy8gYXBwbHkgZ3V0dGVyc1xuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcbiAgICAgICRwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XG4gICAgICAkbWFyZ2luLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKTtcbiAgICAgICRtYXJnaW4tYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBzcGVjaWFsIG1hcmdpbiBoYW5kbGluZ1xuICBAaWYgc3VzeS1nZXQob3V0cHV0LCAkc3BhbikgPT0gaXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcbiAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XG4gICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XG4gIH0gQGVsc2UgaWYgJGVkZ2Uge1xuICAgICRpcy1zcGxpdDogaXMtc3BsaXQoJHNwYW4pO1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuXG4gICAgQGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcbiAgICB9XG5cbiAgICBAaWYgbm90KCRpcy1zcGxpdCkge1xuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGZpcnN0IGFuZCAkcG9zID09IGJlZm9yZSkge1xuICAgICAgICAkbWFyZ2luLWJlZm9yZTogMDtcbiAgICAgIH1cbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBsYXN0IGFuZCAkcG9zID09IGFmdGVyKSB7XG4gICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuIChcbiAgICB3aWR0aCAgICAgICAgICAgOiAkd2lkdGgsXG4gICAgZmxvYXQgICAgICAgICAgIDogJGZsb2F0LFxuICAgIG1hcmdpbi1iZWZvcmUgICA6ICRtYXJnaW4tYmVmb3JlLFxuICAgIG1hcmdpbi1hZnRlciAgICA6ICRtYXJnaW4tYWZ0ZXIsXG4gICAgcGFkZGluZy1iZWZvcmUgIDogJHBhZGRpbmctYmVmb3JlLFxuICAgIHBhZGRpbmctYWZ0ZXIgICA6ICRwYWRkaW5nLWFmdGVyLFxuICAgIGZsb3cgICAgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcbn1cblxuLy8gR2V0IFNwYW4gV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gc3BhbiB3aWR0aC5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG5cbiAgJG4gICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkbG9jYXRpb24gOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuICAkY29sdW1ucyAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRndXR0ZXJzICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRzcGFuKTtcbiAgJHNwcmVhZCAgIDogc3VzeS1nZXQoc3ByZWFkLCAkc3Bhbik7XG5cbiAgJGNvbnRleHQgIDogbnVsbDtcbiAgJHNwYW4tc3VtIDogbnVsbDtcbiAgJHdpZHRoICAgIDogbnVsbDtcblxuICBAaWYgJG4gPT0gJ2Z1bGwnIHtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcbiAgICAkcm9sZTogc3VzeS1nZXQocm9sZSwgJHNwYW4pO1xuICAgICRuOiBpZigkcG9zID09IHNwbGl0IGFuZCAkcm9sZSAhPSBuZXN0LCBzdXN5LWNvdW50KCRjb2x1bW5zKSwgMTAwJSk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbikgIT0gbnVtYmVyIHtcbiAgICBAd2FybiBcIigje3R5cGUtb2YoJG4pfSkgI3skbn0gaXMgbm90IGEgdmFsaWQgc3Bhbi5cIjtcbiAgfSBAZWxzZSBpZiB1bml0bGVzcygkbikge1xuICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XG4gICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcbiAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcblxuICAgICRfbWF0aDogc3VzeS1nZXQobWF0aCwgJHNwYW4pO1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRzcGFuKTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkd2lkdGg6ICRzcGFuLXN1bSAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRzcGFuLXN1bSAvICRjb250ZXh0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICR3aWR0aDogJG47XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cbiIsIi8vIEd1dHRlciBTeW50YXhcbi8vID09PT09PT09PT09PT1cblxuXG4vLyBHdXR0ZXJzXG4vLyAtLS0tLS0tXG4vLyBTZXQgZ3V0dGVycyBvbiBhbiBlbGVtZW50LlxuLy8gLSBbJHNwYW5dICAgOiA8c2V0dGluZ3M+XG5AbWl4aW4gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IHBhcnNlLWd1dHRlcnMoJHNwYW4pO1xuICAkX2d1dHRlcnMgOiBnZXQtZ3V0dGVycygkc3Bhbik7XG5cbiAgJF9vdXRwdXQ6IChcbiAgICBiZWZvcmU6IG1hcC1nZXQoJF9ndXR0ZXJzLCBiZWZvcmUpLFxuICAgIGFmdGVyOiBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZ3V0dGVycywgJGluc3BlY3QpO1xuXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQoJF9vdXRwdXQuLi4pO1xuICB9XG59XG5cbkBtaXhpbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGd1dHRlcnMoJHNwYW4pO1xufVxuXG5cbi8vIEd1dHRlclxuLy8gLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHdpZHRoIG9mIGEgZ3V0dGVyLlxuLy8gLSBbJHNwYW5dICAgOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ3V0dGVyKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkc3BhbjogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG5cbiAgJF9ndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVyczogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSkgb3IgbWFwLWdldCgkX2d1dHRlcnMsIGFmdGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVycztcbn1cblxuQGZ1bmN0aW9uIGd1dHRlcnMoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gZ3V0dGVyKCRzcGFuKTtcbn1cblxuXG4vLyBHZXQgR3V0dGVyIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gZ3V0dGVyIHdpZHRoLlxuLy8gLSBbJGNvbnRleHRdOiA8Y29udGV4dD5cbkBmdW5jdGlvbiBnZXQtZ3V0dGVyLXdpZHRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkY29udGV4dCAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlcnMgOiBzdXN5LWdldChndXR0ZXJzLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICA6IHN1c3ktZ2V0KGd1dHRlci1vdmVycmlkZSwgJGNvbnRleHQpO1xuXG4gIEBpZiAkX2d1dHRlcnMgYW5kICgkX2d1dHRlcnMgPiAwKSBhbmQgbm90KCRfZ3V0dGVyKSB7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJGNvbnRleHQpO1xuICAgICRfbWF0aDogZ3V0dGVyLW1hdGgoJGNvbnRleHQpO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICRfZ3V0dGVyOiAkX2d1dHRlcnMgKiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfY29sdW1ucyA6IHN1c3ktZ2V0KGNvbHVtbnMsICRjb250ZXh0KTtcbiAgICAgICRfc3ByZWFkICA6IGlmKGlzLXNwbGl0KCRjb250ZXh0KSwgd2lkZSwgc3VzeS1nZXQoc3ByZWFkLCAkY29udGV4dCkpO1xuICAgICAgJF9ndXR0ZXIgIDogcGVyY2VudGFnZSgkX2d1dHRlcnMgLyBzdXN5LXN1bSgkX2NvbHVtbnMsICRfZ3V0dGVycywgJF9zcHJlYWQpKTtcbiAgICB9XG4gIH1cblxuICAkX2d1dHRlcjogaWYoJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcnMnIG9yICRfZ3V0dGVyID09ICduby1ndXR0ZXInLCBudWxsLCAkX2d1dHRlcik7XG5cbiAgQHJldHVybiAkX2d1dHRlcjtcbn1cblxuXG4vLyBHZXQgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBiZWZvcmUgYW5kIGFmdGVyIGd1dHRlciB2YWx1ZXMuXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXJzKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkY29udGV4dCAgICAgICAgICAgIDogcGFyc2UtZ3V0dGVycygkY29udGV4dCk7XG5cbiAgJF9ndXR0ZXItcG9zaXRpb24gICA6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuICAkX2d1dHRlciAgICAgICAgICAgIDogZ2V0LWd1dHRlci13aWR0aCgkY29udGV4dCk7XG5cbiAgJF9yZXR1cm4gICAgICAgICAgICA6IChiZWZvcmU6IG51bGwsIGFmdGVyOiBudWxsKTtcblxuICBAaWYgaXMtc3BsaXQoJGNvbnRleHQpIGFuZCAkX2d1dHRlciB7XG4gICAgJF9ndXR0ZXI6ICRfZ3V0dGVyIC8gMjtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoYmVmb3JlOiAkX2d1dHRlciwgYWZ0ZXI6ICRfZ3V0dGVyKSk7XG4gIH0gQGVsc2Uge1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sICgkX2d1dHRlci1wb3NpdGlvbjogJF9ndXR0ZXIpKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gSXMgSW5zaWRlXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBpbnNpZGUuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtaW5zaWRlKFxuICAkY29udGV4dFxuKSB7XG4gICRfaW5zaWRlOiBpbnNpZGUgaW5zaWRlLXN0YXRpYztcbiAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuXG4gIEByZXR1cm4gaWYoaW5kZXgoJF9pbnNpZGUsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIElzIFNwbGl0XG4vLyAtLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIHNwbGl0LlxuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGlzLXNwbGl0KFxuICAkY29udGV4dFxuKSB7XG4gICRfc3BsaXQ6IHNwbGl0IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX3NwbGl0LCAkX2d1dHRlci1wb3NpdGlvbiksIHRydWUsIGZhbHNlKTtcbn1cblxuXG4vLyBHdXR0ZXIgTWF0aFxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgbWF0aCB0byB1c2UgZm9yIGd1dHRlciBjYWxjdWxhdGlvbnNcbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBndXR0ZXItbWF0aChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm4gIDogc3VzeS1nZXQobWF0aCwgJGNvbnRleHQpO1xuICAkX3JldHVybiAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KSA9PSBpbnNpZGUtc3RhdGljLCBzdGF0aWMsICRfcmV0dXJuKTtcblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gSXNvbGF0aW9uIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG5cbi8vIElzb2xhdGUgW01peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgaXNvbGF0aW9uIGFzIGFuIG92ZXJyaWRlLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQG1peGluIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGluc3BlY3Q6ICRpc29sYXRlO1xuXG4gICRvdXRwdXQ6IChcbiAgICBwdXNoOiBpc29sYXRlKCRpc29sYXRlKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkaXNvbGF0ZSksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGlzb2xhdGUsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgaXNvbGF0ZS1vdXRwdXQoJG91dHB1dC4uLik7XG59XG5cblxuLy8gSXNvbGF0ZSBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBhbiBpc29sYXRpb24gb2Zmc2V0IHdpZHRoLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQGZ1bmN0aW9uIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGlzb2xhdGU6IHBhcnNlLXNwYW4oJGlzb2xhdGUpO1xuICAkaXNvbGF0aW9uOiBzdXN5LWdldChzcGFuLCAkaXNvbGF0ZSk7XG5cbiAgQGlmICRpc29sYXRpb24gYW5kIG5vdChnZXQtbG9jYXRpb24oJGlzb2xhdGUpKSB7XG4gICAgJG5ldzogKFxuICAgICAgc3BhbjogbnVsbCxcbiAgICAgIGxvY2F0aW9uOiAkaXNvbGF0aW9uLFxuICAgICk7XG4gICAgJGlzb2xhdGU6IG1hcC1tZXJnZSgkaXNvbGF0ZSwgJG5ldyk7XG4gIH1cblxuICBAcmV0dXJuIGdldC1pc29sYXRpb24oJGlzb2xhdGUpO1xufVxuXG5cbi8vIEdldCBJc29sYXRpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgaXNvbGF0aW9uIG9mZnNldCB3aWR0aFxuLy8gLSAkaW5wdXQ6IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LWlzb2xhdGlvbihcbiAgJGlucHV0XG4pIHtcbiAgJGxvY2F0aW9uICAgOiBnZXQtbG9jYXRpb24oJGlucHV0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkaW5wdXQpO1xuICAkd2lkdGggICAgICA6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJGxvY2F0aW9uKSA9PSBudW1iZXIgYW5kIG5vdCh1bml0bGVzcygkbG9jYXRpb24pKSB7XG4gICAgJHdpZHRoOiAkbG9jYXRpb247XG4gIH0gQGVsc2UgaWYgJGxvY2F0aW9uIHtcbiAgICAkcHVzaDogJGxvY2F0aW9uIC0gMTtcbiAgICBAaWYgJHB1c2ggPiAwIHtcbiAgICAgICRwdXNoOiBtYXAtbWVyZ2UoJGlucHV0LCAoXG4gICAgICAgIHNwYW46ICRwdXNoLFxuICAgICAgICBsb2NhdGlvbjogMSxcbiAgICAgICAgc3ByZWFkOiB3aWRlLFxuICAgICAgKSk7XG4gICAgICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRwdXNoKTtcbiAgICB9XG4gIH1cblxuICBAaWYgc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkaW5wdXQpID09IHNwbGl0IHtcbiAgICAkd2lkdGg6IGlmKCR3aWR0aCA9PSBudWxsLCBndXR0ZXJzKCRpbnB1dCksICR3aWR0aCArIGd1dHRlcnMoJGlucHV0KSk7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aCBvciAwO1xufVxuIiwiLy8gR2FsbGVyeSBTeW50YXhcbi8vID09PT09PT09PT09PT09XG5cbi8vIEdhbGxlcnlcbi8vIC0tLS0tLS1cbi8vIENyZWF0ZSBhbiBpc29sYXRlZCBnYWxsZXJ5XG4vLyAtICRzcGFuICAgICAgICA6IDxzcGFuPlxuLy8gLSBbJHNlbGVjdG9yXSAgOiBjaGlsZCB8IG9mLXR5cGVcbkBtaXhpbiBnYWxsZXJ5KFxuICAkc3BhbixcbiAgJHNlbGVjdG9yOiBjaGlsZFxuKSB7XG4gICRpbnNwZWN0ICAgIDogJHNwYW47XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRzcGFuICAgICAgIDogbWFwLW1lcmdlKCRzcGFuLCAobG9jYXRpb246IDEpKTtcblxuICAkbiAgICAgICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuICAkY29sdW1ucyAgICAgIDogc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pO1xuICAkY29udGV4dCAgICAgIDogc3VzeS1jb3VudCgkY29sdW1ucyk7XG4gICRmbG93ICAgICAgICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG5cbiAgJGluc2lkZSAgICAgICA6IGlzLWluc2lkZSgkc3Bhbik7XG4gICRmcm9tICAgICAgICAgOiBmcm9tKCRmbG93KTtcbiAgJGxpbmUgICAgICAgICA6IGZsb29yKCRjb250ZXh0IC8gJG4pO1xuICAkc3ltbWV0cmljYWwgIDogaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpO1xuXG4gICRvdXRwdXQ6IChcbiAgICB3aWR0aCAgICAgICAgICAgICA6IG51bGwsXG4gICAgZmxvYXQgICAgICAgICAgICAgOiBmcm9tLFxuICAgIG1hcmdpbi1iZWZvcmUgICAgIDogbnVsbCxcbiAgICBtYXJnaW4tYWZ0ZXIgICAgICA6IG51bGwsXG4gICAgcGFkZGluZy1iZWZvcmUgICAgOiBudWxsLFxuICAgIHBhZGRpbmctYWZ0ZXIgICAgIDogbnVsbCxcbiAgICBmbG93ICAgICAgICAgICAgICA6ICRmbG93LFxuICApO1xuXG4gIEBpZiAkaW5zaWRlIHtcbiAgICAkZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuICAgICRvdXRwdXQ6IG1hcC1tZXJnZSgkb3V0cHV0LCAoXG4gICAgICBwYWRkaW5nLWJlZm9yZTogbWFwLWdldCgkZ3V0dGVycywgYmVmb3JlKSxcbiAgICAgIHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKSxcbiAgICApKTtcbiAgfVxuXG4gIEBpZiAkc3ltbWV0cmljYWwge1xuICAgICRvdXRwdXQ6IG1hcC1tZXJnZSgkb3V0cHV0LCAod2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKSkpO1xuICB9XG5cbiAgJGJveCAgICAgICAgICA6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRzcGFuKTtcbiAgJGdsb2JhbC1ib3ggICA6IGlmKHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSA9PSAnYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZ2FsbGVyeSwgJGluc3BlY3QpO1xuXG4gIC8vIENvbGxlY3RpdmUgT3V0cHV0XG4gIEBpZiAkYm94ID09IGJvcmRlci1ib3ggb3IgKCRpbnNpZGUgYW5kIG5vdCgkYm94KSBhbmQgbm90KCRnbG9iYWwtYm94KSkge1xuICAgIEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogYm9yZGVyLWJveCkpO1xuICB9IEBlbHNlIGlmICRib3ggPT0gY29udGVudC1ib3gge1xuICAgIEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogY29udGVudC1ib3gpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gIC8vIEluZGl2aWR1YWwgTG9vcFxuICBAZm9yICRpdGVtIGZyb20gMSB0aHJvdWdoICRsaW5lIHtcbiAgICAkbnRoOiAnI3skbGluZX1uICsgI3skaXRlbX0nO1xuICAgICY6bnRoLSN7JHNlbGVjdG9yfSgjeyRudGh9KSB7XG4gICAgICAvLyBJbmRpdmlkdWFsIFByZXBcbiAgICAgICRvdXRwdXQ6IChcbiAgICAgICAgd2lkdGggICAgICAgICAgICAgOiBpZigkc3ltbWV0cmljYWwsIG51bGwsIGdldC1zcGFuLXdpZHRoKCRzcGFuKSksXG4gICAgICAgIGZsb2F0ICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgbWFyZ2luLWJlZm9yZSAgICAgOiBnZXQtaXNvbGF0aW9uKCRzcGFuKSxcbiAgICAgICAgbWFyZ2luLWFmdGVyICAgICAgOiAtMTAwJSxcbiAgICAgICAgcGFkZGluZy1iZWZvcmUgICAgOiBudWxsLFxuICAgICAgICBwYWRkaW5nLWFmdGVyICAgICA6IG51bGwsXG4gICAgICAgIGZsb3cgICAgICAgICAgICAgIDogJGZsb3csXG4gICAgICApO1xuXG4gICAgICAvLyBJbmRpdmlkdWFsIE91dHB1dFxuICAgICAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgICAgIEBpZiBnZXQtZWRnZSgkc3BhbikgPT0gZmlyc3Qge1xuICAgICAgICBAaW5jbHVkZSBicmVhaztcbiAgICAgICAgQGluY2x1ZGUgZmlyc3QoJHNwYW4pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIEluZGl2aWR1YWwgTG9jYXRpb24gSW5jcmVtZW50XG4gICAgICAkbG9jYXRpb246IGdldC1sb2NhdGlvbigkc3BhbikgKyAkbjtcbiAgICAgICRsb2NhdGlvbjogaWYoJGxvY2F0aW9uID4gJGNvbnRleHQsIDEsICRsb2NhdGlvbik7XG4gICAgICAkc3BhbjogbWFwLW1lcmdlKCRzcGFuLCAobG9jYXRpb246ICRsb2NhdGlvbikpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUm93IFN0YXJ0ICYgRW5kXG4vLyA9PT09PT09PT09PT09PT1cblxuLy8gQnJlYWtcbi8vIC0tLS0tXG4vLyBBcHBseSB0byBhbnkgZWxlbWVudCB0aGF0IHNob3VsZCBmb3JjZSBhIGxpbmUgYnJlYWsuXG5AbWl4aW4gYnJlYWsge1xuICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBib3RoKSk7XG59XG5cblxuLy8gTm9CcmVha1xuLy8gLS0tLS0tLVxuLy8gQ2FuY2VsIHRoZSBicmVhaygpIGVmZmVjdCwgZS5nLiB3aGVuIHVzaW5nIG1lZGlhIHF1ZXJpZXMuXG5AbWl4aW4gbm9icmVhayB7XG4gIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IG5vbmUpKTtcbn1cblxuXG4vLyBGdWxsXG4vLyAtLS0tXG4vLyAtIFskY29udGV4dF06IDxsYXlvdXQgc2hvcnRoYW5kPlxuQG1peGluIGZ1bGwoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0IDogJGNvbnRleHQ7XG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChmdWxsLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHNwYW4oZnVsbCBvZiBwYXJzZS1ncmlkKCRjb250ZXh0KSBicmVhayk7XG59XG5cblxuLy8gRmlyc3Rcbi8vIC0tLS0tXG4vLyAtIFskY29udGV4dF06IDxzZXR0aW5ncz5cbkBtaXhpbiBmaXJzdChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLWdyaWQoJGNvbnRleHQpO1xuICAkZmxvdyAgICAgOiBzdXN5LWdldChmbG93LCAkY29udGV4dCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGZpcnN0LCAkaW5zcGVjdCk7XG4gIEBpZiBub3QoaXMtc3BsaXQoJGNvbnRleHQpKSB7XG4gICAgQGluY2x1ZGUgZmxvYXQtZmlyc3QoJGZsb3cpO1xuICB9XG59XG5cbkBtaXhpbiBhbHBoYShcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZmlyc3QoJGNvbnRleHQpO1xufVxuXG5cbi8vIExhc3Rcbi8vIC0tLS1cbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxuQG1peGluIGxhc3QoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRjb250ZXh0O1xuICAkY29udGV4dCAgOiBwYXJzZS1ncmlkKCRjb250ZXh0KTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QobGFzdCwgJGluc3BlY3QpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkY29udGV4dCksXG4gICAgbGFzdC1mbG93OiBzdXN5LWdldChsYXN0LWZsb3csICRjb250ZXh0KSxcbiAgICBtYXJnaW46IGlmKGlzLXNwbGl0KCRjb250ZXh0KSwgbnVsbCwgMCksXG4gICk7XG5cbiAgQGluY2x1ZGUgZmxvYXQtbGFzdCgkb3V0cHV0Li4uKTtcbn1cblxuQG1peGluIG9tZWdhKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBsYXN0KCRjb250ZXh0KTtcbn1cblxuXG4vLyBHZXQgRWRnZVxuLy8gLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSBlZGdlIHZhbHVlIGJhc2VkIG9uIGxvY2F0aW9uLCBpZiBwb3NzaWJsZVxuQGZ1bmN0aW9uIGdldC1lZGdlKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRlZGdlICAgICAgIDogc3VzeS1nZXQoZWRnZSwgJHNwYW4pO1xuXG4gIEBpZiBub3QoJGVkZ2UpIHtcbiAgICAkY291bnQ6IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKTtcbiAgICAkbG9jYXRpb246IHN1c3ktZ2V0KGxvY2F0aW9uLCAkc3Bhbik7XG4gICAgJG46IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcblxuICAgICRudW1iZXI6IGlmKHR5cGUtb2YoJGxvY2F0aW9uKSA9PSBudW1iZXIsIHRydWUsIGZhbHNlKTtcbiAgICAkaW5kZXg6IGlmKCRudW1iZXIgYW5kIHVuaXRsZXNzKCRsb2NhdGlvbiksIHRydWUsIGZhbHNlKTtcblxuICAgIEBpZiAkbiA9PSAkY291bnQge1xuICAgICAgJGVkZ2U6IGZ1bGw7XG4gICAgfSBAZWxzZSBpZiAkbG9jYXRpb24gYW5kICRuIGFuZCAkaW5kZXgge1xuICAgICAgQGlmICRsb2NhdGlvbiA9PSAxIHtcbiAgICAgICAgJGVkZ2U6IGlmKCRuID09ICRjb3VudCwgZnVsbCwgZmlyc3QpO1xuICAgICAgfSBAZWxzZSBpZiAkbG9jYXRpb24gKyAkbiAtIDEgPT0gJGNvdW50IHtcbiAgICAgICAgJGVkZ2U6IGxhc3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRlZGdlID09IGFscGhhIG9yICRlZGdlID09IG9tZWdhIHtcbiAgICAkZWRnZTogaWYoJGVkZ2UgPT0gYWxwaGEsIGZpcnN0LCBsYXN0KTtcbiAgfVxuXG4gIEByZXR1cm4gJGVkZ2U7XG59XG5cblxuLy8gR2V0IExvY2F0aW9uXG4vLyAtLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSBsb2NhdGlvbiB2YWx1ZSBiYXNlZCBvbiBlZGdlLCBpZiBwb3NzaWJsZVxuQGZ1bmN0aW9uIGdldC1sb2NhdGlvbihcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkbG9jYXRpb24gICA6IHN1c3ktZ2V0KGxvY2F0aW9uLCAkc3Bhbik7XG4gICRlZGdlICAgICAgIDogZ2V0LWVkZ2UoJHNwYW4pO1xuICAkbiAgICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcblxuICBAaWYgJGVkZ2UgYW5kIG5vdCgkbG9jYXRpb24pIGFuZCB0eXBlLW9mKCRuKSA9PSBudW1iZXIgYW5kIHVuaXRsZXNzKCRuKSB7XG4gICAgQGlmICRlZGdlID09IGZpcnN0IHtcbiAgICAgICRsb2NhdGlvbjogMTtcbiAgICB9IEBlbHNlIGlmICRlZGdlID09IGxhc3Qge1xuICAgICAgJGxvY2F0aW9uOiBzdXN5LWNvdW50KHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKSkgLSAkbiArIDE7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbG9jYXRpb25cbn1cbiIsIi8vIE1hcmdpbiBTeW50YXhcbi8vID09PT09PT09PT09PT1cblxuLy8gUHJlXG4vLyAtLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwcmUoXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbiAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRzcGFuKSk7XG4gICRmbG93ICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG4gICRzcGxpdCAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggIDogaWYoJHNwbGl0LCBzcGFuKCRzcGFuKSArIGd1dHRlcigkc3BhbiksIHNwYW4oJHNwYW4pKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHJlLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQoJHdpZHRoLCBudWxsLCAkZmxvdyk7XG59XG5cbi8vIFBvc3Rcbi8vIC0tLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGFmdGVyIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHBvc3QoXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG4gICRzcGxpdCAgICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pID09IHNwbGl0LCB0cnVlLCBmYWxzZSk7XG4gICR3aWR0aCAgICA6IGlmKCRzcGxpdCwgc3Bhbigkc3BhbikgKyBndXR0ZXIoJHNwYW4pLCBzcGFuKCRzcGFuKSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHBvc3QsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dChudWxsLCAkd2lkdGgsICRmbG93KTtcbn1cblxuLy8gUHVzaFxuLy8gLS0tLVxuLy8gU2ltcGxlIHN5bm9ueW1uIGZvciBwcmUuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHB1c2goXG4gICRzcGFuXG4pIHtcbiAgQGluY2x1ZGUgcHJlKCRzcGFuKTtcbn1cblxuLy8gUHVsbFxuLy8gLS0tLVxuLy8gQWRkIG5lZ2F0aXZlIHNwYW5uaW5nLW1hcmdpbnMgYmVmb3JlIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHB1bGwoXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG4gICRzcGxpdCAgICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pID09IHNwbGl0LCB0cnVlLCBmYWxzZSk7XG4gICR3aWR0aCAgICA6IGlmKCRzcGxpdCwgMCAtIHNwYW4oJHNwYW4pICsgZ3V0dGVyKCRzcGFuKSwgMCAtIHNwYW4oJHNwYW4pKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBTcXVpc2hcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLW1hcmdpbnMgYmVmb3JlIGFuZCBhZnRlciBhbiBlbGVtZW50LlxuLy8gLSAkcHJlICAgICA6IDxzcGFuPlxuLy8gLSBbJHBvc3RdICA6IDxzcGFuPlxuQG1peGluIHNxdWlzaChcbiAgJHByZSxcbiAgJHBvc3Q6IGZhbHNlXG4pIHtcbiAgJGluc3BlY3QgICAgICA6ICRwcmUsICRwb3N0O1xuICAkcHJlICAgICAgICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRwcmUpKTtcblxuICBAaWYgJHBvc3Qge1xuICAgICRwb3N0OiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHBvc3QpKTtcbiAgfSBAZWxzZSB7XG4gICAgJHNwYW46IHN1c3ktZ2V0KHNwYW4sICRwcmUpO1xuICAgIEBpZiBsZW5ndGgoJHNwYW4pID4gMSB7XG4gICAgICAkcHJlOiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMSkpKTtcbiAgICAgICRwb3N0OiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMikpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwb3N0OiAkcHJlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzcXVpc2gsICRpbnNwZWN0Li4uKTtcbiAgQGluY2x1ZGUgcHJlKCRwcmUpO1xuICBAaW5jbHVkZSBwb3N0KCRwb3N0KTtcbn1cbiIsIi8vIFBhZGRpbmcgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBQcmVmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYmVmb3JlIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHByZWZpeChcbiAgJHNwYW5cbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRzcGFuKSk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcbiAgJHdpZHRoICAgIDogc3Bhbigkc3Bhbik7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgICRndXR0ZXI6IGd1dHRlcigkc3Bhbik7XG4gICAgJHdpZHRoOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCR3aWR0aCwgJGd1dHRlciksICR3aWR0aCArICRndXR0ZXIsICR3aWR0aCk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHJlZml4LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBTdWZmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gc3VmZml4KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkd2lkdGggICAgOiBzcGFuKCRzcGFuKTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgJGd1dHRlcjogZ3V0dGVyKCRzcGFuKTtcbiAgICAkd2lkdGg6IGlmKCRndXR0ZXIgYW5kIGNvbXBhcmFibGUoJHdpZHRoLCAkZ3V0dGVyKSwgJHdpZHRoICsgJGd1dHRlciwgJHdpZHRoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzdWZmaXgsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFBhZFxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctcGFkZGluZyBiZWZvcmUgYW5kIGFmdGVyIGFuIGVsZW1lbnQuXG4vLyAtICRwcmUgICAgIDogPHNwYW4+XG4vLyAtIFskcG9zdF0gIDogPHNwYW4+XG5AbWl4aW4gcGFkKFxuICAkcHJlLFxuICAkcG9zdDogZmFsc2Vcbikge1xuICAkaW5zcGVjdCAgOiAkcHJlLCAkcG9zdDtcbiAgJHByZSAgICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRwcmUpKTtcblxuICBAaWYgJHBvc3Qge1xuICAgICRwb3N0OiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHBvc3QpKTtcbiAgfSBAZWxzZSB7XG4gICAgJHNwYW46IHN1c3ktZ2V0KHNwYW4sICRwcmUpO1xuICAgIEBpZiBsZW5ndGgoJHNwYW4pID4gMSB7XG4gICAgICAkcHJlOiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMSkpKTtcbiAgICAgICRwb3N0OiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMikpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwb3N0OiAkcHJlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChwYWQsICRpbnNwZWN0Li4uKTtcbiAgQGluY2x1ZGUgcHJlZml4KCRwcmUpO1xuICBAaW5jbHVkZSBzdWZmaXgoJHBvc3QpO1xuXG59XG4iLCIvLyBCbGVlZCBTeW50YXhcbi8vID09PT09PT09PT09PVxuXG4vLyBCbGVlZFxuLy8gLS0tLS1cbi8vIEFkZCBuZWdhdGl2ZSBtYXJnaW5zLCBhbmQgZXF1YWwgcG9zaXRpdmUgcGFkZGluZyB0byBjcmVhdGUgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZChcbiAgJGJsZWVkOiAwIGd1dHRlcigpXG4pIHtcbiAgJGluc3BlY3QgIDogJGJsZWVkO1xuICAkb3V0cHV0ICAgOiBnZXQtYmxlZWQoJGJsZWVkKTtcblxuICBAaWYgc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9IGNvbnRlbnQtYm94IHtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoKGJveC1zaXppbmc6IGNvbnRlbnQtYm94KSwgJG91dHB1dCk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoYmxlZWQsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG5cbi8vIEJsZWVkLXhcbi8vIC0tLS0tLS1cbi8vIFNob3J0Y3V0IGZvciBob3Jpem9udGFsIGJsZWVkLlxuLy8gLSAkYmxlZWQgIDogPHNwYW4+XG5AbWl4aW4gYmxlZWQteChcbiAgJGJsZWVkOiBndXR0ZXIoKVxuKSB7XG4gICRibGVlZCAgOiBwYXJzZS1zcGFuKCRibGVlZCk7XG4gICR0cmJsICAgOiBzdXN5LWdldChzcGFuLCAkYmxlZWQpO1xuXG4gIEBpZiBsZW5ndGgoJHRyYmwpID09IDEge1xuICAgICRibGVlZDogbWFwLW1lcmdlKCRibGVlZCwgKHNwYW46IDAgbnRoKCR0cmJsLCAxKSkpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkdHJibCkgPT0gMiB7XG4gICAgJGJsZWVkOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogMCBudGgoJHRyYmwsIDIpIDAgbnRoKCR0cmJsLCAxKSkpO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnYmxlZWQteCBvbmx5IHRha2VzIDIgbGVuZ3RocywgYnV0ICN7bGVuZ3RoKCR0cmJsKX0gd2VyZSBwYXNzZWQuJztcbiAgfVxuXG4gIEBpbmNsdWRlIGJsZWVkKCRibGVlZCk7XG59XG5cblxuLy8gQmxlZWQteVxuLy8gLS0tLS0tLVxuLy8gU2hvcnRjdXQgZm9yIHZlcnRpY2FsIGJsZWVkLlxuLy8gLSAkYmxlZWQgIDogPHNwYW4+XG5AbWl4aW4gYmxlZWQteShcbiAgJGJsZWVkOiBpZihmdW5jdGlvbi1leGlzdHMocmh5dGhtKSwgcmh5dGhtKDEpLCAxZW0pXG4pIHtcbiAgJGJsZWVkICA6IHBhcnNlLXNwYW4oJGJsZWVkKTtcbiAgJHRyYmwgICA6IHN1c3ktZ2V0KHNwYW4sICRibGVlZCk7XG5cbiAgQGlmIGxlbmd0aCgkdHJibCkgPT0gMSB7XG4gICAgJGJsZWVkOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogbnRoKCR0cmJsLCAxKSAwKSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCR0cmJsKSA9PSAyIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiBudGgoJHRyYmwsIDEpIDAgbnRoKCR0cmJsLCAyKSAwKSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICdibGVlZC15IG9ubHkgdGFrZXMgMiBsZW5ndGhzLCBidXQgI3tsZW5ndGgoJHRyYmwpfSB3ZXJlIHBhc3NlZC4nO1xuICB9XG5cbiAgQGluY2x1ZGUgYmxlZWQoJGJsZWVkKTtcbn1cblxuXG4vLyBHZXQgQmxlZWRcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJuIGJsZWVkIG91dHB1dCB2YWx1ZXNcbi8vIC0gJGJsZWVkOiA8c3Bhbj5cbkBmdW5jdGlvbiBnZXQtYmxlZWQoXG4gICRibGVlZFxuKSB7XG4gICRibGVlZCAgICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3BhbigkYmxlZWQpKTtcbiAgJHRyYmwgICAgIDogc3VzeS1nZXQoc3BhbiwgJGJsZWVkKTtcbiAgJHNob3J0ICAgIDogbnVsbDtcbiAgJG91dHB1dCAgIDogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHRyYmwpIHtcbiAgICAkdGhpczogbnRoKCR0cmJsLCAkaSk7XG4gICAgJG5ldzogKCk7XG4gICAgJG1hcmdpbjogbnVsbDtcbiAgICAkcGFkZGluZzogbnVsbDtcbiAgICAkcGFkZGluZy14OiBudWxsO1xuXG4gICAgQGlmICR0aGlzID4gMCB7XG4gICAgICAkdGhpczogbWFwLW1lcmdlKCRibGVlZCwgKHNwYW46ICR0aGlzKSk7XG4gICAgICAkbWFyZ2luOiBzcGFuKCR0aGlzKTtcbiAgICAgICRwYWRkaW5nOiAkbWFyZ2luO1xuICAgICAgJHBhZGRpbmcteDogJHBhZGRpbmc7XG4gICAgfVxuXG4gICAgQGlmICRtYXJnaW4gYW5kICRtYXJnaW4gPiAwIHtcbiAgICAgICRtYXJnaW46IC0gJG1hcmdpbjtcblxuICAgICAgQGlmIGlzLWluc2lkZSgkdGhpcykge1xuICAgICAgICAkZ3V0dGVyOiBndXR0ZXIoJHRoaXMpO1xuICAgICAgICAkam9pbjogaWYoJGd1dHRlciBhbmQgY29tcGFyYWJsZSgkcGFkZGluZywgJGd1dHRlciksIHRydWUsIGZhbHNlKTtcbiAgICAgICAgJHBhZGRpbmcteDogaWYoJGpvaW4gYW5kICRwYWRkaW5nID4gMCwgJHBhZGRpbmcgKyAkZ3V0dGVyLCAkcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRpID09IDEge1xuICAgICAgJG5ldzogKFxuICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmcsXG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteCxcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLFxuICAgICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZy14LFxuICAgICAgKTtcbiAgICB9IEBlbHNlIGlmICRpID09IDIge1xuICAgICAgJG5ldzogKFxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXgsXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXgsXG4gICAgICApO1xuICAgIH0gQGVsc2UgaWYgJGkgPT0gMyB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyxcbiAgICAgICk7XG4gICAgfSBAZWxzZSBpZiAkaSA9PSA0IHtcbiAgICAgICRuZXc6IChcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsICRuZXcpO1xuICB9XG5cbiAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkb3V0cHV0IHtcbiAgICAkb3V0cHV0OiBpZigkdmFsdWUgPT0gMCwgbWFwLW1lcmdlKCRvdXRwdXQsICgkcHJvcDogbnVsbCkpLCAkb3V0cHV0KTtcbiAgfVxuXG4gIEByZXR1cm4gYmxlZWQtc2hvcnRoYW5kKCRvdXRwdXQpO1xufVxuXG4vLyBCbGVlZCBTaG9ydGhhbmRcbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gQ29udmVydCBibGVlZCBvdXRwdXQgaW50byBzaG9ydGhhbmQgd2hlbiBwb3NzaWJsZS5cbi8vIC0gJGJsZWVkOiA8b3V0cHV0IG1hcD5cbkBmdW5jdGlvbiBibGVlZC1zaG9ydGhhbmQoXG4gICRibGVlZFxuKSB7XG4gICRtYXJnaW46ICgpO1xuICAkcGFkZGluZzogKCk7XG4gICRyZXR1cm46ICgpO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkYmxlZWQge1xuICAgIEBpZiBzdHItaW5kZXgoJGtleSwgbWFyZ2luKSB7XG4gICAgICAkbWFyZ2luOiBtYXAtbWVyZ2UoJG1hcmdpbiwgKCRrZXk6ICR2YWx1ZSkpO1xuICAgIH0gQGVsc2UgaWYgc3RyLWluZGV4KCRrZXksIHBhZGRpbmcpID4gMCB7XG4gICAgICAkcGFkZGluZzogbWFwLW1lcmdlKCRwYWRkaW5nLCAoJGtleTogJHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgJHByb3BzOiAoXG4gICAgbWFyZ2luOiAkbWFyZ2luLFxuICAgIHBhZGRpbmc6ICRwYWRkaW5nLFxuICApO1xuXG4gIEBlYWNoICRuYW1lLCAkbWFwIGluICRwcm9wcyB7XG4gICAgJGZvdXI6IGlmKGxlbmd0aChtYXAta2V5cygkbWFwKSkgPT0gNCwgdHJ1ZSwgZmFsc2UpO1xuICAgICRudWxsOiBpZihpbmRleChtYXAtdmFsdWVzKCRtYXApLCBudWxsKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgQGlmICRmb3VyIGFuZCBub3QoJG51bGwpIHtcbiAgICAgICR0b3A6IG1hcC1nZXQoJG1hcCwgJyN7JG5hbWV9LXRvcCcpO1xuICAgICAgJHJpZ2h0OiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1yaWdodCcpO1xuICAgICAgJGJvdHRvbTogbWFwLWdldCgkbWFwLCAnI3skbmFtZX0tYm90dG9tJyk7XG4gICAgICAkbGVmdDogbWFwLWdldCgkbWFwLCAnI3skbmFtZX0tbGVmdCcpO1xuXG4gICAgICAkdGI6IGlmKCR0b3AgPT0gJGJvdHRvbSwgJHRvcCwgbnVsbCk7XG4gICAgICAkcmw6IGlmKCRyaWdodCA9PSAkbGVmdCwgJHJpZ2h0LCBudWxsKTtcbiAgICAgICRhbGw6IGlmKCR0YiA9PSAkcmwsICR0YiwgbnVsbCk7XG5cbiAgICAgICRuZXc6IGlmKCRhbGwsICRhbGwsIG51bGwpO1xuXG4gICAgICBAaWYgbm90KCRuZXcpIHtcbiAgICAgICAgQGlmICR0YiBhbmQgJHJsIHtcbiAgICAgICAgICAkbmV3OiAkdGIgJHJsO1xuICAgICAgICB9IEBlbHNlIGlmICRybCB7XG4gICAgICAgICAgJG5ldzogJHRvcCAkcmwgJGJvdHRvbTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgJG5ldzogJHRvcCAkcmlnaHQgJGJvdHRvbSAkbGVmdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKCRuYW1lOiAkbmV3KSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgJG1hcCk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiLy8gQnJlYWtwb2ludCBJbnRlZ3JhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG4kc3VzeS1tZWRpYTogKCkgIWRlZmF1bHQ7XG4kc3VzeS1tZWRpYS1mYWxsYmFjazogZmFsc2UgIWRlZmF1bHQ7XG5cbiRfc3VzeS1tZWRpYS1jb250ZXh0OiAoKTtcblxuXG4vLyBTdXN5IEJyZWFrcG9pbnRcbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hhbmdlIGdyaWRzIGF0IGRpZmZlcmVudCBtZWRpYSBxdWVyeSBicmVha3BvaW50cy5cbi8vIC0gJHF1ZXJ5ICAgICA6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT4gfCA8bWFwPlxuLy8gLSAkbGF5b3V0ICAgIDogPHNldHRpbmdzPlxuLy8gLSAkbm8tcXVlcnkgIDogPGJvb2xlYW4+IHwgPHNlbGVjdG9yPlxuQG1peGluIHN1c3ktYnJlYWtwb2ludChcbiAgJHF1ZXJ5LFxuICAkbGF5b3V0OiBmYWxzZSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtcm91dGVyKCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGlmICRsYXlvdXQge1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJGxheW91dCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN1c3kgTWVkaWFcbi8vIC0tLS0tLS0tLS1cbi8vIC0gJHF1ZXJ5OiA8bWluLXdpZHRoPiBbPG1heC13aWR0aD5dIHwgPHByb3BlcnR5PiA8dmFsdWU+XG4vLyAtICRuby1xdWVyeTogPGJvb2xlYW4+IHwgPHNlbGVjdG9yPlxuQG1peGluIHN1c3ktbWVkaWEoXG4gICRxdWVyeSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gICRvbGQtY29udGV4dDogJF9zdXN5LW1lZGlhLWNvbnRleHQ7XG4gICRuYW1lOiBpZihtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJHF1ZXJ5KSwgJHF1ZXJ5LCBudWxsKTtcbiAgJHF1ZXJ5OiBzdXN5LWdldC1tZWRpYSgkcXVlcnkpO1xuICAkcXVlcnk6IHN1c3ktcGFyc2UtbWVkaWEoJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJHF1ZXJ5LCAkbmFtZSk7XG5cbiAgQGlmICRuby1xdWVyeSBhbmQgdHlwZS1vZigkbm8tcXVlcnkpICE9IHN0cmluZyB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2Uge1xuICAgIEBtZWRpYSAje3N1c3ktcmVuZGVyLW1lZGlhKCRxdWVyeSl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRuby1xdWVyeSkgPT0gc3RyaW5nIHtcbiAgICAgICN7JG5vLXF1ZXJ5fSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1jb250ZXh0KCRvbGQtY29udGV4dCwgJGNsZWFuOiB0cnVlKTtcbn1cblxuXG4vLyBNZWRpYSBSb3V0ZXJcbi8vIC0tLS0tLS0tLS0tLVxuLy8gUm91dCBtZWRpYSBhcmd1bWVudHMgdG8gdGhlIGNvcnJlY3QgbWl4aW4uXG5AbWl4aW4gc3VzeS1tZWRpYS1yb3V0ZXIoXG4gICRxdWVyeSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYnJlYWtwb2ludCwgKG1peGluOiBicmVha3BvaW50KSwgJHdhcm46IGZhbHNlKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBzdXN5LW1lZGlhKCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBVcGRhdGUgQ29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gU2V0IHRoZSBuZXcgbWVkaWEgY29udGV4dFxuQG1peGluIHN1c3ktbWVkaWEtY29udGV4dChcbiAgJHF1ZXJ5LFxuICAkbmFtZTogbnVsbCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRxdWVyeTogbWFwLW1lcmdlKChuYW1lOiAkbmFtZSksICRxdWVyeSk7XG5cbiAgQGlmICRjbGVhbiB7XG4gICAgJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICRxdWVyeSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogbWFwLW1lcmdlKCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcXVlcnkpICFnbG9iYWw7XG4gIH1cbn1cblxuXG4vLyBNZWRpYSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIGZ1bGwgbWVkaWEgY29udGV4dCwgb3IgYSBzaW5nbGUgbWVkaWEgcHJvcGVydHkgKGUuZy4gbWluLXdpZHRoKVxuQGZ1bmN0aW9uIHN1c3ktbWVkaWEtY29udGV4dChcbiAgJHByb3BlcnR5OiBmYWxzZVxuKSB7XG4gIEBpZiAkcHJvcGVydHkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkX3N1c3ktbWVkaWEtY29udGV4dCwgJHByb3BlcnR5KTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgfVxufVxuXG5cbi8vIEdldCBNZWRpYVxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuYW1lZCBtZWRpYS1xdWVyeSBmcm9tICRzdXN5LW1lZGlhLlxuLy8gLSAkbmFtZTogPGtleT5cbkBmdW5jdGlvbiBzdXN5LWdldC1tZWRpYShcbiAgJG5hbWVcbikge1xuICBAaWYgbWFwLWhhcy1rZXkoJHN1c3ktbWVkaWEsICRuYW1lKSB7XG4gICAgJG5hbWU6IG1hcC1nZXQoJHN1c3ktbWVkaWEsICRuYW1lKTtcbiAgICAkbmFtZTogc3VzeS1nZXQtbWVkaWEoJG5hbWUpO1xuICB9XG5cbiAgQHJldHVybiAkbmFtZTtcbn1cblxuXG4vLyBSZW5kZXIgTWVkaWFcbi8vIC0tLS0tLS0tLS0tLVxuLy8gQnVpbGQgYSBtZWRpYS1xdWVyeSBzdHJpbmcgZnJvbSB2YXJpb3VzIG1lZGlhIHNldHRpbmdzXG5AZnVuY3Rpb24gc3VzeS1yZW5kZXItbWVkaWEoXG4gICRxdWVyeVxuKSB7XG4gICRvdXRwdXQ6IG51bGw7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRxdWVyeSB7XG4gICAgJHN0cmluZzogbnVsbDtcblxuICAgIEBpZiAkcHJvcGVydHkgPT0gbWVkaWEge1xuICAgICAgJHN0cmluZzogJHZhbHVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0cmluZzogJygjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfSknO1xuICAgIH1cblxuICAgICRvdXRwdXQ6IGlmKCRvdXRwdXQsICcjeyRvdXRwdXR9IGFuZCAjeyRzdHJpbmd9JywgJHN0cmluZyk7XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cblxuLy8gUGFyc2UgTWVkaWFcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gcGFyc2VkIG1lZGlhLXF1ZXJ5IHNldHRpbmdzIGJhc2VkIG9uIHNob3J0aGFuZFxuQGZ1bmN0aW9uIHN1c3ktcGFyc2UtbWVkaWEoXG4gICRxdWVyeVxuKSB7XG4gICRtcTogbnVsbDtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBtYXAge1xuICAgICRtcTogJHF1ZXJ5O1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIge1xuICAgICRtcTogKG1pbi13aWR0aDogJHF1ZXJ5KTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbGlzdCBhbmQgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09IG51bWJlciB7XG4gICAgICAkbXE6IChcbiAgICAgICAgbWluLXdpZHRoOiBtaW4oJHF1ZXJ5Li4uKSxcbiAgICAgICAgbWF4LXdpZHRoOiBtYXgoJHF1ZXJ5Li4uKSxcbiAgICAgICk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbXE6IChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJG1xOiAobWVkaWE6ICcjeyRxdWVyeX0nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1xO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IEZlYXR1cmVzXG4kYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhOiAgICAgIGFsbCAhZGVmYXVsdDtcbiRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTogICAgbWluLXdpZHRoICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtZGVmYXVsdC1wYWlyOiAgICAgICB3aWR0aCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBUcmFuc2Zvcm1zXG4kYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGw6ICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtdG8tZW1zOiAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVha3BvaW50LXJlc29sdXRpb25zOiAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBObyBRdWVyeSBPcHRpb25zXG4kYnJlYWtwb2ludC1uby1xdWVyaWVzOiAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmdGF1bHQgQmFzZSBGb250IFNpemVcbiRicmVha3BvaW50LWJhc2UtZm9udC1zaXplOiAgICAgMTZweCAhZGVmYXVsdDtcblxuLy8gTGVnYWN5IFN5bnRheCBTdXBwb3J0XG4kYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4OiAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCAkYnJlYWtwb2ludC1uby1xdWVyaWVzIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzICE9IGZhbHNlIG9yICRicmVha3BvaW50LW5vLXF1ZXJpZXMgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZigkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3Mge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWE7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSBhbmQgdHlwZS1vZigkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3skYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmICRicmVha3BvaW50LXJlc29sdXRpb25zIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmICgkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKCRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCA9PSB0cnVlKSBhbmQgKCRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6ICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWE7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6ICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiAkYnJlYWtwb2ludC1kZWZhdWx0LXBhaXI7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmICgkYnJlYWtwb2ludC10by1lbXMgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKCRicmVha3BvaW50LXRvLWVtcyA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NudWd1Zy9yZXNwb25kLXRvI2FwaSBpZiB5b3UnZCBsaWtlIGEgcmVtaW5kZXIgb24gaG93IHRvIHVzZSBSZXNwb25kLXRvXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQWRkIEJyZWFrcG9pbnQgdG8gQnJlYWtwb2ludHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn0iLCIvLyAjIElFIFN1cHBvcnRcclxuJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTY6IGZhbHNlO1xyXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllNzogZmFsc2U7XHJcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU4OiB0cnVlO1xyXG5cclxuXHJcbi8vICMgR3JpZFxyXG4kZ3JpZDogMTIwMHB4O1xyXG4kaGVyby1jb250YWluZXItd2lkdGg6IDE5NjBweDtcclxuXHJcblxyXG4vLyAjIFN1c3kgc2V0dXBcclxuJGNvbnRhaW5lci13aWR0aDogMTIwMHB4O1xyXG4kdG90YWwtY29sdW1uczogMTI7XHJcbiRjb2x1bW4td2lkdGg6IDcwcHg7XHJcbiRndXR0ZXItd2lkdGg6ICAxIC8gNDsvLzE1cHg7Ly8xIC8gNDtcclxuJGdsb2JhbC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4kZ3V0dGVyLXBvc2l0aW9uOiBzcGxpdDtcclxuJGNvbnRhaW5lci1zdHlsZTogZmx1aWQ7XHJcblxyXG4kc3VzeTogKGNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zLCBtYXRoOiAkY29udGFpbmVyLXN0eWxlLCBndXR0ZXJzOiAkZ3V0dGVyLXdpZHRoLCBjb250YWluZXI6ICRjb250YWluZXItd2lkdGgsIGNvbHVtbi13aWR0aDogJGNvbHVtbi13aWR0aCwgZ2xvYmFsLWJveC1zaXppbmc6ICRnbG9iYWwtYm94LXNpemluZywgZ3V0dGVyLXBvc2l0aW9uOiAkZ3V0dGVyLXBvc2l0aW9uKTtcclxuXHJcblxyXG4vLyAjIEJyZWFrcG9pbnRzXHJcbiRyZXRpbmE6IG1pbi1yZXNvbHV0aW9uIDEuNWRwcHg7XHJcblxyXG4kbW9iaWxlOiAxcHgsIFwibm8tcXVlcnlcIiB0cnVlO1xyXG4kdHdlZW46IDQ4MHB4LCBcIm5vLXF1ZXJ5XCIgdHJ1ZTtcclxuJHRhYmxldDogNzY4cHgsIFwibm8tcXVlcnlcIiB0cnVlO1xyXG4kZGVza3RvcDogOTYwcHgsIFwibm8tcXVlcnlcIiB0cnVlO1xyXG4kZGVza3RvcC1sOiAxMjAwcHgsIFwibm8tcXVlcnlcIiB0cnVlO1xyXG5cclxuJG1pZC10YWJsZXQ6IDQ4MHB4LCBcIm5vLXF1ZXJ5XCIgdHJ1ZTtcclxuJGxhcmdlOiA3NjlweCwgXCJuby1xdWVyeVwiIHRydWU7XHJcbiRzbGlkZXItY29udHJvbHM6IDc2OXB4IDExNjBweCwgXCJuby1xdWVyeVwiIHRydWU7XHJcblxyXG5cclxuLy8gIyBUeXBvZ3JhcGh5XHJcbiRmb250LXNpemU6IDE0cHg7XHJcblxyXG4kd2VpZ2h0LXRoaW5uZXN0OiAxMDA7IC8vIEZvciBoZWFkaW5ncyByZWFsbHlcclxuJHdlaWdodC10aGluOiAzMDA7IC8vIEZvciBtb3N0IGJvZHlcclxuJHdlaWdodC1ub3JtYWw6IDUwMDsgLy8gRm9yIHNvbWUgaGVhZGluZ3NcclxuJHdlaWdodC1ib2xkOiA3MDA7IC8vIEZvciA8Yj4gc3R1ZmZcclxuXHJcbiRmb250LWZhbWlseS1iYXNlOiBcIm11c2VvLXNhbnMtcm91bmRlZFwiLCBUYWhvbWEsIFNlZ29lLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xyXG4kZm9udC1mYW1pbHktaGVhZGluZzogXCJtdXNlby1zYW5zLXJvdW5kZWRcIiwgVGFob21hLCBTZWdvZSwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuXHJcblxyXG4vLyAjIENvbG9yc1xyXG4kYnJhbmQtcHJpbWFyeS1kYXJrOiAjYmQzNTNhICFkZWZhdWx0O1xyXG4kYnJhbmQtcHJpbWFyeTogI2RlMjEzMCAhZGVmYXVsdDtcclxuJGJyYW5kLXByaW1hcnktbGlnaHQ6ICNlOTM1M2IgIWRlZmF1bHQ7XHJcblxyXG4kZ3JlZW46ICNkMGNiNGY7XHJcbiRyZWQ6ICNkZjIwMjY7XHJcblxyXG4kYmxhY2s6IGJsYWNrO1xyXG4kd2hpdGU6IHdoaXRlO1xyXG5cclxuJHN1Y2Nlc3M6ICM1Y2I4NWM7XHJcbiRpbmZvOiAjNWJjMGRlO1xyXG4kd2FybmluZzogI2YwYWQ0ZTtcclxuJGRhbmdlcjogI2Q5NTM0ZjtcclxuXHJcblxyXG4vLyAjIEdyYXlzXHJcbiRncmF5LWRhcmtlc3Q6ICM0ZjRmNGYgIWRlZmF1bHQ7IC8vIFRleHQgYW5kIGljb25zXHJcbiRncmF5LWRhcmtlcjogIzhhOGE4YSAhZGVmYXVsdDsgLy8gXHJcbiRncmF5LWRhcms6ICNiMmIyYjIgIWRlZmF1bHQ7IC8vIExpZ2h0IHRleHRcclxuJGdyYXk6ICNjZWNlY2UgIWRlZmF1bHQ7IC8vIE1lbnUgYm9yZGVyXHJcbiRncmF5LWxpZ2h0OiAjZTNlM2UzICFkZWZhdWx0OyAvLyBTb21lIGljb24gYmFja2dyb3VuZHNcclxuJGdyYXktbGlnaHRlcjogI2ViZWJlYiAhZGVmYXVsdDsgLy8gSW5wdXQgYmFja2dyb3VuZFxyXG4kZ3JheS1saWdodGVzdDogI2Y4ZjhmOCAhZGVmYXVsdDsgLy8gQm9keSBiYWNrZ3JvdW5kXHJcblxyXG5cclxuLy8gIyBTZW1hbnRpY2FsIGNvbG9yIHVzYWdlXHJcbiRib2R5LWJnOiAkZ3JheS1saWdodGVzdCAhZGVmYXVsdDtcclxuXHJcbiR0ZXh0LWNvbG9yOiAkZ3JheS1kYXJrZXN0ICFkZWZhdWx0O1xyXG4kdGV4dC1jb2xvci1saWdodDogJGdyYXktZGFyaztcclxuXHJcbiRsaW5rLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTsvLyRncmF5LWRhcmtlc3Q7XHJcbiRsaW5rLWhvdmVyLWNvbG9yOiAkYnJhbmQtcHJpbWFyeS1saWdodDtcclxuXHJcbiRuYXYtbGluay1jb2xvcjogJGdyYXktZGFya2VzdDtcclxuJG5hdi1saW5rLWhvdmVyLWNvbG9yOiAkYnJhbmQtcHJpbWFyeS1saWdodDtcclxuXHJcbiRpbnB1dC1iZzogJGdyYXktbGlnaHRlcjtcclxuJGlucHV0LWNvbG9yOiAkdGV4dC1jb2xvcjtcclxuJGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyOiAkdGV4dC1jb2xvcjtcclxuXHJcbiRuYXZiYXItYmc6ICR3aGl0ZTtcclxuXHJcbiRib3JkZXItY29sb3I6ICRncmF5LWxpZ2h0ZXI7XHJcblxyXG4kc3VjY2Vzcy1jb2xvcjogJGdyZWVuO1xyXG5cclxuXHJcbi8vICMgQm9yZGVyIHJhZGl1c1xyXG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA1cHggIWRlZmF1bHQ7XHJcbiRib3JkZXItcmFkaXVzLWxhcmdlOiAxMHB4ICFkZWZhdWx0O1xyXG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogM3B4ICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vICMgSW1hZ2VzXHJcbiRhcnJvd3Mtc3ByaXRlLXVybDogdXJsKFwiL2ltYWdlcy9hcnJvd3MucG5nXCIpO1xyXG4kYmFja2dyb3VuZC1kb3R0ZWQ6IHVybCgnL2ltYWdlcy9iYWNrZ3JvdW5kLWRvdHRlZC5wbmcnKTtcclxuXHJcblxyXG4vLyAjIERpbWVuc2lvbiB2YXJpYWJsZXNcclxuJGluZGVudC1hbW91bnQ6IDMwcHg7XHJcbiRndXR0ZXI6IDE1cHg7XHJcbiRwYWRkaW5nOiAzMHB4OyIsIkBtaXhpbiBhbHBoYS1hdHRyaWJ1dGUoJGF0dHJpYnV0ZSwgJGNvbG9yLCAkYmFja2dyb3VuZCkge1xyXG4gICAgJHBlcmNlbnQ6IGFscGhhKCRjb2xvcikgKiAxMDAlO1xyXG4gICAgJG9wYXF1ZTogb3BhY2lmeSgkY29sb3IsIDEpO1xyXG4gICAgJHNvbGlkLWNvbG9yOiBtaXgoJG9wYXF1ZSwgJGJhY2tncm91bmQsICRwZXJjZW50KTtcclxuICAgICN7JGF0dHJpYnV0ZX06ICRzb2xpZC1jb2xvcjtcclxuICAgICN7JGF0dHJpYnV0ZX06ICRjb2xvcjtcclxufVxyXG5cclxuQG1peGluIHJlcGxhY2Utd2l0aC1pbWFnZSgkaWNvbikge1xyXG4gICAgQGluY2x1ZGUgc3ByaXRlc2hlZXQtc3ByaXRlKCRpY29uKTtcclxuICAgIGhlaWdodDogc3ByaXRlc2hlZXQtc3ByaXRlLWhlaWdodCgkaWNvbik7XHJcbiAgICB3aWR0aDogc3ByaXRlc2hlZXQtc3ByaXRlLXdpZHRoKCRpY29uKTtcclxuICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxufVxyXG5cclxuQG1peGluIGFycm93cy1kb3VibGUoJHR5cGUpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDBweDtcclxuICAgICAgICB0b3A6IDVweDtcclxuICAgICAgICBAaW5jbHVkZSByZXBsYWNlLXdpdGgtaW1hZ2UoJHR5cGUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vL1RoaXMgbWl4aW4gd2lsbCBuZWVkIHRvIGJlIHVwYXRlZCBpZiB1c2VkLCB0byBhZGQgdGhlIGNvcnJlY3QgcGFkZGluZyBhbmQgcG9zaXRpb25pbmcuIFxyXG4vL0N1cnJlbnRseSB0aGlzIGlzIGp1c3QgYSBkdXBsaWNhdGUgb2YgYXJyb3dzLWRvdWJsZSBtaXhpbi5cclxuQG1peGluIGFycm93KCR0eXBlKSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgdG9wOiA1cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVwbGFjZS13aXRoLWltYWdlKCR0eXBlKTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHNpZGUtcGFkIHtcclxuICAgIHBhZGRpbmctbGVmdDogJGdyaWQtcGFkZGluZztcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRncmlkLXBhZGRpbmc7XHJcbn1cclxuXHJcbi8vIFNpemluZyBzaG9ydGN1dHNcclxuQG1peGluIHNpemUoJHdpZHRoLCAkaGVpZ2h0KSB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG59XHJcblxyXG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcclxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbi8vIFBsYWNlaG9sZGVyIHRleHRcclxuQG1peGluIHBsYWNlaG9sZGVyKCRjb2xvcjogJGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyKSB7XHJcbiAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogJGNvbG9yO1xyXG4gICAgICAgIC8vIEZpcmVmb3hcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XHJcbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICAgIC8vIEludGVybmV0IEV4cGxvcmVyIDEwK1xyXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICAgIC8vIFNhZmFyaSBhbmQgQ2hyb21lXHJcbn1cclxuXHJcbi8vIFRleHQgb3ZlcmZsb3dcclxuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xyXG5AbWl4aW4gdGV4dC1vdmVyZmxvdyB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XHJcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXHJcbi8vIERlZmF1bHQgdmFsdWUgaXMgYHZpc2libGVgLCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYGhpZGRlbmBcclxuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcclxuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XHJcbiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XHJcbn1cclxuXHJcbi8vIEJveCBzaXppbmdcclxuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKSB7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcclxuICAgIC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xyXG4gICAgYm94LXNpemluZzogJGJveG1vZGVsO1xyXG59XHJcblxyXG4vLyBVc2VyIHNlbGVjdFxyXG4vLyBGb3Igc2VsZWN0aW5nIHRleHQgb24gdGhlIHBhZ2VcclxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QpIHtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xyXG4gICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xyXG4gICAgLy8gSUUxMCtcclxuICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xyXG59XHJcblxyXG4vLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gZHJvcGRvd25zIGFuZCBuYXYgbGlzdHNcclxuQG1peGluIG5hdi1kaXZpZGVyKCRjb2xvcjogJGdyYXktbGlnaHRlc3QpIHtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgbWFyZ2luOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyIC0gMSAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxufVxyXG5cclxuLy8gV2ViS2l0LXN0eWxlIGZvY3VzXHJcbkBtaXhpbiB0YWItZm9jdXMge1xyXG4gICAgLy8gRGVmYXVsdFxyXG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XHJcbiAgICAvLyBXZWJLaXRcclxuICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xyXG59XHJcblxyXG5AbWl4aW4gc3RhdGljLWdyaWQge1xyXG4gICAgd2lkdGg6ICRncmlkO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gaWUgRmFsbGJhY2sgc3RhdGljIGdyaWQgd2lsbCByZW5kZXIgaW4gSUU4IHN0eWxlc2hlZXQgaWYgJGZpeGVkIGNvbnRhaW5lciB2YXJpYWJsZSBleGlzdHNcclxuQG1peGluIGNvbnRhaW5lci1yZW5kZXIge1xyXG4gICAgQGlmIHZhcmlhYmxlLWV4aXN0cyhmaXhlZC1jb250YWluZXIpIHtcclxuICAgICAgICBAaW5jbHVkZSBzdGF0aWMtZ3JpZDtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAaW5jbHVkZSBjb250YWluZXIoJGdyaWQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBvdXRsaW5lIGhlbHBlclxyXG5AbWl4aW4gb3V0KCRjb2xvcjogcGluaywgJHdpZHRoOiAxcHgpIHtcclxuICAgIG91dGxpbmU6ICR3aWR0aCBzb2xpZCAkY29sb3I7XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gdGFibGVmeSgkZ3V0dGVyOiAkZ3V0dGVyLCAkdmVydGljYWwtYWxpZ246IG1pZGRsZSwgJG5lc3RlZDogdHJ1ZSkge1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmID4gKiB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICBwYWRkaW5nOiAwICRndXR0ZXI7XHJcbiAgICAgICAgLy93aWR0aDogMSU7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246ICR2ZXJ0aWNhbC1hbGlnbjtcclxuXHJcbiAgICAgICAgQGlmICRuZXN0ZWQge1xyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIC8vIFRoZSB2aXNpYmlsaXR5IGhlbHBlciBzZXRzIGRpc3BsYXkgYmxvY2ssIHdoaWNoIGNhbiBicmVhayB0YWJsZWZ5LCBzbyB0aGlzIGlzIHRoZSBmaXguLi5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtb2JpbGUpIHtcclxuICAgICAgICAgICAgJi5oaWRkZW4tbW9iaWxlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHR3ZWVuKSB7XHJcbiAgICAgICAgICAgICYuaGlkZGVuLW1vYmlsZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuaGlkZGVuLXR3ZWVuIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxldCkge1xyXG4gICAgICAgICAgICAmLmhpZGRlbi10d2VlbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuaGlkZGVuLXRhYmxldCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRkZXNrdG9wKSB7XHJcbiAgICAgICAgICAgICYuaGlkZGVuLXRhYmxldCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuaGlkZGVuLWRlc2t0b3Age1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkZGVza3RvcC1sKSB7XHJcbiAgICAgICAgICAgICYuaGlkZGVuLWRlc2t0b3Age1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmhpZGRlbi1kZXNrdG9wLWwge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHVudGFibGVmeSgpIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgICYgPiAqIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBlZy4gcmVzcG9uc2l2ZS1zcGFjaW5nKG1hcmdpbi10b3AsIDEwcHgpLi4uIHdpbGwgc2NhbGUgZm9yIGRlc2t0b3AuLi5cclxuQG1peGluIHJlc3BvbnNpdmUtc3BhY2luZygkYXR0cmlidXRlOiBwYWRkaW5nLCAkZGltZW5zaW9uOiAkcGFkZGluZykge1xyXG4gICAgI3skYXR0cmlidXRlfTogJGRpbWVuc2lvbiAvIDI7XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGV0KSB7XHJcbiAgICAgICAgI3skYXR0cmlidXRlfTogJGRpbWVuc2lvbjtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xyXG4gICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xyXG4gICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcclxuICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xyXG4gICAgdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcclxufVxyXG5cclxuXHJcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgKnpvb206IDE7XHJcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1cykge1xyXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7ICAvKiBzdG9wcyBiZyBjb2xvciBmcm9tIGxlYWtpbmcgb3V0c2lkZSB0aGUgYm9yZGVyOiAqL1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbigkYXJncy4uLikge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYXJncztcclxuICAgIC1tb3otdHJhbnNpdGlvbjogJGFyZ3M7XHJcbiAgICAtbXMtdHJhbnNpdGlvbjogJGFyZ3M7XHJcbiAgICAtby10cmFuc2l0aW9uOiAkYXJncztcclxuICAgIHRyYW5zaXRpb246ICRhcmdzO1xyXG59XHJcblxyXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xyXG4gICAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgICAkb3BhY2l0eS1pZTogJG9wYWNpdHkgKiAxMDA7XHJcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9JG9wYWNpdHktaWUpOyAvL0lFOFxyXG59XHJcblxyXG5AZnVuY3Rpb24gY2FsY3VsYXRlUmVtKCRzaXplKSB7XHJcbiAgICAkcmVtU2l6ZTogJHNpemUgLyAkZm9udC1zaXplO1xyXG4gICAgQHJldHVybiAkcmVtU2l6ZSAqIDFyZW07XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LXNpemUoJHNpemUpIHtcclxuICAgIGZvbnQtc2l6ZTogJHNpemU7XHJcbiAgICBmb250LXNpemU6IGNhbGN1bGF0ZVJlbSgkc2l6ZSk7XHJcbn1cclxuXHJcbkBtaXhpbiBpbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxyXG4gICAgOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtc2hhZG93KCR0b3AsICRsZWZ0LCAkYmx1ciwgJGNvbG9yLCAkaW5zZXQ6IGZhbHNlKSB7XHJcbiAgICBAaWYgJGluc2V0IHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XHJcbiAgICAgICAgLW1vei1ib3gtc2hhZG93Omluc2V0ICR0b3AgJGxlZnQgJGJsdXIgJGNvbG9yO1xyXG4gICAgICAgIGJveC1zaGFkb3c6aW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6ICR0b3AgJGxlZnQgJGJsdXIgJGNvbG9yO1xyXG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XHJcbiAgICAgICAgYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XHJcbiAgICB9XHJcbn0iLCIvLyAjIEltYWdlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gIyBJbWFnZSBNaXhpbnNcclxuXHJcbi8vICMjIyMgUmVzcG9uc2l2ZSBpbWFnZVxyXG4vL1xyXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxyXG5cclxuQG1peGluIGltZy1yZXNwb25zaXZlKCRkaXNwbGF5OiBibG9jaykge1xyXG4gICAgZGlzcGxheTogJGRpc3BsYXk7XHJcbiAgICB3aWR0aDogMTAwJSBcXDk7IC8vIEZvcmNlIElFMTAgYW5kIGJlbG93IHRvIHNpemUgU1ZHIGltYWdlcyBjb3JyZWN0bHlcclxuICAgIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcclxuICAgIGhlaWdodDogYXV0bzsgLy8gUGFydCAyOiBTY2FsZSB0aGUgaGVpZ2h0IGFjY29yZGluZyB0byB0aGUgd2lkdGgsIG90aGVyd2lzZSB5b3UgZ2V0IHN0cmV0Y2hpbmdcclxufVxyXG5cclxuLy8gIyMjIyBQZXJmZWN0IGNpcmNsZVxyXG4vLyBJbmNsdWRlcyBQSUUgZml4IGZvciBJRThcclxuQG1peGluIGltZy1jaXJjbGUge1xyXG4gICAgLypib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAubHQtMWU5ICYge1xyXG4gICAgICAgIEBpbmNsdWRlIHBpZTtcclxuICAgIH0qL1xyXG59IiwiLy8gIyBTY2FmZm9sZGluZ1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gVmVydGljYWwgUmh5dGhtXHJcbioge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuXHJcbi8vICMgUmVzZXQgdGhlIGJveC1zaXppbmdcclxuLmZyb250LWVuZCB7XHJcbiAgICAqIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG4gICAgKjpiZWZvcmUsXHJcbiAgICAqOmFmdGVyIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG59XHJcblxyXG4jY2FudmFzICoge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLmJveCB7XHJcbiAgICAqIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyBcclxuICAgIH1cclxuICAgICo6YmVmb3JlLFxyXG4gICAgKjphZnRlciB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gIyBUb3AgTGV2ZWxzXHJcbmh0bWwge1xyXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xyXG4gICAgLy9AaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygyKTtcclxuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTE1cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZztcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRiYWNrZ3JvdW5kLWRvdHRlZDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuYm9keS5mcm9udC1lbmQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG59XHJcblxyXG5zZWN0aW9uLCBmb290ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbn1cclxuXHJcblxyXG4vLyAjIEVsZW1lbnRzXHJcbnVsIHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIG1hcmdpbjogMHB4O1xyXG59XHJcblxyXG52aWRlbyB7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAvKkBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LWhvcml6b250YWwpIHtcclxuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfSovXHJcbn1cclxuXHJcbmltZyB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG4uaW1nLXJlc3BvbnNpdmUge1xyXG4gICAgQGluY2x1ZGUgaW1nLXJlc3BvbnNpdmU7XHJcbn1cclxuXHJcbi5lcnJvcntcclxuICAgIGNvbG9yOiAjZTkzNTNiO1xyXG59XHJcblxyXG4vLyAjIEhpZGVyc1xyXG4uc3Itb25seSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMXB4O1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBtYXJnaW46IC0xcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgICBib3JkZXI6IDA7XHJcbn1cclxuXHJcblxyXG4vLyAjIENNU1xyXG4ucGFnZVd5c2l3eWdCbG9jayB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4ucGFnZVd5c2l3eWdCbG9jayB1bCB7XHJcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XHJcbn1cclxuXHJcbi5wYWdlV3lzaXd5Z0Jsb2NrIGEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5tY2VDb250ZW50Qm9keSB7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFNldCBtYXJnaW5zIHRvIHB1c2ggdGV4dCBvZiBsZWZ0L3JpZ2h0IGZsb2F0ZWQgaW1hZ2VzIGluIFdZU0lXWUcgZWRpdG9yXHJcbi5tY2VDb250ZW50Qm9keSB7XHJcbiAgICBpbWdbYWxpZ249XCJsZWZ0XCJdLFxyXG4gICAgaW1nW3N0eWxlKj1cImZsb2F0OiBsZWZ0XCJdLFxyXG4gICAgaW1nW3N0eWxlKj1cImZsb2F0OmxlZnRcIl0ge1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDEwcHggMHB4IDBweDtcclxuICAgIH1cclxuICAgIGltZ1thbGlnbj1cInJpZ2h0XCJdLFxyXG4gICAgaW1nW3N0eWxlKj1cImZsb2F0OiByaWdodFwiXSxcclxuICAgIGltZ1tzdHlsZSo9XCJmbG9hdDpyaWdodFwiXSB7XHJcbiAgICAgICAgbWFyZ2luOiA1cHggMHB4IDBweCAxMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogJGNvbnRhaW5lci13aWR0aDtcclxuICAgIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbn1cclxuXHJcblxyXG4vLyAjIEdlbmVyYWwgaGVscGVyc1xyXG4ucGFkZGVkIHtcclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtc3BhY2luZyhwYWRkaW5nLCAkcGFkZGluZyk7XHJcbn1cclxuXHJcbi5wYWRkZWQteCB7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXNwYWNpbmcocGFkZGluZy1sZWZ0LCAkcGFkZGluZyk7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXNwYWNpbmcocGFkZGluZy1yaWdodCwgJHBhZGRpbmcpO1xyXG59XHJcblxyXG4ucGFkZGVkLXkge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKHBhZGRpbmctdG9wLCAkcGFkZGluZyk7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXNwYWNpbmcocGFkZGluZy1ib3R0b20sICRwYWRkaW5nKTtcclxufVxyXG5cclxuLnBhZGRlZC1uZXN0ZWQgeyAvLyBCYXNpY2FsbHksIGlmIGl0J3MgbmVzdGluZyBwYWRkZWQteCBlbGVtZW50cywgdGhlbiB3ZSBuZWVkIHRvIGhhbGYgYWxsIHRoZSBwYWRkaW5nIG90aGVyd2lzZSB3ZSBnZXQgY3JhenkgZ3V0dGVyIHNpemVzXHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDsgXHJcbiAgICBcclxuICAgICYsIC5wYWRkZWQteCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKHBhZGRpbmctbGVmdCwgJHBhZGRpbmcvMik7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKHBhZGRpbmctcmlnaHQsICRwYWRkaW5nLzIpO1xyXG4gICAgfVxyXG59XHJcblxyXG4udmVydGljYWwtY2VudGVyIHtcclxuICAgIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcclxufVxyXG5cclxuLnB1bGwtYm90dG9tIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmJhY2tncm91bmQtZ3JheS1kYXJrIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWRhcmtlcjtcclxuXHJcbiAgICAuY29udGFpbiwgaDIsIGgzLCBwIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uYmFja2dyb3VuZC1ncmF5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XHJcbn1cclxuXHJcbi5iYWNrZ3JvdW5kLXdoaXRlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJhY2tncm91bmQtcHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcclxufVxyXG5cclxuLmNsZWFyIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4uYmFja2dyb3VuZGVkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcblxyXG5cclxuLy8gIyBHbG9iYWwgYmxvY2tpc2ggZWxlbWVudHMgdG9vIHNtYWxsIHRvIGJlIGJsb2Nrc1xyXG4uZmlsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmxpc3QtaW5saW5lZCB7XHJcbiAgICBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5saXN0LWRhc2hlZHtcclxuICAgIGEge1xyXG4gICAgICAgIEBleHRlbmQgLmxpbmstZGFya2VyICFvcHRpb25hbDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogXCItIFwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmludmlzaWJsZSB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbltuZ1xcOmNsb2FrXSwgW25nLWNsb2FrXSwgW2RhdGEtbmctY2xvYWtdLCBbeC1uZy1jbG9ha10sIC5uZy1jbG9haywgLngtbmctY2xvYWsge1xyXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxufSIsIi8vIWltcG9ydGFudCBhZGRlZCB0byBzb21lIGVsZW1lbnRzIHRvIG92ZXItcmlkZSBjb250b3VyXHJcblxyXG5mb3JtIHtcclxufVxyXG5cclxuaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKG1hcmdpbi1ib3R0b20sICRwYWRkaW5nKTtcclxuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4KTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7XHJcbiAgICBjb2xvcjogJGlucHV0LWNvbG9yO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtdGhpbjtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblxyXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoJGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyKTtcclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcclxuICAgIH1cclxuXHJcbiAgICAmLmxpZ2h0IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuICAgIC8vbWluLWhlaWdodDogMjAwcHg7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmlucHV0LWlubGluZSB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZXQpIHtcclxuICAgICAgICBAaW5jbHVkZSB0YWJsZWZ5KDEwcHgsIG1pZGRsZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtc3BhY2luZyhtYXJnaW4tYm90dG9tLCAkcGFkZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaW5wdXQtZ3JvdXBlZCB7XHJcbiAgICBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcclxuICAgIH1cclxuXHJcbiAgICAmID4gKiB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoM3B4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pbnB1dC1zdWJtaXQge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKG1hcmdpbi10b3AsIDIwcHgpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uZm9ybS1ib3JkZXJlZCB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIFxyXG4gICAgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoM3B4KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmZpbGUtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB9XHJcbn0iLCJAbWl4aW4gY3VzdG9tLWljb24ge1xyXG4gICAgZm9udC1mYW1pbHk6ICdmb250LWF3ZXNvbWUnO1xyXG4gICAgc3BlYWs6IG5vbmU7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XHJcbiAgICBAaW5jbHVkZSBjdXN0b20taWNvbjtcclxufVxyXG4uaWNvbi1jaGV2cm9uLXRoaW4tbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxlNjAwXCI7XHJcbn1cclxuXHJcbi5pY29uLWNoZXZyb24tdGhpbi1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxlNjAxXCI7XHJcbn1cclxuXHJcbi5pY29uLXBsYXktc2hhcnAtY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGU2MDJcIjtcclxufVxyXG5cclxuLmljb24tZ2xhc3M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAwMFwiO1xyXG59XHJcblxyXG4uaWNvbi1tdXNpYzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDAxXCI7XHJcbn1cclxuXHJcbi5pY29uLXNlYXJjaDI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAwMlwiO1xyXG59XHJcblxyXG4uaWNvbi1lbnZlbG9wZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMDNcIjtcclxufVxyXG5cclxuLmljb24taGVhcnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAwNFwiO1xyXG59XHJcblxyXG4uaWNvbi1zdGFyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMDVcIjtcclxufVxyXG5cclxuLmljb24tc3Rhci1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMDZcIjtcclxufVxyXG5cclxuLmljb24tdXNlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDA3XCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbG06YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAwOFwiO1xyXG59XHJcblxyXG4uaWNvbi10aC1sYXJnZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDA5XCI7XHJcbn1cclxuXHJcbi5pY29uLXRoOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMGFcIjtcclxufVxyXG5cclxuLmljb24tdGgtbGlzdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDBiXCI7XHJcbn1cclxuXHJcbi5pY29uLWNoZWNrOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMGNcIjtcclxufVxyXG5cclxuLmljb24tY2xvc2UyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMGRcIjtcclxufVxyXG5cclxuLmljb24tcmVtb3ZlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMGRcIjtcclxufVxyXG5cclxuLmljb24tdGltZXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAwZFwiO1xyXG59XHJcblxyXG4uaWNvbi1zZWFyY2gtcGx1czpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDBlXCI7XHJcbn1cclxuXHJcbi5pY29uLXNlYXJjaC1taW51czpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDEwXCI7XHJcbn1cclxuXHJcbi5pY29uLXBvd2VyLW9mZjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDExXCI7XHJcbn1cclxuXHJcbi5pY29uLXNpZ25hbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDEyXCI7XHJcbn1cclxuXHJcbi5pY29uLWNvZzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDEzXCI7XHJcbn1cclxuXHJcbi5pY29uLWdlYXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxM1wiO1xyXG59XHJcblxyXG4uaWNvbi10cmFzaC1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMTRcIjtcclxufVxyXG5cclxuLmljb24taG9tZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDE1XCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDE2XCI7XHJcbn1cclxuXHJcbi5pY29uLWNsb2NrLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxN1wiO1xyXG59XHJcblxyXG4uaWNvbi1yb2FkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMThcIjtcclxufVxyXG5cclxuLmljb24tZG93bmxvYWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxOVwiO1xyXG59XHJcblxyXG4uaWNvbi1hcnJvdy1jaXJjbGUtby1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMWFcIjtcclxufVxyXG5cclxuLmljb24tYXJyb3ctY2lyY2xlLW8tdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxYlwiO1xyXG59XHJcblxyXG4uaWNvbi1pbmJveDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDFjXCI7XHJcbn1cclxuXHJcbi5pY29uLXBsYXktY2lyY2xlLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxZFwiO1xyXG59XHJcblxyXG4uaWNvbi1yZXBlYXQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxZVwiO1xyXG59XHJcblxyXG4uaWNvbi1yb3RhdGUtcmlnaHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAxZVwiO1xyXG59XHJcblxyXG4uaWNvbi1yZWZyZXNoOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMjFcIjtcclxufVxyXG5cclxuLmljb24tbGlzdC1hbHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAyMlwiO1xyXG59XHJcblxyXG4uaWNvbi1sb2NrOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMjNcIjtcclxufVxyXG5cclxuLmljb24tZmxhZzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDI0XCI7XHJcbn1cclxuXHJcbi5pY29uLWhlYWRwaG9uZXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAyNVwiO1xyXG59XHJcblxyXG4uaWNvbi12b2x1bWUtb2ZmOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMjZcIjtcclxufVxyXG5cclxuLmljb24tdm9sdW1lLWRvd246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAyN1wiO1xyXG59XHJcblxyXG4uaWNvbi12b2x1bWUtdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAyOFwiO1xyXG59XHJcblxyXG4uaWNvbi1xcmNvZGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAyOVwiO1xyXG59XHJcblxyXG4uaWNvbi1iYXJjb2RlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMmFcIjtcclxufVxyXG5cclxuLmljb24tdGFnOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMmJcIjtcclxufVxyXG5cclxuLmljb24tdGFnczpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDJjXCI7XHJcbn1cclxuXHJcbi5pY29uLWJvb2s6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAyZFwiO1xyXG59XHJcblxyXG4uaWNvbi1ib29rbWFyazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDJlXCI7XHJcbn1cclxuXHJcbi5pY29uLXByaW50OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMmZcIjtcclxufVxyXG5cclxuLmljb24tY2FtZXJhOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMzBcIjtcclxufVxyXG5cclxuLmljb24tZm9udDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDMxXCI7XHJcbn1cclxuXHJcbi5pY29uLWJvbGQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzMlwiO1xyXG59XHJcblxyXG4uaWNvbi1pdGFsaWM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzM1wiO1xyXG59XHJcblxyXG4uaWNvbi10ZXh0LWhlaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDM0XCI7XHJcbn1cclxuXHJcbi5pY29uLXRleHQtd2lkdGg6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzNVwiO1xyXG59XHJcblxyXG4uaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMzZcIjtcclxufVxyXG5cclxuLmljb24tYWxpZ24tY2VudGVyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMzdcIjtcclxufVxyXG5cclxuLmljb24tYWxpZ24tcmlnaHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzOFwiO1xyXG59XHJcblxyXG4uaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwMzlcIjtcclxufVxyXG5cclxuLmljb24tbGlzdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDNhXCI7XHJcbn1cclxuXHJcbi5pY29uLWRlZGVudDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDNiXCI7XHJcbn1cclxuXHJcbi5pY29uLW91dGRlbnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzYlwiO1xyXG59XHJcblxyXG4uaWNvbi1pbmRlbnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzY1wiO1xyXG59XHJcblxyXG4uaWNvbi12aWRlby1jYW1lcmE6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjAzZFwiO1xyXG59XHJcblxyXG4uaWNvbi1pbWFnZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDNlXCI7XHJcbn1cclxuXHJcbi5pY29uLXBob3RvOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwM2VcIjtcclxufVxyXG5cclxuLmljb24tcGljdHVyZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwM2VcIjtcclxufVxyXG5cclxuLmljb24tcGVuY2lsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNDBcIjtcclxufVxyXG5cclxuLmljb24tbWFwLW1hcmtlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDQxXCI7XHJcbn1cclxuXHJcbi5pY29uLWFkanVzdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDQyXCI7XHJcbn1cclxuXHJcbi5pY29uLXRpbnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA0M1wiO1xyXG59XHJcblxyXG4uaWNvbi1lZGl0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNDRcIjtcclxufVxyXG5cclxuLmljb24tcGVuY2lsLXNxdWFyZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNDRcIjtcclxufVxyXG5cclxuLmljb24tc2hhcmUtc3F1YXJlLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA0NVwiO1xyXG59XHJcblxyXG4uaWNvbi1jaGVjay1zcXVhcmUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDQ2XCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93czpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDQ3XCI7XHJcbn1cclxuXHJcbi5pY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA0OFwiO1xyXG59XHJcblxyXG4uaWNvbi1mYXN0LWJhY2t3YXJkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNDlcIjtcclxufVxyXG5cclxuLmljb24tYmFja3dhcmQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA0YVwiO1xyXG59XHJcblxyXG4uaWNvbi1wbGF5OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNGJcIjtcclxufVxyXG5cclxuLmljb24tcGF1c2U6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA0Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1zdG9wOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNGRcIjtcclxufVxyXG5cclxuLmljb24tZm9yd2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDRlXCI7XHJcbn1cclxuXHJcbi5pY29uLWZhc3QtZm9yd2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDUwXCI7XHJcbn1cclxuXHJcbi5pY29uLXN0ZXAtZm9yd2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDUxXCI7XHJcbn1cclxuXHJcbi5pY29uLWVqZWN0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNTJcIjtcclxufVxyXG5cclxuLmljb24tY2hldnJvbi1sZWZ0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNTNcIjtcclxufVxyXG5cclxuLmljb24tY2hldnJvbi1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDU0XCI7XHJcbn1cclxuXHJcbi5pY29uLXBsdXMtY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNTVcIjtcclxufVxyXG5cclxuLmljb24tbWludXMtY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNTZcIjtcclxufVxyXG5cclxuLmljb24tdGltZXMtY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNTdcIjtcclxufVxyXG5cclxuLmljb24tY2hlY2stY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNThcIjtcclxufVxyXG5cclxuLmljb24tcXVlc3Rpb24tY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNTlcIjtcclxufVxyXG5cclxuLmljb24taW5mby1jaXJjbGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA1YVwiO1xyXG59XHJcblxyXG4uaWNvbi1jcm9zc2hhaXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNWJcIjtcclxufVxyXG5cclxuLmljb24tdGltZXMtY2lyY2xlLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA1Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1jaGVjay1jaXJjbGUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDVkXCI7XHJcbn1cclxuXHJcbi5pY29uLWJhbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDVlXCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA2MFwiO1xyXG59XHJcblxyXG4uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDYxXCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93LXVwOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNjJcIjtcclxufVxyXG5cclxuLmljb24tYXJyb3ctZG93bjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDYzXCI7XHJcbn1cclxuXHJcbi5pY29uLW1haWwtZm9yd2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDY0XCI7XHJcbn1cclxuXHJcbi5pY29uLXNoYXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNjRcIjtcclxufVxyXG5cclxuLmljb24tZXhwYW5kOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNjVcIjtcclxufVxyXG5cclxuLmljb24tY29tcHJlc3M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA2NlwiO1xyXG59XHJcblxyXG4uaWNvbi1wbHVzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNjdcIjtcclxufVxyXG5cclxuLmljb24tbWludXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA2OFwiO1xyXG59XHJcblxyXG4uaWNvbi1hc3RlcmlzazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDY5XCI7XHJcbn1cclxuXHJcbi5pY29uLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDZhXCI7XHJcbn1cclxuXHJcbi5pY29uLWdpZnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA2YlwiO1xyXG59XHJcblxyXG4uaWNvbi1sZWFmOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNmNcIjtcclxufVxyXG5cclxuLmljb24tZmlyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDZkXCI7XHJcbn1cclxuXHJcbi5pY29uLWV5ZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDZlXCI7XHJcbn1cclxuXHJcbi5pY29uLWV5ZS1zbGFzaDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDcwXCI7XHJcbn1cclxuXHJcbi5pY29uLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNzFcIjtcclxufVxyXG5cclxuLmljb24td2FybmluZzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDcxXCI7XHJcbn1cclxuXHJcbi5pY29uLXBsYW5lOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNzJcIjtcclxufVxyXG5cclxuLmljb24tY2FsZW5kYXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA3M1wiO1xyXG59XHJcblxyXG4uaWNvbi1yYW5kb206YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA3NFwiO1xyXG59XHJcblxyXG4uaWNvbi1jb21tZW50OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNzVcIjtcclxufVxyXG5cclxuLmljb24tbWFnbmV0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwNzZcIjtcclxufVxyXG5cclxuLmljb24tY2hldnJvbi11cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDc3XCI7XHJcbn1cclxuXHJcbi5pY29uLWNoZXZyb24tZG93bjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDc4XCI7XHJcbn1cclxuXHJcbi5pY29uLXJldHdlZXQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA3OVwiO1xyXG59XHJcblxyXG4uaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwN2FcIjtcclxufVxyXG5cclxuLmljb24tZm9sZGVyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwN2JcIjtcclxufVxyXG5cclxuLmljb24tZm9sZGVyLW9wZW46YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA3Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1hcnJvd3MtdjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDdkXCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93cy1oOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwN2VcIjtcclxufVxyXG5cclxuLmljb24tYmFyLWNoYXJ0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwODBcIjtcclxufVxyXG5cclxuLmljb24tYmFyLWNoYXJ0LW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA4MFwiO1xyXG59XHJcblxyXG4uaWNvbi10d2l0dGVyLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDgxXCI7XHJcbn1cclxuXHJcbi5pY29uLWZhY2Vib29rLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDgyXCI7XHJcbn1cclxuXHJcbi5pY29uLWNhbWVyYS1yZXRybzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDgzXCI7XHJcbn1cclxuXHJcbi5pY29uLWtleTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDg0XCI7XHJcbn1cclxuXHJcbi5pY29uLWNvZ3M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA4NVwiO1xyXG59XHJcblxyXG4uaWNvbi1nZWFyczpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDg1XCI7XHJcbn1cclxuXHJcbi5pY29uLWNvbW1lbnRzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwODZcIjtcclxufVxyXG5cclxuLmljb24tdGh1bWJzLW8tdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA4N1wiO1xyXG59XHJcblxyXG4uaWNvbi10aHVtYnMtby1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwODhcIjtcclxufVxyXG5cclxuLmljb24tc3Rhci1oYWxmOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwODlcIjtcclxufVxyXG5cclxuLmljb24taGVhcnQtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDhhXCI7XHJcbn1cclxuXHJcbi5pY29uLXNpZ24tb3V0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwOGJcIjtcclxufVxyXG5cclxuLmljb24tbGlua2VkaW4tc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwOGNcIjtcclxufVxyXG5cclxuLmljb24tdGh1bWItdGFjazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDhkXCI7XHJcbn1cclxuXHJcbi5pY29uLWV4dGVybmFsLWxpbms6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA4ZVwiO1xyXG59XHJcblxyXG4uaWNvbi1zaWduLWluOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwOTBcIjtcclxufVxyXG5cclxuLmljb24tdHJvcGh5OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwOTFcIjtcclxufVxyXG5cclxuLmljb24tZ2l0aHViLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDkyXCI7XHJcbn1cclxuXHJcbi5pY29uLXVwbG9hZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDkzXCI7XHJcbn1cclxuXHJcbi5pY29uLWxlbW9uLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA5NFwiO1xyXG59XHJcblxyXG4uaWNvbi1waG9uZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDk1XCI7XHJcbn1cclxuXHJcbi5pY29uLXNxdWFyZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwOTZcIjtcclxufVxyXG5cclxuLmljb24tYm9va21hcmstbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDk3XCI7XHJcbn1cclxuXHJcbi5pY29uLXBob25lLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDk4XCI7XHJcbn1cclxuXHJcbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA5OVwiO1xyXG59XHJcblxyXG4uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDlhXCI7XHJcbn1cclxuXHJcbi5pY29uLWZhY2Vib29rLWY6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA5YVwiO1xyXG59XHJcblxyXG4uaWNvbi1naXRodWI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA5YlwiO1xyXG59XHJcblxyXG4uaWNvbi11bmxvY2s6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjA5Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1jcmVkaXQtY2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDlkXCI7XHJcbn1cclxuXHJcbi5pY29uLXJzczpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMDllXCI7XHJcbn1cclxuXHJcbi5pY29uLWhkZC1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYTBcIjtcclxufVxyXG5cclxuLmljb24tYnVsbGhvcm46YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBhMVwiO1xyXG59XHJcblxyXG4uaWNvbi1iZWxsLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBhMlwiO1xyXG59XHJcblxyXG4uaWNvbi1jZXJ0aWZpY2F0ZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGEzXCI7XHJcbn1cclxuXHJcbi5pY29uLWhhbmQtby1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGE0XCI7XHJcbn1cclxuXHJcbi5pY29uLWhhbmQtby1sZWZ0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYTVcIjtcclxufVxyXG5cclxuLmljb24taGFuZC1vLXVwOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYTZcIjtcclxufVxyXG5cclxuLmljb24taGFuZC1vLWRvd246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBhN1wiO1xyXG59XHJcblxyXG4uaWNvbi1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGE4XCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGE5XCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93LWNpcmNsZS11cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGFhXCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYWJcIjtcclxufVxyXG5cclxuLmljb24tZ2xvYmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBhY1wiO1xyXG59XHJcblxyXG4uaWNvbi13cmVuY2g6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBhZFwiO1xyXG59XHJcblxyXG4uaWNvbi10YXNrczpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGFlXCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbHRlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGIwXCI7XHJcbn1cclxuXHJcbi5pY29uLWJyaWVmY2FzZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGIxXCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93cy1hbHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBiMlwiO1xyXG59XHJcblxyXG4uaWNvbi1ncm91cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGMwXCI7XHJcbn1cclxuXHJcbi5pY29uLXVzZXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYzBcIjtcclxufVxyXG5cclxuLmljb24tY2hhaW46YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjMVwiO1xyXG59XHJcblxyXG4uaWNvbi1saW5rOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYzFcIjtcclxufVxyXG5cclxuLmljb24tY2xvdWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjMlwiO1xyXG59XHJcblxyXG4uaWNvbi1mbGFzazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGMzXCI7XHJcbn1cclxuXHJcbi5pY29uLWN1dDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGM0XCI7XHJcbn1cclxuXHJcbi5pY29uLXNjaXNzb3JzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYzRcIjtcclxufVxyXG5cclxuLmljb24tY29weTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGM1XCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGVzLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjNVwiO1xyXG59XHJcblxyXG4uaWNvbi1wYXBlcmNsaXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjNlwiO1xyXG59XHJcblxyXG4uaWNvbi1mbG9wcHktbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGM3XCI7XHJcbn1cclxuXHJcbi5pY29uLXNhdmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjN1wiO1xyXG59XHJcblxyXG4uaWNvbi1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjOFwiO1xyXG59XHJcblxyXG4uaWNvbi1iYXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwYzlcIjtcclxufVxyXG5cclxuLmljb24tbmF2aWNvbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGM5XCI7XHJcbn1cclxuXHJcbi5pY29uLXJlb3JkZXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjOVwiO1xyXG59XHJcblxyXG4uaWNvbi1saXN0LXVsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwY2FcIjtcclxufVxyXG5cclxuLmljb24tbGlzdC1vbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGNiXCI7XHJcbn1cclxuXHJcbi5pY29uLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjY1wiO1xyXG59XHJcblxyXG4uaWNvbi11bmRlcmxpbmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBjZFwiO1xyXG59XHJcblxyXG4uaWNvbi10YWJsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGNlXCI7XHJcbn1cclxuXHJcbi5pY29uLW1hZ2ljOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZDBcIjtcclxufVxyXG5cclxuLmljb24tdHJ1Y2s6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkMVwiO1xyXG59XHJcblxyXG4uaWNvbi1waW50ZXJlc3Q6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkMlwiO1xyXG59XHJcblxyXG4uaWNvbi1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZDNcIjtcclxufVxyXG5cclxuLmljb24tZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZDRcIjtcclxufVxyXG5cclxuLmljb24tZ29vZ2xlLXBsdXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkNVwiO1xyXG59XHJcblxyXG4uaWNvbi1tb25leTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGQ2XCI7XHJcbn1cclxuXHJcbi5pY29uLWNhcmV0LWRvd246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkN1wiO1xyXG59XHJcblxyXG4uaWNvbi1jYXJldC11cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGQ4XCI7XHJcbn1cclxuXHJcbi5pY29uLWNhcmV0LWxlZnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkOVwiO1xyXG59XHJcblxyXG4uaWNvbi1jYXJldC1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGRhXCI7XHJcbn1cclxuXHJcbi5pY29uLWNvbHVtbnM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkYlwiO1xyXG59XHJcblxyXG4uaWNvbi1zb3J0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZGNcIjtcclxufVxyXG5cclxuLmljb24tdW5zb3J0ZWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkY1wiO1xyXG59XHJcblxyXG4uaWNvbi1zb3J0LWRlc2M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkZFwiO1xyXG59XHJcblxyXG4uaWNvbi1zb3J0LWRvd246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkZFwiO1xyXG59XHJcblxyXG4uaWNvbi1zb3J0LWFzYzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGRlXCI7XHJcbn1cclxuXHJcbi5pY29uLXNvcnQtdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBkZVwiO1xyXG59XHJcblxyXG4uaWNvbi1lbnZlbG9wZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGUwXCI7XHJcbn1cclxuXHJcbi5pY29uLWxpbmtlZGluOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZTFcIjtcclxufVxyXG5cclxuLmljb24tcm90YXRlLWxlZnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlMlwiO1xyXG59XHJcblxyXG4uaWNvbi11bmRvOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZTJcIjtcclxufVxyXG5cclxuLmljb24tZ2F2ZWw6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlM1wiO1xyXG59XHJcblxyXG4uaWNvbi1sZWdhbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGUzXCI7XHJcbn1cclxuXHJcbi5pY29uLWRhc2hib2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGU0XCI7XHJcbn1cclxuXHJcbi5pY29uLXRhY2hvbWV0ZXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlNFwiO1xyXG59XHJcblxyXG4uaWNvbi1jb21tZW50LW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlNVwiO1xyXG59XHJcblxyXG4uaWNvbi1jb21tZW50cy1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZTZcIjtcclxufVxyXG5cclxuLmljb24tYm9sdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGU3XCI7XHJcbn1cclxuXHJcbi5pY29uLWZsYXNoOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZTdcIjtcclxufVxyXG5cclxuLmljb24tc2l0ZW1hcDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGU4XCI7XHJcbn1cclxuXHJcbi5pY29uLXVtYnJlbGxhOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZTlcIjtcclxufVxyXG5cclxuLmljb24tY2xpcGJvYXJkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZWFcIjtcclxufVxyXG5cclxuLmljb24tcGFzdGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlYVwiO1xyXG59XHJcblxyXG4uaWNvbi1saWdodGJ1bGItbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGViXCI7XHJcbn1cclxuXHJcbi5pY29uLWV4Y2hhbmdlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZWNcIjtcclxufVxyXG5cclxuLmljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlZFwiO1xyXG59XHJcblxyXG4uaWNvbi1jbG91ZC11cGxvYWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBlZVwiO1xyXG59XHJcblxyXG4uaWNvbi11c2VyLW1kOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZjBcIjtcclxufVxyXG5cclxuLmljb24tc3RldGhvc2NvcGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBmMVwiO1xyXG59XHJcblxyXG4uaWNvbi1zdWl0Y2FzZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGYyXCI7XHJcbn1cclxuXHJcbi5pY29uLWJlbGw6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBmM1wiO1xyXG59XHJcblxyXG4uaWNvbi1jb2ZmZWU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBmNFwiO1xyXG59XHJcblxyXG4uaWNvbi1jdXRsZXJ5OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZjVcIjtcclxufVxyXG5cclxuLmljb24tZmlsZS10ZXh0LW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBmNlwiO1xyXG59XHJcblxyXG4uaWNvbi1idWlsZGluZy1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZjdcIjtcclxufVxyXG5cclxuLmljb24taG9zcGl0YWwtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGY4XCI7XHJcbn1cclxuXHJcbi5pY29uLWFtYnVsYW5jZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGY5XCI7XHJcbn1cclxuXHJcbi5pY29uLW1lZGtpdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGZhXCI7XHJcbn1cclxuXHJcbi5pY29uLWZpZ2h0ZXItamV0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZmJcIjtcclxufVxyXG5cclxuLmljb24tYmVlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMGZjXCI7XHJcbn1cclxuXHJcbi5pY29uLWgtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYwZmRcIjtcclxufVxyXG5cclxuLmljb24tcGx1cy1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjBmZVwiO1xyXG59XHJcblxyXG4uaWNvbi1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTAwXCI7XHJcbn1cclxuXHJcbi5pY29uLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTAxXCI7XHJcbn1cclxuXHJcbi5pY29uLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTAyXCI7XHJcbn1cclxuXHJcbi5pY29uLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMDNcIjtcclxufVxyXG5cclxuLmljb24tYW5nbGUtbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTA0XCI7XHJcbn1cclxuXHJcbi5pY29uLWFuZ2xlLXJpZ2h0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMDVcIjtcclxufVxyXG5cclxuLmljb24tYW5nbGUtdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEwNlwiO1xyXG59XHJcblxyXG4uaWNvbi1hbmdsZS1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMDdcIjtcclxufVxyXG5cclxuLmljb24tZGVza3RvcDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTA4XCI7XHJcbn1cclxuXHJcbi5pY29uLWxhcHRvcDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTA5XCI7XHJcbn1cclxuXHJcbi5pY29uLXRhYmxldDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTBhXCI7XHJcbn1cclxuXHJcbi5pY29uLW1vYmlsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTBiXCI7XHJcbn1cclxuXHJcbi5pY29uLW1vYmlsZS1waG9uZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTBiXCI7XHJcbn1cclxuXHJcbi5pY29uLWNpcmNsZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMGNcIjtcclxufVxyXG5cclxuLmljb24tcXVvdGUtbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTBkXCI7XHJcbn1cclxuXHJcbi5pY29uLXF1b3RlLXJpZ2h0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMGVcIjtcclxufVxyXG5cclxuLmljb24tc3Bpbm5lcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTEwXCI7XHJcbn1cclxuXHJcbi5pY29uLWNpcmNsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTExXCI7XHJcbn1cclxuXHJcbi5pY29uLW1haWwtcmVwbHk6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjExMlwiO1xyXG59XHJcblxyXG4uaWNvbi1yZXBseTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTEyXCI7XHJcbn1cclxuXHJcbi5pY29uLWdpdGh1Yi1hbHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjExM1wiO1xyXG59XHJcblxyXG4uaWNvbi1mb2xkZXItbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTE0XCI7XHJcbn1cclxuXHJcbi5pY29uLWZvbGRlci1vcGVuLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjExNVwiO1xyXG59XHJcblxyXG4uaWNvbi1zbWlsZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMThcIjtcclxufVxyXG5cclxuLmljb24tZnJvd24tbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTE5XCI7XHJcbn1cclxuXHJcbi5pY29uLW1laC1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMWFcIjtcclxufVxyXG5cclxuLmljb24tZ2FtZXBhZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTFiXCI7XHJcbn1cclxuXHJcbi5pY29uLWtleWJvYXJkLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjExY1wiO1xyXG59XHJcblxyXG4uaWNvbi1mbGFnLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjExZFwiO1xyXG59XHJcblxyXG4uaWNvbi1mbGFnLWNoZWNrZXJlZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTFlXCI7XHJcbn1cclxuXHJcbi5pY29uLXRlcm1pbmFsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMjBcIjtcclxufVxyXG5cclxuLmljb24tY29kZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTIxXCI7XHJcbn1cclxuXHJcbi5pY29uLW1haWwtcmVwbHktYWxsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMjJcIjtcclxufVxyXG5cclxuLmljb24tcmVwbHktYWxsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMjJcIjtcclxufVxyXG5cclxuLmljb24tc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMjNcIjtcclxufVxyXG5cclxuLmljb24tc3Rhci1oYWxmLWZ1bGw6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEyM1wiO1xyXG59XHJcblxyXG4uaWNvbi1zdGFyLWhhbGYtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTIzXCI7XHJcbn1cclxuXHJcbi5pY29uLWxvY2F0aW9uLWFycm93OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMjRcIjtcclxufVxyXG5cclxuLmljb24tY3JvcDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTI1XCI7XHJcbn1cclxuXHJcbi5pY29uLWNvZGUtZm9yazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTI2XCI7XHJcbn1cclxuXHJcbi5pY29uLWNoYWluLWJyb2tlbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTI3XCI7XHJcbn1cclxuXHJcbi5pY29uLXVubGluazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTI3XCI7XHJcbn1cclxuXHJcbi5pY29uLXF1ZXN0aW9uOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMjhcIjtcclxufVxyXG5cclxuLmljb24taW5mbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTI5XCI7XHJcbn1cclxuXHJcbi5pY29uLWV4Y2xhbWF0aW9uOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMmFcIjtcclxufVxyXG5cclxuLmljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEyYlwiO1xyXG59XHJcblxyXG4uaWNvbi1zdWJzY3JpcHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEyY1wiO1xyXG59XHJcblxyXG4uaWNvbi1lcmFzZXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEyZFwiO1xyXG59XHJcblxyXG4uaWNvbi1wdXp6bGUtcGllY2U6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEyZVwiO1xyXG59XHJcblxyXG4uaWNvbi1taWNyb3Bob25lOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMzBcIjtcclxufVxyXG5cclxuLmljb24tbWljcm9waG9uZS1zbGFzaDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTMxXCI7XHJcbn1cclxuXHJcbi5pY29uLXNoaWVsZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTMyXCI7XHJcbn1cclxuXHJcbi5pY29uLWNhbGVuZGFyLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEzM1wiO1xyXG59XHJcblxyXG4uaWNvbi1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTM0XCI7XHJcbn1cclxuXHJcbi5pY29uLXJvY2tldDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTM1XCI7XHJcbn1cclxuXHJcbi5pY29uLW1heGNkbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTM2XCI7XHJcbn1cclxuXHJcbi5pY29uLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEzN1wiO1xyXG59XHJcblxyXG4uaWNvbi1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTM4XCI7XHJcbn1cclxuXHJcbi5pY29uLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxMzlcIjtcclxufVxyXG5cclxuLmljb24tY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTNhXCI7XHJcbn1cclxuXHJcbi5pY29uLWh0bWw1OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxM2JcIjtcclxufVxyXG5cclxuLmljb24tY3NzMzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTNjXCI7XHJcbn1cclxuXHJcbi5pY29uLWFuY2hvcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTNkXCI7XHJcbn1cclxuXHJcbi5pY29uLXVubG9jay1hbHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjEzZVwiO1xyXG59XHJcblxyXG4uaWNvbi1idWxsc2V5ZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTQwXCI7XHJcbn1cclxuXHJcbi5pY29uLWVsbGlwc2lzLWg6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE0MVwiO1xyXG59XHJcblxyXG4uaWNvbi1lbGxpcHNpcy12OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNDJcIjtcclxufVxyXG5cclxuLmljb24tcnNzLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTQzXCI7XHJcbn1cclxuXHJcbi5pY29uLXBsYXktY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNDRcIjtcclxufVxyXG5cclxuLmljb24tdGlja2V0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNDVcIjtcclxufVxyXG5cclxuLmljb24tbWludXMtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNDZcIjtcclxufVxyXG5cclxuLmljb24tbWludXMtc3F1YXJlLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE0N1wiO1xyXG59XHJcblxyXG4uaWNvbi1sZXZlbC11cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTQ4XCI7XHJcbn1cclxuXHJcbi5pY29uLWxldmVsLWRvd246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE0OVwiO1xyXG59XHJcblxyXG4uaWNvbi1jaGVjay1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE0YVwiO1xyXG59XHJcblxyXG4uaWNvbi1wZW5jaWwtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNGJcIjtcclxufVxyXG5cclxuLmljb24tZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE0Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1zaGFyZS1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE0ZFwiO1xyXG59XHJcblxyXG4uaWNvbi1jb21wYXNzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNGVcIjtcclxufVxyXG5cclxuLmljb24tY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTUwXCI7XHJcbn1cclxuXHJcbi5pY29uLXRvZ2dsZS1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNTBcIjtcclxufVxyXG5cclxuLmljb24tY2FyZXQtc3F1YXJlLW8tdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1MVwiO1xyXG59XHJcblxyXG4uaWNvbi10b2dnbGUtdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1MVwiO1xyXG59XHJcblxyXG4uaWNvbi1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTUyXCI7XHJcbn1cclxuXHJcbi5pY29uLXRvZ2dsZS1yaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTUyXCI7XHJcbn1cclxuXHJcbi5pY29uLWV1cjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTUzXCI7XHJcbn1cclxuXHJcbi5pY29uLWV1cm86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1M1wiO1xyXG59XHJcblxyXG4uaWNvbi1nYnA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1NFwiO1xyXG59XHJcblxyXG4uaWNvbi1kb2xsYXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1NVwiO1xyXG59XHJcblxyXG4uaWNvbi11c2Q6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1NVwiO1xyXG59XHJcblxyXG4uaWNvbi1pbnI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1NlwiO1xyXG59XHJcblxyXG4uaWNvbi1ydXBlZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU2XCI7XHJcbn1cclxuXHJcbi5pY29uLWNueTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU3XCI7XHJcbn1cclxuXHJcbi5pY29uLWpweTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU3XCI7XHJcbn1cclxuXHJcbi5pY29uLXJtYjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU3XCI7XHJcbn1cclxuXHJcbi5pY29uLXllbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU3XCI7XHJcbn1cclxuXHJcbi5pY29uLXJvdWJsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU4XCI7XHJcbn1cclxuXHJcbi5pY29uLXJ1YjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTU4XCI7XHJcbn1cclxuXHJcbi5pY29uLXJ1YmxlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNThcIjtcclxufVxyXG5cclxuLmljb24ta3J3OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNTlcIjtcclxufVxyXG5cclxuLmljb24td29uOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNTlcIjtcclxufVxyXG5cclxuLmljb24tYml0Y29pbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTVhXCI7XHJcbn1cclxuXHJcbi5pY29uLWJ0YzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTVhXCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1YlwiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLXRleHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE1Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1zb3J0LWFscGhhLWFzYzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTVkXCI7XHJcbn1cclxuXHJcbi5pY29uLXNvcnQtYWxwaGEtZGVzYzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTVlXCI7XHJcbn1cclxuXHJcbi5pY29uLXNvcnQtYW1vdW50LWFzYzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTYwXCI7XHJcbn1cclxuXHJcbi5pY29uLXNvcnQtYW1vdW50LWRlc2M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE2MVwiO1xyXG59XHJcblxyXG4uaWNvbi1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNjJcIjtcclxufVxyXG5cclxuLmljb24tc29ydC1udW1lcmljLWRlc2M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE2M1wiO1xyXG59XHJcblxyXG4uaWNvbi10aHVtYnMtdXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE2NFwiO1xyXG59XHJcblxyXG4uaWNvbi10aHVtYnMtZG93bjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTY1XCI7XHJcbn1cclxuXHJcbi5pY29uLXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNjZcIjtcclxufVxyXG5cclxuLmljb24teW91dHViZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTY3XCI7XHJcbn1cclxuXHJcbi5pY29uLXhpbmc6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE2OFwiO1xyXG59XHJcblxyXG4uaWNvbi14aW5nLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTY5XCI7XHJcbn1cclxuXHJcbi5pY29uLXlvdXR1YmUtcGxheTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTZhXCI7XHJcbn1cclxuXHJcbi5pY29uLWRyb3Bib3g6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE2YlwiO1xyXG59XHJcblxyXG4uaWNvbi1zdGFjay1vdmVyZmxvdzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTZjXCI7XHJcbn1cclxuXHJcbi5pY29uLWluc3RhZ3JhbTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTZkXCI7XHJcbn1cclxuXHJcbi5pY29uLWZsaWNrcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTZlXCI7XHJcbn1cclxuXHJcbi5pY29uLWFkbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTcwXCI7XHJcbn1cclxuXHJcbi5pY29uLWJpdGJ1Y2tldDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTcxXCI7XHJcbn1cclxuXHJcbi5pY29uLWJpdGJ1Y2tldC1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE3MlwiO1xyXG59XHJcblxyXG4uaWNvbi10dW1ibHI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE3M1wiO1xyXG59XHJcblxyXG4uaWNvbi10dW1ibHItc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNzRcIjtcclxufVxyXG5cclxuLmljb24tbG9uZy1hcnJvdy1kb3duOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxNzVcIjtcclxufVxyXG5cclxuLmljb24tbG9uZy1hcnJvdy11cDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTc2XCI7XHJcbn1cclxuXHJcbi5pY29uLWxvbmctYXJyb3ctbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTc3XCI7XHJcbn1cclxuXHJcbi5pY29uLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE3OFwiO1xyXG59XHJcblxyXG4uaWNvbi1hcHBsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTc5XCI7XHJcbn1cclxuXHJcbi5pY29uLXdpbmRvd3M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE3YVwiO1xyXG59XHJcblxyXG4uaWNvbi1hbmRyb2lkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxN2JcIjtcclxufVxyXG5cclxuLmljb24tbGludXg6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE3Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1kcmliYmJsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTdkXCI7XHJcbn1cclxuXHJcbi5pY29uLXNreXBlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxN2VcIjtcclxufVxyXG5cclxuLmljb24tZm91cnNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTgwXCI7XHJcbn1cclxuXHJcbi5pY29uLXRyZWxsbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTgxXCI7XHJcbn1cclxuXHJcbi5pY29uLWZlbWFsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTgyXCI7XHJcbn1cclxuXHJcbi5pY29uLW1hbGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE4M1wiO1xyXG59XHJcblxyXG4uaWNvbi1naXR0aXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE4NFwiO1xyXG59XHJcblxyXG4uaWNvbi1ncmF0aXBheTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTg0XCI7XHJcbn1cclxuXHJcbi5pY29uLXN1bi1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxODVcIjtcclxufVxyXG5cclxuLmljb24tbW9vbi1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxODZcIjtcclxufVxyXG5cclxuLmljb24tYXJjaGl2ZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTg3XCI7XHJcbn1cclxuXHJcbi5pY29uLWJ1ZzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTg4XCI7XHJcbn1cclxuXHJcbi5pY29uLXZrOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxODlcIjtcclxufVxyXG5cclxuLmljb24td2VpYm86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE4YVwiO1xyXG59XHJcblxyXG4uaWNvbi1yZW5yZW46YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE4YlwiO1xyXG59XHJcblxyXG4uaWNvbi1wYWdlbGluZXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE4Y1wiO1xyXG59XHJcblxyXG4uaWNvbi1zdGFjay1leGNoYW5nZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMThkXCI7XHJcbn1cclxuXHJcbi5pY29uLWFycm93LWNpcmNsZS1vLXJpZ2h0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOGVcIjtcclxufVxyXG5cclxuLmljb24tYXJyb3ctY2lyY2xlLW8tbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTkwXCI7XHJcbn1cclxuXHJcbi5pY29uLWNhcmV0LXNxdWFyZS1vLWxlZnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE5MVwiO1xyXG59XHJcblxyXG4uaWNvbi10b2dnbGUtbGVmdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTkxXCI7XHJcbn1cclxuXHJcbi5pY29uLWRvdC1jaXJjbGUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTkyXCI7XHJcbn1cclxuXHJcbi5pY29uLXdoZWVsY2hhaXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE5M1wiO1xyXG59XHJcblxyXG4uaWNvbi12aW1lby1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE5NFwiO1xyXG59XHJcblxyXG4uaWNvbi10cnk6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE5NVwiO1xyXG59XHJcblxyXG4uaWNvbi10dXJraXNoLWxpcmE6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE5NVwiO1xyXG59XHJcblxyXG4uaWNvbi1wbHVzLXNxdWFyZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOTZcIjtcclxufVxyXG5cclxuLmljb24tc3BhY2Utc2h1dHRsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTk3XCI7XHJcbn1cclxuXHJcbi5pY29uLXNsYWNrOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOThcIjtcclxufVxyXG5cclxuLmljb24tZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOTlcIjtcclxufVxyXG5cclxuLmljb24td29yZHByZXNzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOWFcIjtcclxufVxyXG5cclxuLmljb24tb3BlbmlkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOWJcIjtcclxufVxyXG5cclxuLmljb24tYmFuazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTljXCI7XHJcbn1cclxuXHJcbi5pY29uLWluc3RpdHV0aW9uOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOWNcIjtcclxufVxyXG5cclxuLmljb24tdW5pdmVyc2l0eTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMTljXCI7XHJcbn1cclxuXHJcbi5pY29uLWdyYWR1YXRpb24tY2FwOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOWRcIjtcclxufVxyXG5cclxuLmljb24tbW9ydGFyLWJvYXJkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxOWRcIjtcclxufVxyXG5cclxuLmljb24teWFob286YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjE5ZVwiO1xyXG59XHJcblxyXG4uaWNvbi1nb29nbGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFhMFwiO1xyXG59XHJcblxyXG4uaWNvbi1yZWRkaXQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFhMVwiO1xyXG59XHJcblxyXG4uaWNvbi1yZWRkaXQtc3F1YXJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYTJcIjtcclxufVxyXG5cclxuLmljb24tc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYTNcIjtcclxufVxyXG5cclxuLmljb24tc3R1bWJsZXVwb246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFhNFwiO1xyXG59XHJcblxyXG4uaWNvbi1kZWxpY2lvdXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFhNVwiO1xyXG59XHJcblxyXG4uaWNvbi1kaWdnOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYTZcIjtcclxufVxyXG5cclxuLmljb24tcGllZC1waXBlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWE3XCI7XHJcbn1cclxuXHJcbi5pY29uLXBpZWQtcGlwZXItYWx0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYThcIjtcclxufVxyXG5cclxuLmljb24tZHJ1cGFsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYTlcIjtcclxufVxyXG5cclxuLmljb24tam9vbWxhOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYWFcIjtcclxufVxyXG5cclxuLmljb24tbGFuZ3VhZ2U6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFhYlwiO1xyXG59XHJcblxyXG4uaWNvbi1mYXg6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFhY1wiO1xyXG59XHJcblxyXG4uaWNvbi1idWlsZGluZzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWFkXCI7XHJcbn1cclxuXHJcbi5pY29uLWNoaWxkOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYWVcIjtcclxufVxyXG5cclxuLmljb24tcGF3OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYjBcIjtcclxufVxyXG5cclxuLmljb24tc3Bvb246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFiMVwiO1xyXG59XHJcblxyXG4uaWNvbi1jdWJlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYjJcIjtcclxufVxyXG5cclxuLmljb24tY3ViZXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFiM1wiO1xyXG59XHJcblxyXG4uaWNvbi1iZWhhbmNlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYjRcIjtcclxufVxyXG5cclxuLmljb24tYmVoYW5jZS1zcXVhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFiNVwiO1xyXG59XHJcblxyXG4uaWNvbi1zdGVhbTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWI2XCI7XHJcbn1cclxuXHJcbi5pY29uLXN0ZWFtLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWI3XCI7XHJcbn1cclxuXHJcbi5pY29uLXJlY3ljbGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFiOFwiO1xyXG59XHJcblxyXG4uaWNvbi1hdXRvbW9iaWxlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYjlcIjtcclxufVxyXG5cclxuLmljb24tY2FyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYjlcIjtcclxufVxyXG5cclxuLmljb24tY2FiOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYmFcIjtcclxufVxyXG5cclxuLmljb24tdGF4aTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWJhXCI7XHJcbn1cclxuXHJcbi5pY29uLXRyZWU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFiYlwiO1xyXG59XHJcblxyXG4uaWNvbi1zcG90aWZ5OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYmNcIjtcclxufVxyXG5cclxuLmljb24tZGV2aWFudGFydDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWJkXCI7XHJcbn1cclxuXHJcbi5pY29uLXNvdW5kY2xvdWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFiZVwiO1xyXG59XHJcblxyXG4uaWNvbi1kYXRhYmFzZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWMwXCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGUtcGRmLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjMVwiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLXdvcmQtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWMyXCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGUtZXhjZWwtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWMzXCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGUtcG93ZXJwb2ludC1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYzRcIjtcclxufVxyXG5cclxuLmljb24tZmlsZS1pbWFnZS1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYzVcIjtcclxufVxyXG5cclxuLmljb24tZmlsZS1waG90by1vOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxYzVcIjtcclxufVxyXG5cclxuLmljb24tZmlsZS1waWN0dXJlLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjNVwiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLWFyY2hpdmUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWM2XCI7XHJcbn1cclxuXHJcbi5pY29uLWZpbGUtemlwLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjNlwiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLWF1ZGlvLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjN1wiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLXNvdW5kLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjN1wiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLW1vdmllLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjOFwiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLXZpZGVvLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjOFwiO1xyXG59XHJcblxyXG4uaWNvbi1maWxlLWNvZGUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWM5XCI7XHJcbn1cclxuXHJcbi5pY29uLXZpbmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjYVwiO1xyXG59XHJcblxyXG4uaWNvbi1jb2RlcGVuOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxY2JcIjtcclxufVxyXG5cclxuLmljb24tanNmaWRkbGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjY1wiO1xyXG59XHJcblxyXG4uaWNvbi1saWZlLWJvdXk6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjZFwiO1xyXG59XHJcblxyXG4uaWNvbi1saWZlLWJ1b3k6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjZFwiO1xyXG59XHJcblxyXG4uaWNvbi1saWZlLXJpbmc6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFjZFwiO1xyXG59XHJcblxyXG4uaWNvbi1saWZlLXNhdmVyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxY2RcIjtcclxufVxyXG5cclxuLmljb24tc3VwcG9ydDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWNkXCI7XHJcbn1cclxuXHJcbi5pY29uLWNpcmNsZS1vLW5vdGNoOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxY2VcIjtcclxufVxyXG5cclxuLmljb24tcmE6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFkMFwiO1xyXG59XHJcblxyXG4uaWNvbi1yZWJlbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQwXCI7XHJcbn1cclxuXHJcbi5pY29uLWVtcGlyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQxXCI7XHJcbn1cclxuXHJcbi5pY29uLWdlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZDFcIjtcclxufVxyXG5cclxuLmljb24tZ2l0LXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQyXCI7XHJcbn1cclxuXHJcbi5pY29uLWdpdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQzXCI7XHJcbn1cclxuXHJcbi5pY29uLWhhY2tlci1uZXdzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZDRcIjtcclxufVxyXG5cclxuLmljb24tdGVuY2VudC13ZWlibzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQ1XCI7XHJcbn1cclxuXHJcbi5pY29uLXFxOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZDZcIjtcclxufVxyXG5cclxuLmljb24td2VjaGF0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZDdcIjtcclxufVxyXG5cclxuLmljb24td2VpeGluOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZDdcIjtcclxufVxyXG5cclxuLmljb24tcGFwZXItcGxhbmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFkOFwiO1xyXG59XHJcblxyXG4uaWNvbi1zZW5kOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZDhcIjtcclxufVxyXG5cclxuLmljb24tcGFwZXItcGxhbmUtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQ5XCI7XHJcbn1cclxuXHJcbi5pY29uLXNlbmQtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWQ5XCI7XHJcbn1cclxuXHJcbi5pY29uLWhpc3Rvcnk6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFkYVwiO1xyXG59XHJcblxyXG4uaWNvbi1jaXJjbGUtdGhpbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWRiXCI7XHJcbn1cclxuXHJcbi5pY29uLWdlbmRlcmxlc3M6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFkYlwiO1xyXG59XHJcblxyXG4uaWNvbi1oZWFkZXI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFkY1wiO1xyXG59XHJcblxyXG4uaWNvbi1wYXJhZ3JhcGg6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFkZFwiO1xyXG59XHJcblxyXG4uaWNvbi1zbGlkZXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZGVcIjtcclxufVxyXG5cclxuLmljb24tc2hhcmUtYWx0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZTBcIjtcclxufVxyXG5cclxuLmljb24tc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWUxXCI7XHJcbn1cclxuXHJcbi5pY29uLWJvbWI6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlMlwiO1xyXG59XHJcblxyXG4uaWNvbi1mdXRib2wtbzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWUzXCI7XHJcbn1cclxuXHJcbi5pY29uLXNvY2Nlci1iYWxsLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlM1wiO1xyXG59XHJcblxyXG4uaWNvbi10dHk6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlNFwiO1xyXG59XHJcblxyXG4uaWNvbi1iaW5vY3VsYXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZTVcIjtcclxufVxyXG5cclxuLmljb24tcGx1ZzpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWU2XCI7XHJcbn1cclxuXHJcbi5pY29uLXNsaWRlc2hhcmU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlN1wiO1xyXG59XHJcblxyXG4uaWNvbi10d2l0Y2g6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlOFwiO1xyXG59XHJcblxyXG4uaWNvbi15ZWxwOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZTlcIjtcclxufVxyXG5cclxuLmljb24tbmV3c3BhcGVyLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlYVwiO1xyXG59XHJcblxyXG4uaWNvbi13aWZpOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZWJcIjtcclxufVxyXG5cclxuLmljb24tY2FsY3VsYXRvcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWVjXCI7XHJcbn1cclxuXHJcbi5pY29uLXBheXBhbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWVkXCI7XHJcbn1cclxuXHJcbi5pY29uLWdvb2dsZS13YWxsZXQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFlZVwiO1xyXG59XHJcblxyXG4uaWNvbi1jYy12aXNhOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZjBcIjtcclxufVxyXG5cclxuLmljb24tY2MtbWFzdGVyY2FyZDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWYxXCI7XHJcbn1cclxuXHJcbi5pY29uLWNjLWRpc2NvdmVyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZjJcIjtcclxufVxyXG5cclxuLmljb24tY2MtYW1leDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWYzXCI7XHJcbn1cclxuXHJcbi5pY29uLWNjLXBheXBhbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWY0XCI7XHJcbn1cclxuXHJcbi5pY29uLWNjLXN0cmlwZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWY1XCI7XHJcbn1cclxuXHJcbi5pY29uLWJlbGwtc2xhc2g6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFmNlwiO1xyXG59XHJcblxyXG4uaWNvbi1iZWxsLXNsYXNoLW86YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFmN1wiO1xyXG59XHJcblxyXG4uaWNvbi10cmFzaDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWY4XCI7XHJcbn1cclxuXHJcbi5pY29uLWNvcHlyaWdodDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWY5XCI7XHJcbn1cclxuXHJcbi5pY29uLWF0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZmFcIjtcclxufVxyXG5cclxuLmljb24tZXllZHJvcHBlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWZiXCI7XHJcbn1cclxuXHJcbi5pY29uLXBhaW50LWJydXNoOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYxZmNcIjtcclxufVxyXG5cclxuLmljb24tYmlydGhkYXktY2FrZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMWZkXCI7XHJcbn1cclxuXHJcbi5pY29uLWFyZWEtY2hhcnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjFmZVwiO1xyXG59XHJcblxyXG4uaWNvbi1waWUtY2hhcnQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIwMFwiO1xyXG59XHJcblxyXG4uaWNvbi1saW5lLWNoYXJ0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMDFcIjtcclxufVxyXG5cclxuLmljb24tbGFzdGZtOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMDJcIjtcclxufVxyXG5cclxuLmljb24tbGFzdGZtLXNxdWFyZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjAzXCI7XHJcbn1cclxuXHJcbi5pY29uLXRvZ2dsZS1vZmY6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIwNFwiO1xyXG59XHJcblxyXG4uaWNvbi10b2dnbGUtb246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIwNVwiO1xyXG59XHJcblxyXG4uaWNvbi1iaWN5Y2xlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMDZcIjtcclxufVxyXG5cclxuLmljb24tYnVzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMDdcIjtcclxufVxyXG5cclxuLmljb24taW94aG9zdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjA4XCI7XHJcbn1cclxuXHJcbi5pY29uLWFuZ2VsbGlzdDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjA5XCI7XHJcbn1cclxuXHJcbi5pY29uLWNjOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMGFcIjtcclxufVxyXG5cclxuLmljb24taWxzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMGJcIjtcclxufVxyXG5cclxuLmljb24tc2hla2VsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMGJcIjtcclxufVxyXG5cclxuLmljb24tc2hlcWVsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMGJcIjtcclxufVxyXG5cclxuLmljb24tbWVhbnBhdGg6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIwY1wiO1xyXG59XHJcblxyXG4uaWNvbi1idXlzZWxsYWRzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMGRcIjtcclxufVxyXG5cclxuLmljb24tY29ubmVjdGRldmVsb3A6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIwZVwiO1xyXG59XHJcblxyXG4uaWNvbi1kYXNoY3ViZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjEwXCI7XHJcbn1cclxuXHJcbi5pY29uLWZvcnVtYmVlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMTFcIjtcclxufVxyXG5cclxuLmljb24tbGVhbnB1YjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjEyXCI7XHJcbn1cclxuXHJcbi5pY29uLXNlbGxzeTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjEzXCI7XHJcbn1cclxuXHJcbi5pY29uLXNoaXJ0c2luYnVsazpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjE0XCI7XHJcbn1cclxuXHJcbi5pY29uLXNpbXBseWJ1aWx0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMTVcIjtcclxufVxyXG5cclxuLmljb24tc2t5YXRsYXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIxNlwiO1xyXG59XHJcblxyXG4uaWNvbi1jYXJ0LXBsdXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIxN1wiO1xyXG59XHJcblxyXG4uaWNvbi1jYXJ0LWFycm93LWRvd246YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIxOFwiO1xyXG59XHJcblxyXG4uaWNvbi1kaWFtb25kOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMTlcIjtcclxufVxyXG5cclxuLmljb24tc2hpcDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjFhXCI7XHJcbn1cclxuXHJcbi5pY29uLXVzZXItc2VjcmV0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMWJcIjtcclxufVxyXG5cclxuLmljb24tbW90b3JjeWNsZTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjFjXCI7XHJcbn1cclxuXHJcbi5pY29uLXN0cmVldC12aWV3OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMWRcIjtcclxufVxyXG5cclxuLmljb24taGVhcnRiZWF0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMWVcIjtcclxufVxyXG5cclxuLmljb24tdmVudXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIyMVwiO1xyXG59XHJcblxyXG4uaWNvbi1tYXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMjJcIjtcclxufVxyXG5cclxuLmljb24tbWVyY3VyeTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjIzXCI7XHJcbn1cclxuXHJcbi5pY29uLXRyYW5zZ2VuZGVyOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMjRcIjtcclxufVxyXG5cclxuLmljb24tdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMjVcIjtcclxufVxyXG5cclxuLmljb24tdmVudXMtZG91YmxlOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMjZcIjtcclxufVxyXG5cclxuLmljb24tbWFycy1kb3VibGU6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIyN1wiO1xyXG59XHJcblxyXG4uaWNvbi12ZW51cy1tYXJzOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMjhcIjtcclxufVxyXG5cclxuLmljb24tbWFycy1zdHJva2U6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIyOVwiO1xyXG59XHJcblxyXG4uaWNvbi1tYXJzLXN0cm9rZS12OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMmFcIjtcclxufVxyXG5cclxuLmljb24tbWFycy1zdHJva2UtaDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjJiXCI7XHJcbn1cclxuXHJcbi5pY29uLW5ldXRlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjJjXCI7XHJcbn1cclxuXHJcbi5pY29uLWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGYyMzBcIjtcclxufVxyXG5cclxuLmljb24tcGludGVyZXN0LXA6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIzMVwiO1xyXG59XHJcblxyXG4uaWNvbi13aGF0c2FwcDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjMyXCI7XHJcbn1cclxuXHJcbi5pY29uLXNlcnZlcjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjMzXCI7XHJcbn1cclxuXHJcbi5pY29uLXVzZXItcGx1czpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjM0XCI7XHJcbn1cclxuXHJcbi5pY29uLXVzZXItdGltZXM6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIzNVwiO1xyXG59XHJcblxyXG4uaWNvbi1iZWQ6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIzNlwiO1xyXG59XHJcblxyXG4uaWNvbi1ob3RlbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjM2XCI7XHJcbn1cclxuXHJcbi5pY29uLXZpYWNvaW46YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZjIzN1wiO1xyXG59XHJcblxyXG4uaWNvbi10cmFpbjpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjM4XCI7XHJcbn1cclxuXHJcbi5pY29uLXN1YndheTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjM5XCI7XHJcbn1cclxuXHJcbi5pY29uLW1lZGl1bTpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6IFwiXFxmMjNhXCI7XHJcbn1cclxuXHJcblxyXG5cclxuLyogQ2hyb21lIGhhY2s6IFNWRyBpcyByZW5kZXJlZCBtb3JlIHNtb290aCBpbiBXaW5kb3p6ZS4gMTAwJSBtYWdpYywgdW5jb21tZW50IGlmIHlvdSBuZWVkIGl0LiAqL1xyXG4vKiBOb3RlLCB0aGF0IHdpbGwgYnJlYWsgaGludGluZyEgSW4gb3RoZXIgT1MtZXMgZm9udCB3aWxsIGJlIG5vdCBhcyBzaGFycCBhcyBpdCBjb3VsZCBiZSAqL1xyXG4vKlxyXG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApIHtcclxuICBAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnYnJhbmRvbl9pY29ucyc7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udC9icmFuZG9uX2ljb25zLnN2Zz81NTM2MzM3MSNicmFuZG9uX2ljb25zJykgZm9ybWF0KCdzdmcnKTtcclxuICB9XHJcbn1cclxuKi9cclxuXHJcbi8vIFtjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsIFtjbGFzcyo9XCIgaWNvbi1cIl06YmVmb3JlIHtcclxuLy8gICAgIGZvbnQtZmFtaWx5OiBcImJyYW5kb25faWNvbnNcIjtcclxuLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuLy8gICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbi8vICAgICBzcGVhazogbm9uZTtcclxuLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8gICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcclxuLy8gICAgIHdpZHRoOiAxZW07XHJcbi8vICAgICBtYXJnaW4tcmlnaHQ6IC4yZW07XHJcbi8vICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbi8vICAgICAvKiBvcGFjaXR5OiAuODtcclxuLy8gICAgIC8qIEZvciBzYWZldHkgLSByZXNldCBwYXJlbnQgc3R5bGVzLCB0aGF0IGNhbiBicmVhayBnbHlwaCBjb2Rlc1xyXG4vLyAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XHJcbi8vICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuLy8gICAgIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwXHJcbi8vICAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4vLyAgICAgLyogQW5pbWF0aW9uIGNlbnRlciBjb21wZW5zYXRpb24gLSBtYXJnaW5zIHNob3VsZCBiZSBzeW1tZXRyaWNcclxuLy8gICAgIC8qIHJlbW92ZSBpZiBub3QgbmVlZGVkXHJcbi8vICAgICBtYXJnaW4tbGVmdDogLjJlbTtcclxuLy8gICAgIC8qIHlvdSBjYW4gYmUgbW9yZSBjb21mb3J0YWJsZSB3aXRoIGluY3JlYXNlZCBpY29ucyBzaXplXHJcbi8vICAgICAvKiBmb250LXNpemU6IDEyMCU7XHJcbi8vICAgICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdFxyXG4vLyAgICAgLyogdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4zKTtcclxuLy8gfSIsIi5zb2NpYWxidG4ge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3Nwcml0ZXNoZWV0LXNvY2lhbC5wbmcnKTtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHR3aWR0aDogNDhweDtcclxuXHRoZWlnaHQ6IDQ4cHg7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuXHQmLnR3aXR0ZXJfd2hpdGUge1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtMXB4O1xyXG5cdH1cclxuXHJcblx0Ji5saW5rZWRpbl93aGl0ZSB7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXB4IC01MXB4O1xyXG5cdH1cclxuXHJcblx0Ji50d2l0dGVyX2dyZXkge1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtMTAxcHg7XHJcblx0fVxyXG5cclxuXHQmLmxpbmtlZGluX2dyZXkge1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtMTUxcHg7XHJcblx0fVxyXG5cclxuXHQmLmZhY2Vib29rX2dyZXkge1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTFweCAtMjAxcHg7XHJcblx0fVxyXG5cclxuXHQmLmdvb2dsZV9ncmV5IHtcclxuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xcHggLTI1MXB4O1xyXG5cdH1cclxufVxyXG5cclxuLmJ0bi1ncm91cCB7XHJcblx0QGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKHBhZGRpbmctdG9wLCAxNXB4KTtcclxuXHRAaW5jbHVkZSByZXNwb25zaXZlLXNwYWNpbmcocGFkZGluZy1ib3R0b20sIDVweCk7XHJcblx0XHJcblx0LmJ0biB7XHJcblx0XHRAaW5jbHVkZSByZXNwb25zaXZlLXNwYWNpbmcobWFyZ2luLXJpZ2h0LCAxMHB4KTtcclxuXHRcdEBpbmNsdWRlIHJlc3BvbnNpdmUtc3BhY2luZyhtYXJnaW4tYm90dG9tLCAxMHB4KTtcclxuXHR9XHJcbn1cclxuXHJcbi5idG4ge1xyXG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oYm94LXNoYWRvdyAyNTBtcyk7XHJcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDNweCk7XHJcblx0Ly9AaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDBweCAwcHggMHB4IDBweCByZ2JhKCRibGFjaywgMC43KSk7XHJcblxyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRwYWRkaW5nOiAxMHB4IDM1cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdGJvcmRlcjogbm9uZTtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICY6aG92ZXIsICY6YWN0aXZlLCAmOmZvY3VzIHtcclxuICAgIFx0Ly9AaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDBweCAwcHggM3B4IDBweCByZ2JhKCRibGFjaywgMC43KSk7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRicmFuZC1wcmltYXJ5LCA1JSk7XHJcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdH1cclxufVxyXG5cclxuLmJ0bnMtaW5saW5lIHtcclxuXHRAaW5jbHVkZSB0YWJsZWZ5KDcuNXB4KTtcclxufVxyXG5cclxuLmJ0bi1iYWNrIHtcclxuXHRtYXJnaW4tYm90dG9tOiAkZ3V0dGVyO1xyXG5cclxuXHQuaWNvbiB7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdFx0bWFyZ2luLXRvcDogLTFweDtcclxuXHR9XHJcbn0iLCIvLyBCb2R5XHJcbmh0bWwge1xyXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxufVxyXG5cclxucCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIC8vZm9udC13ZWlnaHQ6ICR3ZWlnaHQtbm9ybWFsOyAvLyBBcHBlYXJpbmcgcXVpdGUgYm9sZCBvbiBteSBjb21wdXRlclxyXG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtdGhpbjtcclxuICAgIC8vQGluY2x1ZGUgYWRqdXN0LWZvbnQtc2l6ZS10bygxOHB4KTtcclxuICAgIFxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5hLCAubGluayB7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3I7XHJcbiAgICAvL3RleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIEBpbmNsdWRlIHRhYi1mb2N1cztcclxuICAgIH1cclxufVxyXG5cclxuLmxpbmstZGFyayB7XHJcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgICAgIC8vdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmIsIC5ib2xkIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LWJvbGQ7XHJcbn1cclxuXHJcbi50aGluIHtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LXRoaW47XHJcbn1cclxuXHJcbi50aGlubmVzdCB7XHJcbiAgICBmb250LXdlaWdodDogJHdlaWdodC10aGlubmVzdDtcclxufVxyXG5cclxuXHJcbi8vICMgSGVhZGluZ3NcclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XHJcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWhlYWRpbmc7XHJcbiAgICBmb250LXdlaWdodDogJHdlaWdodC1ub3JtYWw7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG5oMSwgLmgxIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzNnB4KTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LXRoaW5uZXN0O1xyXG4gICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xyXG59XHJcblxyXG5oMiwgLmgyIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNHB4KTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LXRoaW5uZXN0O1xyXG59XHJcblxyXG5oMywgLmgzIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcclxuICAgIC8vZm9udC13ZWlnaHQ6ICR3ZWlnaHQtdGhpbm5lc3Q7XHJcbn1cclxuXHJcbmg0LCAuaDQge1xyXG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuaDUsIC5oNSB7XHJcbn1cclxuXHJcbmg2LCAuaDYge1xyXG59XHJcblxyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCAuaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHsgLy8gT3ZlcnJpZGUgdGhlIG1hcmdpbiB3ZSBnZXQuLi4gYSBiaXQgaGFja3ksIGJ1dCBtZWhcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbn1cclxuXHJcblxyXG4vLyBDbGFzc2VzXHJcbi51cHBlcmNhc2Uge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLmhpZ2hsaWdodCB7XHJcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XHJcbn1cclxuXHJcbi5oaWdobGlnaHRlZCB7XHJcbiAgICAvL2NvbG9yOiAkYnJhbmQtcHJpbWFyeTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LWJvbGQ7XHJcbn1cclxuXHJcbi5zdWJiZWQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufSIsIkBpbXBvcnQgXCIvc2NyaXB0cy9saWJzL293bENhcm91c2VsL293bC5jYXJvdXNlbC5jc3NcIjtcclxuLy9AaW1wb3J0IFwiL3NjcmlwdHMvbGlicy9vd2xDYXJvdXNlbC9vd2wudHJhbnNpdGlvbnMuY3NzXCI7XHJcblxyXG4vKlxyXG4qICAgT3dsIENhcm91c2VsIE93bCBEZW1vIFRoZW1lIFxyXG4qICAgdjEuMy4zXHJcbiovXHJcblxyXG4ub3dsLWNvbnRyb2xzIHtcclxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIG1hcmdpbi10b3A6IC01MHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxldCkge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC02MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEJ1dHRvbnNcclxuICAgIC5vd2wtbmF2IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gICAgICAgIC5vd2wtbmV4dCwgLm93bC1wcmV2IHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHpvb206IDE7XHJcbiAgICAgICAgICAgICpkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgIC8vbWFyZ2luOiAwIDEwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRhYmxldCkge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMDBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtMTBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vd2wtcHJldiB7XHJcbiAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuY2xpY2thYmxlIC5vd2wtYnV0dG9ucyBkaXY6aG92ZXIge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEb3RzXHJcbiAgICAub3dsLWRvdHMge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XHJcblxyXG4gICAgICAgIC5vd2wtZG90IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB6b29tOiAxO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gICAgICAgICAgICAqZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiA1cHggNHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5hY3RpdmUgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYnJhbmQtcHJpbWFyeTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLm93bC1pdGVtIHtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgJi5sb2FkaW5nIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiAxNTBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3NjcmlwdHMvbGlicy9vd2xDYXJvdXNlbC9BamF4TG9hZGVyLmdpZikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5vd2wtY2Fyb3VzZWwsIC5oZXJvLWJsb2NrIC5jb250YWluLCAuaGVyby1ibG9jayAuaXRlbSwgLm93bC13cmFwcGVyLW91dGVyLCAub3dsLXdyYXBwZXIsIC5vd2wtc3RhZ2UsIC5vd2wtc3RhZ2Utb3V0ZXIsIC5vd2wtaXRlbSB7IC8vIFdlIG5lZWQgMTAwJSBoZWlnaHRcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLm93bC1jYXJvdXNlbCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgXHJcbiAgICAuYm9keSB7XHJcbiAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcclxuICAgIH1cclxufVxyXG5cclxuLm93bC1jYXJvdXNlbCAuYWN0aXZlIHtcclxuICAgIC5ib2R5IHtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlLWluKTtcclxuICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xyXG4gICAgfVxyXG59XHJcblxyXG4ub3dsLWNhcm91c2VsLnRyYW5zaXRpb25pbmcsIC5vd2wtY2Fyb3VzZWwudHJhbnNpdGlvbmluZyAuYWN0aXZlIHtcclxuICAgIC5ib2R5IHtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlLW91dCk7XHJcbiAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcclxuICAgIH1cclxufSIsIkBtaXhpbiBlbmNpcmNsZSgkc2l6ZTogODVweCkge1xyXG5cdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNTAlKTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0d2lkdGg6ICRzaXplO1xyXG5cdGhlaWdodDogJHNpemU7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdGxpbmUtaGVpZ2h0OiAkc2l6ZTtcclxuXHJcblx0Lmljb24ge1xyXG5cdFx0bGluZS1oZWlnaHQ6ICRzaXplIC0gNDsgLy8gSnVzdCBidW1wIGl0IHVwIGEgYml0Li4uXHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gZW5jaXJjbGUtZG91YmxlKCRkaXN0YW5jZTogOHB4KSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1hcmdpbjogJGRpc3RhbmNlO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDUwJSk7XHJcblx0XHRjb250ZW50OiBcIiBcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogLSAkZGlzdGFuY2U7XHJcblx0XHRib3R0b206IC0gJGRpc3RhbmNlO1xyXG5cdFx0bGVmdDogLSAkZGlzdGFuY2U7XHJcblx0XHRyaWdodDogLSAkZGlzdGFuY2U7XHJcblx0XHRib3JkZXItd2lkdGg6ICRkaXN0YW5jZS8yO1xyXG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBlbmNpcmNsZS1jb2xvcigkY29sb3I6ICR3aGl0ZSkge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3I7XHJcblx0fVxyXG59XHJcblxyXG4uZW5jaXJjbGVkIHtcclxuXHRAaW5jbHVkZSBlbmNpcmNsZSgpO1xyXG5cdEBpbmNsdWRlIGVuY2lyY2xlLWNvbG9yKCk7XHJcbn1cclxuLmVuY2lyY2xlZC1kb3VibGVkIHtcclxuXHRAaW5jbHVkZSBlbmNpcmNsZS1kb3VibGUoKTtcclxufVxyXG4uZW5jaXJjbGVkLWdyYXkge1xyXG5cdEBpbmNsdWRlIGVuY2lyY2xlLWNvbG9yKCRncmF5LWxpZ2h0ZXIpO1xyXG59XHJcbi5lbmNpcmNsZWQtd2hpdGUge1xyXG5cdEBpbmNsdWRlIGVuY2lyY2xlLWNvbG9yKCR3aGl0ZSk7XHJcbn1cclxuXHJcbi5lbmNpcmNsZWQtc29jaWFsIHtcclxuICAgIEBpbmNsdWRlIGVuY2lyY2xlKDQwcHgpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDIxcHg7XHJcblxyXG5cdC5pY29uIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi10d2l0dGVyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29uLWxpbmtlZGluIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi1mYWNlYm9vayB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbi1nb29nbGUtcGx1cyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgIH1cclxufSIsIi8vIFRyeWluZyB0byBtYWtlIGl0IHdvcmsgd2l0aCB0aGUgYnJlYWtwb2ludCB0aGluZyBmb3IgdGhlIGJlbmVmaXQgb2YgSUU4Li4uXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1vYmlsZSkge1xyXG4gICAgLmhpZGRlbi1tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoJHR3ZWVuKSB7XHJcbiAgICAuaGlkZGVuLW1vYmlsZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICAuaGlkZGVuLXR3ZWVuIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZXQpIHtcclxuICAgIC5oaWRkZW4tdHdlZW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gICAgLmhpZGRlbi10YWJsZXQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQoJGRlc2t0b3ApIHtcclxuICAgIC5oaWRkZW4tdGFibGV0IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIC5oaWRkZW4tZGVza3RvcCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludCgkZGVza3RvcC1sKSB7XHJcbiAgICAuaGlkZGVuLWRlc2t0b3Age1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gICAgLmhpZGRlbi1kZXNrdG9wLWwge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuIiwiLm1vZGFsIHtcclxuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMjUwbXMpO1xyXG5cdEBpbmNsdWRlIG9wYWNpdHkoMCk7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHR0b3A6IDA7XHJcblx0cmlnaHQ6IDA7XHJcblx0Ym90dG9tOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdHotaW5kZXg6IDk5OTtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG5cdCYuYWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIG9wYWNpdHkoMSk7XHJcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG5cclxuXHRcdC5tb2RhbC1jb250ZW50IHtcclxuXHRcdFx0bWFyZ2luLXRvcDogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5tb2RhbC1iYWNrZ3JvdW5kIHtcclxuXHRcdEBpbmNsdWRlIG9wYWNpdHkoMC43KTtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuXHRcdC8vYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xyXG5cdH1cclxuXHJcblx0Lm1vZGFsLWlubmVyIHtcclxuXHRcdEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdC8vdG9wOiAyMCU7XHJcblx0XHR3aWR0aDogYXV0bztcclxuXHRcdFxyXG5cdFx0bGVmdDogJHBhZGRpbmc7XHJcblx0XHRyaWdodDogJHBhZGRpbmc7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0fVxyXG5cclxuXHQubW9kYWwtY29udGVudCB7XHJcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG1hcmdpbi10b3AgMTAwbXMpO1xyXG5cdFx0QGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKCk7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRtYXJnaW4tdG9wOiAtNDBweDtcclxuXHRcdG1heC13aWR0aDogNzAwcHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuXHRcdGN1cnNvcjogYXV0bztcclxuXHR9XHJcbn0iLCIuYm94IHtcclxuXHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDVweCk7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICRncmF5LWxpZ2h0ZXI7XHJcblx0cGFkZGluZzogMjBweDsvLyRwYWRkaW5nO1xyXG5cclxuXHQmLmdyYXkge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHRlc3Q7XHJcblx0fVxyXG59IiwiLm5hdmJhci13cmFwcGVyIHtcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0cmlnaHQ6IDA7XHJcblx0ei1pbmRleDogMTA7XHJcblxyXG5cdGEge1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdH1cclxuXHJcblx0Lm5hdmJhciB7XHJcblx0XHRAaW5jbHVkZSB0YWJsZWZ5KCk7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWJnO1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblx0XHRwYWRkaW5nOiAkZ3V0dGVyO1xyXG5cdH1cclxuXHJcblx0LmxvZ29zLXdyYXBwZXIge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblxyXG5cdFx0aDIge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMTZweDtcclxuXHRcdH1cclxuXHJcblx0XHQubG9nb3Mge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcblx0XHR9XHJcblxyXG5cdFx0LmxvZ29zLWlubmVyIHtcclxuXHRcdFx0QGluY2x1ZGUgdGFibGVmeSg1cHgsIGJvdHRvbSk7XHJcblx0XHR9XHJcblxyXG5cdFx0LmxvZ28td3JhcHBlciB7XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmxvZ28ge1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6IDQwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zZWFyY2gtd3JhcHBlciB7XHJcblx0XHRtaW4td2lkdGg6IDMzMHB4O1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRkZXNrdG9wKSB7XHJcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5tZW51LXdyYXBwZXIge1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcblx0XHQucHJvZmlsZS1waWMge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogLTFweDtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5tZW51LWljb24ge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6IDEycHggMTJweDtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHRlcjtcclxuXHRcdFx0Y29sb3I6ICR0ZXh0LWNvbG9yO1xyXG5cdFx0XHRtaW4td2lkdGg6IDQycHg7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0Zm9udC1zaXplOiAxOXB4O1xyXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JheTtcclxuXHJcblx0XHRcdCY6aG92ZXIsICY6Zm9jdXMge1xyXG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5pY29uLW5hdmljb246YmVmb3JlIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtM3B4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5saW5rcyB7XHJcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDEwMG1zKTtcclxuXHRcdFx0QGluY2x1ZGUgb3BhY2l0eSgwKTtcclxuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAtMjBweDtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0b3A6IDEwMCU7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcclxuXHJcblx0XHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBvcGFjaXR5KDEpO1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzogJGd1dHRlci8yICRndXR0ZXI7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblx0XHRcdFx0Y29sb3I6ICR0ZXh0LWNvbG9yO1xyXG5cclxuXHRcdFx0XHQmLmFjdGl2ZSwgJjpob3ZlciB7XHJcblx0XHRcdFx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XHJcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLmZvb3Rlci1tYWluIHtcclxuXHRAaW5jbHVkZSB0YWJsZWZ5O1xyXG5cdHBhZGRpbmctdG9wOiA2MHB4O1xyXG5cdHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcclxuXHJcblx0LmJvZHkge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cclxuXHQubG9nby13cmFwcGVyIHtcclxuXHRcdC5sb2dvIHtcclxuXHRcdFx0bWF4LWhlaWdodDogMzZweDtcclxuXHRcdH1cclxuXHR9XHJcbn0iLCIuc2lkZWJhciB7XHJcblx0LmJveCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAkcGFkZGluZztcclxuXHR9XHJcblxyXG5cdC5oNCB7XHJcblx0XHRmb250LXdlaWdodDogJHdlaWdodC10aGlubmVzdDtcclxuXHR9XHJcbn0iLCIubG9hZGluZy13cmFwcGVyIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5sb2FkaW5nIHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGJvdHRvbTogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdHJpZ2h0OiAwO1xyXG5cclxuXHQubG9hZGluZy1iYWNrZ3JvdW5kIHtcclxuXHRcdEBpbmNsdWRlIG9wYWNpdHkoMC4zKTtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuXHR9XHJcblxyXG5cdC5sb2FkaW5nLWNvbnRlbnQge1xyXG5cdFx0QGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdH1cclxufVxyXG5cclxuLmxvYWRpbmctaW5maW5pdGUge1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxufSIsIi8vXHJcbi8vIEJhc2ljIHByaW50IHN0eWxlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL2Nzcy9tYWluLmNzc1xyXG5cclxuXHJcbi5wcmludG9ubHkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuQG1lZGlhIHByaW50IHtcclxuICAgICoge1xyXG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcclxuICAgICAgICAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAucG9zdC5ib3gge1xyXG4gICAgICAuYm9keSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYSxcclxuICAgIGE6dmlzaXRlZCB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcbiAgICAvKmFbaHJlZl06YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xyXG4gICAgfVxyXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcclxuICAgIH0qL1xyXG4gICAgLy8gRG9uJ3Qgc2hvdyBsaW5rcyBmb3IgaW1hZ2VzLCBvciBqYXZhc2NyaXB0L2ludGVybmFsIGxpbmtzXHJcbiAgICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIsXHJcbiAgICBhW2hyZWZePVwiI1wiXTphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgIH1cclxuICAgIHByZSxcclxuICAgIGJsb2NrcXVvdGUge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XHJcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xyXG4gICAgfVxyXG4gICAgdGhlYWQge1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcclxuICAgICAgICAvLyBoNWJwLmNvbS90XHJcblxyXG4gICAgfVxyXG4gICAgdHIsXHJcbiAgICBpbWcge1xyXG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBwLFxyXG4gICAgaDIsXHJcbiAgICBoMyB7XHJcbiAgICAgICAgb3JwaGFuczogMztcclxuICAgICAgICB3aWRvd3M6IDM7XHJcbiAgICB9XHJcbiAgICBoMixcclxuICAgIGgzIHtcclxuICAgICAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcclxuICAgIH1cclxuICAgIHNlbGVjdCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBib2R5IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC50aW1lcy1ibG9jayB7XHJcbiAgICAgICAgLmNvbnRyb2xzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLXdyYXBwZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAubmV3cG9zdC1ibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmludC1ibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmludG9ubHkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcbiIsIi5ib2R5LWJsb2NrIHtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgLm5hdiB7XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgIFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdHdlZW4pIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJ8XCI7XHJcbiAgICAgICAgICAgIFx0cG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBcdGxlZnQ6IC0ycHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIubG9naW4tYmxvY2sge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKHBhZGRpbmctbGVmdCk7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXNwYWNpbmcocGFkZGluZy1yaWdodCk7XHJcbiAgICBtYXgtd2lkdGg6IDY5MHB4O1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG5cclxuICAgIC5sb2dvLXdyYXBwZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgLmxvZ28ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS13cmFwcGVyIHtcclxuICAgICAgICBtYXJnaW46ICRwYWRkaW5nIDA7XHJcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0d2Vlbikge1xyXG4gICAgICAgICAgICBtYXJnaW46ICRwYWRkaW5nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhlYWRpbmcge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRwYWRkaW5nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZvcm0ge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM3MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XHJcblxyXG4gICAgICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAub3B0aW9ucyB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIC5mb3Jnb3Qge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zcGFjaW5nKG1hcmdpbi1ib3R0b20pO1xyXG4gICAgICAgICAgICAgICAgQGV4dGVuZCAubGluay1kYXJrO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYnRuIHtcclxuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTY1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuZGFzaGJvYXJkLWJsb2NrIHtcclxuXHRtYXgtd2lkdGg6IDgwMHB4O1xyXG5cdG1hcmdpbjogYXV0bztcclxuXHRwYWRkaW5nOiAwICRndXR0ZXI7XHJcblxyXG5cdGhlYWRlciB7XHJcblx0XHRAaW5jbHVkZSB0YWJsZWZ5O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcclxuXHR9XHJcblxyXG5cdC5oZWFkZXItd3JhcHBlciB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHJcblx0XHQuaGVhZGVyIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zb3J0LXdyYXBwZXIge1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcblx0XHRsYWJlbCwgc2VsZWN0IHtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxhYmVsIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAkZ3V0dGVyO1xyXG5cdFx0fVxyXG5cclxuXHRcdHNlbGVjdCB7XHJcblx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmV4ZXJjaXNlcyB7XHJcblx0XHQuZXhlcmNpc2Uge1xyXG5cdFx0XHRAaW5jbHVkZSB0YWJsZWZ5KDApO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkcGFkZGluZztcclxuXHJcblx0XHRcdCYuYm94IHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY29udGVudCB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmc7XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcclxuXHJcblx0XHRcdFx0LmJvZHkge1xyXG5cdFx0XHRcdFx0Y29sb3I6ICRncmF5LWRhcmtlcjtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQuZGV0YWlscyB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XHJcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuXHRcdFx0XHRcdHRoLCB0ZCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA4cHg7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0dGgge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogJGd1dHRlcjtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC5pY29uIHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDNweDtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuY29udHJvbHMge1xyXG5cdFx0XHRcdG1pbi13aWR0aDogMTg1cHg7XHJcblxyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LmNvbnRyb2wge1xyXG5cdFx0XHRcdFx0QGV4dGVuZCAubGluay1kYXJrO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAzMHB4IDQ2cHg7XHJcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0XHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQuaWNvbiB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQubGFiZWwge1xyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBmb250LXNpemUoMTZweCk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0KyAuY29udHJvbCB7XHJcblx0XHRcdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JheS1saWdodGVyO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufSIsIi5leGVyY2lzZS1ibG9jayB7XHJcblx0XHJcbn0iLCIuY2hhbm5lbHMtYmxvY2sge1xyXG5cdC5jaGFubmVsIHtcclxuXHRcdG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XHJcblxyXG5cdFx0YSB7XHJcblx0XHRcdEBleHRlbmQgLmxpbmstZGFyaztcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDZweDtcclxuXHJcblx0XHRcdCY6Zm9jdXMgeyAvLyBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IG9uIHVuc2VsZWN0LCBpdCBsb3NlcyBpdCdzIGNvbG9yLi4uXHJcblx0XHRcdFx0Y29sb3I6ICR0ZXh0LWNvbG9yO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuaGVhZGluZyB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHRcdH1cclxuXHJcblx0XHQuc2VsZWN0ZWQge1xyXG5cdFx0XHRAZXh0ZW5kIC5pY29uLWNoZXZyb24tcmlnaHQ7XHJcblxyXG5cdFx0XHQmLCAmOmZvY3VzIHtcclxuXHRcdFx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBjdXN0b20taWNvbjtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdGNvbG9yOiAkYnJhbmQtcHJpbWFyeS1kYXJrO1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IC0zcHg7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn0iLCIubmV3LXBvc3QtYmxvY2sge1xyXG5cdG1hcmdpbi1ib3R0b206ICRwYWRkaW5nO1xyXG5cclxuICAgIC5jaGFyYWN0ZXItY291bnQge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAuY2hhcmFjdGVyLWxlbmd0aC10d2l0dGVyXHJcbiAgICB7XHJcbiAgICAgICAgY29sb3I6ICM0ZjRmNGY7XHJcbiAgICB9XHJcblxyXG4gICAgLmNoYXJhY3Rlci1sZW5ndGgtZmFjZWJvb2tcclxuICAgIHtcclxuICAgICAgICBjb2xvcjogcmVkO1xyXG4gICAgfVxyXG5cclxuXHQuaGVhZGVyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblxyXG5cdFx0JiA+ICoge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGNvbG9yOiAkZ3JheS1kYXJrO1xyXG5cdFx0XHRtYXJnaW46IDAgM3B4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAycHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuZmllbGQtaW1hZ2Uge1xyXG5cdFx0cGFkZGluZzogOHB4O1xyXG5cdH1cclxuXHJcblx0LmZpZWxkLWdyb3VwIHtcclxuXHRcdEBpbmNsdWRlIHRhYmxlZnkoNy41cHgpO1xyXG5cdFx0bWFyZ2luLXRvcDogJGd1dHRlcjtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cclxuXHQuZXhwYW5kZWQge1xyXG5cdFx0LmZpZWxkLW1lc3NhZ2Uge1xyXG5cdFx0XHRtaW4taGVpZ2h0OiAxNDBweDtcclxuXHRcdH1cclxuXHRcdC5maWVsZC1ncm91cCB7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxufSIsIi5wb3N0cy1ibG9jayB7XHJcbiAgICAucG9zdCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHBhZGRpbmc7XHJcblxyXG4gICAgICAgICYuZXhwYW5kZWQge1xyXG4gICAgICAgICAgICAuaWNvbi1lbGxpcHNpcy1oIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkcmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaGVhZGVyLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0YWJsZWZ5KDcuNXB4KTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcclxuXHJcbiAgICAgICAgICAgIC5pbWFnZSB7XHJcbiAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmhlYWRlciwgLmRldGFpbHMge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuaGVhZGVyIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5kZXRhaWxzIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtdGhpbjtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgLmRldGFpbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5hdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRncmF5LWRhcms7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICArIC5kZXRhaWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGN1c3RvbS1pY29uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuaWNvbi1jaXJjbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJvZHkge1xyXG4gICAgICAgICAgICBjb2xvcjogJGdyYXktZGFya2VyO1xyXG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmltYWdlIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAvL21heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudmlkZW8ge1xyXG4gICAgICAgICAgICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcclxuICAgICAgICB9IFxyXG5cclxuICAgICAgICAub3JpZ2luYWwtcG9zdCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XHJcblxyXG4gICAgICAgICAgICAmLmV4cGFuZGFibGUge1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmhlYWRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHdlaWdodC1ub3JtYWw7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5ib2R5IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMnB4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmFjdGlvbnMge1xyXG4gICAgICAgICAgICAuYWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRndXR0ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdyYXktZGFyaztcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyYXktZGFya2VyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYuc2VsZWN0ZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc3VjY2Vzcy1jb2xvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5pY29uLXN0YXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi50aW1lcy1ibG9jayB7XHJcblx0cGFkZGluZzogJGd1dHRlcjtcclxuXHJcblx0LnRpbWUtd3JhcHBlciB7XHJcblx0XHRAaW5jbHVkZSB0YWJsZWZ5KDNweCk7XHJcblx0XHQvL21hcmdpbi1ib3R0b206ICRndXR0ZXI7XHJcblxyXG5cdFx0Lmljb24tY2xvY2stbyB7XHJcblx0XHRcdGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcclxuXHRcdFx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC50aW1lcyB7XHJcblx0XHRcdC50aW1lIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNvbnRyb2xzIHtcclxuXHRcdC5pY29uIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDVweDtcclxuXHRcdH1cclxuXHJcblx0XHQuaWNvbi1wYXVzZSwgLmljb24tcGxheSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHRcdH1cclxuXHJcblx0XHQuYnRuIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdG1hcmdpbi10b3A6ICRndXR0ZXI7XHJcblx0XHRcdHBhZGRpbmctbGVmdDogJGd1dHRlcjtcclxuXHRcdFx0cGFkZGluZy1yaWdodDogJGd1dHRlcjtcclxuXHRcdH1cclxuXHJcblx0XHQuYnRucy1pbmxpbmUge1xyXG5cdFx0XHQvL21hcmdpbi10b3A6ICRndXR0ZXI7XHJcblx0XHR9XHJcblxyXG5cdFx0LmJ0bi1zdGFydCB7XHJcblx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0LmJ0bi1zdGFydCwgLmJ0bi1jb250aW51ZSB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzdWNjZXNzO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5idG4tcGF1c2Uge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybmluZztcclxuXHRcdH1cclxuXHJcblx0XHQuYnRuLXN0b3Age1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mbztcclxuXHRcdH1cclxuXHJcblx0XHQuYnRuLWFiYW5kb24ge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFuZ2VyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5zdGF0dXMge1xyXG5cdFx0Ji1pZGxlIHtcclxuXHRcdFx0LmJ0bi1wYXVzZSwgLmJ0bi1jb250aW51ZSwgLmJ0bi1zdG9wLCAuYnRuLWFiYW5kb24ge1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLXN0YXJ0ZWQge1xyXG5cdFx0XHQuYnRuLXN0YXJ0LCAuYnRuLWNvbnRpbnVlIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji1wYXVzZWQge1xyXG5cdFx0XHQuYnRuLXN0YXJ0LCAuYnRuLXBhdXNlIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji1jb21wbGV0ZSB7XHJcblx0XHRcdC5idG4tc3RhcnQsIC5idG4tcGF1c2UsIC5idG4tY29udGludWUsIC5idG4tc3RvcCwgLmJ0bi1hYmFuZG9uIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji1hYmFuZG9uZWQge1xyXG5cdFx0XHQuYnRuLXN0YXJ0LCAuYnRuLXBhdXNlLCAuYnRuLWNvbnRpbnVlLCAuYnRuLXN0b3AsIC5idG4tYWJhbmRvbiB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufSIsIi50cmVuZHMtYmxvY2sge1xyXG5cdGEge1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnRyZW5kcyB7XHJcblx0XHQudHJlbmQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLnByb2ZpbGUtYmxvY2sge1xyXG5cdC5pbWFnZSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbi1ib3R0b206ICRndXR0ZXI7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcblxyXG5cdC5oZWFkZXItd3JhcHBlciB7XHJcblx0XHQuaGVhZGVyIHtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6ICR3ZWlnaHQtbm9ybWFsO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5kZXRhaWxzIHtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC1zaXplKDE4cHgpO1xyXG5cdFx0XHRjb2xvcjogJGdyYXktZGFyaztcclxuXHRcdFx0Zm9udC13ZWlnaHQ6ICR3ZWlnaHQtdGhpbjtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ib2R5IHtcclxuXHRcdCYsIHAge1xyXG5cdFx0XHRjb2xvcjogJGdyYXktZGFya2VyO1xyXG5cdFx0XHRmb250LXdlaWdodDogJHdlaWdodC1ub3JtYWw7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLmV4ZXJjaXNlLXRlbXBsYXRlIHtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZXQpIHtcclxuXHRcdEBpbmNsdWRlIHRhYmxlZnkoJGd1dHRlciwgdG9wKTtcclxuXHR9XHJcblxyXG5cdC5zaWRlYmFyLXdyYXBwZXIge1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGV0KSB7XHJcblx0XHRcdHdpZHRoOiBzcGFuKDMpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYubGVmdHNpZGUge1xyXG5cdFx0XHQuc2lkZWJhciB7XHJcblx0XHRcdFx0QGluY2x1ZGUgdGFibGVmeSgkZ3V0dGVyLCB0b3ApO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZXQpIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHVudGFibGVmeSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQubW9iaWxlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGV0KSB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5yaWdodHNpZGUge1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGV0KSB7XHJcblx0XHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNvbnRlbnQtd3JhcHBlciB7XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZXQpIHtcclxuXHRcdFx0d2lkdGg6IHNwYW4oNik7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLy8gV2hlcmUgd2Uga2VlcCBhbGwgdGhlICFpbXBvcnRhbnQgQ1NTLi4uIG11Y2ggc2hhbWUuLi4iXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sQ0FBUCxrQkFBTztBcUVIUCxPQUFPLENBQVAsK0NBQU87QUxJUCxBQUFBLENBQUMsQ0FBQztFQUNFLFVBQVUsRUFBRSxVQUFXLEdBQzFCOztBQUlELEFBQ0ksVUFETSxDQUNOLENBQUMsQ0FBQztFQUNFLFVBQVUsRUFBRSxVQUFXLEdBQzFCOztBQUhMLEFBSUssVUFKSyxDQUlOLENBQUMsQUFBQSxPQUFPO0FBSlosQUFLSyxVQUxLLENBS04sQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNKLFVBQVUsRUFBRSxVQUFXLEdBQzFCOztBQUdMLEFBQVEsT0FBRCxDQUFDLENBQUMsQ0FBQztFQUNOLFVBQVUsRUFBRSxVQUFXLEdBQzFCOztBQUVELEFBQ0ksSUFEQSxDQUNBLENBQUMsQ0FBQztFQUNFLFVBQVUsRUFBRSxVQUFXLEdBQzFCOztBQUhMLEFBSUssSUFKRCxDQUlBLENBQUMsQUFBQSxPQUFPO0FBSlosQUFLSyxJQUxELENBS0EsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNKLFVBQVUsRUFBRSxVQUFXLEdBQzFCOztBQUlMLEFBQUEsSUFBSSxDQUFDO0VBQ0QsMkJBQTJCLEVBQUUsV0FBSTtFQUVqQyxLQUFLLEVINkJNLE9BQU8sR0c1QnJCOztBQUVELEFBQUEsSUFBSSxDQUFDO0VBQ0QsV0FBVyxFQUFFLEtBQU07RUFDbkIsZ0JBQWdCLEVIOEJKLE9BQU87RUc3Qm5CLGdCQUFnQixFSCtEQSxvQ0FBRztFRzlEbkIsbUJBQW1CLEVBQUUsTUFBTztFQUM1QixN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 */