<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/* -------------------------------------------------------------
  Sass CSS3 Mixins! The Cross-Browser CSS3 Sass Library
  By: Matthieu Aussaguel, http://www.mynameismatthieu.com, @matthieu_tweets

  List of CSS3 Sass Mixins File to be @imported and @included as you need

  The purpose of this library is to facilitate the use of CSS3 on different browsers avoiding HARD TO READ and NEVER
  ENDING css files

  note: All CSS3 Properties are being supported by Safari 5
  more info: http://www.findmebyip.com/litmus/#css3-properties

------------------------------------------------------------- */
/*
* Scut, a collection of Sass utilities
* to ease and improve our implementations of common style-code patterns.
* v1.4.0
* Docs at http://davidtheclark.github.io/scut
*/
@import "https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css";
.main__footer__nav {
  position: absolute;
  left: 50%;
  margin-left: auto;
  margin-right: auto;
  transform: translateX(-50%);
}

.main__header__logo a, .main__footer__bg_1, .main__footer__bg_2, .main__footer__inner, .main__overlay, .main__overlay__close svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* -------------------------------------------------------------
  Sass CSS3 Mixins! The Cross-Browser CSS3 Sass Library
  By: Matthieu Aussaguel, http://www.mynameismatthieu.com, @matthieu_tweets

  List of CSS3 Sass Mixins File to be @imported and @included as you need

  The purpose of this library is to facilitate the use of CSS3 on different browsers avoiding HARD TO READ and NEVER
  ENDING css files

  note: All CSS3 Properties are being supported by Safari 5
  more info: http://www.findmebyip.com/litmus/#css3-properties

------------------------------------------------------------- */
@font-face {
  font-family: 'TradeGothic LT';
  src: url("../font/TradeGothicLT-Oblique.eot");
  src: url("../font/TradeGothicLT-Oblique.eot?#iefix") format("embedded-opentype"), url("../font/TradeGothicLT-Oblique.woff") format("woff"), url("../font/TradeGothicLT-Oblique.ttf") format("truetype");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'TradeGothic LT';
  src: url("../font/TradeGothicLT-BoldOblique.eot");
  src: url("../font/TradeGothicLT-BoldOblique.eot?#iefix") format("embedded-opentype"), url("../font/TradeGothicLT-BoldOblique.woff") format("woff"), url("../font/TradeGothicLT-BoldOblique.ttf") format("truetype");
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: 'TradeGothic LT';
  src: url("../font/TradeGothicLT.eot");
  src: url("../font/TradeGothicLT.eot?#iefix") format("embedded-opentype"), url("../font/TradeGothicLT.woff") format("woff"), url("../font/TradeGothicLT.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'TradeGothic LT';
  src: url("../font/TradeGothicLT-Bold.eot");
  src: url("../font/TradeGothicLT-Bold.eot?#iefix") format("embedded-opentype"), url("../font/TradeGothicLT-Bold.woff") format("woff"), url("../font/TradeGothicLT-Bold.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'TradeGothic LT';
  src: url("../font/TradeGothicLT-Light.eot");
  src: url("../font/TradeGothicLT-Light.eot?#iefix") format("embedded-opentype"), url("../font/TradeGothicLT-Light.woff") format("woff"), url("../font/TradeGothicLT-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'TradeGothic LT';
  src: url("../font/TradeGothicLT-LightOblique.eot");
  src: url("../font/TradeGothicLT-LightOblique.eot?#iefix") format("embedded-opentype"), url("../font/TradeGothicLT-LightOblique.woff") format("woff"), url("../font/TradeGothicLT-LightOblique.ttf") format("truetype");
  font-weight: 300;
  font-style: italic;
}

html {
  overflow-x: hidden;
  overflow-y: scroll;
  font-size: 8px;
  color: #000;
  background-color: #FFF;
}

@media (min-width: 768px) {
  html {
    height: 100%;
  }
}

@media (max-width: 767px) {
  html {
    font-size: 10px;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  html {
    font-size: 9px;
  }
}

@media (min-width: 1024px) {
  html.highPPI {
    font-size: 10px;
  }
}

@media (min-width: 1024px) {
  html.superPPI {
    font-size: 10px;
  }
}

html[nobg] html {
  background-color: transparent !important;
}

html[noscroll] {
  overflow: hidden;
  height: 100%;
}

html.menu_open {
  height: 100%;
  overflow: hidden;
}

a:focus, a:hover {
  color: inherit;
  text-decoration: inherit;
}

body {
  color: #000;
  background-color: #FFF;
}

html[nobg] body {
  background-color: transparent !important;
}

@media (min-width: 768px) {
  body {
    height: 100%;
  }
}

body .debug {
  display: none;
}

body[debug] .debug {
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
  z-index: 9999;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: red;
  filter: alpha(opacity=5);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=5)";
  -webkit-opacity: 0.05;
  -khtml-opacity: 0.05;
  -moz-opacity: 0.05;
  -ms-opacity: 0.05;
  -o-opacity: 0.05;
  opacity: 0.05;
  margin: 0 auto;
  pointer-events: none;
}

body[debug] .debug:after {
  content: " ";
  display: block;
  clear: both;
}

body[debug] .debug &gt; div {
  width: 5.78231%;
  float: left;
  margin-left: 1.27551%;
  margin-right: 1.27551%;
  height: 100%;
  background: orange;
}

@media (max-width: 767px) {
  body[debug] .debug &gt; div {
    width: 4.32099%;
    float: left;
    margin-left: 6.17284%;
    margin-right: 6.17284%;
  }
}

html[noscroll] body {
  overflow-x: hidden;
  overflow-y: scroll;
  height: 100%;
  -webkit-overflow-scrolling: touch;
}

html.menu_open body {
  height: 100%;
  overflow: hidden;
}

.c-corner-label {
  font-family: 'Quicksand', sans-serif;
  font-weight: 400;
  top: 0;
  position: relative;
  cursor: pointer;
  display: block;
  text-decoration: none;
  text-align: center;
  transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: 34;
  line-height: 0;
  font-size: 0;
  background: linear-gradient(299deg, #B8860B, #ff8800, #ff5700, #446e32);
  background-size: 400% 400%;
  -webkit-animation: AnimationName 30s ease infinite;
  animation: AnimationName 30s ease infinite;
}

@media (max-width: 1023px) {
  .c-corner-label {
    width: 100%;
    padding: 5px 0;
    z-index: 32;
  }
  .c-corner-label br {
    display: none;
  }
}

@media (min-width: 1024px) {
  .c-corner-label {
    position: fixed;
    right: 0;
    box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
    padding: 300px 0 10px;
    transform: rotate(45deg) translate(20px, -104%);
    transform-origin: 50% 50% 0;
    width: 400px;
  }
}

.c-corner-label__text {
  position: relative;
  font-size: 11px;
  color: #eee;
  text-align: center;
  line-height: 1.4em;
  width: 100px;
  display: block;
  margin: 0 auto;
  transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

@media (max-width: 1023px) {
  .c-corner-label__text {
    width: auto;
  }
}

@media (min-width: 1024px) {
  .c-corner-label:hover {
    transform: rotate(45deg) translate(20px, -95%);
    padding-bottom: 20px;
  }
  .c-corner-label:hover .c-corner-label__text {
    font-size: 13px;
  }
}

@-webkit-keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

@keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.main__top_styles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 29;
}

.main__top_styles:after {
  /*content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: rem(4);
    border-top: rem(4 )solid #b92034;
    border-bottom: rem(4 )solid #5a9e41;

    z-index: z($zLayout, "top-styles-shadow");*/
}

@media (max-width: 767px) {
  .main__top_styles:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 16.5rem;
    filter: alpha(opacity=40);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
    -webkit-opacity: 0.4;
    -khtml-opacity: 0.4;
    -moz-opacity: 0.4;
    -ms-opacity: 0.4;
    -o-opacity: 0.4;
    opacity: 0.4;
    transition: opacity 400ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    /*background: rgba(0,0,0,$main_top_style_opacity);*/
    background: -webkit-gradient(left top, left bottom, color-stop(0%, black), color-stop(0%, black), color-stop(100%, rgba(0, 0, 0, 0)));
    background: linear-gradient(to bottom, black 0%, black 0%, rgba(0, 0, 0, 0) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#000000', GradientType=0);
    z-index: 30;
  }
}

@media (max-width: 767px) and (min-width: 768px) and (max-width: 1023px) {
  .main__top_styles:before {
    height: 6rem;
    filter: alpha(opacity=20);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
    -webkit-opacity: 0.2;
    -khtml-opacity: 0.2;
    -moz-opacity: 0.2;
    -ms-opacity: 0.2;
    -o-opacity: 0.2;
    opacity: 0.2;
  }
}

html.scrolled .main__top_styles:before {
  filter: alpha(opacity=90);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
  -webkit-opacity: 0.9;
  -khtml-opacity: 0.9;
  -moz-opacity: 0.9;
  -ms-opacity: 0.9;
  -o-opacity: 0.9;
  opacity: 0.9;
  z-index: 32;
}

.main__header {
  z-index: 33;
  font-family: "Quicksand", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  text-transform: uppercase;
  color: #6f655c;
  margin: 0 auto;
  width: 100%;
  height: 6.2rem;
  left: 0;
  right: 0;
  top: 5.8rem;
  position: absolute;
  transition: top 300ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

@media (max-width: 767px) {
  .main__header {
    max-width: 88%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__header:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 768px) {
  .main__header {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__header:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__header {
    top: 5.5rem;
  }
}

@media (max-width: 767px) {
  .main__header {
    top: 4.3rem;
  }
}

@media (min-width: 1024px) {
  .main__header {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__header:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1366px) {
  .main__header {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__header:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1441px) {
  .main__header {
    max-width: 1372px;
    margin-left: auto;
    margin-right: auto;
  }
  .main__header:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 768px) {
  html.scrolled .main__header {
    top: 3.5rem;
  }
}

.main__header__logo {
  overflow: hidden;
  position: relative;
  padding: 0;
  margin: 0;
  width: 13rem;
  position: absolute;
  top: 0;
  left: 0;
  margin-top: -1.1rem;
}

.main__header__logo:before {
  content: "";
  display: block;
  height: 0;
  padding-top: 52.88889%;
}

html:not(.touch) .main__header__logo {
  transition: transform 200ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

html:not(.touch) .main__header__logo:hover {
  -khtml-transform: scale(1.05, 1.05) rotate(-5deg);
  transform: scale(1.05, 1.05) rotate(-5deg);
}

.main__header__logo a {
  text-indent: 102%;
  white-space: nowrap;
  overflow: hidden;
  padding: 0;
  background: transparent url(../img/logo-maserformaggi.png) no-repeat scroll 50% 50%/100% auto;
}

@media (max-width: 767px) {
  .main__header__logo {
    width: 7.9rem;
    margin-top: 0;
  }
  html.menu_open .main__header__logo {
    position: fixed;
    top: 4.3rem;
    left: 6%;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__header__logo {
    width: 12rem;
    margin-top: -1rem;
  }
}

@media (max-width: 767px) {
  .main_nav {
    position: fixed;
    height: 100%;
    left: 0;
    top: 0;
    width: 100%;
    transition: transform 600ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
    -khtml-transform: translateX(130%);
    transform: translateX(130%);
    background-color: #e5ddc5;
  }
  .main_nav:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 0.4rem;
    border-top: 0.4rem solid #b92034;
    border-bottom: 0.4rem solid #5a9e41;
  }
  html[nobg] .main_nav {
    background-color: transparent !important;
  }
  html.menu_open .main_nav {
    -khtml-transform: translateX(0);
    transform: translateX(0);
  }
}

@media (max-width: 767px) {
  .main_nav__inner {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    right: 0;
    height: auto;
    width: 100%;
    transform: translateY(-50%);
    top: 50%;
  }
}

.main_nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
  left: 50%;
  -khtml-transform: translateX(-50%);
  transform: translateX(-50%);
  display: inline-block;
  position: absolute;
  top: 1.3rem;
}

@media (max-width: 767px) {
  .main_nav ul {
    position: relative;
    width: 100%;
    left: auto;
    -khtml-transform: translateX(0);
    transform: translateX(0);
    display: block;
    margin: 0 0 2.5rem;
    transition: all 400ms cubic-bezier(0.645, 0.045, 0.355, 1) 200ms;
    filter: alpha(opacity=0);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    -webkit-opacity: 0;
    -khtml-opacity: 0;
    -moz-opacity: 0;
    -ms-opacity: 0;
    -o-opacity: 0;
    opacity: 0;
  }
  html.menu_open .main_nav ul {
    filter: alpha(opacity=100);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    -webkit-opacity: 1;
    -khtml-opacity: 1;
    -moz-opacity: 1;
    -ms-opacity: 1;
    -o-opacity: 1;
    opacity: 1;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main_nav ul {
    top: 0.6rem;
  }
}

.main_nav ul li {
  display: inline-block;
  margin: 0 2.7rem 0 0;
}

@media (max-width: 767px) {
  .main_nav ul li {
    display: block;
    margin: 0 0 2.5rem;
    text-align: center;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main_nav ul li {
    margin: 0 2.5rem 0 0;
  }
}

.main_nav ul li:last-child {
  margin-right: 0;
}

@media (max-width: 767px) {
  .main_nav ul li:last-child {
    margin-bottom: 0;
  }
}

.main_nav ul li ul {
  display: none;
}

@media (max-width: 767px) {
  .main_nav ul li ul {
    display: block;
    top: 0.4rem;
  }
  .main_nav ul li ul li {
    margin: 0 0 0rem;
  }
  .main_nav ul li ul li a {
    font-family: "Quicksand", sans-serif;
    font-size: 1.1rem;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
  }
}

@media (max-width: 767px) and (max-width: 767px) {
  .main_nav ul li ul li a {
    font-family: "EB Garamond", serif;
    font-size: 1.6rem;
    line-height: 1.9;
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
    font-style: italic;
    text-transform: lowercase;
  }
}

.main_nav ul li a {
  color: #ffffff;
  text-decoration: none;
  text-transform: uppercase;
  position: relative;
  font-family: "Quicksand", sans-serif;
  font-size: 1.8rem;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
}

html.page_homepage .main_nav ul li a {
  color: #6f655c;
}

@media (max-width: 767px) {
  .main_nav ul li a {
    color: #6f655c;
  }
}

html:not(.page_homepage) .main_nav ul li a {
  text-shadow: 0px 2px 1px rgba(0, 0, 0, 0.4);
}

html:not(.page_homepage) .main_nav ul li a:after {
  box-shadow: 0px 2px 1px rgba(0, 0, 0, 0.4);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main_nav ul li a {
    font-size: 1.3rem;
  }
}

@media (min-width: 1024px) {
  .main_nav ul li a {
    font-size: 1.8rem;
  }
}

@media (min-width: 1024px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 1024px) and (-webkit-min-device-pixel-ratio: 1.5), (min-width: 1024px) and (min-resolution: 144dpi) {
  .main_nav ul li a {
    font-size: 1.8rem;
  }
}

@media (min-width: 1441px) {
  .main_nav ul li a {
    font-size: 1.8rem;
  }
}

@media (min-width: 1441px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 1441px) and (-webkit-min-device-pixel-ratio: 1.5), (min-width: 1441px) and (min-resolution: 144dpi) {
  .main_nav ul li a {
    font-size: 2rem;
  }
}

.main_nav ul li a:after {
  content: '';
  display: block;
  position: absolute;
  left: 0;
  bottom: -0.2rem;
  height: 0.2rem;
  width: 0;
  background: #ffffff;
  filter: alpha(opacity=0);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  -webkit-opacity: 0;
  -khtml-opacity: 0;
  -moz-opacity: 0;
  -ms-opacity: 0;
  -o-opacity: 0;
  opacity: 0;
}

html.page_homepage .main_nav ul li a:after {
  background: #6f655c;
}

@media (min-width: 1024px) {
  .main_nav ul li a {
    transition: all 200ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  }
  .main_nav ul li a:after {
    transition: all 200ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
  }
  .main_nav ul li a:hover:after {
    filter: alpha(opacity=100);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    -webkit-opacity: 1;
    -khtml-opacity: 1;
    -moz-opacity: 1;
    -ms-opacity: 1;
    -o-opacity: 1;
    opacity: 1;
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .main_nav ul li.active a:after {
    filter: alpha(opacity=100);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    -webkit-opacity: 1;
    -khtml-opacity: 1;
    -moz-opacity: 1;
    -ms-opacity: 1;
    -o-opacity: 1;
    opacity: 1;
    width: 100%;
  }
}

.main_nav__icon {
  display: none;
}

@media (max-width: 767px) {
  .main_nav__icon {
    position: absolute;
    right: 0;
    top: 0.5rem;
  }
  .main_nav__icon svg {
    fill: #e5ddc5;
    width: 100%;
    height: 100%;
  }
  html.page_homepage .main_nav__icon svg {
    fill: #3d3833;
  }
  .main_nav__icon.hamburger {
    width: 2.8rem;
    height: 2.3rem;
    display: block;
  }
  .main_nav__icon.hamburger svg {
    fill: #e5ddc5;
  }
  html.menu_open .main_nav__icon.hamburger {
    display: none;
  }
  .main_nav__icon.close {
    width: 3rem;
    height: 2.3rem;
    filter: alpha(opacity=100);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    -webkit-opacity: 1;
    -khtml-opacity: 1;
    -moz-opacity: 1;
    -ms-opacity: 1;
    -o-opacity: 1;
    opacity: 1;
  }
  .main_nav__icon.close svg {
    fill: #6f655c !important;
  }
  html.menu_open .main_nav__icon.close {
    display: block;
    position: fixed;
    top: 4.8rem;
    right: 6%;
  }
}

.lang_change {
  color: #e5ddc5;
  text-decoration: none;
  text-transform: uppercase;
  font-family: "Quicksand", sans-serif;
  font-size: 1.3rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  font-weight: bold;
  overflow: hidden;
  position: relative;
  display: block;
  position: absolute;
  top: 0rem;
  right: -0.9rem;
  width: 10rem;
}

html.page_homepage .lang_change {
  color: #6f655c;
}

.lang_change:before {
  content: "";
  display: block;
  height: 0;
  padding-top: 54.78261%;
}

@media (max-width: 767px) {
  .lang_change {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    margin: 0 auto;
  }
  html.menu_open .lang_change {
    color: #6f655c;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .lang_change {
    width: 9rem;
    font-size: 1.2rem;
  }
}

@media (min-width: 1441px) {
  .lang_change {
    font-size: 1.5rem;
    width: 13.7rem;
    top: -1rem;
  }
}

.lang_change svg {
  fill: #e5ddc5;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  filter: alpha(opacity=30);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
  -webkit-opacity: 0.3;
  -khtml-opacity: 0.3;
  -moz-opacity: 0.3;
  -ms-opacity: 0.3;
  -o-opacity: 0.3;
  opacity: 0.3;
}

html.page_homepage .lang_change svg {
  fill: #6f655c;
}

@media (max-width: 767px) {
  html.menu_open .lang_change svg {
    fill: #6f655c;
  }
}

.lang_change &gt; span {
  position: absolute;
  left: 0;
  text-align: center;
  display: block;
  right: 0;
  width: 102%;
  position: absolute;
  top: 50%;
  margin-top: auto;
  margin-bottom: auto;
  transform: translateY(-50%);
  text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.4);
}

html:not(.touch) .lang_change svg {
  transition: all 200ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

html:not(.touch) .lang_change:hover svg {
  -khtml-transform: scale(1.07);
  transform: scale(1.07);
}

.main__footer {
  z-index: 28;
  position: absolute !important;
  width: 100%;
  height: 50rem;
  bottom: 0;
  overflow: hidden;
  transition: all 400ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer {
    height: 40rem;
    overflow: hidden;
  }
}

@media (max-width: 767px) {
  .main__footer {
    width: 100%;
    height: 35.9rem;
    overflow: hidden;
  }
  html.menu_open .main__footer {
    display: none;
  }
}

.main__footer__bg_1 {
  transition: all 950ms cubic-bezier(0.68, -0.55, 0.265, 1.55) 0s;
}

@media (max-width: 767px) {
  .main__footer__bg_1 {
    overflow-x: hidden;
    overflow-y: visible;
    position: absolute;
    left: 50%;
    margin-left: auto;
    margin-right: auto;
    transform: translateX(-50%);
    width: 301.662rem;
    left: 100%;
  }
  .main__footer__bg_1 svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 301.662rem;
    height: 56.3rem;
    fill: #253c2b;
  }
  html[nobg] .main__footer__bg_1 svg {
    fill: transparent !important;
  }
  html.page_homepage .main__footer__bg_1 svg {
    fill: #FFF;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__bg_1 {
    overflow-x: hidden;
    overflow-y: visible;
    position: absolute;
    left: 50%;
    margin-left: auto;
    margin-right: auto;
    transform: translateX(-50%);
    width: 224.3767rem;
  }
  .main__footer__bg_1 svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 224.3767rem;
    height: 40rem;
    fill: #af0917;
  }
  html[nobg] .main__footer__bg_1 svg {
    fill: transparent !important;
  }
  html.page_homepage .main__footer__bg_1 svg {
    fill: #FFF;
  }
}

@media (min-width: 1024px) {
  .main__footer__bg_1 {
    overflow-x: hidden;
    overflow-y: visible;
    position: absolute;
    left: 50%;
    margin-left: auto;
    margin-right: auto;
    transform: translateX(-50%);
    width: 300rem;
  }
  .main__footer__bg_1 svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 300rem;
    height: 56.3rem;
    fill: #af0917;
  }
  html[nobg] .main__footer__bg_1 svg {
    fill: transparent !important;
  }
  html.page_homepage .main__footer__bg_1 svg {
    fill: #FFF;
  }
}

.main__footer__bg_2 {
  position: absolute;
  left: 50%;
  margin-left: auto;
  margin-right: auto;
  transform: translateX(-50%);
  transition: all 650ms cubic-bezier(0.68, -0.55, 0.265, 1.55) 0s;
}

@media (min-width: 1024px) {
  .main__footer__bg_2 {
    overflow-x: hidden;
    overflow-y: visible;
    width: 100%;
    height: 56.3rem;
    width: 300rem;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__bg_2 {
    overflow-x: hidden;
    overflow-y: visible;
    width: 100%;
    height: 40rem;
    width: 224.3767rem;
  }
}

@media (max-width: 767px) {
  .main__footer__bg_2 {
    width: 100%;
    height: 100%;
    position: absolute;
    width: 301.662rem;
    left: 100%;
  }
}

.main__footer__bg_2 svg {
  width: 100%;
  height: 100%;
  fill: #af0917;
  position: absolute;
  top: 0;
  left: 0;
  transition: fill 400ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

html[nobg] .main__footer__bg_2 svg {
  fill: transparent !important;
}

@media (max-width: 767px) {
  .main__footer__bg_2 svg.tablet, .main__footer__bg_2 svg.desktop {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .main__footer__bg_2 svg.desktop, .main__footer__bg_2 svg.mobile {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .main__footer__bg_2 svg {
    position: absolute;
    top: auto;
    bottom: 0;
    left: 0;
    width: 301.662rem;
    height: 56.3rem;
    fill: #af0917;
  }
  .main__footer__bg_2 svg.tablet, .main__footer__bg_2 svg.mobile {
    display: none !important;
  }
  .main__footer__bg_2 svg.desktop {
    display: block !important;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__bg_2 svg {
    position: absolute;
    top: auto;
    bottom: 0;
    left: 0;
    width: 224.3767rem;
    height: 40rem;
    fill: #af0917;
  }
  .main__footer__bg_2 svg.tablet, .main__footer__bg_2 svg.mobile {
    display: none !important;
  }
  .main__footer__bg_2 svg.desktop {
    display: block !important;
  }
}

@media (min-width: 1024px) {
  .main__footer__bg_2 svg {
    position: absolute;
    top: auto;
    bottom: 0;
    left: 0;
    width: 300rem;
    height: 56.1rem;
    fill: #af0917;
  }
  .main__footer__bg_2 svg.tablet, .main__footer__bg_2 svg.mobile {
    display: none !important;
  }
  .main__footer__bg_2 svg.desktop {
    display: block !important;
  }
}

.main__footer__inner {
  margin: 0 auto;
  display: block;
  left: 0;
  right: 0;
  top: 15rem;
  height: auto;
}

@media (max-width: 767px) {
  .main__footer__inner {
    max-width: 88%;
    margin-left: auto;
    margin-right: auto;
    height: auto;
    margin-top: 6.5rem;
    position: relative;
    top: 0;
  }
  .main__footer__inner:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__inner {
    top: 10rem;
  }
}

@media (min-width: 768px) {
  .main__footer__inner {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__inner:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1024px) {
  .main__footer__inner {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__inner:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1366px) {
  .main__footer__inner {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__inner:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1441px) {
  .main__footer__inner {
    max-width: 1372px;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__inner:after {
    content: " ";
    display: block;
    clear: both;
  }
}

.main__footer__logo {
  position: absolute;
  left: 0.8rem;
  top: 0;
  width: 9.5rem;
  height: 4.9rem;
  cursor: pointer;
  display: block;
}

.main__footer__logo svg {
  width: 100%;
  fill: #FFF;
}

html:not(.touch) .main__footer__logo {
  transition: all 200ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

html:not(.touch) .main__footer__logo:hover {
  -khtml-transform: scale(1.05, 1.05) rotate(-5deg);
  transform: scale(1.05, 1.05) rotate(-5deg);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__logo {
    left: 0;
  }
}

@media (max-width: 767px) {
  .main__footer__logo {
    position: relative;
    left: auto;
    right: auto;
    margin: 0 auto 3rem;
  }
}

.main__footer__nav {
  top: 0.5rem;
}

@media (min-width: 1024px) {
  .main__footer__nav {
    display: inline-flex;
    position: relative;
    width: auto;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__nav {
    right: 0;
    left: 0;
    -khtml-transform: translateX(0);
    transform: translateX(0);
  }
}

@media (max-width: 767px) {
  .main__footer__nav {
    top: auto;
    left: auto;
    right: auto;
    -khtml-transform: translateX(0);
    transform: translateX(0);
    position: relative;
    display: block;
    width: 100%;
    padding: 1.8rem 0 1.7rem;
  }
  .main__footer__nav:after, .main__footer__nav:before {
    content: '';
    width: 112%;
    left: -6%;
    right: -6%;
    height: 0.1rem;
    background: #FFFFFF;
    filter: alpha(opacity=15);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)";
    -webkit-opacity: 0.15;
    -khtml-opacity: 0.15;
    -moz-opacity: 0.15;
    -ms-opacity: 0.15;
    -o-opacity: 0.15;
    opacity: 0.15;
    top: 0;
    display: block;
    position: absolute;
  }
  .main__footer__nav:after {
    bottom: 0;
    top: auto;
  }
}

.main__footer__nav &gt; ul {
  display: inline-block;
  margin: 0;
  padding: 0;
  color: #FFFFFF;
  vertical-align: top;
}

@media (min-width: 768px) {
  .main__footer__nav &gt; ul {
    display: -moz-inline-flex;
    display: inline-flex;
    -moz-justify-content: center;
    justify-content: center;
    -moz-align-items: flex-start;
    align-items: flex-start;
    flex-flow: row wrap;
    flex-wrap: nowrap;
    float: right;
  }
}

@media (min-width: 1024px) {
  .main__footer__nav &gt; ul {
    display: -moz-flex;
    display: flex;
    display: flex;
    float: none;
  }
}

@media (max-width: 767px) {
  .main__footer__nav &gt; ul {
    display: table;
    width: 100%;
  }
}

.main__footer__nav &gt; ul &gt; li {
  display: inline-block;
  width: 17rem;
  margin: 0 4rem 0 0;
  padding: 0;
  list-style: none;
  vertical-align: top;
}

@media (min-width: 768px) {
  .main__footer__nav &gt; ul &gt; li {
    width: auto;
    max-width: 17rem;
    margin: 0 3rem 0 0;
  }
}

@media (min-width: 1024px) {
  .main__footer__nav &gt; ul &gt; li {
    width: auto;
    max-width: 19.3rem;
    margin: 0 6rem 0 0;
  }
}

@media (max-width: 767px) {
  .main__footer__nav &gt; ul &gt; li {
    margin: 0;
    text-align: center;
    display: table-cell;
    width: 33%;
  }
}

.main__footer__nav &gt; ul &gt; li:last-child {
  margin: 0;
}

@media (max-width: 1023px) {
  .main__footer__nav &gt; ul &gt; li:last-child {
    margin: 0;
  }
}

.main__footer__nav &gt; ul &gt; li p {
  font-family: "Quicksand", sans-serif;
  font-size: 1.1rem;
  line-height: 1.8rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  text-transform: uppercase;
  margin-bottom: 1.7rem;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__nav &gt; ul &gt; li p {
    font-size: 1.1rem;
  }
}

@media (max-width: 767px) {
  .main__footer__nav &gt; ul &gt; li p {
    display: none;
  }
}

.main__footer__nav &gt; ul &gt; li &gt; a {
  font-family: "Quicksand", sans-serif;
  font-size: 1.7rem;
  line-height: 2rem;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  /*@include respond-to("viewport:min-desktop-retina") {
            @include font("oswald", rem(15), rem(18), bold);
          }*/
  text-transform: uppercase;
  color: inherit;
  cursor: default;
  margin-bottom: 1.5rem;
  display: block;
  /*@include respond-to("viewport:min-wide-retina") {
            @include font("oswald", rem(17), rem(20), bold);
          }*/
}

@media (min-width: 1441px) {
  .main__footer__nav &gt; ul &gt; li &gt; a {
    font-family: "Quicksand", sans-serif;
    font-size: 1.9rem;
    line-height: 2.2rem;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__nav &gt; ul &gt; li &gt; a {
    font-family: "Quicksand", sans-serif;
    font-size: 1.3rem;
    line-height: 1.5rem;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
  }
}

@media (max-width: 767px) {
  .main__footer__nav &gt; ul &gt; li &gt; a {
    margin-bottom: 0;
    font-family: "Quicksand", sans-serif;
    font-size: 1.5rem;
    line-height: 1.4rem;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
  }
}

.main__footer__nav &gt; ul &gt; li &gt; ul {
  padding: 0;
  list-style: none;
  margin: 0;
}

@media (min-width: 1024px) {
  .main__footer__nav &gt; ul &gt; li &gt; ul {
    margin: 0.8rem 0 0;
  }
}

@media (max-width: 767px) {
  .main__footer__nav &gt; ul &gt; li &gt; ul {
    display: none;
  }
}

.main__footer__nav &gt; ul &gt; li &gt; ul &gt; li {
  margin: 0;
}

.main__footer__nav &gt; ul &gt; li &gt; ul &gt; li a {
  font-family: "EB Garamond", serif;
  font-size: 1.4rem;
  line-height: 1.9rem;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  font-style: italic;
  /*@include respond-to("viewport:min-desktop-retina") {
                @include font("arial", rem(11.5), rem(17));
              }*/
  color: inherit;
  filter: alpha(opacity=80);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
  -webkit-opacity: 0.8;
  -khtml-opacity: 0.8;
  -moz-opacity: 0.8;
  -ms-opacity: 0.8;
  -o-opacity: 0.8;
  opacity: 0.8;
  cursor: pointer;
  /*@include respond-to("viewport:min-wide-retina") {
                @include font("arial", rem(13), rem(21));
              }*/
}

@media (min-width: 1441px) {
  .main__footer__nav &gt; ul &gt; li &gt; ul &gt; li a {
    font-family: "EB Garamond", serif;
    font-size: 1.4rem;
    line-height: 2.3rem;
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
  }
}

html:not(.touch) .main__footer__nav &gt; ul &gt; li &gt; ul &gt; li a {
  transition: all 200ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

html:not(.touch) .main__footer__nav &gt; ul &gt; li &gt; ul &gt; li a:hover {
  filter: alpha(opacity=100);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  -webkit-opacity: 1;
  -khtml-opacity: 1;
  -moz-opacity: 1;
  -ms-opacity: 1;
  -o-opacity: 1;
  opacity: 1;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__nav &gt; ul &gt; li &gt; ul &gt; li a {
    font-family: "EB Garamond", serif;
    font-size: 1.3rem;
    line-height: 1.4rem;
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
  }
}

.main__footer__certs {
  padding: 0;
  list-style: none;
  margin: 0;
  position: absolute;
  top: 1rem;
  right: 0;
  color: #FFFFFF;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__certs {
    top: 24.7rem;
    height: 3rem;
    overflow: hidden;
  }
}

@media (max-width: 767px) {
  .main__footer__certs {
    position: relative;
    top: auto;
    right: auto;
    margin-top: 3rem;
    padding-bottom: 3.1rem;
    text-align: center;
  }
  .main__footer__certs:after {
    content: '';
    width: 112%;
    left: -6%;
    right: -6%;
    height: 0.1rem;
    background: #FFFFFF;
    filter: alpha(opacity=15);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)";
    -webkit-opacity: 0.15;
    -khtml-opacity: 0.15;
    -moz-opacity: 0.15;
    -ms-opacity: 0.15;
    -o-opacity: 0.15;
    opacity: 0.15;
    top: 0;
    display: block;
    position: absolute;
  }
  .main__footer__certs:after {
    bottom: 0;
    top: auto;
  }
}

.main__footer__certs li {
  display: inline-block;
  vertical-align: top;
  margin: 0 1.3rem 0 0;
  position: relative;
}

.main__footer__certs li:nth-child(3) {
  width: 3.4rem;
  height: 3rem;
  margin: 0;
}

.main__footer__certs li:nth-child(2) {
  width: 4.4rem;
  height: 2.5rem;
}

.main__footer__certs li:nth-child(1) {
  width: 2.4rem;
  height: 3rem;
}

.main__footer__certs li a {
  position: absolute;
  display: block;
  cursor: pointer;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

html:not(.touch) .main__footer__certs li a {
  transition: all 400ms cubic-bezier(0.645, 0.045, 0.355, 1) 0s;
}

html:not(.touch) .main__footer__certs li a:hover {
  -khtml-transform: scale(1.15, 1.15);
  transform: scale(1.15, 1.15);
}

.main__footer__certs li svg {
  fill: currentColor;
  width: 100%;
}

.main__footer__copy {
  filter: alpha(opacity=50);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  -webkit-opacity: 0.5;
  -khtml-opacity: 0.5;
  -moz-opacity: 0.5;
  -ms-opacity: 0.5;
  -o-opacity: 0.5;
  opacity: 0.5;
  font-family: "Quicksand", sans-serif;
  font-size: 1.3rem;
  line-height: 1.8rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  /*@include respond-to("viewport:min-desktop-retina") {
      @include font("arial", rem(11), rem(14));
    }*/
  position: absolute;
  bottom: 5rem;
  width: 100%;
  margin: 0 auto;
  display: block;
  left: 0;
  right: 0;
  top: auto;
  color: #FFFFFF;
}

@media (max-width: 767px) {
  .main__footer__copy {
    max-width: 88%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__copy:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 768px) {
  .main__footer__copy {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__copy:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1024px) {
  .main__footer__copy {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__copy:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1366px) {
  .main__footer__copy {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__copy:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 1441px) {
  .main__footer__copy {
    max-width: 1372px;
    margin-left: auto;
    margin-right: auto;
  }
  .main__footer__copy:after {
    content: " ";
    display: block;
    clear: both;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__footer__copy {
    bottom: 2.2rem;
  }
}

@media (max-width: 767px) {
  .main__footer__copy {
    bottom: auto;
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    transform: none;
    clear: both;
    margin-top: 2rem;
  }
}

.main__footer iframe {
  display: block;
  position: absolute;
  bottom: 18rem;
  right: 0;
  left: 0;
  top: auto;
  margin: 0 auto;
}

@media (min-width: 1024px) {
  .main__footer iframe {
    bottom: 20rem;
  }
}

@media (min-width: 1366px) {
  .main__footer iframe {
    bottom: 0.5rem;
    left: auto;
  }
}

@media (max-width: 767px) {
  .main__footer iframe {
    display: none;
  }
}

@media (max-width: 767px) {
  html.overlay_open .main:first-child {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }
}

.main__overlay {
  z-index: 35;
  transition: all 0ms cubic-bezier(0.645, 0.045, 0.355, 1) -3s;
  transition-delay: -2s;
  color: #6f655c;
  /*&amp;.loaded{
    .main__overlay__bg{
      @include opacity(.5);
    }
    .main__overlay__wrapper{
      left: 50%;
    }
  }*/
}

@media (max-width: 767px) {
  .main__overlay {
    height: auto;
  }
}

.main__overlay.ng-animate {
  transition: all 0ms cubic-bezier(0.645, 0.045, 0.355, 1) -3s;
  transition-delay: -2s;
}

.main__overlay.ng-leave .main__overlay__bg, .main__overlay.ng-leave-active .main__overlay__bg, .main__overlay.closing .main__overlay__bg {
  filter: alpha(opacity=0);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  -webkit-opacity: 0;
  -khtml-opacity: 0;
  -moz-opacity: 0;
  -ms-opacity: 0;
  -o-opacity: 0;
  opacity: 0;
}

.main__overlay.ng-leave .main__overlay__wrapper, .main__overlay.ng-leave-active .main__overlay__wrapper, .main__overlay.closing .main__overlay__wrapper {
  left: 150%;
}

.main__overlay.ng-enter .main__overlay__bg, .main__overlay.ng-enter-active .main__overlay__bg, .main__overlay.ng-move .main__overlay__bg, .main__overlay.ng-move-active .main__overlay__bg {
  filter: alpha(opacity=0);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  -webkit-opacity: 0;
  -khtml-opacity: 0;
  -moz-opacity: 0;
  -ms-opacity: 0;
  -o-opacity: 0;
  opacity: 0;
}

.main__overlay.ng-enter .main__overlay__wrapper, .main__overlay.ng-enter-active .main__overlay__wrapper, .main__overlay.ng-move .main__overlay__wrapper, .main__overlay.ng-move-active .main__overlay__wrapper {
  left: -100%;
}

.main__overlay__bg {
  background: currentColor;
  opacity: .5;
  position: fixed;
  width: 100vw;
  height: 100vh;
  left: 0;
  top: 0;
  transition: all 600ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

.main__overlay__wrapper {
  position: absolute;
  top: 50%;
  margin-top: auto;
  margin-bottom: auto;
  left: 50%;
  margin-left: auto;
  margin-right: auto;
  transform: translate(-50%, -50%);
  background-image: url("../img/sprites/i/overlay-bg.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  overflow: hidden;
  display: block;
  width: 76.5rem;
  height: 60.57rem;
  position: fixed;
  transition: all 600ms cubic-bezier(0.645, 0.045, 0.355, 1);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__overlay__wrapper {
    background-image: url("../img/sprites/i/overlay-bg.png");
    background-repeat: no-repeat;
    background-size: 100% auto;
    overflow: hidden;
    display: block;
    width: 68rem;
    height: 53.84rem;
  }
}

@media (max-width: 767px) {
  .main__overlay__wrapper {
    width: 100%;
    height: auto;
    background: none;
    position: absolute;
    top: 0;
    left: 0;
    -khtml-transform: none;
    transform: none;
    overflow: visible;
  }
}

.main__overlay__inner {
  color: #242424;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 7.3rem 8rem 6.7rem;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main__overlay__inner {
    padding: 5.3rem 4rem 4.7rem;
  }
}

@media (max-width: 767px) {
  .main__overlay__inner {
    max-width: 88%;
    margin-left: auto;
    margin-right: auto;
    padding: 2rem;
    margin: 20px auto;
    position: relative;
    top: auto;
    left: auto;
    height: auto;
    background: #FFF;
  }
  .main__overlay__inner:after {
    content: " ";
    display: block;
    clear: both;
  }
}

.main__overlay__scroll {
  position: relative;
  height: 100%;
  width: 100%;
  overflow: auto;
}

.main__overlay__close {
  display: block;
  width: 2rem;
  height: 2rem;
  position: absolute;
  top: 6.3rem;
  right: 3.8rem;
  color: inherit;
}

.main__overlay__close svg {
  fill: #6f655c;
}

@media (max-width: 767px) {
  .main__overlay__close {
    right: 3rem;
    top: 3rem;
    width: 4rem;
    height: 4rem;
    display: inline-flex;
    align-items: center;
    align-content: center;
    justify-content: center;
  }
  .main__overlay__close svg {
    position: relative;
    width: 1.5rem;
    height: 1.5rem;
  }
}

@media (max-width: 767px) {
  html.overlay_open .main {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

@media (max-width: 767px) {
  html.overlay_open .main__footer {
    position: relative !important;
  }
}

.lity {
  background: white;
}

.lity-image img {
  padding: 4rem;
}

.lity-close, .lity-close:hover, .lity-close:focus, .lity-close:active, .lity-close:visited {
  color: transparent;
  text-shadow: none;
  background: none;
  width: 100%;
  height: 100%;
  font-size: 0;
  line-height: 0;
}

.lity-content:after {
  box-shadow: none !important;
}

.svg-defs {
  position: absolute;
  width: 0;
  height: 0;
}

.main {
  position: relative;
  overflow-x: hidden;
}

html.menu_open .main {
  height: 100%;
  overflow: hidden;
}

.main__section {
  position: relative;
}

@media (min-width: 768px) {
  .main {
    min-height: 100%;
  }
}

.item__btn {
  font-family: "Quicksand", sans-serif;
  font-size: 1.3rem;
  line-height: 1;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  text-transform: uppercase;
  display: inline-block;
  background: #6f655c;
  color: #ffffff;
  text-align: center;
  padding: 19px 43px;
  margin: 0 auto;
  border-radius: 2px;
}

@media (min-width: 768px) {
  .item__btn {
    font-family: "Quicksand", sans-serif;
    font-size: 1.01rem;
    line-height: 1.1rem;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
    padding: 16px 30px;
  }
}

@media (min-width: 1024px) {
  .item__btn {
    font-family: "Quicksand", sans-serif;
    font-size: 1.4rem;
    line-height: 1.4rem;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased;
    padding: 19px 40px;
  }
}

.item__btn:focus {
  color: #FFFFFF;
}

*[ng-click] {
  cursor: pointer;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWNzczMtbWl4aW5zL2NzczMtbWl4aW5zLnNjc3MiLCJsYXlvdXQuY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NjdXQvZGlzdC9fc2N1dC5zY3NzIiwiX2NvbW1vbi5zY3NzIiwibWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiYmFzZS9fZm9udHMuc2NzcyIsImxheW91dC9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19yZW0uc2NzcyIsImJhc2UvX3ZhcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19zcGFuLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3V0dGVycy5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsImhlbHBlcnMvX3ppbmRleC5zY3NzIiwiaGVscGVycy9fcmVtLnNjc3MiLCJtaXhpbnMvX2ZvbnQuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJtaXhpbnMvX2ZsZXhib3guc2NzcyIsImxheW91dC9fb3ZlcmxheS5zY3NzIiwibGF5b3V0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFB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RG9DO0lGckRwQyxrQkVxRG1FO0VUNFlyRTtFVXpjRTtJQUNFLFlBQVk7SUFDWixjQUFjO0lBQ2QsV0FBVztFVjJjZjtBQUNGOztBTTFaSTtFUTJFSjtJQThCSSxXRWhLNkI7RWhCc2QvQjtBQUNGOztBTWhhSTtFUTJFSjtJQWlDSSxXRW5LNkI7RWhCNGQvQjtBQUNGOztBTXRhSTtFUTJFSjtJUHhISSxjQ2lLb0I7SURqS3BCLGlCRXFEb0M7SUZyRHBDLGtCRXFEbUU7RVRxYXJFO0VVbGVFO0lBQ0UsWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0VWb2VmO0FBQ0Y7O0FNbmJJO0VRMkVKO0lQeEhJLGNDd0pvQjtJRHhKcEIsaUJFcURvQztJRnJEcEMsa0JFcURtRTtFVGtickU7RVUvZUU7SUFDRSxZQUFZO0lBQ1osY0FBYztJQUNkLFdBQVc7RVZpZmY7QUFDRjs7QU1oY0k7RVEyRUo7SVB4SEksaUJDK0l1QjtJRC9JdkIsaUJFcURvQztJRnJEcEMsa0JFcURtRTtFVCtickU7RVU1ZkU7SUFDRSxZQUFZO0lBQ1osY0FBYztJQUNkLFdBQVc7RVY4ZmY7QUFDRjs7QU03Y0k7RVFrSUE7SUFDRSxXRTFMMkI7RWhCeWdCL0I7QUFDRjs7QWM1VUU7RWJnekJBLGdCQUFnQjtFQUNoQixrQkFBa0I7RWEveUJoQixVQUFVO0VBQ1YsU0FBUztFQUNULFlFbE02QjtFRm1NN0Isa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsbUJFdE02QjtBaEJzaEJqQzs7QUM4ZEU7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLFNBQVM7RUFDVCxzQkFBZ0M7QUQzZHBDOztBY3RWSTtFZmpMTSxtRUFBYztBQ2doQnhCOztBYy9WSTtFZnJMRCxpREFBNEI7RUFJckIsMENBQWM7QUN5aEJ4Qjs7QWNqWEc7RWI0R0QsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsVUFBVTtFYTdGTiw2RkFBK0Y7QWR1V3JHOztBTWhnQkk7RVF1SUY7SUFzQkksYUVwTjJCO0lGcU4zQixhQUFhO0Vkd1dqQjtFY3RXSTtJ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QixTQUFTO0lBQ1QsU0FBUztJQUNULE9BQU87SUFDUCxhRmxPeUI7SUVtT3pCLGVGbk95QjtJRW9PekIsYUFBcUI7RWxCaWxDM0I7RWtCeHJDQztJQTJHTyx3QkFBd0I7RWxCZ2xDaEM7RWtCM3JDQztJQThHTyx5QkFBeUI7RWxCZ2xDakM7QUFDRjs7QWtCbGtDRTtFQUdFLGNBQWM7RUFDZCxjQUFjO0VBQ2QsT0FBTztFQUNQLFFBQVE7RUFDUixVRmpRNkI7RUVrUTdCLFlBQVk7QWxCbWtDaEI7O0FNOXdDSTtFWW1NRjtJWGhQRSxjQzZMb0I7SUQ3THBCLGlCRXFEb0M7SUZyRHBDLGtCRXFEbUU7SVMwTS9ELFlBQVk7SUFDWixrQkYxUXlCO0lFMlF6QixrQkFBa0I7SUFDbEIsTUFBTTtFbEJva0NaO0VVOTBDRTtJQUNFLFlBQVk7SUFDWixjQUFjO0lBQ2QsV0FBVztFVmcxQ2Y7QUFDRjs7QU0veENJO0VZbU1GO0lBd0JJLFVGbFIyQjtFaEIyMUMvQjtBQUNGOztBTXJ5Q0k7RVltTUY7SVhoUEUsY0NpTG9CO0lEakxwQixpQkVxRG9DO0lGckRwQyxrQkVxRG1FO0VUb3lDckU7RVVqMkNFO0lBQ0UsWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0VWbTJDZjtBQUNGOztBTWx6Q0k7RVltTUY7SVhoUEUsY0NpS29CO0lEaktwQixpQkVxRG9DO0lGckRwQyxrQkVxRG1FO0VUaXpDckU7RVU5MkNFO0lBQ0UsWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0VWZzNDZjtBQUNGOztBTS96Q0k7RVltTUY7SVhoUEUsY0N3Sm9CO0lEeEpwQixpQkVxRG9DO0lGckRwQyxrQkVxRG1FO0VUOHpDckU7RVUzM0NFO0lBQ0UsWUFBWTtJQUNaLGNBQWM7SUFDZCxXQUFXO0VWNjNDZjtBQUNGOztBTTUwQ0k7RVltTUY7SVhoUEUsaUJDK0l1QjtJRC9JdkIsaUJFcURvQztJRnJEcEMsa0JFcURtRTtFVDIwQ3JFO0VVeDRDRTtJQUNFLFlBQVk7SUFDWixjQUFjO0lBQ2QsV0FBVztFVjA0Q2Y7QUFDRjs7QWtCL2xDRTtFQUNFLGtC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O0VZdVJEO0lBc0hTLGFBQWE7RWxCMHJDdkI7QUFDRjs7QWtCanpDRztFRDFURCxvQ1R4Qm1DO0VTMEJqQyxpQkR0QjZCO0VDMkI3QixpQkQzQjZCO0VDK0I3QixpQkN5YW9EO0VEaGFwRCxtQ0FBbUM7RUFDbkMsZ0NBQWdDO0VBQ2hDLDhCQUE4QjtFQUM5QiwyQkFBMkI7RUM4WnJCOztZbEJtc0NFO0VrQmhzQ0YseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxlQUFlO0VBQ2YscUJGL2N1QjtFRWdkdkIsY0FBYztFQUlkOztZbEJnc0NFO0FBQ1o7O0FNOWxESTtFWXVSRDtJRDFURCxvQ1R4Qm1DO0lTMEJqQyxpQkR0QjZCO0lDMkI3QixtQkQzQjZCO0lDK0I3QixpQkNtYnNEO0lEMWF0RCxtQ0FBbUM7SUFDbkMsZ0NBQWdDO0lBQ2hDLDhCQUE4QjtJQUM5QiwyQkFBMkI7RWpCc25EN0I7QUFDRjs7QU0zbURJO0VZdVJEO0lEMVRELG9DVHhCbUM7SVMwQmpDLGlCRHRCNkI7SUMyQjdCLG1CRDNCNkI7SUMrQjdCLGlCQ3lic0Q7SURoYnRELG1DQUFtQztJQUNuQyxnQ0FBZ0M7SUFDaEMsOEJBQThCO0lBQzlCLDJCQUEyQjtFakJtb0Q3QjtBQUNGOztBTXhuREk7RVl1UkQ7SUE2SVMsZ0JBQWdCO0lEdmMxQixvQ1R4Qm1DO0lTMEJqQyxpQkR0QjZCO0lDMkI3QixtQkQzQjZCO0lDK0I3QixpQkM2YnNEO0lEcGJ0RCxtQ0FBbUM7SUFDbkMsZ0NBQWdDO0lBQ2hDLDhCQUE4QjtJQUM5QiwyQkFBMkI7RWpCaXBEN0I7QUFDRjs7QWtCLzJDRztFQWtKTyxVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLFNBQVM7QWxCaXVDbkI7O0FNNW9ESTtFWXVSRDtJQXNKUyxrQkFBa0I7RWxCb3VDNUI7QUFDRjs7QU1scERJO0VZdVJEO0lBeUpTLGFBQWE7RWxCdXVDdkI7QUFDRjs7QWtCajRDRztFQTRKUyxTQUFTO0FsQnl1Q3JCOztBa0JyNENHO0VEMVRELGlDVHZCK0I7RVN5QjdCLGlCRHRCNkI7RUMyQjdCLG1CRDNCNkI7RUMr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RUMyQjdCLGNJRGdDO0VKS2hDLGlCSUxzQztFSmN0QyxtQ0FBbUM7RUFDbkMsZ0NBQWdDO0VBQ2hDLDhCQUE4QjtFQUM5QiwyQkFBMkI7RUloQjdCLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDckIsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGNBQWM7RXRCWE4sa0JBQWM7QUN1ekV4Qjs7QU10eEVJO0VlOUJKO0lKTEUsb0NUeEJtQztJUzBCakMsa0JEdEI2QjtJQzJCN0IsbUJEM0I2QjtJQytCN0IsaUJJS2dEO0lKSWhELG1DQUFtQztJQUNuQyxnQ0FBZ0M7SUFDaEMsOEJBQThCO0lBQzlCLDJCQUEyQjtJSU4zQixrQkFBa0I7RXJCcXpFcEI7QUFDRjs7QU1weUVJO0VlOUJKO0lKTEUsb0NUeEJtQztJUzBCakMsaUJEdEI2QjtJQzJCN0IsbUJEM0I2QjtJQytCN0IsaUJJUzhDO0lKQTlDLG1DQUFtQztJQUNuQyxnQ0FBZ0M7SUFDaEMsOEJBQThCO0lBQzlCLDJCQUEyQjtJSUYzQixrQkFBa0I7RXJCK3pFcEI7QUFDRjs7QXFCaDFFQTtFQW1CSSxjQUFjO0FyQmkwRWxCOztBcUI3ekVBO0VBQ0UsZUFBZTtBckJnMEVqQiIsImZpbGUiOiJsYXlvdXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTYXNzIENTUzMgTWl4aW5zISBUaGUgQ3Jvc3MtQnJvd3NlciBDU1MzIFNhc3MgTGlicmFyeVxuICBCeTogTWF0dGhpZXUgQXVzc2FndWVsLCBodHRwOi8vd3d3Lm15bmFtZWlzbWF0dGhpZXUuY29tLCBAbWF0dGhpZXVfdHdlZXRzXG5cbiAgTGlzdCBvZiBDU1MzIFNhc3MgTWl4aW5zIEZpbGUgdG8gYmUgQGltcG9ydGVkIGFuZCBAaW5jbHVkZWQgYXMgeW91IG5lZWRcblxuICBUaGUgcHVycG9zZSBvZiB0aGlzIGxpYnJhcnkgaXMgdG8gZmFjaWxpdGF0ZSB0aGUgdXNlIG9mIENTUzMgb24gZGlmZmVyZW50IGJyb3dzZXJzIGF2b2lkaW5nIEhBUkQgVE8gUkVBRCBhbmQgTkVWRVJcbiAgRU5ESU5HIGNzcyBmaWxlc1xuXG4gIG5vdGU6IEFsbCBDU1MzIFByb3BlcnRpZXMgYXJlIGJlaW5nIHN1cHBvcnRlZCBieSBTYWZhcmkgNVxuICBtb3JlIGluZm86IGh0dHA6Ly93d3cuZmluZG1lYnlpcC5jb20vbGl0bXVzLyNjc3MzLXByb3BlcnRpZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cbi8vLy9cbi8vLyBAYXV0aG9yIE1hdHRoaWV1IEF1c3NhZ3VlbFxuLy8vIEBncm91cCBzYXNzLWNzczMtbWl4aW5zXG4vLy8vXG5cblxuLy8vIEFkZHMgYSBicm93c2VyIHByZWZpeCB0byB0aGUgcHJvcGVydHlcbi8vLyBAcGFyYW0geyp9ICRwcm9wZXJ0eSBQcm9wZXJ0eVxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIFZhbHVlXG5cbkBtaXhpbiBjc3MzLXByZWZpeCgkcHJvcGVydHksICR2YWx1ZSkge1xuICAtd2Via2l0LSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICAgLWtodG1sLSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICAgICAtbW96LSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICAgICAgLW1zLSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICAgICAgIC1vLSN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xuICAgICAgICAgICN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xufVxuXG5cbi8vLyBCYWNrZ3JvdW5kIEdyYWRpZW50XG4vLy8gQHBhcmFtIHtDb2xvcn0gJHN0YXJ0Q29sb3IgWyMzQzNDM0NdIC0gU3RhcnQgQ29sb3Jcbi8vLyBAcGFyYW0ge0NvbG9yfSAkZW5kQ29sb3IgWyM5OTk5OTldIC0gRW5kIENvbG9yXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWdyYWRpZW50KCRzdGFydENvbG9yOiAjM0MzQzNDLCAkZW5kQ29sb3I6ICM5OTk5OTkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RhcnRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCRzdGFydENvbG9yKSwgdG8oJGVuZENvbG9yKSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0Q29sb3IsICRlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAtby1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGZpbHRlcjogICAgICAgICAgICBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvclN0cj0nI3skc3RhcnRDb2xvcn0nLCBlbmRDb2xvclN0cj0nI3skZW5kQ29sb3J9Jyk7XG59XG5cblxuLy8vIEJhY2tncm91bmQgSG9yaXpvbnRhbFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRzdGFydENvbG9yIFsjM0MzQzNDXSAtIFN0YXJ0IENvbG9yXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGVuZENvbG9yIFsjOTk5OTk5XSAtIEVuZCBDb2xvclxuXG5AbWl4aW4gYmFja2dyb3VuZC1ob3Jpem9udGFsKCRzdGFydENvbG9yOiAjM0MzQzNDLCAkZW5kQ29sb3I6ICM5OTk5OTkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RhcnRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgkc3RhcnRDb2xvciksIHRvKCRlbmRDb2xvcikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAgIGZpbHRlcjogICAgICAgICAgICBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvclN0cj0nI3skc3RhcnRDb2xvcn0nLCBlbmRDb2xvclN0cj0nI3skZW5kQ29sb3J9JywgZ3JhZGllbnRUeXBlPScxJyk7XG59XG5cblxuLy8vIEJhY2tncm91bmQgUmFkaWFsXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHN0YXJ0Q29sb3IgWyMzQzNDM0NdIC0gU3RhcnQgQ29sb3Jcbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzdGFydFBvcyBbMCVdIC0gU3RhcnQgcG9zaXRpb25cbi8vLyBAcGFyYW0ge0NvbG9yfSAkZW5kQ29sb3IgWyM5OTk5OTldIC0gRW5kIENvbG9yXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkZW5kUG9zIFsxMDAlXSAtIEVuZCBwb3NpdGlvblxuXG5AbWl4aW4gYmFja2dyb3VuZC1yYWRpYWwoJHN0YXJ0Q29sb3I6ICNGRkZGRkYsICRzdGFydFBvczogMCUsICRlbmRDb2xvcjogIzAwMDAwMCwgJGVuZFBvczoxMDAlKSB7XG4gICAgYmFja2dyb3VuZDogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAkc3RhcnRDb2xvciAkc3RhcnRQb3MsICRlbmRDb2xvciAkZW5kUG9zKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KHJhZGlhbCwgY2VudGVyIGNlbnRlciwgMHB4LCBjZW50ZXIgY2VudGVyLCAxMDAlLCBjb2xvci1zdG9wKCRzdGFydFBvcywkc3RhcnRDb2xvciksIGNvbG9yLXN0b3AoJGVuZFBvcywkZW5kQ29sb3IpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsICRzdGFydENvbG9yICRzdGFydFBvcywkZW5kQ29sb3IgJGVuZFBvcyk7XG4gICAgYmFja2dyb3VuZDogLW8tcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgJHN0YXJ0Q29sb3IgJHN0YXJ0UG9zLCRlbmRDb2xvciAkZW5kUG9zKTtcbiAgICBiYWNrZ3JvdW5kOiAtbXMtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgJHN0YXJ0Q29sb3IgJHN0YXJ0UG9zLCRlbmRDb2xvciAkZW5kUG9zKTtcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsICRzdGFydENvbG9yICRzdGFydFBvcywkZW5kQ29sb3IgJGVuZFBvcyk7XG59XG5cblxuLy8vIEJhY2tncm91bmQgU2l6ZVxuLy8vIEBwYXJhbSB7U2l6ZX0gJHdpZHRoIFsxMDAlXSAtIFdpZHRoXG4vLy8gQHBhcmFtIHtTaXplfSAkd2lkdGggWyR3aWR0aF0gLSBIZWlnaHRcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLXNpemUoJHdpZHRoOiAxMDAlLCAkaGVpZ2h0OiAkd2lkdGgpIHtcbiAgQGlmIHR5cGUtb2YoJHdpZHRoKSA9PSAnbnVtYmVyJyBhbmQgJGhlaWdodCAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBjc3MzLXByZWZpeCgnYmFja2dyb3VuZC1zaXplJywgJHdpZHRoICRoZWlnaHQpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjc3MzLXByZWZpeCgnYmFja2dyb3VuZC1zaXplJywgJHdpZHRoKTtcbiAgfVxufVxuXG5cbi8vLyBCYWNrZ3JvdW5kIENvbG9yIE9wYWNpdHlcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWzEwMCVdIC0gQ29sb3Jcbi8vLyBAcGFyYW0ge0RvdWJsZX0gJG9wYWNpdHkgWzAuODVdIC0gT3BhY2l0eVxuXG5AbWl4aW4gYmFja2dyb3VuZC1vcGFjaXR5KCRjb2xvcjogIzAwMCwgJG9wYWNpdHk6IDAuODUpIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yO1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgJG9wYWNpdHkpO1xufVxuXG5cbi8vLyBCb3JkZXIgUmFkaXVzXG4vLy8gQHBhcmFtIHtTaXplfSAkcmFkaXVzIFs1cHhdIC0gUmFkaXVzXG4vLy8gQHJlcXVpcmUge21peGlufSBjc3MzLXByZWZpeFxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiA1cHgpIHtcbiAgICBAaW5jbHVkZSBjc3MzLXByZWZpeCgnYm9yZGVyLXJhZGl1cycsICRyYWRpdXMpO1xufVxuXG5cbi8vLyBCb3JkZXIgUmFkaXVzIFNlcGFyYXRlXG4vLy8gQHBhcmFtIHtTaXplfSAkdG9wTGVmdFJhZGl1cyBbNXB4XSAtIFRvcCBMZWZ0XG4vLy8gQHBhcmFtIHtTaXplfSAkdG9wUmlnaHRSYWRpdXMgWzVweF0gLSBUb3AgUmlnaHRcbi8vLyBAcGFyYW0ge1NpemV9ICRib3R0b21MZWZ0UmFkaXVzIFs1cHhdIC0gQm90dG9tIExlZnRcbi8vLyBAcGFyYW0ge1NpemV9ICRib3R0b21SaWdodFJhZGl1cyBbNXB4XSAtIEJvdHRvbSBSaWdodFxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cy1zZXBhcmF0ZSgkdG9wTGVmdFJhZGl1czogNXB4LCAkdG9wUmlnaHRSYWRpdXM6IDVweCwgJGJvdHRvbUxlZnRSYWRpdXM6IDVweCwgJGJvdHRvbVJpZ2h0UmFkaXVzOiA1cHgpIHtcbiAgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAgICAgJHRvcExlZnRSYWRpdXM7XG4gIC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICAgICR0b3BSaWdodFJhZGl1cztcbiAgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvdHRvbVJpZ2h0UmFkaXVzO1xuICAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICAkYm90dG9tTGVmdFJhZGl1cztcblxuICAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogICAgICR0b3BMZWZ0UmFkaXVzO1xuICAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6ICAgICR0b3BSaWdodFJhZGl1cztcbiAgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiAkYm90dG9tUmlnaHRSYWRpdXM7XG4gIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiAgJGJvdHRvbUxlZnRSYWRpdXM7XG5cbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogICAgICR0b3BMZWZ0UmFkaXVzO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogICAgJHRvcFJpZ2h0UmFkaXVzO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvdHRvbVJpZ2h0UmFkaXVzO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAgJGJvdHRvbUxlZnRSYWRpdXM7XG59XG5cblxuLy8vIEJveFxuLy8vIEBwYXJhbSB7Kn0gJG9yaWVudCBbaG9yaXpvbnRhbF0gLSBPcmllbnRhdGlvblxuLy8vIEBwYXJhbSB7Kn0gJHBhY2sgW2NlbnRlcl0gLSBQYWNrXG4vLy8gQHBhcmFtIHsqfSAkYWxpZ24gW2NlbnRlcl0gLSBBbGlnblxuLy8vIEByZXF1aXJlIHttaXhpbn0gY3NzMy1wcmVmaXhcblxuQG1peGluIGJveCgkb3JpZW50OiBob3Jpem9udGFsLCAkcGFjazogY2VudGVyLCAkYWxpZ246IGNlbnRlcikge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IGJveDtcblxuICBAaW5jbHVkZSBjc3MzLXByZWZpeCgnYm94LW9yaWVudCcsICRvcmllbnQpO1xuICBAaW5jbHVkZSBjc3MzLXByZWZpeCgnYm94LXBhY2snLCAkcGFjayk7XG4gIEBpbmNsdWRlIGNzczMtcHJlZml4KCdib3gtYWxpZ24nLCAkYWxpZ24pO1xufVxuXG5cbi8vLyBCb3ggUkdCQVxuLy8vIEBwYXJhbSB7SW50ZWdlcn0gJHIgWzYwXSAtIFJlZFxuLy8vIEBwYXJhbSB7SW50ZWdlcn0gJGcgWzNdIC0gR3JlZW5cbi8vLyBAcGFyYW0ge0ludGVnZXJ9ICRiIFsxMl0gLSBCbHVlXG4vLy8gQHBhcmFtIHtEb3VibGV9ICRvcGFjaXR5IFswLjIzXSAtIE9wYWNpdHlcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyMzQzNDM0NdIC0gQ29sb3JcblxuQG1peGluIGJveC1yZ2JhKCRyOiA2MCwgJGc6IDMsICRiOiAxMiwgJG9wYWNpdHk6IDAuMjMsICRjb2xvcjogIzNDM0MzQykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkciwgJGcsICRiLCAkb3BhY2l0eSk7XG4gICAgICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRjb2xvcn0nLGVuZENvbG9yc3RyPScjeyRjb2xvcn0nKTtcbiAgICAgICAgICAgIHpvb206ICAgMTtcbn1cblxuXG4vLy8gQm94IFNoYWRvd1xuLy8vIEBwYXJhbSB7U2l6ZX0gJHggWzJweF0gLSBYXG4vLy8gQHBhcmFtIHtTaXplfSAkeSBbMnB4XSAtIFlcbi8vLyBAcGFyYW0ge1NpemV9ICRibHVyIFs1cHhdIC0gQmx1clxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbcmdiYSgwLDAsMCwuNCldIC0gQ29sb3Jcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbnNldCAtIEluc2V0XG5cbkBtaXhpbiBib3gtc2hhZG93KCR4OiAycHgsICR5OiAycHgsICRibHVyOiA1cHgsICRjb2xvcjogcmdiYSgwLDAsMCwuNCksICRpbnNldDogXCJcIikge1xuICBAaWYgKCRpbnNldCAhPSBcIlwiKSB7XG4gICAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ2JveC1zaGFkb3cnLCAkaW5zZXQgJHggJHkgJGJsdXIgJGNvbG9yKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ2JveC1zaGFkb3cnLCAkeCAkeSAkYmx1ciAkY29sb3IpO1xuICB9XG59XG5cblxuLy8vIEJveCBTaXppbmdcbi8vLyBAcGFyYW0geyp9ICR0eXBlIFtib3JkZXItYm94XSAtIFR5cGVcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiBib3gtc2l6aW5nKCR0eXBlOiBib3JkZXItYm94KSB7XG4gIEBpbmNsdWRlIGNzczMtcHJlZml4KCdib3gtc2l6aW5nJywgJHR5cGUpO1xufVxuXG5cbi8vLyBDb2x1bW5zXG4vLy8gQHBhcmFtIHtJbnRlZ2VyfSAkY291bnQgWzNdIC0gQ291bnRcbi8vLyBAcGFyYW0ge0ludGVnZXJ9ICRnYXAgWzEwXSAtIEdhcFxuLy8vIEByZXF1aXJlIHttaXhpbn0gY3NzMy1wcmVmaXhcblxuQG1peGluIGNvbHVtbnMoJGNvdW50OiAzLCAkZ2FwOiAxMCkge1xuICBAaW5jbHVkZSBjc3MzLXByZWZpeCgnY29sdW1uLWNvdW50JywgJGNvdW50KTtcbiAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ2NvbHVtbi1nYXAnLCAkZ2FwKTtcbn1cblxuXG4vLy8gRG91YmxlIEJvcmRlcnNcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JPbmUgWyMzQzNDM0NdIC0gQ29sb3IgT25lXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yVHdvIFsjOTk5OTk5XSAtIENvbG9yIFR3b1xuLy8vIEBwYXJhbSB7U2l6ZX0gJHJhZGl1cyBbMF0gLSBSYWRpdXNcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG4vLy8gQHJlcXVpcmUge21peGlufSBib3JkZXItcmFkaXVzXG5cbkBtaXhpbiBkb3VibGUtYm9yZGVycygkY29sb3JPbmU6ICMzQzNDM0MsICRjb2xvclR3bzogIzk5OTk5OSwgJHJhZGl1czogMCkge1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JPbmU7XG5cbiAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ2JveC1zaGFkb3cnLCAwIDAgMCAxcHggJGNvbG9yVHdvKTtcblxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCAkcmFkaXVzICk7XG59XG5cblxuLy8vIEZsZXhcbi8vLyBAcGFyYW0ge0ludGVnZXJ9ICR2YWx1ZSBbMV0gLSBWYWx1ZVxuLy8vIEByZXF1aXJlIHttaXhpbn0gY3NzMy1wcmVmaXhcblxuQG1peGluIGZsZXgoJHZhbHVlOiAxKSB7XG4gIEBpbmNsdWRlIGNzczMtcHJlZml4KCdib3gtZmxleCcsICR2YWx1ZSk7XG59XG5cblxuLy8vIEZsaXBcbi8vLyBAcGFyYW0ge0RvdWJsZX0gJHNjYWxlWCBbLTFdIC0gU2NhbGVYXG4vLy8gQHJlcXVpcmUge21peGlufSBjc3MzLXByZWZpeFxuXG5AbWl4aW4gZmxpcCgkc2NhbGVYOiAtMSkge1xuICBAaW5jbHVkZSBjc3MzLXByZWZpeCgndHJhbnNmb3JtJywgc2NhbGVYKCRzY2FsZVgpKTtcbiAgZmlsdGVyOiAgICAgICAgICAgIEZsaXBIO1xuICAtbXMtZmlsdGVyOiAgICAgICAgXCJGbGlwSFwiO1xufVxuXG5cbi8vLyBGb250IEZhY2Vcbi8vLyBAcGFyYW0ge0ZvbnR9ICRmb250RmFtaWx5IFtteUZvbnRdIC0gRm9udCBGYW1pbHlcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGVvdEZpbGVTcmMgWydteUZvbnQuZW90J10gLSBFb3QgRmlsZSBTb3VyY2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdvZmZGaWxlU3JjIFsnbXlGb250LndvZmYnXSAtIFdvZmYgRmlsZSBTb3VyY2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHR0ZkZpbGVTcmMgWydteUZvbnQudHRmJ10gLSBUdGYgRmlsZSBTb3VyY2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN2Z0ZpbGVTcmMgWydteUZvbnQuc3ZnJ10gLSBTdmcgRmlsZSBTb3VyY2VcblxuQG1peGluIGZvbnQtZmFjZSgkZm9udEZhbWlseTogbXlGb250LCAkZW90RmlsZVNyYzogJ215Rm9udC5lb3QnLCAkd29mZkZpbGVTcmM6ICdteUZvbnQud29mZicsICR0dGZGaWxlU3JjOiAnbXlGb250LnR0ZicsICRzdmdGaWxlU3JjOiAnbXlGb250LnN2ZycsICRzdmdGb250SUQ6ICcjbXlGb250Jykge1xuICBmb250LWZhbWlseTogJGZvbnRGYW1pbHk7XG4gIHNyYzogdXJsKCRlb3RGaWxlU3JjKSAgZm9ybWF0KCdlb3QnKSxcbiAgICAgICB1cmwoJHdvZmZGaWxlU3JjKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICB1cmwoJHR0ZkZpbGVTcmMpICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgdXJsKCRzdmdGaWxlU3JjICsgJHN2Z0ZvbnRJRCkgZm9ybWF0KCdzdmcnKTtcbn1cblxuXG4vLy8gT3BhY2l0eVxuLy8vIEBwYXJhbSB7RG91YmxlfSAkb3BhY2l0eSBbMC41XSAtIE9wYWNpdHlcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5OiAwLjUpIHtcbiAgICAkb3BhY2l0eU11bHRpcGxpZWQ6ICgkb3BhY2l0eSAqIDEwMCk7XG5cbiAgICBmaWx0ZXI6ICAgICAgICAgYWxwaGEob3BhY2l0eT0kb3BhY2l0eU11bHRpcGxpZWQpO1xuICAgIC1tcy1maWx0ZXI6ICAgICBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PVwiICsgJG9wYWNpdHlNdWx0aXBsaWVkICsgXCIpXCI7XG4gICAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ29wYWNpdHknLCAkb3BhY2l0eSk7XG59XG5cblxuLy8vIE91dGxpbmUgUmFkaXVzXG4vLy8gQHBhcmFtIHtTaXplfSAkcmFkaXVzIFs1cHhdIC0gUmFkaXVzXG4vLy8gQHJlcXVpcmUge21peGlufSBjc3MzLXByZWZpeFxuXG5AbWl4aW4gb3V0bGluZS1yYWRpdXMoJHJhZGl1czogNXB4KSB7XG4gIEBpbmNsdWRlIGNzczMtcHJlZml4KCdvdXRsaW5lLXJhZGl1cycsICRyYWRpdXMpO1xufVxuXG5cbi8vLyBSZXNpemVcbi8vLyBAcGFyYW0geyp9ICRkaXJlY3RvaW4gW2JvdGhdIC0gRGlyZWN0aW9uXG4vLy8gQHJlcXVpcmUge21peGlufSBjc3MzLXByZWZpeFxuXG5AbWl4aW4gcmVzaXplKCRkaXJlY3Rpb246IGJvdGgpIHtcbiAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ3Jlc2l6ZScsICRkaXJlY3Rpb24pO1xufVxuXG5cbi8vLyBSb3RhdGVcbi8vL1xuLy8vIENTUyBNYXRyaXggUm90YXRpb24gQ2FsY3VsYXRvciBodHRwOi8vd3d3LmJvb2dkZXNpZ24uY29tL2V4YW1wbGVzL3RyYW5zZm9ybXMvbWF0cml4LWNhbGN1bGF0b3IuaHRtbFxuLy8vIEBwYXJhbSB7RG91YmxlfSAkZGVnIFswXSAtIERlZ3JlZVxuLy8vIEBwYXJhbSB7RG91YmxlfSAkbTExIFswXSAtIE0xMVxuLy8vIEBwYXJhbSB7RG91YmxlfSAkbTEyIFswXSAtIE0xMlxuLy8vIEBwYXJhbSB7RG91YmxlfSAkbTIxIFswXSAtIE0yMVxuLy8vIEBwYXJhbSB7RG91YmxlfSAkbTIyIFswXSAtIE0yMlxuLy8vIEByZXF1aXJlIHttaXhpbn0gY3NzMy1wcmVmaXhcblxuQG1peGluIHJvdGF0ZSgkZGVnOiAwLCAkbTExOiAwLCAkbTEyOiAwLCAkbTIxOiAwLCAkbTIyOiAwKSB7XG4gIEBpbmNsdWRlIGNzczMtcHJlZml4KCd0cmFuc2Zvcm0nLCByb3RhdGUoJGRlZyArIGRlZykpO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoXG4gICAgICAgTTExPSN7JG0xMX0sIE0xMj0jeyRtMTJ9LCBNMjE9I3skbTIxfSwgTTIyPSN7JG0yMn0sIHNpemluZ01ldGhvZD0nYXV0byBleHBhbmQnKTtcbiAgICB6b29tOiAxO1xufVxuXG5cbi8vLyBUZXh0IFNoYWRvd1xuLy8vIEBwYXJhbSB7U2l6ZX0gJHggWzJweF0gLSBYXG4vLy8gQHBhcmFtIHtTaXplfSAkeSBbMnB4XSAtIFlcbi8vLyBAcGFyYW0ge1NpemV9ICRibHVyIFsycHhdIC0gQmx1clxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbcmdiYSgwLDAsMCwuNCldIC0gQ29sb3JcblxuQG1peGluIHRleHQtc2hhZG93KCR4OiAycHgsICR5OiAycHgsICRibHVyOiA1cHgsICRjb2xvcjogcmdiYSgwLDAsMCwuNCkpIHtcbiAgICB0ZXh0LXNoYWRvdzogJHggJHkgJGJsdXIgJGNvbG9yO1xufVxuXG5cbi8vLyBUcmFuc2Zvcm1cbi8vLyBAcGFyYW0ge0xpc3R9ICRwYXJhbXMgLSBQYXJhbXNcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiB0cmFuc2Zvcm0oJHBhcmFtcykge1xuICBAaW5jbHVkZSBjc3MzLXByZWZpeCgndHJhbnNmb3JtJywgJHBhcmFtcyk7XG59XG5cblxuLy8vIFRyYW5zZm9ybS1PcmlnaW5cbi8vLyBAcGFyYW0ge0xpc3R9ICRwYXJhbXMgLSBQYXJhbXNcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRwYXJhbXMpIHtcbiAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ3RyYW5zZm9ybS1vcmlnaW4nLCAkcGFyYW1zKTtcbn1cblxuXG4vLyBUcmFuc2Zvcm0tU3R5bGVcbi8vLyBAcGFyYW0ge0xpc3R9ICRwYXJhbXMgLSBQYXJhbXNcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBwcmVzZXJ2ZS0zZCkge1xuICBAaW5jbHVkZSBjc3MzLXByZWZpeCgndHJhbnNmb3JtLXN0eWxlJywgJHN0eWxlKTtcbn1cblxuLy8vIFRyYW5zaXRpb25cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcm9wZXJ0aWVzIC0gUHJvcGVydGllc1xuLy8vIEByZXF1aXJlIHttaXhpbn0gY3NzMy1wcmVmaXhcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcblxuICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICBAaW5jbHVkZSBjc3MzLXByZWZpeCgndHJhbnNpdGlvbicsICRwcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjc3MzLXByZWZpeCgndHJhbnNpdGlvbicsICBcImFsbCAwLjJzIGVhc2UtaW4tb3V0IDBzXCIpO1xuICB9XG59XG5cblxuLy8vIFRyaXBsZSBCb3JkZXJzXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yT25lIFsjM0MzQzNDXSAtIENvbG9yIE9uZVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclR3byBbIzk5OTk5OV0gLSBDb2xvciBUd29cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JUaHJlZSBbIzAwMDAwMF0gLSBDb2xvciBUaHJlZVxuLy8vIEBwYXJhbSB7U2l6ZX0gJHJhZGl1cyBbMF0gLSBSYWRpdXNcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGJvcmRlci1yYWRpdXNcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGNzczMtcHJlZml4XG5cbkBtaXhpbiB0cmlwbGUtYm9yZGVycygkY29sb3JPbmU6ICMzQzNDM0MsICRjb2xvclR3bzogIzk5OTk5OSwgJGNvbG9yVGhyZWU6ICMwMDAwMDAsICRyYWRpdXM6IDApIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JPbmU7XG5cbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRyYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ2JveC1zaGFkb3cnLCBcIjAgMCAwIDFweCAjeyRjb2xvclR3b30sIDAgMCAwIDJweCAjeyRjb2xvclRocmVlfVwiKTtcbn1cblxuXG4vLy8gS2V5ZnJhbWVzXG4vLy8gQHBhcmFtIHsqfSAkYW5pbWF0aW9uLW5hbWUgLSBBbmltYXRpb24gbmFtZVxuLy8vIEBjb250ZW50IFtBbmltYXRpb24gY3NzXVxuXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBALW1zLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuXG4vLy8gQW5pbWF0aW9uXG4vLy8gQHBhcmFtIHsqfSAkc3RyIC0gbmFtZSBkdXJhdGlvbiB0aW1pbmctZnVuY3Rpb24gZGVsYXkgaXRlcmF0aW9uLWNvdW50IGRpcmVjdGlvbiBmaWxsLW1vZGUgcGxheS1zdGF0ZSAoW2h0dHA6Ly93d3cudzNzY2hvb2xzLmNvbS9jc3NyZWYvY3NzM19wcl9hbmltYXRpb24uYXNwXShodHRwOi8vd3d3Lnczc2Nob29scy5jb20vY3NzcmVmL2NzczNfcHJfYW5pbWF0aW9uLmFzcCkpXG4vLy8gQHJlcXVpcmUge21peGlufSBjc3MzLXByZWZpeFxuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgQGluY2x1ZGUgY3NzMy1wcmVmaXgoJ2FuaW1hdGlvbicsICRzdHIpO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTYXNzIENTUzMgTWl4aW5zISBUaGUgQ3Jvc3MtQnJvd3NlciBDU1MzIFNhc3MgTGlicmFyeVxuICBCeTogTWF0dGhpZXUgQXVzc2FndWVsLCBodHRwOi8vd3d3Lm15bmFtZWlzbWF0dGhpZXUuY29tLCBAbWF0dGhpZXVfdHdlZXRzXG5cbiAgTGlzdCBvZiBDU1MzIFNhc3MgTWl4aW5zIEZpbGUgdG8gYmUgQGltcG9ydGVkIGFuZCBAaW5jbHVkZWQgYXMgeW91IG5lZWRcblxuICBUaGUgcHVycG9zZSBvZiB0aGlzIGxpYnJhcnkgaXMgdG8gZmFjaWxpdGF0ZSB0aGUgdXNlIG9mIENTUzMgb24gZGlmZmVyZW50IGJyb3dzZXJzIGF2b2lkaW5nIEhBUkQgVE8gUkVBRCBhbmQgTkVWRVJcbiAgRU5ESU5HIGNzcyBmaWxlc1xuXG4gIG5vdGU6IEFsbCBDU1MzIFByb3BlcnRpZXMgYXJlIGJlaW5nIHN1cHBvcnRlZCBieSBTYWZhcmkgNVxuICBtb3JlIGluZm86IGh0dHA6Ly93d3cuZmluZG1lYnlpcC5jb20vbGl0bXVzLyNjc3MzLXByb3BlcnRpZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLypcbiogU2N1dCwgYSBjb2xsZWN0aW9uIG9mIFNhc3MgdXRpbGl0aWVzXG4qIHRvIGVhc2UgYW5kIGltcHJvdmUgb3VyIGltcGxlbWVudGF0aW9ucyBvZiBjb21tb24gc3R5bGUtY29kZSBwYXR0ZXJucy5cbiogdjEuNC4wXG4qIERvY3MgYXQgaHR0cDovL2RhdmlkdGhlY2xhcmsuZ2l0aHViLmlvL3NjdXRcbiovXG5AaW1wb3J0IFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbm9ybWFsaXplLzguMC4xL25vcm1hbGl6ZS5taW4uY3NzXCI7XG4ubWFpbl9fZm9vdGVyX19uYXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLm1haW5fX2hlYWRlcl9fbG9nbyBhLCAubWFpbl9fZm9vdGVyX19iZ18xLCAubWFpbl9fZm9vdGVyX19iZ18yLCAubWFpbl9fZm9vdGVyX19pbm5lciwgLm1haW5fX292ZXJsYXksIC5tYWluX19vdmVybGF5X19jbG9zZSBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTYXNzIENTUzMgTWl4aW5zISBUaGUgQ3Jvc3MtQnJvd3NlciBDU1MzIFNhc3MgTGlicmFyeVxuICBCeTogTWF0dGhpZXUgQXVzc2FndWVsLCBodHRwOi8vd3d3Lm15bmFtZWlzbWF0dGhpZXUuY29tLCBAbWF0dGhpZXVfdHdlZXRzXG5cbiAgTGlzdCBvZiBDU1MzIFNhc3MgTWl4aW5zIEZpbGUgdG8gYmUgQGltcG9ydGVkIGFuZCBAaW5jbHVkZWQgYXMgeW91IG5lZWRcblxuICBUaGUgcHVycG9zZSBvZiB0aGlzIGxpYnJhcnkgaXMgdG8gZmFjaWxpdGF0ZSB0aGUgdXNlIG9mIENTUzMgb24gZGlmZmVyZW50IGJyb3dzZXJzIGF2b2lkaW5nIEhBUkQgVE8gUkVBRCBhbmQgTkVWRVJcbiAgRU5ESU5HIGNzcyBmaWxlc1xuXG4gIG5vdGU6IEFsbCBDU1MzIFByb3BlcnRpZXMgYXJlIGJlaW5nIHN1cHBvcnRlZCBieSBTYWZhcmkgNVxuICBtb3JlIGluZm86IGh0dHA6Ly93d3cuZmluZG1lYnlpcC5jb20vbGl0bXVzLyNjc3MzLXByb3BlcnRpZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1PYmxpcXVlLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250L1RyYWRlR290aGljTFQtT2JsaXF1ZS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250L1RyYWRlR290aGljTFQtT2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1PYmxpcXVlLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdUcmFkZUdvdGhpYyBMVCc7XG4gIHNyYzogdXJsKFwiLi4vZm9udC9UcmFkZUdvdGhpY0xULUJvbGRPYmxpcXVlLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250L1RyYWRlR290aGljTFQtQm9sZE9ibGlxdWUuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udC9UcmFkZUdvdGhpY0xULUJvbGRPYmxpcXVlLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udC9UcmFkZUdvdGhpY0xULUJvbGRPYmxpcXVlLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udC9UcmFkZUdvdGhpY0xULmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1Cb2xkLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250L1RyYWRlR290aGljTFQtQm9sZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250L1RyYWRlR290aGljTFQtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodC5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udC9UcmFkZUdvdGhpY0xULUxpZ2h0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodE9ibGlxdWUuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodE9ibGlxdWUuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udC9UcmFkZUdvdGhpY0xULUxpZ2h0T2JsaXF1ZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodE9ibGlxdWUudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmh0bWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgZm9udC1zaXplOiA4cHg7XG4gIGNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaHRtbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBodG1sIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgaHRtbC5oaWdoUFBJIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICBodG1sLnN1cGVyUFBJIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cbn1cblxuaHRtbFtub2JnXSBodG1sIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuaHRtbFtub3Njcm9sbF0ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmh0bWwubWVudV9vcGVuIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5hOmZvY3VzLCBhOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xufVxuXG5odG1sW25vYmddIGJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbmJvZHkgLmRlYnVnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYm9keVtkZWJ1Z10gLmRlYnVnIHtcbiAgbWF4LXdpZHRoOiA5MCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDk5OTk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJlZDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUpO1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTUpXCI7XG4gIC13ZWJraXQtb3BhY2l0eTogMC4wNTtcbiAgLWtodG1sLW9wYWNpdHk6IDAuMDU7XG4gIC1tb3otb3BhY2l0eTogMC4wNTtcbiAgLW1zLW9wYWNpdHk6IDAuMDU7XG4gIC1vLW9wYWNpdHk6IDAuMDU7XG4gIG9wYWNpdHk6IDAuMDU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuYm9keVtkZWJ1Z10gLmRlYnVnOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbn1cblxuYm9keVtkZWJ1Z10gLmRlYnVnID4gZGl2IHtcbiAgd2lkdGg6IDUuNzgyMzElO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEuMjc1NTElO1xuICBtYXJnaW4tcmlnaHQ6IDEuMjc1NTElO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IG9yYW5nZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIGJvZHlbZGVidWddIC5kZWJ1ZyA+IGRpdiB7XG4gICAgd2lkdGg6IDQuMzIwOTklO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiA2LjE3Mjg0JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDYuMTcyODQlO1xuICB9XG59XG5cbmh0bWxbbm9zY3JvbGxdIGJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbmh0bWwubWVudV9vcGVuIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jLWNvcm5lci1sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiAnUXVpY2tzYW5kJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdG9wOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC42cyBjdWJpYy1iZXppZXIoMC4yNSwgMSwgMC41LCAxKTtcbiAgei1pbmRleDogMzQ7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBmb250LXNpemU6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyOTlkZWcsICNCODg2MEIsICNmZjg4MDAsICNmZjU3MDAsICM0NDZlMzIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwMCUgNDAwJTtcbiAgLXdlYmtpdC1hbmltYXRpb246IEFuaW1hdGlvbk5hbWUgMzBzIGVhc2UgaW5maW5pdGU7XG4gIC1tb3otYW5pbWF0aW9uOiBBbmltYXRpb25OYW1lIDMwcyBlYXNlIGluZmluaXRlO1xuICBhbmltYXRpb246IEFuaW1hdGlvbk5hbWUgMzBzIGVhc2UgaW5maW5pdGU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmMtY29ybmVyLWxhYmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgICB6LWluZGV4OiAzMjtcbiAgfVxuICAuYy1jb3JuZXItbGFiZWwgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYy1jb3JuZXItbGFiZWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICBib3gtc2hhZG93OiAycHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgcGFkZGluZzogMzAwcHggMCAxMHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoMjBweCwgLTEwNCUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcbiAgICB3aWR0aDogNDAwcHg7XG4gIH1cbn1cblxuLmMtY29ybmVyLWxhYmVsX190ZXh0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjZWVlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgd2lkdGg6IDEwMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjI1LCAxLCAwLjUsIDEpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5jLWNvcm5lci1sYWJlbF9fdGV4dCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYy1jb3JuZXItbGFiZWw6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoMjBweCwgLTk1JSk7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIH1cbiAgLmMtY29ybmVyLWxhYmVsOmhvdmVyIC5jLWNvcm5lci1sYWJlbF9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBBbmltYXRpb25OYW1lIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxufVxuXG5ALW1vei1rZXlmcmFtZXMgQW5pbWF0aW9uTmFtZSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBBbmltYXRpb25OYW1lIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxufVxuXG4ubWFpbl9fdG9wX3N0eWxlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjk7XG59XG5cbi5tYWluX190b3Bfc3R5bGVzOmFmdGVyIHtcbiAgLypjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiByZW0oNCk7XG4gICAgYm9yZGVyLXRvcDogcmVtKDQgKXNvbGlkICNiOTIwMzQ7XG4gICAgYm9yZGVyLWJvdHRvbTogcmVtKDQgKXNvbGlkICM1YTllNDE7XG5cbiAgICB6LWluZGV4OiB6KCR6TGF5b3V0LCBcInRvcC1zdHlsZXMtc2hhZG93XCIpOyovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fdG9wX3N0eWxlczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDE2LjVyZW07XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTQwKTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTQwKVwiO1xuICAgIC13ZWJraXQtb3BhY2l0eTogMC40O1xuICAgIC1raHRtbC1vcGFjaXR5OiAwLjQ7XG4gICAgLW1vei1vcGFjaXR5OiAwLjQ7XG4gICAgLW1zLW9wYWNpdHk6IDAuNDtcbiAgICAtby1vcGFjaXR5OiAwLjQ7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLWtodG1sLXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC8qYmFja2dyb3VuZDogcmdiYSgwLDAsMCwkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSk7Ki9cbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsYWNrIDAlLCBibGFjayAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgYmxhY2spLCBjb2xvci1zdG9wKDAlLCBibGFjayksIGNvbG9yLXN0b3AoMTAwJSwgcmdiYSgwLCAwLCAwLCAwKSkpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgYmxhY2sgMCUsIGJsYWNrIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIGJsYWNrIDAlLCBibGFjayAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgYmxhY2sgMCUsIGJsYWNrIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIGJsYWNrIDAlLCBibGFjayAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAnLCBHcmFkaWVudFR5cGU9MCk7XG4gICAgei1pbmRleDogMzA7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX3RvcF9zdHlsZXM6YmVmb3JlIHtcbiAgICBoZWlnaHQ6IDZyZW07XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTIwKTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTIwKVwiO1xuICAgIC13ZWJraXQtb3BhY2l0eTogMC4yO1xuICAgIC1raHRtbC1vcGFjaXR5OiAwLjI7XG4gICAgLW1vei1vcGFjaXR5OiAwLjI7XG4gICAgLW1zLW9wYWNpdHk6IDAuMjtcbiAgICAtby1vcGFjaXR5OiAwLjI7XG4gICAgb3BhY2l0eTogMC4yO1xuICB9XG59XG5cbmh0bWwuc2Nyb2xsZWQgLm1haW5fX3RvcF9zdHlsZXM6YmVmb3JlIHtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT05MClcIjtcbiAgLXdlYmtpdC1vcGFjaXR5OiAwLjk7XG4gIC1raHRtbC1vcGFjaXR5OiAwLjk7XG4gIC1tb3otb3BhY2l0eTogMC45O1xuICAtbXMtb3BhY2l0eTogMC45O1xuICAtby1vcGFjaXR5OiAwLjk7XG4gIG9wYWNpdHk6IDAuOTtcbiAgei1pbmRleDogMzI7XG59XG5cbi5tYWluX19oZWFkZXIge1xuICB6LWluZGV4OiAzMztcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1vLWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzZmNjU1YztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYuMnJlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogNS44cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDMwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgLWtodG1sLXRyYW5zaXRpb246IHRvcCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tb3otdHJhbnNpdGlvbjogdG9wIDMwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgLW1zLXRyYW5zaXRpb246IHRvcCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1vLXRyYW5zaXRpb246IHRvcCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIHRyYW5zaXRpb246IHRvcCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9faGVhZGVyIHtcbiAgICBtYXgtd2lkdGg6IDg4JTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgLm1haW5fX2hlYWRlcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYWluX19oZWFkZXIge1xuICAgIG1heC13aWR0aDogOTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAubWFpbl9faGVhZGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX2hlYWRlciB7XG4gICAgdG9wOiA1LjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19oZWFkZXIge1xuICAgIHRvcDogNC4zcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fX2hlYWRlciB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19oZWFkZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLm1haW5fX2hlYWRlciB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19oZWFkZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQxcHgpIHtcbiAgLm1haW5fX2hlYWRlciB7XG4gICAgbWF4LXdpZHRoOiAxMzcycHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19oZWFkZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICBodG1sLnNjcm9sbGVkIC5tYWluX19oZWFkZXIge1xuICAgIHRvcDogMy41cmVtO1xuICB9XG59XG5cbi5tYWluX19oZWFkZXJfX2xvZ28ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEzcmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTEuMXJlbTtcbn1cblxuLm1haW5fX2hlYWRlcl9fbG9nbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLXRvcDogNTIuODg4ODklO1xufVxuXG5odG1sOm5vdCgudG91Y2gpIC5tYWluX19oZWFkZXJfX2xvZ28ge1xuICAtd2Via2l0LXRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1raHRtbC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtbW96LXRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tcy10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtby10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xufVxuXG5odG1sOm5vdCgudG91Y2gpIC5tYWluX19oZWFkZXJfX2xvZ286aG92ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSkgcm90YXRlKC01ZGVnKTtcbiAgLWtodG1sLXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSkgcm90YXRlKC01ZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpIHJvdGF0ZSgtNWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpIHJvdGF0ZSgtNWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSkgcm90YXRlKC01ZGVnKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1LCAxLjA1KSByb3RhdGUoLTVkZWcpO1xufVxuXG4ubWFpbl9faGVhZGVyX19sb2dvIGEge1xuICB0ZXh0LWluZGVudDogMTAyJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ltZy9sb2dvLW1hc2VyZm9ybWFnZ2kucG5nKSBuby1yZXBlYXQgc2Nyb2xsIDUwJSA1MCUvMTAwJSBhdXRvO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2hlYWRlcl9fbG9nbyB7XG4gICAgd2lkdGg6IDcuOXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIGh0bWwubWVudV9vcGVuIC5tYWluX19oZWFkZXJfX2xvZ28ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDQuM3JlbTtcbiAgICBsZWZ0OiA2JTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX2hlYWRlcl9fbG9nbyB7XG4gICAgd2lkdGg6IDEycmVtO1xuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9uYXYge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC1raHRtbC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgICAtbXMtdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgICAtby10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA2MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTMwJSk7XG4gICAgLWtodG1sLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMzAlKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMzAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEzMCUpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMzAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTMwJSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZGRjNTtcbiAgfVxuICAubWFpbl9uYXY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDAuNHJlbTtcbiAgICBib3JkZXItdG9wOiAwLjRyZW0gc29saWQgI2I5MjAzNDtcbiAgICBib3JkZXItYm90dG9tOiAwLjRyZW0gc29saWQgIzVhOWU0MTtcbiAgfVxuICBodG1sW25vYmddIC5tYWluX25hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxuICBodG1sLm1lbnVfb3BlbiAubWFpbl9uYXYge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIC1raHRtbC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9uYXZfX2lubmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgdG9wOiA1MCU7XG4gIH1cbn1cblxuLm1haW5fbmF2IHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBsZWZ0OiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAta2h0bWwtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEuM3JlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX25hdiB1bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgLWtodG1sLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMi41cmVtO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAyMDBtcztcbiAgICAta2h0bWwtdHJhbnNpdGlvbjogYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAyMDBtcztcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMjAwbXM7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMjAwbXM7XG4gICAgLW8tdHJhbnNpdGlvbjogYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAyMDBtcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDIwMG1zO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gICAgLXdlYmtpdC1vcGFjaXR5OiAwO1xuICAgIC1raHRtbC1vcGFjaXR5OiAwO1xuICAgIC1tb3otb3BhY2l0eTogMDtcbiAgICAtbXMtb3BhY2l0eTogMDtcbiAgICAtby1vcGFjaXR5OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgaHRtbC5tZW51X29wZW4gLm1haW5fbmF2IHVsIHtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMClcIjtcbiAgICAtd2Via2l0LW9wYWNpdHk6IDE7XG4gICAgLWtodG1sLW9wYWNpdHk6IDE7XG4gICAgLW1vei1vcGFjaXR5OiAxO1xuICAgIC1tcy1vcGFjaXR5OiAxO1xuICAgIC1vLW9wYWNpdHk6IDE7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fbmF2IHVsIHtcbiAgICB0b3A6IDAuNnJlbTtcbiAgfVxufVxuXG4ubWFpbl9uYXYgdWwgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAyLjdyZW0gMCAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fbmF2IHVsIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgMCAyLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9uYXYgdWwgbGkge1xuICAgIG1hcmdpbjogMCAyLjVyZW0gMCAwO1xuICB9XG59XG5cbi5tYWluX25hdiB1bCBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fbmF2IHVsIGxpOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLm1haW5fbmF2IHVsIGxpIHVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX25hdiB1bCBsaSB1bCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwLjRyZW07XG4gIH1cbiAgLm1haW5fbmF2IHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW46IDAgMCAwcmVtO1xuICB9XG4gIC5tYWluX25hdiB1bCBsaSB1bCBsaSBhIHtcbiAgICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX25hdiB1bCBsaSB1bCBsaSBhIHtcbiAgICBmb250LWZhbWlseTogXCJFQiBHYXJhbW9uZFwiLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS45O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgfVxufVxuXG4ubWFpbl9uYXYgdWwgbGkgYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuaHRtbC5wYWdlX2hvbWVwYWdlIC5tYWluX25hdiB1bCBsaSBhIHtcbiAgY29sb3I6ICM2ZjY1NWM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9uYXYgdWwgbGkgYSB7XG4gICAgY29sb3I6ICM2ZjY1NWM7XG4gIH1cbn1cblxuaHRtbDpub3QoLnBhZ2VfaG9tZXBhZ2UpIC5tYWluX25hdiB1bCBsaSBhIHtcbiAgdGV4dC1zaGFkb3c6IDBweCAycHggMXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuaHRtbDpub3QoLnBhZ2VfaG9tZXBhZ2UpIC5tYWluX25hdiB1bCBsaSBhOmFmdGVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fbmF2IHVsIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fbmF2IHVsIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIHtcbiAgLm1haW5fbmF2IHVsIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQxcHgpIHtcbiAgLm1haW5fbmF2IHVsIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQxcHgpIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi13aWR0aDogMTQ0MXB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpLCAobWluLXdpZHRoOiAxNDQxcHgpIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXdpZHRoOiAxNDQxcHgpIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIHtcbiAgLm1haW5fbmF2IHVsIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxufVxuXG4ubWFpbl9uYXYgdWwgbGkgYTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IC0wLjJyZW07XG4gIGhlaWdodDogMC4ycmVtO1xuICB3aWR0aDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gIC13ZWJraXQtb3BhY2l0eTogMDtcbiAgLWtodG1sLW9wYWNpdHk6IDA7XG4gIC1tb3otb3BhY2l0eTogMDtcbiAgLW1zLW9wYWNpdHk6IDA7XG4gIC1vLW9wYWNpdHk6IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbmh0bWwucGFnZV9ob21lcGFnZSAubWFpbl9uYXYgdWwgbGkgYTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICM2ZjY1NWM7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fbmF2IHVsIGxpIGEge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgICAta2h0bWwtdHJhbnNpdGlvbjogYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLW8tdHJhbnNpdGlvbjogYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICB9XG4gIC5tYWluX25hdiB1bCBsaSBhOmFmdGVyIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLWtodG1sLXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAgIC1vLXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgfVxuICAubWFpbl9uYXYgdWwgbGkgYTpob3ZlcjphZnRlciB7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7XG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApXCI7XG4gICAgLXdlYmtpdC1vcGFjaXR5OiAxO1xuICAgIC1raHRtbC1vcGFjaXR5OiAxO1xuICAgIC1tb3otb3BhY2l0eTogMTtcbiAgICAtbXMtb3BhY2l0eTogMTtcbiAgICAtby1vcGFjaXR5OiAxO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWFpbl9uYXYgdWwgbGkuYWN0aXZlIGE6YWZ0ZXIge1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKVwiO1xuICAgIC13ZWJraXQtb3BhY2l0eTogMTtcbiAgICAta2h0bWwtb3BhY2l0eTogMTtcbiAgICAtbW96LW9wYWNpdHk6IDE7XG4gICAgLW1zLW9wYWNpdHk6IDE7XG4gICAgLW8tb3BhY2l0eTogMTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5tYWluX25hdl9faWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9uYXZfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDAuNXJlbTtcbiAgfVxuICAubWFpbl9uYXZfX2ljb24gc3ZnIHtcbiAgICBmaWxsOiAjZTVkZGM1O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBodG1sLnBhZ2VfaG9tZXBhZ2UgLm1haW5fbmF2X19pY29uIHN2ZyB7XG4gICAgZmlsbDogIzNkMzgzMztcbiAgfVxuICAubWFpbl9uYXZfX2ljb24uaGFtYnVyZ2VyIHtcbiAgICB3aWR0aDogMi44cmVtO1xuICAgIGhlaWdodDogMi4zcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5tYWluX25hdl9faWNvbi5oYW1idXJnZXIgc3ZnIHtcbiAgICBmaWxsOiAjZTVkZGM1O1xuICB9XG4gIGh0bWwubWVudV9vcGVuIC5tYWluX25hdl9faWNvbi5oYW1idXJnZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm1haW5fbmF2X19pY29uLmNsb3NlIHtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDIuM3JlbTtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMClcIjtcbiAgICAtd2Via2l0LW9wYWNpdHk6IDE7XG4gICAgLWtodG1sLW9wYWNpdHk6IDE7XG4gICAgLW1vei1vcGFjaXR5OiAxO1xuICAgIC1tcy1vcGFjaXR5OiAxO1xuICAgIC1vLW9wYWNpdHk6IDE7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAubWFpbl9uYXZfX2ljb24uY2xvc2Ugc3ZnIHtcbiAgICBmaWxsOiAjNmY2NTVjICFpbXBvcnRhbnQ7XG4gIH1cbiAgaHRtbC5tZW51X29wZW4gLm1haW5fbmF2X19pY29uLmNsb3NlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA0LjhyZW07XG4gICAgcmlnaHQ6IDYlO1xuICB9XG59XG5cbi5sYW5nX2NoYW5nZSB7XG4gIGNvbG9yOiAjZTVkZGM1O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcmVtO1xuICByaWdodDogLTAuOXJlbTtcbiAgd2lkdGg6IDEwcmVtO1xufVxuXG5odG1sLnBhZ2VfaG9tZXBhZ2UgLmxhbmdfY2hhbmdlIHtcbiAgY29sb3I6ICM2ZjY1NWM7XG59XG5cbi5sYW5nX2NoYW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLXRvcDogNTQuNzgyNjElO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmxhbmdfY2hhbmdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgaHRtbC5tZW51X29wZW4gLmxhbmdfY2hhbmdlIHtcbiAgICBjb2xvcjogIzZmNjU1YztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmxhbmdfY2hhbmdlIHtcbiAgICB3aWR0aDogOXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gIC5sYW5nX2NoYW5nZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgd2lkdGg6IDEzLjdyZW07XG4gICAgdG9wOiAtMXJlbTtcbiAgfVxufVxuXG4ubGFuZ19jaGFuZ2Ugc3ZnIHtcbiAgZmlsbDogI2U1ZGRjNTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MzApXCI7XG4gIC13ZWJraXQtb3BhY2l0eTogMC4zO1xuICAta2h0bWwtb3BhY2l0eTogMC4zO1xuICAtbW96LW9wYWNpdHk6IDAuMztcbiAgLW1zLW9wYWNpdHk6IDAuMztcbiAgLW8tb3BhY2l0eTogMC4zO1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbmh0bWwucGFnZV9ob21lcGFnZSAubGFuZ19jaGFuZ2Ugc3ZnIHtcbiAgZmlsbDogIzZmNjU1Yztcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIGh0bWwubWVudV9vcGVuIC5sYW5nX2NoYW5nZSBzdmcge1xuICAgIGZpbGw6ICM2ZjY1NWM7XG4gIH1cbn1cblxuLmxhbmdfY2hhbmdlID4gc3BhbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDIlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB0ZXh0LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuXG5odG1sOm5vdCgudG91Y2gpIC5sYW5nX2NoYW5nZSBzdmcge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1raHRtbC10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xufVxuXG5odG1sOm5vdCgudG91Y2gpIC5sYW5nX2NoYW5nZTpob3ZlciBzdmcge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XG4gIC1raHRtbC10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xufVxuXG4ubWFpbl9fZm9vdGVyIHtcbiAgei1pbmRleDogMjg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHJlbTtcbiAgYm90dG9tOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1raHRtbC10cmFuc2l0aW9uOiBhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICB0cmFuc2l0aW9uOiBhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX2Zvb3RlciB7XG4gICAgaGVpZ2h0OiA0MHJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDM1LjlyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICBodG1sLm1lbnVfb3BlbiAubWFpbl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5tYWluX19mb290ZXJfX2JnXzEge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA5NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcztcbiAgLWtodG1sLXRyYW5zaXRpb246IGFsbCA5NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgOTUwbXMgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSkgMHM7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgOTUwbXMgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSkgMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCA5NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDk1MG1zIGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpIDBzO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IDMwMS42NjJyZW07XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAubWFpbl9fZm9vdGVyX19iZ18xIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMDEuNjYycmVtO1xuICAgIGhlaWdodDogNTYuM3JlbTtcbiAgICBmaWxsOiAjMjUzYzJiO1xuICB9XG4gIGh0bWxbbm9iZ10gLm1haW5fX2Zvb3Rlcl9fYmdfMSBzdmcge1xuICAgIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbiAgaHRtbC5wYWdlX2hvbWVwYWdlIC5tYWluX19mb290ZXJfX2JnXzEgc3ZnIHtcbiAgICBmaWxsOiAjRkZGO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19iZ18xIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMjI0LjM3NjdyZW07XG4gIH1cbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMSBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMjI0LjM3NjdyZW07XG4gICAgaGVpZ2h0OiA0MHJlbTtcbiAgICBmaWxsOiAjYWYwOTE3O1xuICB9XG4gIGh0bWxbbm9iZ10gLm1haW5fX2Zvb3Rlcl9fYmdfMSBzdmcge1xuICAgIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbiAgaHRtbC5wYWdlX2hvbWVwYWdlIC5tYWluX19mb290ZXJfX2JnXzEgc3ZnIHtcbiAgICBmaWxsOiAjRkZGO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IDMwMHJlbTtcbiAgfVxuICAubWFpbl9fZm9vdGVyX19iZ18xIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAzMDByZW07XG4gICAgaGVpZ2h0OiA1Ni4zcmVtO1xuICAgIGZpbGw6ICNhZjA5MTc7XG4gIH1cbiAgaHRtbFtub2JnXSAubWFpbl9fZm9vdGVyX19iZ18xIHN2ZyB7XG4gICAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxuICBodG1sLnBhZ2VfaG9tZXBhZ2UgLm1haW5fX2Zvb3Rlcl9fYmdfMSBzdmcge1xuICAgIGZpbGw6ICNGRkY7XG4gIH1cbn1cblxuLm1haW5fX2Zvb3Rlcl9fYmdfMiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA2NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcztcbiAgLWtodG1sLXRyYW5zaXRpb246IGFsbCA2NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgNjUwbXMgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSkgMHM7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgNjUwbXMgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSkgMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCA2NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcztcbiAgdHJhbnNpdGlvbjogYWxsIDY1MG1zIGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpIDBzO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tYWluX19mb290ZXJfX2JnXzIge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTYuM3JlbTtcbiAgICB3aWR0aDogMzAwcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19iZ18yIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcmVtO1xuICAgIHdpZHRoOiAyMjQuMzc2N3JlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMzAxLjY2MnJlbTtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG59XG5cbi5tYWluX19mb290ZXJfX2JnXzIgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZmlsbDogI2FmMDkxNztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogZmlsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG4gIC1raHRtbC10cmFuc2l0aW9uOiBmaWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcbiAgLW1vei10cmFuc2l0aW9uOiBmaWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcbiAgLW1zLXRyYW5zaXRpb246IGZpbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICAtby10cmFuc2l0aW9uOiBmaWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTtcbiAgdHJhbnNpdGlvbjogZmlsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG59XG5cbmh0bWxbbm9iZ10gLm1haW5fX2Zvb3Rlcl9fYmdfMiBzdmcge1xuICBmaWxsOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMiBzdmcudGFibGV0LCAubWFpbl9fZm9vdGVyX19iZ18yIHN2Zy5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnLmRlc2t0b3AsIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnLm1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fZm9vdGVyX19iZ18yIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMzAxLjY2MnJlbTtcbiAgICBoZWlnaHQ6IDU2LjNyZW07XG4gICAgZmlsbDogI2FmMDkxNztcbiAgfVxuICAubWFpbl9fZm9vdGVyX19iZ18yIHN2Zy50YWJsZXQsIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnLm1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnLmRlc2t0b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAyMjQuMzc2N3JlbTtcbiAgICBoZWlnaHQ6IDQwcmVtO1xuICAgIGZpbGw6ICNhZjA5MTc7XG4gIH1cbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMiBzdmcudGFibGV0LCAubWFpbl9fZm9vdGVyX19iZ18yIHN2Zy5tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAubWFpbl9fZm9vdGVyX19iZ18yIHN2Zy5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fYmdfMiBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDMwMHJlbTtcbiAgICBoZWlnaHQ6IDU2LjFyZW07XG4gICAgZmlsbDogI2FmMDkxNztcbiAgfVxuICAubWFpbl9fZm9vdGVyX19iZ18yIHN2Zy50YWJsZXQsIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnLm1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYWluX19mb290ZXJfX2JnXzIgc3ZnLmRlc2t0b3Age1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm1haW5fX2Zvb3Rlcl9faW5uZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDE1cmVtO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fZm9vdGVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiA4OCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiA2LjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgfVxuICAubWFpbl9fZm9vdGVyX19pbm5lcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tYWluX19mb290ZXJfX2lubmVyIHtcbiAgICB0b3A6IDEwcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubWFpbl9fZm9vdGVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19mb290ZXJfX2lubmVyOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tYWluX19mb290ZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgLm1haW5fX2Zvb3Rlcl9faW5uZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogOTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAubWFpbl9fZm9vdGVyX19pbm5lcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDFweCkge1xuICAubWFpbl9fZm9vdGVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMzcycHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19mb290ZXJfX2lubmVyOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4ubWFpbl9fZm9vdGVyX19sb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwLjhyZW07XG4gIHRvcDogMDtcbiAgd2lkdGg6IDkuNXJlbTtcbiAgaGVpZ2h0OiA0LjlyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYWluX19mb290ZXJfX2xvZ28gc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZpbGw6ICNGRkY7XG59XG5cbmh0bWw6bm90KC50b3VjaCkgLm1haW5fX2Zvb3Rlcl9fbG9nbyB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgLWtodG1sLXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG59XG5cbmh0bWw6bm90KC50b3VjaCkgLm1haW5fX2Zvb3Rlcl9fbG9nbzpob3ZlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA1LCAxLjA1KSByb3RhdGUoLTVkZWcpO1xuICAta2h0bWwtdHJhbnNmb3JtOiBzY2FsZSgxLjA1LCAxLjA1KSByb3RhdGUoLTVkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSkgcm90YXRlKC01ZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSkgcm90YXRlKC01ZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjA1LCAxLjA1KSByb3RhdGUoLTVkZWcpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpIHJvdGF0ZSgtNWRlZyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19sb2dvIHtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fZm9vdGVyX19sb2dvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0byAzcmVtO1xuICB9XG59XG5cbi5tYWluX19mb290ZXJfX25hdiB7XG4gIHRvcDogMC41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tYWluX19mb290ZXJfX25hdiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgLWtodG1sLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19mb290ZXJfX25hdiB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgLWtodG1sLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEuOHJlbSAwIDEuN3JlbTtcbiAgfVxuICAubWFpbl9fZm9vdGVyX19uYXY6YWZ0ZXIsIC5tYWluX19mb290ZXJfX25hdjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxMTIlO1xuICAgIGxlZnQ6IC02JTtcbiAgICByaWdodDogLTYlO1xuICAgIGhlaWdodDogMC4xcmVtO1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTE1KTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTE1KVwiO1xuICAgIC13ZWJraXQtb3BhY2l0eTogMC4xNTtcbiAgICAta2h0bWwtb3BhY2l0eTogMC4xNTtcbiAgICAtbW96LW9wYWNpdHk6IDAuMTU7XG4gICAgLW1zLW9wYWNpdHk6IDAuMTU7XG4gICAgLW8tb3BhY2l0eTogMC4xNTtcbiAgICBvcGFjaXR5OiAwLjE1O1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgLm1haW5fX2Zvb3Rlcl9fbmF2OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiBhdXRvO1xuICB9XG59XG5cbi5tYWluX19mb290ZXJfX25hdiA+IHVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtbW96LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAtbW96LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIC13ZWJraXQtZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAtbW96LWZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAgIC1tb3otZmxleC13cmFwOiBub3dyYXA7XG4gICAgLW1zLWZsZXgtd3JhcDogbm9uZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19mb290ZXJfX25hdiA+IHVsIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTdyZW07XG4gIG1hcmdpbjogMCA0cmVtIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTdyZW07XG4gICAgbWFyZ2luOiAwIDNyZW0gMCAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxOS4zcmVtO1xuICAgIG1hcmdpbjogMCA2cmVtIDAgMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiAzMyU7XG4gIH1cbn1cblxuLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkgcCB7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMS43cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaSBwIHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaSBwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkgPiBhIHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8qQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wLXJldGluYVwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KFwib3N3YWxkXCIsIHJlbSgxNSksIHJlbSgxOCksIGJvbGQpO1xuICAgICAgICAgIH0qL1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKkBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4td2lkZS1yZXRpbmFcIikge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udChcIm9zd2FsZFwiLCByZW0oMTcpLCByZW0oMjApLCBib2xkKTtcbiAgICAgICAgICB9Ki9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDFweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpID4gYSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpID4gYSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpID4gYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1vLWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH1cbn1cblxuLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaSA+IHVsIHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkgPiB1bCB7XG4gICAgbWFyZ2luOiAwLjhyZW0gMCAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpID4gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm1haW5fX2Zvb3Rlcl9fbmF2ID4gdWwgPiBsaSA+IHVsID4gbGkge1xuICBtYXJnaW46IDA7XG59XG5cbi5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkgPiB1bCA+IGxpIGEge1xuICBmb250LWZhbWlseTogXCJFQiBHYXJhbW9uZFwiLCBzZXJpZjtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjlyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgLypAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hXCIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KFwiYXJpYWxcIiwgcmVtKDExLjUpLCByZW0oMTcpKTtcbiAgICAgICAgICAgICAgfSovXG4gIGNvbG9yOiBpbmhlcml0O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9ODApO1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTgwKVwiO1xuICAtd2Via2l0LW9wYWNpdHk6IDAuODtcbiAgLWtodG1sLW9wYWNpdHk6IDAuODtcbiAgLW1vei1vcGFjaXR5OiAwLjg7XG4gIC1tcy1vcGFjaXR5OiAwLjg7XG4gIC1vLW9wYWNpdHk6IDAuODtcbiAgb3BhY2l0eTogMC44O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi13aWRlLXJldGluYVwiKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udChcImFyaWFsXCIsIHJlbSgxMyksIHJlbSgyMSkpO1xuICAgICAgICAgICAgICB9Ki9cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDFweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpID4gdWwgPiBsaSBhIHtcbiAgICBmb250LWZhbWlseTogXCJFQiBHYXJhbW9uZFwiLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfVxufVxuXG5odG1sOm5vdCgudG91Y2gpIC5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkgPiB1bCA+IGxpIGEge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1raHRtbC10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIDBzO1xufVxuXG5odG1sOm5vdCgudG91Y2gpIC5tYWluX19mb290ZXJfX25hdiA+IHVsID4gbGkgPiB1bCA+IGxpIGE6aG92ZXIge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKTtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApXCI7XG4gIC13ZWJraXQtb3BhY2l0eTogMTtcbiAgLWtodG1sLW9wYWNpdHk6IDE7XG4gIC1tb3otb3BhY2l0eTogMTtcbiAgLW1zLW9wYWNpdHk6IDE7XG4gIC1vLW9wYWNpdHk6IDE7XG4gIG9wYWNpdHk6IDE7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19uYXYgPiB1bCA+IGxpID4gdWwgPiBsaSBhIHtcbiAgICBmb250LWZhbWlseTogXCJFQiBHYXJhbW9uZFwiLCBzZXJpZjtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfVxufVxuXG4ubWFpbl9fZm9vdGVyX19jZXJ0cyB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG4gIHJpZ2h0OiAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5tYWluX19mb290ZXJfX2NlcnRzIHtcbiAgICB0b3A6IDI0LjdyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19mb290ZXJfX2NlcnRzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDMuMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLm1haW5fX2Zvb3Rlcl9fY2VydHM6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxMTIlO1xuICAgIGxlZnQ6IC02JTtcbiAgICByaWdodDogLTYlO1xuICAgIGhlaWdodDogMC4xcmVtO1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTE1KTtcbiAgICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTE1KVwiO1xuICAgIC13ZWJraXQtb3BhY2l0eTogMC4xNTtcbiAgICAta2h0bWwtb3BhY2l0eTogMC4xNTtcbiAgICAtbW96LW9wYWNpdHk6IDAuMTU7XG4gICAgLW1zLW9wYWNpdHk6IDAuMTU7XG4gICAgLW8tb3BhY2l0eTogMC4xNTtcbiAgICBvcGFjaXR5OiAwLjE1O1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgLm1haW5fX2Zvb3Rlcl9fY2VydHM6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0b3A6IGF1dG87XG4gIH1cbn1cblxuLm1haW5fX2Zvb3Rlcl9fY2VydHMgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbjogMCAxLjNyZW0gMCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYWluX19mb290ZXJfX2NlcnRzIGxpOm50aC1jaGlsZCgzKSB7XG4gIHdpZHRoOiAzLjRyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWFpbl9fZm9vdGVyX19jZXJ0cyBsaTpudGgtY2hpbGQoMikge1xuICB3aWR0aDogNC40cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cblxuLm1haW5fX2Zvb3Rlcl9fY2VydHMgbGk6bnRoLWNoaWxkKDEpIHtcbiAgd2lkdGg6IDIuNHJlbTtcbiAgaGVpZ2h0OiAzcmVtO1xufVxuXG4ubWFpbl9fZm9vdGVyX19jZXJ0cyBsaSBhIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmh0bWw6bm90KC50b3VjaCkgLm1haW5fX2Zvb3Rlcl9fY2VydHMgbGkgYSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgLWtodG1sLXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAwcztcbiAgLW1zLXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG4gIHRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgMHM7XG59XG5cbmh0bWw6bm90KC50b3VjaCkgLm1haW5fX2Zvb3Rlcl9fY2VydHMgbGkgYTpob3ZlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjE1LCAxLjE1KTtcbiAgLWtodG1sLXRyYW5zZm9ybTogc2NhbGUoMS4xNSwgMS4xNSk7XG4gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjE1LCAxLjE1KTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4xNSwgMS4xNSk7XG4gIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4xNSwgMS4xNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xNSwgMS4xNSk7XG59XG5cbi5tYWluX19mb290ZXJfX2NlcnRzIGxpIHN2ZyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYWluX19mb290ZXJfX2NvcHkge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTUwKVwiO1xuICAtd2Via2l0LW9wYWNpdHk6IDAuNTtcbiAgLWtodG1sLW9wYWNpdHk6IDAuNTtcbiAgLW1vei1vcGFjaXR5OiAwLjU7XG4gIC1tcy1vcGFjaXR5OiAwLjU7XG4gIC1vLW9wYWNpdHk6IDAuNTtcbiAgb3BhY2l0eTogMC41O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8qQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wLXJldGluYVwiKSB7XG4gICAgICBAaW5jbHVkZSBmb250KFwiYXJpYWxcIiwgcmVtKDExKSwgcmVtKDE0KSk7XG4gICAgfSovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiBhdXRvO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19mb290ZXJfX2NvcHkge1xuICAgIG1heC13aWR0aDogODglO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAubWFpbl9fZm9vdGVyX19jb3B5OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fY29weSB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19mb290ZXJfX2NvcHk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fY29weSB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19mb290ZXJfX2NvcHk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fY29weSB7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19mb290ZXJfX2NvcHk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQxcHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fY29weSB7XG4gICAgbWF4LXdpZHRoOiAxMzcycHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5tYWluX19mb290ZXJfX2NvcHk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAubWFpbl9fZm9vdGVyX19jb3B5IHtcbiAgICBib3R0b206IDIuMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1haW5fX2Zvb3Rlcl9fY29weSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIHRvcDogYXV0bztcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxufVxuXG4ubWFpbl9fZm9vdGVyIGlmcmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMThyZW07XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB0b3A6IGF1dG87XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tYWluX19mb290ZXIgaWZyYW1lIHtcbiAgICBib3R0b206IDIwcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLm1haW5fX2Zvb3RlciBpZnJhbWUge1xuICAgIGJvdHRvbTogMC41cmVtO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19mb290ZXIgaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBodG1sLm92ZXJsYXlfb3BlbiAubWFpbjpmaXJzdC1jaGlsZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi5tYWluX19vdmVybGF5IHtcbiAgei1pbmRleDogMzU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgLTNzO1xuICAta2h0bWwtdHJhbnNpdGlvbjogYWxsIDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgLTNzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIC0zcztcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIC0zcztcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgLTNzO1xuICB0cmFuc2l0aW9uOiBhbGwgMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAtM3M7XG4gIHRyYW5zaXRpb24tZGVsYXk6IC0ycztcbiAgY29sb3I6ICM2ZjY1NWM7XG4gIC8qJi5sb2FkZWR7XG4gICAgLm1haW5fX292ZXJsYXlfX2Jne1xuICAgICAgQGluY2x1ZGUgb3BhY2l0eSguNSk7XG4gICAgfVxuICAgIC5tYWluX19vdmVybGF5X193cmFwcGVye1xuICAgICAgbGVmdDogNTAlO1xuICAgIH1cbiAgfSovXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fb3ZlcmxheSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi5tYWluX19vdmVybGF5Lm5nLWFuaW1hdGUge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIC0zcztcbiAgLWtodG1sLXRyYW5zaXRpb246IGFsbCAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIC0zcztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAtM3M7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSAtM3M7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIC0zcztcbiAgdHJhbnNpdGlvbjogYWxsIDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSkgLTNzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAtMnM7XG59XG5cbi5tYWluX19vdmVybGF5Lm5nLWxlYXZlIC5tYWluX19vdmVybGF5X19iZywgLm1haW5fX292ZXJsYXkubmctbGVhdmUtYWN0aXZlIC5tYWluX19vdmVybGF5X19iZywgLm1haW5fX292ZXJsYXkuY2xvc2luZyAubWFpbl9fb3ZlcmxheV9fYmcge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcbiAgLXdlYmtpdC1vcGFjaXR5OiAwO1xuICAta2h0bWwtb3BhY2l0eTogMDtcbiAgLW1vei1vcGFjaXR5OiAwO1xuICAtbXMtb3BhY2l0eTogMDtcbiAgLW8tb3BhY2l0eTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1haW5fX292ZXJsYXkubmctbGVhdmUgLm1haW5fX292ZXJsYXlfX3dyYXBwZXIsIC5tYWluX19vdmVybGF5Lm5nLWxlYXZlLWFjdGl2ZSAubWFpbl9fb3ZlcmxheV9fd3JhcHBlciwgLm1haW5fX292ZXJsYXkuY2xvc2luZyAubWFpbl9fb3ZlcmxheV9fd3JhcHBlciB7XG4gIGxlZnQ6IDE1MCU7XG59XG5cbi5tYWluX19vdmVybGF5Lm5nLWVudGVyIC5tYWluX19vdmVybGF5X19iZywgLm1haW5fX292ZXJsYXkubmctZW50ZXItYWN0aXZlIC5tYWluX19vdmVybGF5X19iZywgLm1haW5fX292ZXJsYXkubmctbW92ZSAubWFpbl9fb3ZlcmxheV9fYmcsIC5tYWluX19vdmVybGF5Lm5nLW1vdmUtYWN0aXZlIC5tYWluX19vdmVybGF5X19iZyB7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xuICAtd2Via2l0LW9wYWNpdHk6IDA7XG4gIC1raHRtbC1vcGFjaXR5OiAwO1xuICAtbW96LW9wYWNpdHk6IDA7XG4gIC1tcy1vcGFjaXR5OiAwO1xuICAtby1vcGFjaXR5OiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubWFpbl9fb3ZlcmxheS5uZy1lbnRlciAubWFpbl9fb3ZlcmxheV9fd3JhcHBlciwgLm1haW5fX292ZXJsYXkubmctZW50ZXItYWN0aXZlIC5tYWluX19vdmVybGF5X193cmFwcGVyLCAubWFpbl9fb3ZlcmxheS5uZy1tb3ZlIC5tYWluX19vdmVybGF5X193cmFwcGVyLCAubWFpbl9fb3ZlcmxheS5uZy1tb3ZlLWFjdGl2ZSAubWFpbl9fb3ZlcmxheV9fd3JhcHBlciB7XG4gIGxlZnQ6IC0xMDAlO1xufVxuXG4ubWFpbl9fb3ZlcmxheV9fYmcge1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIG9wYWNpdHk6IC41O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xufVxuXG4ubWFpbl9fb3ZlcmxheV9fd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3Nwcml0ZXMvaS9vdmVybGF5LWJnLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNzYuNXJlbTtcbiAgaGVpZ2h0OiA2MC41N3JlbTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA2MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG4gIC1raHRtbC10cmFuc2l0aW9uOiBhbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICAtby10cmFuc2l0aW9uOiBhbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuICB0cmFuc2l0aW9uOiBhbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX292ZXJsYXlfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zcHJpdGVzL2kvb3ZlcmxheS1iZy5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA2OHJlbTtcbiAgICBoZWlnaHQ6IDUzLjg0cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fb3ZlcmxheV9fd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIC1raHRtbC10cmFuc2Zvcm06IG5vbmU7XG4gICAgLW1vei10cmFuc2Zvcm06IG5vbmU7XG4gICAgLW1zLXRyYW5zZm9ybTogbm9uZTtcbiAgICAtby10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG59XG5cbi5tYWluX19vdmVybGF5X19pbm5lciB7XG4gIGNvbG9yOiAjMjQyNDI0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogNy4zcmVtIDhyZW0gNi43cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLm1haW5fX292ZXJsYXlfX2lubmVyIHtcbiAgICBwYWRkaW5nOiA1LjNyZW0gNHJlbSA0LjdyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tYWluX19vdmVybGF5X19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiA4OCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgbWFyZ2luOiAyMHB4IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICB9XG4gIC5tYWluX19vdmVybGF5X19pbm5lcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLm1haW5fX292ZXJsYXlfX3Njcm9sbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5tYWluX19vdmVybGF5X19jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNi4zcmVtO1xuICByaWdodDogMy44cmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1haW5fX292ZXJsYXlfX2Nsb3NlIHN2ZyB7XG4gIGZpbGw6ICM2ZjY1NWM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWFpbl9fb3ZlcmxheV9fY2xvc2Uge1xuICAgIHJpZ2h0OiAzcmVtO1xuICAgIHRvcDogM3JlbTtcbiAgICB3aWR0aDogNHJlbTtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLm1haW5fX292ZXJsYXlfX2Nsb3NlIHN2ZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIGh0bWwub3ZlcmxheV9vcGVuIC5tYWluIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBodG1sLm92ZXJsYXlfb3BlbiAubWFpbl9fZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubGl0eSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubGl0eS1pbWFnZSBpbWcge1xuICBwYWRkaW5nOiA0cmVtO1xufVxuXG4ubGl0eS1jbG9zZSwgLmxpdHktY2xvc2U6aG92ZXIsIC5saXR5LWNsb3NlOmZvY3VzLCAubGl0eS1jbG9zZTphY3RpdmUsIC5saXR5LWNsb3NlOnZpc2l0ZWQge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4ubGl0eS1jb250ZW50OmFmdGVyIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc3ZnLWRlZnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG59XG5cbi5tYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbmh0bWwubWVudV9vcGVuIC5tYWluIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWFpbl9fc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tYWluIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi5pdGVtX19idG4ge1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtby1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjNmY2NTVjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxOXB4IDQzcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1tcy1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1vLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLml0ZW1fX2J0biB7XG4gICAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW8tZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBwYWRkaW5nOiAxNnB4IDMwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaXRlbV9fYnRuIHtcbiAgICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1vLWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgcGFkZGluZzogMTlweCA0MHB4O1xuICB9XG59XG5cbi5pdGVtX19idG46Zm9jdXMge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuKltuZy1jbGlja10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKlxuKiBTY3V0LCBhIGNvbGxlY3Rpb24gb2YgU2FzcyB1dGlsaXRpZXNcbiogdG8gZWFzZSBhbmQgaW1wcm92ZSBvdXIgaW1wbGVtZW50YXRpb25zIG9mIGNvbW1vbiBzdHlsZS1jb2RlIHBhdHRlcm5zLlxuKiB2MS40LjBcbiogRG9jcyBhdCBodHRwOi8vZGF2aWR0aGVjbGFyay5naXRodWIuaW8vc2N1dFxuKi9cblxuQG1peGluIHNjdXQtY2xlYXJmaXgge1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxufVxuXG4lc2N1dC1jbGVhcmZpeCB7XG4gIEBpbmNsdWRlIHNjdXQtY2xlYXJmaXg7XG59XG5AbWl4aW4gc2N1dC1saXN0LXVuc3R5bGVkKFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICBAaWYgJG5vLW1hcmdpbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbn1cblxuJXNjdXQtbGlzdC11bnN0eWxlZCB7XG4gIEBpbmNsdWRlIHNjdXQtbGlzdC11bnN0eWxlZCgpO1xufVxuLy8gRGVwZW5kcyBvbiBgbGlzdC11bnN0eWxlZGAgYW5kIGBjbGVhcmZpeGAuXG5cbkBtaXhpbiBzY3V0LWxpc3QtZmxvYXRlZCAoXG4gICRzcGFjZTogZmFsc2UsXG4gICRkaXI6IGxlZnQsXG4gICRuby1tYXJnaW46IHRydWVcbikge1xuXG4gIEBpbmNsdWRlIHNjdXQtbGlzdC11bnN0eWxlZCgkbm8tbWFyZ2luKTtcbiAgQGluY2x1ZGUgc2N1dC1jbGVhcmZpeDtcblxuICAmID4gbGkge1xuICAgIGZsb2F0OiAkZGlyO1xuICB9XG5cbiAgQGlmICRzcGFjZSB7XG4gICAgJiA+IGxpICsgbGkge1xuICAgICAgbWFyZ2luLSN7JGRpcn06ICRzcGFjZTtcbiAgICB9XG4gIH1cblxufVxuXG4lc2N1dC1saXN0LWZsb2F0ZWQge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtZmxvYXRlZDtcbn1cblxuQGZ1bmN0aW9uIHNjdXQtYXV0b09yVmFsdWUgKCR2YWwpIHtcbiAgQGlmICR2YWwgPT0gYSBvciAkdmFsID09IGF1dG8ge1xuICAgIEByZXR1cm4gYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsO1xuICB9XG59XG5cbkBtaXhpbiBzY3V0LWNvb3JkcyAoXG4gICRjb29yZGluYXRlczogbiBuIG4gblxuKSB7XG5cbiAgJHRvcDogbnRoKCRjb29yZGluYXRlcywgMSk7XG4gICRyaWdodDogbnRoKCRjb29yZGluYXRlcywgMik7XG4gICRib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpO1xuICAkbGVmdDogbnRoKCRjb29yZGluYXRlcywgNCk7XG5cbiAgQGlmICR0b3AgIT0gbiB7XG4gICAgdG9wOiBzY3V0LWF1dG9PclZhbHVlKCR0b3ApO1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbiB7XG4gICAgcmlnaHQ6IHNjdXQtYXV0b09yVmFsdWUoJHJpZ2h0KTtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBuIHtcbiAgICBib3R0b206IHNjdXQtYXV0b09yVmFsdWUoJGJvdHRvbSk7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG4ge1xuICAgIGxlZnQ6IHNjdXQtYXV0b09yVmFsdWUoJGxlZnQpO1xuICB9XG5cbn1cbkBmdW5jdGlvbiBzY3V0LXN0cmlwLXVuaXQgKFxuICAkbnVtXG4pIHtcblxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcblxufVxuLy8gRGVwZW5kcyBvbiBgc2N1dC1zdHJpcC11bml0YC5cblxuJHNjdXQtZW0tYmFzZTogMTYgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBzY3V0LWVtIChcbiAgJHBpeGVscyxcbiAgJGJhc2U6ICRzY3V0LWVtLWJhc2Vcbikge1xuXG4gIC8vICRiYXNlIGNvdWxkIGJlIGluIGVtIG9yIHB4IChubyB1bml0ID0gcHgpLlxuICAvLyBBZGp1c3QgYWNjb3JkaW5nbHkgdG8gY3JlYXRlIGEgJGRpdmlzb3IgdGhhdFxuICAvLyBzZXJ2ZXMgYXMgY29udGV4dCBmb3IgJHBpeGVscy5cbiAgJG11bHRpcGxpZXI6IGlmKHVuaXQoJGJhc2UpID09IGVtLCAxNiwgMSk7XG4gICRkaXZpc29yOiBzY3V0LXN0cmlwLXVuaXQoJGJhc2UpICogJG11bHRpcGxpZXI7XG5cbiAgJGVtLXZhbHM6ICgpO1xuICBAZWFjaCAkdmFsIGluICRwaXhlbHMge1xuICAgICR2YWwtaW4tZW1zOiAoc2N1dC1zdHJpcC11bml0KCR2YWwpIC8gJGRpdmlzb3IpICogMWVtO1xuICAgICRlbS12YWxzOiBhcHBlbmQoJGVtLXZhbHMsICR2YWwtaW4tZW1zKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJGVtLXZhbHMpID09IDEge1xuICAgIC8vIHJldHVybiBhIHNpbmdsZSB2YWx1ZSBpbnN0ZWFkIG9mIGEgbGlzdCxcbiAgICAvLyBzbyBpdCBjYW4gYmUgdXNlZCBpbiBjYWxjdWxhdGlvbnNcbiAgICBAcmV0dXJuIG50aCgkZW0tdmFscywgMSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJGVtLXZhbHM7XG4gIH1cblxufVxuLy8gRGVwZW5kcyBvbiBgc2N1dC1zdHJpcC11bml0YC5cblxuJHNjdXQtcmVtLWJhc2U6IDE2ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2N1dC1yZW0gKFxuICAkcGl4ZWxzXG4pIHtcblxuICAkcmVtLXZhbHM6ICgpO1xuICBAZWFjaCAkdmFsIGluICRwaXhlbHMge1xuICAgICR2YWwtaW4tcmVtczogc2N1dC1zdHJpcC11bml0KCR2YWwpIC8gJHNjdXQtcmVtLWJhc2UgKiAxcmVtO1xuICAgICRyZW0tdmFsczogYXBwZW5kKCRyZW0tdmFscywgJHZhbC1pbi1yZW1zKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHJlbS12YWxzKSA9PSAxIHtcbiAgICAvLyByZXR1cm4gYSBzaW5nbGUgdmFsdWUgaW5zdGVhZCBvZiBhIGxpc3QsXG4gICAgLy8gc28gaXQgY2FuIGJlIHVzZWQgaW4gY2FsY3VsYXRpb25zXG4gICAgQHJldHVybiBudGgoJHJlbS12YWxzLCAxKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcmVtLXZhbHM7XG4gIH1cblxufVxuQG1peGluIHNjdXQtYm9yZGVyIChcbiAgJHN0eWxlLFxuICAkc2lkZXM6IG4geVxuKSB7XG5cbiAgQGlmIGxlbmd0aCgkc2lkZXMpID09IDIge1xuICAgIEBpZiBudGgoJHNpZGVzLCAxKSAhPSBuIHtcbiAgICAgIGJvcmRlci10b3A6ICRzdHlsZTtcbiAgICAgIGJvcmRlci1ib3R0b206ICRzdHlsZTtcbiAgICB9XG4gICAgQGlmIG50aCgkc2lkZXMsIDIpICE9IG4ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICRzdHlsZTtcbiAgICAgIGJvcmRlci1yaWdodDogJHN0eWxlO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIGxlbmd0aCgkc2lkZXMpID09IDQge1xuICAgIEBpZiBudGgoJHNpZGVzLCAxKSAhPSBuIHtcbiAgICAgIGJvcmRlci10b3A6ICRzdHlsZTtcbiAgICB9XG4gICAgQGlmIG50aCgkc2lkZXMsIDIpICE9IG4ge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkc3R5bGU7XG4gICAgfVxuICAgIEBpZiBudGgoJHNpZGVzLCAzKSAhPSBuIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRzdHlsZTtcbiAgICB9XG4gICAgQGlmIG50aCgkc2lkZXMsIDQpICE9IG4ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICRzdHlsZTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJTY3V0LWJvcmRlciByZXF1aXJlcyBhICRzaWRlcyBhcmd1bWVudCBvZiAyIG9yIDQgdmFsdWVzLlwiXG4gIH1cblxufVxuQG1peGluIHNjdXQtY2lyY2xlIChcbiAgJHNpemUsXG4gICRjb2xvcjogaW5oZXJpdFxuKSB7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQGlmICRjb2xvciA9PSBpbmhlcml0IHtcbiAgICAvLyBJZiB1c2VyIHdhbnRzIHRvIGluaGVyaXQgdGhlIGNvbG9yLFxuICAgIC8vIHRha2UgYWR2YW50YWdlIG9mIHRoZSBmYWN0IHRoYXQgYm9yZGVyXG4gICAgLy8gY29sb3IgZGVmYXVsdHMgdG8gdGhlIHRleHQgY29sb3Igb2YgdGhlIGVsZW1lbnQuXG4gICAgYm9yZGVyLXdpZHRoOiAkc2l6ZSAvIDI7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwganVzdCB1c2UgYmFja2dyb3VuZC1jb2xvci5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICB3aWR0aDogJHNpemU7XG4gIH1cblxufVxuQG1peGluIHNjdXQtY29sb3Itc3dhcCAoXG4gICRvZmYsXG4gICRvbixcbiAgJGR1cmF0aW9uOiAwLFxuICAkYmc6IGZhbHNlXG4pIHtcblxuICAkdHJhbnNpdGlvbi1wcm9wZXJ0aWVzOiBudWxsO1xuICAkb2ZmLWlzLWxpc3Q6IHR5cGUtb2YoJG9mZikgPT0gbGlzdDtcbiAgJG9uLWlzLWxpc3Q6IHR5cGUtb2YoJG9uKSA9PSBsaXN0O1xuXG4gIC8vIElmICRvZmYgSVMgYSBsaXN0LFxuICAvLyBhc3NpZ24gY29sb3IgYW5kIGJhY2tncm91bmQtY29sb3IuXG4gIEBpZiAkb2ZmLWlzLWxpc3Qge1xuICAgIGNvbG9yOiBudGgoJG9mZiwgMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbnRoKCRvZmYsIDIpO1xuICAgICR0cmFuc2l0aW9uLXByb3BlcnRpZXM6IGJhY2tncm91bmQtY29sb3IsIGNvbG9yO1xuICB9XG5cbiAgLy8gSWYgJG9mZiBJUyBOT1QgYSBsaXN0IGFuZCAkYmcgaXMgVFJVRSxcbiAgLy8gYXNzaWduIGJhY2tncm91bmQtY29sb3IuXG4gIEBlbHNlIGlmICRiZyBhbmQgbm90KCRvZmYtaXMtbGlzdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmY7XG4gICAgJHRyYW5zaXRpb24tcHJvcGVydGllczogYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIC8vIElmICRvZmYgSVMgTk9UIGEgbGlzdCBhbmQgJGJnIGlzIEZBTFNFLFxuICAvLyBhc3NpZ24gY29sb3IuXG4gIEBlbHNlIHtcbiAgICBjb2xvcjogJG9mZjtcbiAgICAkdHJhbnNpdGlvbi1wcm9wZXJ0aWVzOiBjb2xvcjtcbiAgfVxuXG4gIC8vIE9ubHkgc2V0LXVwIHRyYW5zaXRpb24gaWYgJGR1cmF0aW9uICE9IDAuXG4gIEBpZiAkZHVyYXRpb24gIT0gMCB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogJHRyYW5zaXRpb24tcHJvcGVydGllcztcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcblxuICAgIC8vICRvbiBpcyB0cmVhdGVkIHRoZSBzYW1lIGFzICRvZmYsIGFib3ZlLlxuICAgIEBpZiAkb24taXMtbGlzdCB7XG4gICAgICBjb2xvcjogbnRoKCRvbiwgMSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBudGgoJG9uLCAyKTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkYmcgYW5kIG5vdCgkb24taXMtbGlzdCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9uO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkb247XG4gICAgfVxuICB9XG5cbn1cbkBtaXhpbiBzY3V0LWhkLWJwIChcbiAgJHJhdGlvOiAxLjNcbikge1xuXG4gIEBtZWRpYSAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogKCRyYXRpbyAvIDEpKSxcbiAgICAgICAgICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gICAgICAgICAobWluLXJlc29sdXRpb246IChyb3VuZCg5NiAqICRyYXRpbykgKiAxZHBpKSkge1xuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIHNjdXQtaGlkZS12aXN1YWxseSB7XG5cbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG5cbn1cblxuJXNjdXQtaGlkZS12aXN1YWxseSB7XG4gIEBpbmNsdWRlIHNjdXQtaGlkZS12aXN1YWxseTtcbn1cbkBtaXhpbiBzY3V0LWltYWdlLXJlcGxhY2Uge1xuXG4gIHRleHQtaW5kZW50OiAxMDIlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuXG59XG5cbiVzY3V0LWltYWdlLXJlcGxhY2Uge1xuICBAaW5jbHVkZSBzY3V0LWltYWdlLXJlcGxhY2U7XG59XG5cbi8vIERlcGVuZHMgb24gc2N1dC1yZW0gYW5kIHNjdXQtc3RyaXAtdW5pdFxuXG5AbWl4aW4gc2N1dC1yZW0tZmFsbGJhY2sgKFxuICAkcGl4ZWxzLFxuICAkcHJvcGVydHk6IGZvbnQtc2l6ZVxuKSB7XG5cbiAgJHB4LXZhbHM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJHBpeGVscyB7XG4gICAgJHZhbC1pbi1weDogc2N1dC1zdHJpcC11bml0KCR2YWwpICogMXB4O1xuICAgICRweC12YWxzOiBhcHBlbmQoJHB4LXZhbHMsICR2YWwtaW4tcHgpO1xuICB9XG4gICRyZW0tdmFsczogc2N1dC1yZW0oJHBpeGVscyk7XG5cbiAgI3skcHJvcGVydHl9OiAkcHgtdmFscztcbiAgI3skcHJvcGVydHl9OiAkcmVtLXZhbHM7XG5cbn1cbkBtaXhpbiBzY3V0LXJlc2V0LWJvcmRlci1ib3gge1xuICAvLyBNYWtlIGV2ZXJ5dGhpbmcgYSBib3JkZXItYm94LCBiZWNhdXNlIHdoeSBub3Q/XG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbiAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtYW50aWFsaWFzIHtcbiAgLy8gQW50aWFsaWFzIVxuICBib2R5IHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfVxuICAqLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogaW5oZXJpdDtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1yZXNldC1zZW1hbnRpY2l6ZSB7XG4gIC8vIE1ha2UgaGVhZGVycyBhbmQgPGI+IHNlbWFudGljLCBub3QgcHJlc2VudGF0aW9uYWwuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cbn1cblxuQG1peGluIHNjdXQtcmVzZXQtcG9pbnRlciB7XG4gIC8vIENsaWNrYWJsZSBmb3JtIGVsZW1lbnRzIHNob3VsZCBoYXZlIGEgcG9pbnRlci5cbiAgbGFiZWwsXG4gIHNlbGVjdCxcbiAgb3B0aW9uLFxuICBidXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1yZXNldC1mb3JtIHtcbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1yZXNldC1idXR0b24ge1xuICAvLyBSZXNldCBkZWZhdWx0IGJ1dHRvbiBzdHlsZXMsIHdoaWNoIGFyZSBuZXZlciB1c2VkLlxuICBidXR0b24sXG4gIFt0eXBlPVwiYnV0dG9uXCJdLFxuICBbdHlwZT1cInN1Ym1pdFwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1yZXNldC1wYXJhZ3JhcGgge1xuICAvLyBTb21lIHBhcmFncmFwaCBtYXJnaW5zIGp1c3QgZ2V0IGluIHRoZSB3YXkuXG4gIHA6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1yZXNldC1tZWRpYSB7XG4gIC8vIFlvdSB3YW50IHRoZXNlIGVsZW1lbnRzIGZsdWlkLCBwcm9iYWJseS5cbiAgaW1nLFxuICB2aWRlbyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gc2N1dC1yZXNldC1maWd1cmUge1xuICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW5zLlxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4vLyBDYWxsIHRoZW0gYWxsLCBtaW51cyBleGNsdXNpb25zIVxuQG1peGluIHNjdXQtcmVzZXQgKCRleGNsdWRlOiBmYWxzZSkge1xuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBib3JkZXItYm94KSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtYm9yZGVyLWJveDtcbiAgfVxuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBhbnRpYWxpYXMpKSB7XG4gICAgQGluY2x1ZGUgc2N1dC1yZXNldC1hbnRpYWxpYXM7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgc2VtYW50aWNpemUpKSB7XG4gICAgQGluY2x1ZGUgc2N1dC1yZXNldC1zZW1hbnRpY2l6ZTtcbiAgfVxuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBwb2ludGVyKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtcG9pbnRlcjtcbiAgfVxuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBmb3JtKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtZm9ybTtcbiAgfVxuICBAaWYgbm90KGluZGV4KCRleGNsdWRlLCBidXR0b24pKSB7XG4gICAgQGluY2x1ZGUgc2N1dC1yZXNldC1idXR0b247XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgcGFyYWdyYXBoKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtcGFyYWdyYXBoO1xuICB9XG4gIEBpZiBub3QoaW5kZXgoJGV4Y2x1ZGUsIG1lZGlhKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtbWVkaWE7XG4gIH1cbiAgQGlmIG5vdChpbmRleCgkZXhjbHVkZSwgZmlndXJlKSkge1xuICAgIEBpbmNsdWRlIHNjdXQtcmVzZXQtZmlndXJlO1xuICB9XG59XG5cbkBtaXhpbiBzY3V0LXNlbGVjdGVkIChcbiAgJGFjdGl2ZTogZmFsc2Vcbikge1xuXG4gIEBpZiAkYWN0aXZlIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn1cbkBtaXhpbiBzY3V0LXRyaWFuZ2xlIChcbiAgJGRpcmVjdGlvbjogcmlnaHQsXG4gICRzaXplOiAwLjc1ZW0sXG4gICRjb2xvcjogaW5oZXJpdFxuKSB7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICAvLyBGb3IgaW1wcm92ZWQgYXBwZWFyYW5jZSBpbiBzb21lIFdlYmtpdCBicm93c2Vyc1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cbiAgLy8gU2V0IHVwIHNvbWUgdmFyaWFibGVzXG4gICR3aWR0aDogbnVsbDtcbiAgJGhlaWdodDogbnVsbDtcbiAgJGJvcmRlci13aWR0aHM6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJHNpemUpID09IGxpc3Qge1xuICAgICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgICAkaGVpZ2h0OiBudGgoJHNpemUsIDIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkd2lkdGg6ICRzaXplO1xuICAgICRoZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgLy8gRm9yIHVwIGFuZCBkb3duLCB3aWR0aCBnZXRzIHR3byBib3JkZXJzIGJ1dCBoZWlnaHQgb25seSBvbmUsXG4gICAgLy8gc28gZGl2aWRlIHNlY29uZCBib3JkZXItd2lkdGggdmFsdWUgYnkgMlxuICAgICRib3JkZXItd2lkdGhzOiAkaGVpZ2h0ICgkd2lkdGggLyAyKTtcbiAgfVxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIC8vIEZvciByaWdodCBhbmQgbGVmdCwgaGVpZ2h0IGdldHMgdHdvIGJvcmRlcnMgYnV0IHdpZHRoIG9ubHkgb25lLFxuICAgIC8vIHNvIGRpdmlkZSBmaXJzdCBib3JkZXItd2lkdGggdmFsdWUgYnkgMlxuICAgICRib3JkZXItd2lkdGhzOiAoJGhlaWdodCAvIDIpICR3aWR0aDtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIHJpZ2h0IHRyaWFuZ2xlcyAodGhlIHJlc3QpLCBib3RoIHNpZGVzIGdldCB0d28gYm9yZGVycyxcbiAgICAvLyBzbyBkaXZpZGUgYm90aCBieSAyXG4gICAgJGJvcmRlci13aWR0aHM6ICgkaGVpZ2h0IC8gMikgKCR3aWR0aCAvIDIpO1xuICB9XG5cbiAgYm9yZGVyLXdpZHRoOiAkYm9yZGVyLXdpZHRocztcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcblxuXG4gIC8vIFNUQU5EQVJEIFRSSUFOR0xFU1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gQ09STkVSIFRSSUFOR0xFU1xuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHRvcC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdG9wLWxlZnQpIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdG9wLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHRvcC1sZWZ0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGJvdHRvbS1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gYm90dG9tLWxlZnQpIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgQGlmICRkaXJlY3Rpb24gPT0gYm90dG9tLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGJvdHRvbS1sZWZ0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LXRyaWFuZ2xlIHtcbiAgQGluY2x1ZGUgc2N1dC10cmlhbmdsZTtcbn1cbkBtaXhpbiBzY3V0LWNlbnRlci1hYnNvbHV0ZWx5IChcbiAgJGRpbWVuc2lvbnNcbikge1xuXG4gICR3aWR0aDogbnRoKCRkaW1lbnNpb25zLCAxKTtcbiAgJGhlaWdodDogbnRoKCRkaW1lbnNpb25zLCAyKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgQGlmICR3aWR0aCAhPSBuIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogKC0kd2lkdGggLyAyKTtcbiAgfVxuXG4gIEBpZiAkaGVpZ2h0ICE9IG4ge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAoLSRoZWlnaHQgLyAyKTtcbiAgfVxuXG59XG5AbWl4aW4gc2N1dC1jZW50ZXItYmxvY2sgKFxuICAkbWF4LXdpZHRoOiBmYWxzZVxuKSB7XG5cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgQGlmICRtYXgtd2lkdGgge1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxuXG59XG5cbiVzY3V0LWNlbnRlci1ibG9jayB7XG4gIEBpbmNsdWRlIHNjdXQtY2VudGVyLWJsb2NrO1xufVxuXG5AbWl4aW4gc2N1dC1jZW50ZXItdHJhbnNmb3JtIChcbiAgJGF4aXM6IGZhbHNlIC8vIG9yIHggb3IgeVxuKSB7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIEBpZiAkYXhpcyAhPSB4IHtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gIH1cblxuICBAaWYgJGF4aXMgIT0geSB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICR0cmFuc2xhdGUtdmFsOiBudWxsO1xuXG4gIEBpZiBub3QoJGF4aXMpIHtcbiAgICAkdHJhbnNsYXRlLXZhbDogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB9XG4gIEBlbHNlIGlmICRheGlzICE9IHgge1xuICAgICR0cmFuc2xhdGUtdmFsOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG4gIEBlbHNlIGlmICRheGlzICE9IHkge1xuICAgICR0cmFuc2xhdGUtdmFsOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2xhdGUtdmFsO1xuICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNsYXRlLXZhbDtcbiAgdHJhbnNmb3JtOiAkdHJhbnNsYXRlLXZhbDtcbn1cblxuJXNjdXQtY2VudGVyLXRyYW5zZm9ybSB7XG4gIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybTtcbn1cblxuJXNjdXQtY2VudGVyLXRyYW5zZm9ybS14IHtcbiAgQGluY2x1ZGUgc2N1dC1jZW50ZXItdHJhbnNmb3JtKHgpO1xufVxuXG4lc2N1dC1jZW50ZXItdHJhbnNmb3JtLXkge1xuICBAaW5jbHVkZSBzY3V0LWNlbnRlci10cmFuc2Zvcm0oeSk7XG59XG5cbkBtaXhpbiBzY3V0LWZpbGwgKFxuICAkd2lkdGgtaGVpZ2h0OiBmYWxzZVxuKSB7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIEBpZiAkd2lkdGgtaGVpZ2h0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG59XG5cbiVzY3V0LWZpbGwge1xuICBAaW5jbHVkZSBzY3V0LWZpbGw7XG59XG5AbWl4aW4gc2N1dC1saXN0LWN1c3RvbSAoXG4gICRjb250ZW50OiBcIlxcMjAyMlwiLFxuICAkbWFya2VyLXdpZHRoOiAwLjc1ZW0sXG4gICRwYWQ6IDAsXG4gICRuby1tYXJnaW46IGZhbHNlXG4pIHtcblxuICAkY29udGVudC12YWw6IG51bGw7XG4gICRjb3VudGVyOiBpbmRleCgkY29udGVudCwgY291bnQpO1xuICBAaWYgJGNvdW50ZXIge1xuICAgIEBpZiBsZW5ndGgoJGNvbnRlbnQpID09IDMge1xuICAgICAgJGNvbnRlbnQtdmFsOiBjb3VudGVyKHNjdXRsaXN0Y291bnRlciwgbnRoKCRjb250ZW50LCAzKSludGgoJGNvbnRlbnQsMik7XG4gICAgfVxuICAgIEBlbHNlIGlmIGxlbmd0aCgkY29udGVudCkgPT0gMiB7XG4gICAgICAkY29udGVudC12YWw6IGNvdW50ZXIoc2N1dGxpc3Rjb3VudGVyKW50aCgkY29udGVudCwyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGNvbnRlbnQtdmFsOiBjb3VudGVyKHNjdXRsaXN0Y291bnRlcik7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkY29udGVudC12YWw6ICRjb250ZW50O1xuICB9XG5cbiAgcGFkZGluZy1sZWZ0OiAkbWFya2VyLXdpZHRoICsgJHBhZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkbm8tbWFyZ2luIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAmID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaWYgJGNvdW50ZXIge1xuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHNjdXRsaXN0Y291bnRlcjtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNvbnRlbnQtdmFsO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAtJG1hcmtlci13aWR0aDtcbiAgICAgIHdpZHRoOiAkbWFya2VyLXdpZHRoO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn1cbi8vIERlcGVuZHMgb24gYGxpc3QtZmxvYXRlZGAsIHdoaWNoIGRlcGVuZHMgaW4gdHVybiBvbiBgbGlzdC11bnN0eWxlZGAgYW5kIGBjbGVhcmZpeGAuXG5cbkBtaXhpbiBzY3V0LWxpc3QtZGl2aWRlZCAoXG4gICRkaXZpZGVyOiBcInxcIixcbiAgJHNwYWNlOiAwLjVlbSxcbiAgJGRpcjogbGVmdCxcbiAgJGhlaWdodDogZmFsc2UsXG4gICRuby1tYXJnaW46IHRydWVcbikge1xuXG4gIEBpbmNsdWRlIHNjdXQtbGlzdC1mbG9hdGVkKCRkaXI6ICRkaXIsICRuby1tYXJnaW46ICRuby1tYXJnaW4pO1xuXG4gICRwc2V1ZG86IGlmKCRkaXIgPT0gbGVmdCwgJ2JlZm9yZScsICdhZnRlcicpO1xuXG4gIC8vIElmIGFuIGV4cGxpY2l0IGhlaWdodCBpcyBwYXNzZWQsXG4gIC8vIHRoaW5ncyBhcmUgZGlmZmVyZW50OiBBbGwgPGxpPnNcbiAgLy8gbmVlZCB0aGUgcHNldWRvLWVsZW1lbnQgKHRvIGZvcmNlIGhlaWdodCksXG4gIC8vIGJ1dCB0aGUgZmlyc3QncyBtdXN0IGJlIGhpZGRlbi5cblxuICBAaWYgJGhlaWdodCB7XG4gICAgJiA+IGxpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gICAgJiA+IGxpOiN7JHBzZXVkb30ge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgY29udGVudDogJGRpdmlkZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgICYgPiBsaTpmaXJzdC1jaGlsZDojeyRwc2V1ZG99IHtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAmID4gbGkgKyBsaTojeyRwc2V1ZG99IHtcbiAgICBAaWYgbm90KCRoZWlnaHQpIHtcbiAgICAgIGNvbnRlbnQ6ICRkaXZpZGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2U7XG4gIH1cblxufVxuXG4lc2N1dC1saXN0LWJhciB7XG4gIEBpbmNsdWRlIHNjdXQtbGlzdC1kaXZpZGVkO1xufVxuXG4lc2N1dC1saXN0LWJyZWFkY3J1bWIge1xuICBAaW5jbHVkZSBzY3V0LWxpc3QtZGl2aWRlZChcIi9cIik7XG59XG4vLyBEZXBlbmRzIG9uIGBsaXN0LXVuc3R5bGVkYC5cblxuQG1peGluIHNjdXQtbGlzdC1pbmxpbmUgKFxuICAkc3BhY2U6IGZhbHNlLFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSBzY3V0LWxpc3QtdW5zdHlsZWQoJG5vLW1hcmdpbik7XG5cbiAgJiA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICBAaWYgJHNwYWNlIHtcbiAgICAmID4gbGkgKyBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogJHNwYWNlO1xuICAgIH1cbiAgfVxuXG59XG5cbiVzY3V0LWxpc3QtaW5saW5lIHtcbiAgQGluY2x1ZGUgc2N1dC1saXN0LWlubGluZTtcbn1cbi8vIERlcGVuZHMgb24gYGxpc3QtdW5zdHlsZWRgLlxuXG5AbWl4aW4gc2N1dC1saXN0LXB1bmN0dWF0ZWQgKFxuICAkZGl2aWRlcjogXCIsIFwiLFxuICAkZGlzcGxheTogaW5saW5lLFxuICAkbm8tbWFyZ2luOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSBzY3V0LWxpc3QtdW5zdHlsZWQoJG5vLW1hcmdpbik7XG5cbiAgJiA+IGxpIHtcbiAgICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgICAmOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJGRpdmlkZXI7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQtbGlzdC1jb21tYSB7XG4gIEBpbmNsdWRlIHNjdXQtbGlzdC1wdW5jdHVhdGVkO1xufVxuQG1peGluIHNjdXQtbWFyZ2luIChcbiAgJG1hcmdpblxuKSB7XG5cbiAgQGlmIGxlbmd0aCgkbWFyZ2luKSA9PSAxIGFuZCAkbWFyZ2luICE9IG4ge1xuICAgIG1hcmdpbi10b3A6ICRtYXJnaW47XG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRtYXJnaW4pID09IDIge1xuICAgICRtYXJnaW4teTogbnRoKCRtYXJnaW4sIDEpO1xuICAgICRtYXJnaW4teDogbnRoKCRtYXJnaW4sIDIpO1xuICAgIEBpZiAkbWFyZ2luLXkgIT0gbiB7XG4gICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXk7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLXggIT0gbiB7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbi14O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLXg7XG4gICAgfVxuICB9XG5cbiAgQGlmIGxlbmd0aCgkbWFyZ2luKSA9PSAzIHtcbiAgICAkbWFyZ2luLXktdG9wOiBudGgoJG1hcmdpbiwgMSk7XG4gICAgJG1hcmdpbi14OiBudGgoJG1hcmdpbiwgMik7XG4gICAgJG1hcmdpbi15LWJvdHRvbTogbnRoKCRtYXJnaW4sIDMpO1xuICAgIEBpZiAkbWFyZ2luLXktdG9wICE9IG4ge1xuICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi15LXRvcDtcbiAgICB9XG4gICAgQGlmICRtYXJnaW4teCAhPSBuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbi14O1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4teDtcbiAgICB9XG4gICAgQGlmICRtYXJnaW4teS1ib3R0b20gIT0gbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXktYm90dG9tO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJG1hcmdpbikgPT0gNCB7XG4gICAgJG1hcmdpbi10b3A6IG50aCgkbWFyZ2luLCAxKTtcbiAgICAkbWFyZ2luLXJpZ2h0OiBudGgoJG1hcmdpbiwgMik7XG4gICAgJG1hcmdpbi1ib3R0b206IG50aCgkbWFyZ2luLCAzKTtcbiAgICAkbWFyZ2luLWxlZnQ6IG50aCgkbWFyZ2luLCA0KTtcbiAgICBAaWYgJG1hcmdpbi10b3AgIT0gbiB7XG4gICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICB9XG4gICAgQGlmICRtYXJnaW4tcmlnaHQgIT0gbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tcmlnaHQ7XG4gICAgfVxuICAgIEBpZiAkbWFyZ2luLWJvdHRvbSAhPSBuIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuICAgIH1cbiAgICBAaWYgJG1hcmdpbi1sZWZ0ICE9IG4ge1xuICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tbGVmdDtcbiAgICB9XG4gIH1cblxufVxuQG1peGluIHNjdXQtcGFkZGluZyAoXG4gICRwYWRkaW5nXG4pIHtcblxuICBAaWYgbGVuZ3RoKCRwYWRkaW5nKSA9PSAxIGFuZCAkcGFkZGluZyAhPSBuIHtcbiAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRwYWRkaW5nKSA9PSAyIHtcbiAgICAkcGFkZGluZy15OiBudGgoJHBhZGRpbmcsIDEpO1xuICAgICRwYWRkaW5nLXg6IG50aCgkcGFkZGluZywgMik7XG4gICAgQGlmICRwYWRkaW5nLXkgIT0gbiB7XG4gICAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmcteTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZy15O1xuICAgIH1cbiAgICBAaWYgJHBhZGRpbmcteCAhPSBuIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLXg7XG4gICAgfVxuICB9XG5cbiAgQGlmIGxlbmd0aCgkcGFkZGluZykgPT0gMyB7XG4gICAgJHBhZGRpbmcteS10b3A6IG50aCgkcGFkZGluZywgMSk7XG4gICAgJHBhZGRpbmcteDogbnRoKCRwYWRkaW5nLCAyKTtcbiAgICAkcGFkZGluZy15LWJvdHRvbTogbnRoKCRwYWRkaW5nLCAzKTtcbiAgICBAaWYgJHBhZGRpbmcteS10b3AgIT0gbiB7XG4gICAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmcteS10b3A7XG4gICAgfVxuICAgIEBpZiAkcGFkZGluZy14ICE9IG4ge1xuICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteDtcbiAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteDtcbiAgICB9XG4gICAgQGlmICRwYWRkaW5nLXktYm90dG9tICE9IG4ge1xuICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLXktYm90dG9tO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHBhZGRpbmcpID09IDQge1xuICAgICRwYWRkaW5nLXRvcDogbnRoKCRwYWRkaW5nLCAxKTtcbiAgICAkcGFkZGluZy1yaWdodDogbnRoKCRwYWRkaW5nLCAyKTtcbiAgICAkcGFkZGluZy1ib3R0b206IG50aCgkcGFkZGluZywgMyk7XG4gICAgJHBhZGRpbmctbGVmdDogbnRoKCRwYWRkaW5nLCA0KTtcbiAgICBAaWYgJHBhZGRpbmctdG9wICE9IG4ge1xuICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nLXRvcDtcbiAgICB9XG4gICAgQGlmICRwYWRkaW5nLXJpZ2h0ICE9IG4ge1xuICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmctcmlnaHQ7XG4gICAgfVxuICAgIEBpZiAkcGFkZGluZy1ib3R0b20gIT0gbiB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmctYm90dG9tO1xuICAgIH1cbiAgICBAaWYgJHBhZGRpbmctbGVmdCAhPSBuIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmctbGVmdDtcbiAgICB9XG4gIH1cbn1cbi8vIERlcGVuZHMgb24gYHBvc2l0aW9uaW5nLWNvb3JkaW5hdGVzYC5cblxuQG1peGluIHNjdXQtYWJzb2x1dGUgKFxuICAkY29vcmRpbmF0ZXM6IDAgbiBuIDBcbikge1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgQGluY2x1ZGUgc2N1dC1jb29yZHMoJGNvb3JkaW5hdGVzKTtcblxufVxuXG4lc2N1dC1hYnNvbHV0ZSB7XG4gIEBpbmNsdWRlIHNjdXQtYWJzb2x1dGU7XG59XG4vLyBEZXBlbmRzIG9uIGBwb3NpdGlvbmluZy1jb29yZGluYXRlc2AuXG5cbkBtaXhpbiBzY3V0LWZpeGVkIChcbiAgJGNvb3JkaW5hdGVzOiAwIG4gbiAwXG4pIHtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIEBpbmNsdWRlIHNjdXQtY29vcmRzKCRjb29yZGluYXRlcyk7XG5cbn1cblxuJXNjdXQtZml4ZWQge1xuICBAaW5jbHVkZSBzY3V0LWZpeGVkO1xufVxuLy8gRGVwZW5kcyBvbiBgcG9zaXRpb25pbmctY29vcmRpbmF0ZXNgLlxuXG5AbWl4aW4gc2N1dC1yZWxhdGl2ZSAoXG4gICRjb29yZGluYXRlczogbiBuIG4gblxuKSB7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSBzY3V0LWNvb3JkcygkY29vcmRpbmF0ZXMpO1xuXG59XG5AbWl4aW4gc2N1dC1yYXRpby1ib3ggKFxuICAkcmF0aW86IDEvMVxuKSB7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIFRoZSBjb250YWluZXIncyBoZWlnaHQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGVcbiAgLy8gY29udGFpbmVyJ3Mgd2lkdGgsIGlzIHNldCBieSBhc3NpZ25pbmdcbiAgLy8gcGFkZGluZy10b3AgdG8gYSBwc2V1ZG8tZWxlbWVudC5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAoMSAvICRyYXRpbykgKiAxMDAlO1xuICB9XG5cbn1cblxuJXNjdXQtcmF0aW8tYm94IHtcbiAgQGluY2x1ZGUgc2N1dC1yYXRpby1ib3g7XG59XG5AbWl4aW4gc2N1dC1zaXplKFxuICAkc2l6ZVxuKSB7XG5cbiAgQGlmIGxlbmd0aCgkc2l6ZSkgPT0gMSB7XG4gICAgd2lkdGg6ICAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICB9XG4gIEBlbHNlIGlmIGxlbmd0aCgkc2l6ZSkgPT0gMiB7XG4gICAgd2lkdGg6ICBudGgoJHNpemUsIDEpO1xuICAgIGhlaWdodDogbnRoKCRzaXplLCAyKTtcbiAgfVxuXG59XG5AbWl4aW4gc2N1dC1zdGlja3ktZm9vdGVyLWZpeGVkIChcbiAgJGhlaWdodCxcbiAgJHdyYXBwZXI6IFwiLndyYXBwZXJcIixcbiAgJGZvb3RlcjogXCIuc2N1dC1zdGlja3lcIlxuKSB7XG5cbiAgaHRtbCxcbiAgYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgI3skd3JhcHBlcn0ge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogLSRoZWlnaHQ7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgI3skd3JhcHBlcn06YWZ0ZXIsXG4gICN7JGZvb3Rlcn0ge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxuXG59XG5cbi8vIGRlcHJlY2F0ZWRcbkBtaXhpbiBzY3V0LXN0aWNreS1mb290ZXIgKFxuICAkaGVpZ2h0LFxuICAkd3JhcHBlcjogXCIud3JhcHBlclwiLFxuICAkZm9vdGVyOiBcIi5zY3V0LXN0aWNreVwiXG4pe1xuICBAaW5jbHVkZSBzY3V0LXN0aWNreS1mb290ZXItZml4ZWQoJGhlaWdodCwgJHdyYXBwZXIsICRmb290ZXIpO1xufVxuQG1peGluIHNjdXQtc3RpY2t5LWZvb3Rlci1mbHVpZCAoXG4gICR3cmFwcGVyOiBcIi53cmFwcGVyXCIsXG4gICRmb290ZXI6IFwiLnNjdXQtc3RpY2t5XCJcbikge1xuXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gICN7JHdyYXBwZXJ9IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjeyRmb290ZXJ9IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgaGVpZ2h0OiAxcHg7XG4gIH1cblxufVxuQG1peGluIHNjdXQtdmNlbnRlci1pYiAoXG4gICRpbm5lci4uLlxuKSB7XG5cbiAgLy8gVGhlIGlubmVyIGVsZW1lbnQgaXMgdmVydGljYWxseSBjZW50ZXJlZFxuICAvLyBieSBtaWRkbGUtYWxpZ25pbmcgaXQgd2l0aCBhbiBpbmxpbmUgcHNldWRvLWVsZW1lbnRcbiAgLy8gd2hvc2UgaGVpZ2h0IGlzIDEwMCUuXG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8vIEEgc21hbGwgbmVnYXRpdmUgcmlnaHQgbWFyZ2luIGlzIHNldFxuICAgIC8vIHRvIGFjY291bnQgZm9yIHRoZSBkZWZhdWx0XG4gICAgLy8gd29yZC1zcGFjaW5nIG9mIGlubGluZS1ibG9jay5cbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjI1ZW07XG4gIH1cblxuICAkaW5uZXI6IGlmKGxlbmd0aCgkaW5uZXIpID09IDAsIFwiLnNjdXQtaW5uZXJcIiwgJGlubmVyKTtcbiAgQGVhY2ggJGNlbGwtc2VsZWN0b3IgaW4gJGlubmVyIHtcbiAgICAkY2VsbC1zZWxlY3RvcjogdW5xdW90ZSgkY2VsbC1zZWxlY3Rvcik7XG4gICAgJiA+ICN7JGNlbGwtc2VsZWN0b3J9IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQtdmNlbnRlci1pYiB7XG4gIEBpbmNsdWRlIHNjdXQtdmNlbnRlci1pYjtcbn1cblxuQG1peGluIHNjdXQtdmNlbnRlci1saCAoXG4gICRoZWlnaHRcbikge1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRoZWlnaHQ7XG5cbn1cbkBtaXhpbiBzY3V0LXZjZW50ZXItdGQgKFxuICAkaW5uZXIuLi5cbikge1xuXG4gIGRpc3BsYXk6IHRhYmxlO1xuXG4gICRpbm5lcjogaWYobGVuZ3RoKCRpbm5lcikgPT0gMCwgXCIuc2N1dC1pbm5lclwiLCAkaW5uZXIpO1xuICBAZWFjaCAkY2VsbC1zZWxlY3RvciBpbiAkaW5uZXIge1xuICAgICRjZWxsLXNlbGVjdG9yOiB1bnF1b3RlKCRjZWxsLXNlbGVjdG9yKTtcbiAgICAmID4gI3skY2VsbC1zZWxlY3Rvcn0ge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbn1cblxuXG4lc2N1dC12Y2VudGVyLXRkIHtcbiAgQGluY2x1ZGUgc2N1dC12Y2VudGVyLXRkO1xufVxuXG4vLyBEZXBlbmRzIG9uIHNjdXQtY2VudGVyLXRyYW5zZm9ybVxuXG5AbWl4aW4gc2N1dC12Y2VudGVyLXR0ICgpIHtcbiAgQGluY2x1ZGUgc2N1dC1jZW50ZXItdHJhbnNmb3JtKHkpO1xufVxuXG4lc2N1dC12Y2VudGVyLXR0IHtcbiAgQGluY2x1ZGUgc2N1dC12Y2VudGVyLXR0O1xufVxuLy8gc3BhY2VcbiRzY3V0LXNwYWNlOiBcIlxcMDAyMFwiO1xuLy8gbm9uLWJyZWFraW5nIHNwYWNlXG4kc2N1dC1uYnNwOiBcIlxcMDBhMFwiO1xuXG4vLyBxdW90YXRpb24gbWFya1xuJHNjdXQtcXVvdDogXCJcXDAwMjJcIjtcbi8vIGxlZnQgc2luZ2xlIGN1cmx5IHF1b3RlXG4kc2N1dC1sc3F1bzogXCJcXDIwMThcIjtcbi8vIHJpZ2h0IHNpbmdsZSBjdXJseSBxdW90ZVxuJHNjdXQtcnNxdW86IFwiXFwyMDE5XCI7XG4vLyBsZWZ0IGRvdWJsZSBjdXJseSBxdW90ZVxuJHNjdXQtbGRxdW86IFwiXFwyMDFDXCI7XG4vLyByaWdodCBkb3VibGUgY3VybHkgcXVvdGVcbiRzY3V0LXJkcXVvOiBcIlxcMjAxRFwiO1xuLy8gbGVmdCBzaW5nbGUgYW5nbGUgcXVvdGUgKGd1aWxsZW1ldClcbiRzY3V0LWxzYXF1bzogXCJcXDIwMzlcIjtcbi8vIHJpZ2h0IHNpbmdsZSBhbmdsZSBxdW90ZSAoZ3VpbGxlbWV0KVxuJHNjdXQtcnNhcXVvOiBcIlxcMjAzQVwiO1xuLy8gbGVmdCBkb3VibGUgYW5nbGUgcXVvdGUgKGd1aWxsZW1ldClcbiRzY3V0LWxhcXVvOiBcIlxcMDBhYlwiO1xuLy8gcmlnaHQgZG91YmxlIGFuZ2xlIHF1b3RlIChndWlsbGVtZXQpXG4kc2N1dC1yYXF1bzogXCJcXDAwYmJcIjtcblxuLy8gZW0gZGFzaCAobXV0dG9uKVxuJHNjdXQtbWRhc2g6IFwiXFwyMDE0XCI7XG4vLyBlbiBkYXNoIChudXQpXG4kc2N1dC1uZGFzaDogXCJcXDIwMTNcIjtcbi8vIGh5cGhlblxuJHNjdXQtaHlwaGVuOiBcIlxcMjAxMFwiO1xuXG4vLyBhbXBlcnNhbmRcbiRzY3V0LWFtcDogXCJcXDAwMjZcIjtcbi8vIGdyZWF0ZXIgdGhhblxuJHNjdXQtZ3Q6IFwiXFwwMDNlXCI7XG4vLyBsZXNzIHRoYW5cbiRzY3V0LWx0OiBcIlxcMDAzY1wiO1xuLy8gdGltZXNcbiRzY3V0LXRpbWVzOiBcIlxcMDBEN1wiO1xuLy8gYmlnIHRpbWVzXG4kc2N1dC1iaWd0aW1lczogXCJcXDI3MTVcIjtcbi8vIGNoZWNrbWFya1xuJHNjdXQtY2hlY2ttYXJrOiBcIlxcMjcxM1wiO1xuXG4vLyBzZWN0aW9uIHNpZ24gKGRvdWJsZSBTLCBodXJyaWNhbmUsIHNlY3Rpb25hbCBzeW1ib2wsIHRoZSBsZWdhbCBkb3VnaG51dCwgc2lnbnVtIHNlY3Rpb25pcylcbiRzY3V0LXNlY3Q6IFwiXFwwMGE3XCI7XG4vLyBwYXJhZ3JhcGggc3ltYm9sIChwaWxjcm93KVxuJHNjdXQtcGFyYTogXCJcXDAwYjZcIjtcblxuLy8gbWlkZG90IChpbnRlcnB1bmN0LCBpbnRlcnBvaW50KVxuJHNjdXQtbWlkZG90OiBcIlxcMDBiN1wiO1xuLy8gby1zbGFzaCAoc2xhc2hlZCBvKVxuJHNjdXQtb3NsYXNoOiBcIlxcMDBmOFwiO1xuLy8gYnVsbGV0XG4kc2N1dC1idWxsOiBcIlxcMjAyMlwiO1xuLy8gd2hpdGUgYnVsbGV0XG4kc2N1dC13aGlidWxsOiBcIlxcMjVFNlwiO1xuLy8gaG9yaXpvbnRhbCBlbGxpcHNpc1xuJHNjdXQtaGVsbGlwOiBcIlxcMjAyNlwiO1xuLy8gdmVydGljYWwgZWxsaXBzaXNcbiRzY3V0LXZlbGxpcDogXCJcXDIyRUVcIjtcbi8vIG1pZGxpbmUgaG9yaXpvbnRhbCBlbGxpcHNpc1xuJHNjdXQtbWlkaGVsbGlwOiBcIlxcMjJFRlwiO1xuXG4vLyB1cC1wb2ludGluZyB0cmlhbmdsZVxuJHNjdXQtdXRyaTogXCJcXDI1YjJcIjtcbi8vIGRvd24tcG9pbnRpbmcgdHJpYW5nbGVcbiRzY3V0LWR0cmk6IFwiXFwyNWJjXCI7XG4vLyBsZWZ0LXBvaW50aW5nIHRyaWFuZ2xlXG4kc2N1dC1sdHJpOiBcIlxcMjVjMFwiO1xuLy8gcmlnaHQtcG9pbnRpbmcgdHJpYW5nbGVcbiRzY3V0LXJ0cmk6IFwiXFwyNWI2XCI7XG4vLyB1cC1wb2ludGluZyBzbWFsbCB0cmlhbmdsZVxuJHNjdXQtdXN0cmk6IFwiXFwyNWI0XCI7XG4vLyBkb3duLXBvaW50aW5nIHNtYWxsIHRyaWFuZ2xlXG4kc2N1dC1kc3RyaTogXCJcXDI1YmVcIjtcbi8vIGxlZnQtcG9pbnRpbmcgc21hbGwgdHJpYW5nbGVcbiRzY3V0LWxzdHJpOiBcIlxcMjVjMlwiO1xuLy8gcmlnaHQtcG9pbnRpbmcgc21hbGwgdHJpYW5nbGVcbiRzY3V0LXJzdHJpOiBcIlxcMjViOFwiO1xuLy8gZGlhbW9uZFxuJHNjdXQtZGlhbW9uZDogXCJcXDI1YzZcIjtcbi8vIGZpc2hleWVcbiRzY3V0LWZpc2hleWU6IFwiXFwyNWM5XCI7XG4vLyBidWxsc2V5ZVxuJHNjdXQtYnVsbHNleWU6IFwiXFwyNWNlXCI7XG4vLyBjaXJjbGVcbiRzY3V0LWNpcmNsZTogXCJcXDI1Y2ZcIjtcbi8vIHdoaXRlIGNpcmNsZVxuJHNjdXQtd2hpdGVjaXJjbGU6IFwiXFwyNWNiXCI7XG4vLyBzcXVhcmVcbiRzY3V0LXNxdWFyZTogXCJcXDI1YTBcIjtcbi8vIHdoaXRlIHNxdWFyZVxuJHNjdXQtd2hpdGVzcXVhcmU6IFwiXFwyNWExXCI7XG4vLyBzbWFsbCBzcXVhcmVcbiRzY3V0LXNzcXVhcmU6IFwiXFwyNWFhXCI7XG4vLyBzbWFsbCB3aGl0ZSBzcXVhcmVcbiRzY3V0LXN3aGl0ZXNxdWFyZTogXCJcXDI1YWJcIjtcblxuLy8gZ2VuZXJhbCBjdXJyZW5jeVxuJHNjdXQtY3VycmVuY3k6IFwiXFwwMGE0XCI7XG4vLyBjZW50XG4kc2N1dC1jZW50OiBcIlxcMDBhMlwiO1xuLy8gZG9sbGFyXG4kc2N1dC1kb2xsYXI6IFwiXFwwMDI0XCI7XG4vLyBwb3VuZFxuJHNjdXQtcG91bmQ6IFwiXFwwMGEzXCI7XG4vLyBldXJvXG4kc2N1dC1ldXJvOiBcIlxcMjBhY1wiO1xuLy8geWVuXG4kc2N1dC15ZW46IFwiXFwwMGE1XCI7XG4vLyBydXBlZVxuJHNjdXQtcnVwZWU6IFwiXFwyMEI5XCI7XG5AZnVuY3Rpb24gbWFpbi1zcmMoJGZvcm1hdHMsICRmaWxlLXBhdGgsICRmb250LWZhbWlseSkge1xuICAvLyBSZXR1cm4gdGhlIGxpc3Qgb2YgYHNyY2AgdmFsdWVzLCBpbiBvcmRlciwgdGhhdFxuICAvLyBhIGdvb2QgYEBmb250LWZhY2VgIHdpbGwgbmVlZCwgaW5jbHVkaW5nIG9ubHlcbiAgLy8gdGhvc2UgZm9ybWF0cyBzcGVjaWZpZWQgaW4gdGhlIGxpc3QgYCRmb3JtYXRzYC5cbiAgJHJlc3VsdDogKCk7XG4gIEBpZiBpbmRleCgkZm9ybWF0cywgZW90KSB7XG4gICAgJGVvdC12YWw6IHVybCgnI3skZmlsZS1wYXRofS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkZW90LXZhbCwgY29tbWEpO1xuICB9XG4gIEBpZiBpbmRleCgkZm9ybWF0cywgd29mZjIpIHtcbiAgICAkd29mZjItdmFsOiB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR3b2ZmMi12YWwsIGNvbW1hKTtcbiAgfVxuICBAaWYgaW5kZXgoJGZvcm1hdHMsIHdvZmYpIHtcbiAgICAkd29mZi12YWw6IHVybCgnI3skZmlsZS1wYXRofS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR3b2ZmLXZhbCwgY29tbWEpO1xuICB9XG4gIEBpZiBpbmRleCgkZm9ybWF0cywgdHRmKSB7XG4gICAgJHR0Zi12YWw6IHVybCgnI3skZmlsZS1wYXRofS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR0dGYtdmFsLCBjb21tYSk7XG4gIH1cbiAgQGlmIGluZGV4KCRmb3JtYXRzLCBzdmcpIHtcbiAgICAkc3ZnLXZhbDogdXJsKCcjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX0nKSBmb3JtYXQoJ3N2ZycpO1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc3ZnLXZhbCwgY29tbWEpO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuQG1peGluIHNjdXQtZm9udC1mYWNlIChcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Z1xuKSB7XG5cbiAgQGlmIGluZGV4KCdpdGFsaWMnICdvYmxpcXVlJywgJHdlaWdodCkge1xuICAgICRzdHlsZTogJHdlaWdodDtcbiAgICAkd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcblxuICAgIEBpZiBpbmRleCgkZm9ybWF0cywgZW90KSB7XG4gICAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS5lb3QnKTtcbiAgICB9XG4gICAgc3JjOiBtYWluLXNyYygkZm9ybWF0cywgJGZpbGUtcGF0aCwgJGZvbnQtZmFtaWx5KTtcbiAgfVxuXG59XG5cbkBtaXhpbiBzY3V0LWhhbmdpbmctaW5kZW50IChcbiAgJGluZGVudDogMWVtXG4pIHtcblxuICAvLyBwYWRkaW5nLWxlZnQgY3JlYXRlcyB0aGUgaW5kZW50LFxuICAvLyB3aGlsZSB0ZXh0LWluZGVudCBwdWxscyB0aGUgZmlyc3QgbGluZVxuICAvLyBiYWNrIHRvIHRoZSBlZGdlLlxuXG4gIHBhZGRpbmctbGVmdDogJGluZGVudDtcbiAgdGV4dC1pbmRlbnQ6IC0kaW5kZW50O1xuXG59XG5cbiVzY3V0LWhhbmdpbmctaW5kZW50IHtcbiAgQGluY2x1ZGUgc2N1dC1oYW5naW5nLWluZGVudDtcbn1cbkBtaXhpbiBzY3V0LWluZGVudGVkLXBzIChcbiAgJGluZGVudDogMS41ZW0sXG4gICRuby1maXJzdC1pbmRlbnQ6IHRydWVcbikge1xuXG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWluZGVudDogJGluZGVudDtcbiAgfVxuXG4gIEBpZiAkbm8tZmlyc3QtaW5kZW50IHtcbiAgICBwOmZpcnN0LW9mLXR5cGUge1xuICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgfVxuICB9XG5cbn1cblxuJXNjdXQtaW5kZW50ZWQtcHMge1xuICBAaW5jbHVkZSBzY3V0LWluZGVudGVkLXBzO1xufVxuQG1peGluIHNjdXQta2V5LXZhbCAoXG4gICRkaXZpZGVyOiBcIjpcIixcbiAgJHBhZDogMC4yNWVtLFxuICAkaW5kZW50OiAxZW0sXG4gICRzcGFjaW5nOiAwLFxuICAkcGFkLWxlZnQ6IDBcbikge1xuXG4gICYgPiBkdCB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAkZGl2aWRlcjtcbiAgICAgIG1hcmdpbi1yaWdodDogJHBhZDtcbiAgICAgIEBpZiAkcGFkLWxlZnQgIT0gMCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkcGFkLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiA+IGRkIHtcbiAgICBtYXJnaW4tbGVmdDogJGluZGVudDtcbiAgICBAaWYgJHNwYWNpbmcgIT0gMCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICB9XG4gIH1cblxufVxuXG4lc2N1dC1rZXktdmFsIHtcbiAgQGluY2x1ZGUgc2N1dC1rZXktdmFsO1xufVxuQG1peGluIHNjdXQtbGluay1iYiAoXG4gICRjb2xvcjogaW5oZXJpdCxcbiAgJHN0eWxlOiBzb2xpZCxcbiAgJHdpZHRoOiAxcHhcbikge1xuXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICBib3JkZXItYm90dG9tLXdpZHRoOiAkd2lkdGg7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6ICRzdHlsZTtcbiAgQGlmICRjb2xvciAhPSBpbmhlcml0IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gIH1cblxufVxuXG4lc2N1dC1saW5rLWJiIHtcbiAgQGluY2x1ZGUgc2N1dC1saW5rLWJiO1xufVxuLy8gU0NVVCBMSU5LIFVOU1RZTEVEXG4vLyBodHRwOi8vZGF2aWR0aGVjbGFyay5naXRodWIuaW8vc2N1dC8jbGluay11bnN0eWxlZFxuXG5AbWl4aW4gc2N1dC1saW5rLXVuc3R5bGVkKCkge1xuXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbn1cblxuJXNjdXQtbGluay11bnN0eWxlZCB7XG4gIEBpbmNsdWRlIHNjdXQtbGluay11bnN0eWxlZCgpO1xufVxuXG5AbWl4aW4gc2N1dC1yZXZlcnNlLWl0YWxpY3MgKFxuICAkZWxlbWVudHM6IG51bGxcbikge1xuXG4gICRlbGVtZW50LWxpc3Q6IGVtLCBjaXRlLCBpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICN7am9pbigkZWxlbWVudC1saXN0LCAkZWxlbWVudHMpfSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbn1cblxuJXNjdXQtcmV2ZXJzZS1pdGFsaWNzIHtcbiAgQGluY2x1ZGUgc2N1dC1yZXZlcnNlLWl0YWxpY3M7XG59XG5cbkBtaXhpbiBzY3V0LXNpZGUtbGluZWQgKFxuICAkaGVpZ2h0OiAxcHgsXG4gICRzcGFjZTogMC41ZW0sXG4gICRjb2xvcjogaW5oZXJpdCxcbiAgJHN0eWxlOiBzb2xpZCxcbiAgJHYtYWRqdXN0OiBmYWxzZSxcbiAgJGRvdWJsZTogZmFsc2Vcbikge1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiA1MCU7XG5cbiAgICBib3JkZXItdG9wLXN0eWxlOiAkc3R5bGU7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogJGhlaWdodDtcblxuICAgIEBpZiAkY29sb3IgIT0gaW5oZXJpdCB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICR2LWFkanVzdCAhPSBmYWxzZSB7XG4gICAgICBib3R0b206ICR2LWFkanVzdDtcbiAgICB9XG5cbiAgICBAaWYgJGRvdWJsZSAhPSBmYWxzZSB7XG4gICAgICBoZWlnaHQ6ICRkb3VibGU7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiAkc3R5bGU7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAkaGVpZ2h0O1xuICAgICAgQGlmICRjb2xvciAhPSBpbmhlcml0IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICByaWdodDogJHNwYWNlO1xuICAgIG1hcmdpbi1sZWZ0OiAtNTAlO1xuICB9XG4gICY6YWZ0ZXIge1xuICAgIGxlZnQ6ICRzcGFjZTtcbiAgICBtYXJnaW4tcmlnaHQ6IC01MCU7XG4gIH1cblxufVxuXG4lc2N1dC1zaWRlLWxpbmVkIHtcbiAgQGluY2x1ZGUgc2N1dC1zaWRlLWxpbmVkO1xufVxuQG1peGluIHNjdXQtdHJ1bmNhdGUge1xuXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG59XG5cbiVzY3V0LXRydW5jYXRlIHtcbiAgQGluY2x1ZGUgc2N1dC10cnVuY2F0ZTtcbn0iLCIvLyBoZWxwZXJzICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiaGVscGVycy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvb3B0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy96aW5kZXhcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbG9yXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250XCI7XG5AaW1wb3J0IFwiaGVscGVycy9lbVwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVtXCI7XG5AaW1wb3J0IFwiaGVscGVycy9tZWRpYVwiO1xuLy8gbWl4aW5zICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInN1c3kvc2Fzcy9zdXN5XCI7XG5AaW1wb3J0IFwic2Fzcy1jc3MzLW1peGlucy9jc3MzLW1peGlucy5zY3NzXCI7XG5AaW1wb3J0IFwiYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQuc2Nzc1wiO1xuQGltcG9ydCBcInNjdXQvZGlzdC9zY3V0XCI7XG5AaW1wb3J0IFwibWl4aW5zL2ZvbnRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvYXNwZWN0LXJhdGlvXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Jlc3BvbnNpdmUtZm9udHNpemVcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcIm1peGlucy92ZXJ0aWNhbC1jZW50ZXJlZFwiO1xuQGltcG9ydCBcIm1peGlucy9zZXQtY29uZmlnXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwibWl4aW5zL3BvbHlnb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvZmxleGJveFwiO1xuLy8gYmFzZSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL25vcm1hbGl6ZS84LjAuMS9ub3JtYWxpemUubWluLmNzc1wiO1xuQGltcG9ydCBcInNhc3MtY3NzMy1taXhpbnMvY3NzMy1taXhpbnMuc2Nzc1wiO1xuQGltcG9ydCBcImJhc2UvdmFyc1wiO1xuQGltcG9ydCBcImJhc2UvY2xhc3Nlc1wiO1xuIiwiXG5AbWl4aW4gc3F1YXJlKCR3aWR0aCkge1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICR3aWR0aDtcbn1cblxuQG1peGluIGltYWdlLXJlcGxhY2UoKSB7XG4gIHRleHQtaW5kZW50OiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cblxuQG1peGluIGFic29sdXRlbHkoJHBvc2l0aW9uOiBhYnNvbHV0ZSkge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cblxuJWNsZWFyZml4IHtcbiAgQGluY2x1ZGUgc2N1dC1jbGVhcmZpeDtcbn1cblxuJWFic29sdXRlbHkge1xuICBAaW5jbHVkZSBhYnNvbHV0ZWx5O1xufVxuXG4lZGVmYXVsdC1hbmltLWhvdmVye1xuICBodG1sOm5vdCgudG91Y2gpICYge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkgMHMpO1xuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuMDUsIDEuMDUpKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogJ1RyYWRlR290aGljIExUJztcbiAgICAgICAgc3JjOiB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1PYmxpcXVlLmVvdCcpO1xuICAgICAgICBzcmM6IHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULU9ibGlxdWUuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULU9ibGlxdWUudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogJ1RyYWRlR290aGljIExUJztcbiAgICAgICAgc3JjOiB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1Cb2xkT2JsaXF1ZS5lb3QnKTtcbiAgICAgICAgc3JjOiB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1Cb2xkT2JsaXF1ZS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1Cb2xkT2JsaXF1ZS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULUJvbGRPYmxpcXVlLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICAgICAgICBzcmM6IHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULmVvdCcpO1xuICAgICAgICBzcmM6IHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogJ1RyYWRlR290aGljIExUJztcbiAgICAgICAgc3JjOiB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1Cb2xkLmVvdCcpO1xuICAgICAgICBzcmM6IHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULUJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdUcmFkZUdvdGhpYyBMVCc7XG4gICAgICAgIHNyYzogdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtTGlnaHQuZW90Jyk7XG4gICAgICAgIHNyYzogdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtTGlnaHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnVHJhZGVHb3RoaWMgTFQnO1xuICAgICAgICBzcmM6IHVybCgnLi4vZm9udC9UcmFkZUdvdGhpY0xULUxpZ2h0T2JsaXF1ZS5lb3QnKTtcbiAgICAgICAgc3JjOiB1cmwoJy4uL2ZvbnQvVHJhZGVHb3RoaWNMVC1MaWdodE9ibGlxdWUuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtTGlnaHRPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcuLi9mb250L1RyYWRlR290aGljTFQtTGlnaHRPYmxpcXVlLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5cblxuXG5cblxuIiwiaHRtbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBmb250LXNpemU6IDhweDtcbiAgY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi10YWJsZXRcIikge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICB9XG5cbiAgLy9cbiAgLy9AaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6ZGVza3RvcFwiKSB7XG4gIC8vICBmb250LXNpemU6IDEwcHg7XG4gIC8vfVxuICAvL1xuICAmLmhpZ2hQUEkge1xuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVza3RvcFwiKSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgfVxuICB9XG4gICYuc3VwZXJQUEl7XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG4gIH1cblxuICBodG1sW25vYmddICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmW25vc2Nyb2xsXSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmLm1lbnVfb3BlbiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxufVxuXG5hOmZvY3VzLCBhOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIC8vIGRlYnVnXG5cbiAgY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIGh0bWxbbm9iZ10gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tdGFibGV0XCIpIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuZGVidWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgJltkZWJ1Z10ge1xuICAgIC5kZWJ1ZyB7XG4gICAgICBAaW5jbHVkZSBjb250YWluZXI7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgIEBpbmNsdWRlIG9wYWNpdHkoLjA1KTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oMSk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogb3JhbmdlO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LW1vYmlsZSkge1xuICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGh0bWxbbm9zY3JvbGxdICYge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gIGh0bWwubWVudV9vcGVuICYge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyByZW0gU3VwcG9ydFxuLy8gPT09PT09PT09PT1cblxuLy8gcmVtXG4vLyAtLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBvdXRwdXQgZGlyZWN0bHkuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1yZW0oXG4gICRwcm9wLFxuICAkdmFsXG4pIHtcbiAgJF9yZXFzOiAoXG4gICAgdmFyaWFibGU6IHJoeXRobS11bml0IHJlbS13aXRoLXB4LWZhbGxiYWNrLFxuICAgIG1peGluOiByZW0sXG4gICk7XG4gIEBpZiBzdXN5LXN1cHBvcnQocmVtLCAkX3JlcXMsICR3YXJuOiBmYWxzZSkgYW5kICRyaHl0aG0tdW5pdCA9PSByZW0ge1xuICAgIEBpbmNsdWRlIHJlbSgkcHJvcCwgJHZhbCk7XG4gIH0gQGVsc2Uge1xuICAgICN7JHByb3B9OiAkdmFsO1xuICB9XG59XG4iLCIkb3B0aW9uczogKFxuICAgICAgICBcImJhc2UtZm9udHNpemVcIjogMTBweFxuKTtcblxuJHRyYWRlLWZvbnQ6ICdUcmFkZUdvdGhpYyBMVCcsIHNhbnMtc2VyaWY7XG4kb3N3YWxkLWZvbnQ6ICdRdWlja3NhbmQnLCBzYW5zLXNlcmlmO1xuJGViZ2FyYW1vbmQ6ICdFQiBHYXJhbW9uZCcsIHNlcmlmO1xuJGFyaWFsLWZvbnQ6ICdBcmlhbCcsICdIZWx2ZXRpY2EnLCBzYW5zLXNlcmlmO1xuXG4kZm9udHM6IChcbiAgICAgICAgXCJ0cmFkZVwiOiAkdHJhZGUtZm9udCxcbiAgICAgICAgJ29zd2FsZCc6ICRvc3dhbGQtZm9udCxcbiAgICAgICAgJ2FyaWFsJzogJGFyaWFsLWZvbnQsXG4gICAgICAgICdnYXJhbW9uZCc6ICRlYmdhcmFtb25kXG4pO1xuXG4kY29sb3JzOiAoXG4gICAgICAgIFwiYmFzZVwiOiAjMDAwLFxuICAgICAgICBcImVtcHR5XCI6ICNjY2Ncbik7XG5cbiRoMS1tb2JpbGUtc2l6ZTogMjE7ICRoMS1tb2JpbGUtaGVpZ2h0OiAyOTtcbiRoMS10YWJsZXQtc2l6ZTogMTg7ICRoMS10YWJsZXQtaGVpZ2h0OiAyNDtcbiRoMS1kZXNrdG9wLXNpemU6IDI4OyAkaDEtZGVza3RvcC1oZWlnaHQ6IDM0O1xuJGgxLXdpZGUtc2l6ZTogMzI7ICRoMS13aWRlLWhlaWdodDogMzc7XG5cbiRoMi1tb2JpbGUtc2l6ZTogMjA7ICRoMi1tb2JpbGUtaGVpZ2h0OiAyMjtcbiRoMi10YWJsZXQtc2l6ZTogMTY7ICRoMi10YWJsZXQtaGVpZ2h0OiAyMTtcbiRoMi1kZXNrdG9wLXNpemU6IDIyOyAkaDItZGVza3RvcC1oZWlnaHQ6IDI3O1xuJGgyLXdpZGUtc2l6ZTogMjQ7ICRoMi13aWRlLWhlaWdodDogMjk7XG5cbiRoMy1tb2JpbGUtc2l6ZTogMTY7ICRoMy1tb2JpbGUtaGVpZ2h0OiAyNTtcbiRoMy10YWJsZXQtc2l6ZTogMTg7ICRoMy10YWJsZXQtaGVpZ2h0OiAyNztcbiRoMy1kZXNrdG9wLXNpemU6IDIyOyAkaDMtZGVza3RvcC1oZWlnaHQ6IDMwO1xuJGgzLXdpZGUtc2l6ZTogMjQ7ICRoMy13aWRlLWhlaWdodDogMzI7XG5cbiRoNC1tb2JpbGUtc2l6ZTogMTY7ICRoNC1tb2JpbGUtaGVpZ2h0OiAyNjtcbiRoNC10YWJsZXQtc2l6ZTogMTg7ICRoNC10YWJsZXQtaGVpZ2h0OiAyODtcbiRoNC1kZXNrdG9wLXNpemU6IDE4OyAkaDQtZGVza3RvcC1oZWlnaHQ6IDI3O1xuJGg0LXdpZGUtc2l6ZTogMjA7ICRoNC13aWRlLWhlaWdodDogMjk7XG5cbiR0ZXh0LW1vYmlsZS1zaXplOiAxNDsgJHRleHQtbW9iaWxlLWhlaWdodDogMTk7XG4kdGV4dC10YWJsZXQtc2l6ZTogMTM7ICR0ZXh0LXRhYmxldC1oZWlnaHQ6IDIxO1xuJHRleHQtZGVza3RvcC1zaXplOiAxODsgJHRleHQtZGVza3RvcC1oZWlnaHQ6IDI2O1xuJHRleHQtd2lkZS1zaXplOiAxNjsgJHRleHQtd2lkZS1oZWlnaHQ6IDI2O1xuXG4kekxheW91dDogKFxuICAgICAgICBcIm92ZXJsYXlcIixcbiAgICAgICAgXCJsaW5ndWV0dGFcIixcbiAgICAgICAgXCJoZWFkZXJcIixcbiAgICAgICAgXCJ0b3Atc3R5bGVzLXNoYWRvdy1hY3RpdmVcIixcbiAgICAgICAgXCJibG9ja19fc2VjdGlvbnNfbmF2XCIsXG4gICAgICAgIFwidG9wLXN0eWxlcy1zaGFkb3dcIixcbiAgICAgICAgXCJ0b3Atc3R5bGVzXCIsXG4gICAgICAgIFwiZm9vdGVyXCIsXG4gICAgICAgIFwiYXppZW5kYV9sYXN0X2NpdFwiLFxuICAgICAgICBcImF6aWVuZGFfY2Fyb3VzZWxfMVwiLFxuICAgICAgICBcImF6aWVuZGFfY2Fyb3VzZWxfMlwiLFxuICAgICAgICBcImNvbnRlbnRzXCIsXG4gICAgICAgIFwiaG9tZV9jdGFfYmxvY2tzXCIsXG4gICAgICAgIFwiaG9tZV9iZ1wiLFxuICAgICAgICBcImhvbWVfb3JpZ2FtaV9yaWdodFwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzFcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18yXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfM1wiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzRcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd181XCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfNlwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzdcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd184XCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfOVwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzEwXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfMTFcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18xMlwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzEzXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfMTRcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18xNVwiLFxuICAgICAgICBcImhvbWVfY2Fyb3VzZWxcIixcbiAgICAgICAgXCJob21lX29yaWdhbWlfdGV4dFwiLFxuICAgICAgICBcImhvbWVfb3JpZ2FtaV9sZWZ0XCIsXG4gICAgICAgIFwicGFnZVwiLFxuICAgICAgICBcInRiZFwiXG4pO1xuXG4kekxheW91dC1tb2JpbGU6IChcbiAgICAgICAgXCJvdmVybGF5XCIsXG4gICAgICAgIFwiaGVhZGVyXCIsXG4gICAgICAgIFwibGluZ3VldHRhXCIsXG4gICAgICAgIFwidG9wLXN0eWxlcy1zaGFkb3ctYWN0aXZlXCIsXG4gICAgICAgIFwiYmxvY2tfX3NlY3Rpb25zX25hdlwiLFxuICAgICAgICBcInRvcC1zdHlsZXMtc2hhZG93XCIsXG4gICAgICAgIFwiZm9vdGVyXCIsXG4gICAgICAgIFwiYXppZW5kYV9sYXN0X2NpdFwiLFxuICAgICAgICBcImF6aWVuZGFfY2Fyb3VzZWxfMVwiLFxuICAgICAgICBcImF6aWVuZGFfY2Fyb3VzZWxfMlwiLFxuICAgICAgICBcImNvbnRlbnRzXCIsXG4gICAgICAgIFwiaG9tZV9jdGFfYmxvY2tzXCIsXG4gICAgICAgIFwiaG9tZV9iZ1wiLFxuICAgICAgICBcImhvbWVfb3JpZ2FtaV9yaWdodFwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzFcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18yXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfM1wiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzRcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd181XCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfNlwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzdcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd184XCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfOVwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzEwXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfMTFcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18xMlwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzEzXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfMTRcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18xNVwiLFxuICAgICAgICBcImhvbWVfY2Fyb3VzZWxcIixcbiAgICAgICAgXCJob21lX29yaWdhbWlfdGV4dFwiLFxuICAgICAgICBcImhvbWVfb3JpZ2FtaV9sZWZ0XCIsXG4gICAgICAgIFwicGFnZVwiLFxuICAgICAgICBcInRiZFwiXG4pO1xuXG4kekxheW91dC10YWJsZXQ6IChcbiAgICAgICAgXCJvdmVybGF5XCIsXG4gICAgICAgIFwiaGVhZGVyXCIsXG4gICAgICAgIFwidG9wLXN0eWxlcy1zaGFkb3ctYWN0aXZlXCIsXG4gICAgICAgIFwiYmxvY2tfX3NlY3Rpb25zX25hdlwiLFxuICAgICAgICBcInRvcC1zdHlsZXMtc2hhZG93XCIsXG4gICAgICAgIFwiZm9vdGVyXCIsXG4gICAgICAgIFwiYXppZW5kYV9sYXN0X2NpdFwiLFxuICAgICAgICBcImF6aWVuZGFfY2Fyb3VzZWxfMVwiLFxuICAgICAgICBcImF6aWVuZGFfY2Fyb3VzZWxfMlwiLFxuICAgICAgICBcImNvbnRlbnRzXCIsXG4gICAgICAgIFwiaG9tZV9jdGFfYmxvY2tzXCIsXG4gICAgICAgIFwiaG9tZV9iZ1wiLFxuICAgICAgICBcImhvbWVfb3JpZ2FtaV9yaWdodFwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzFcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18yXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfM1wiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzRcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd181XCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfNlwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzdcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd184XCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfOVwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzEwXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfMTFcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18xMlwiLFxuICAgICAgICBcImhvbWVfYmxvY2tfcm93XzEzXCIsXG4gICAgICAgIFwiaG9tZV9ibG9ja19yb3dfMTRcIixcbiAgICAgICAgXCJob21lX2Jsb2NrX3Jvd18xNVwiLFxuICAgICAgICBcImhvbWVfY2Fyb3VzZWxcIixcbiAgICAgICAgXCJob21lX29yaWdhbWlfdGV4dFwiLFxuICAgICAgICBcImhvbWVfb3JpZ2FtaV9sZWZ0XCIsXG4gICAgICAgIFwicGFnZVwiLFxuICAgICAgICBcInRiZFwiXG4pO1xuXG4vLzE0NDArXG4kc3VzeS13aWRlOiAoXG4gICAgICAgIFwiY29sdW1uc1wiOiAxMixcbiAgICAgICAgXCJndXR0ZXJzXCI6IDMwLzY4LFxuICAgICAgICBcImd1dHRlci1wb3NpdGlvblwiOiBcInNwbGl0XCIsXG4gICAgICAgIFwiY29udGFpbmVyXCI6IDEzNzJweFxuKTtcblxuLy8xMzY2K1xuLy8oMTM2Ni0xNDQwIHVzdWFsKVxuJHN1c3k6IChcbiAgICAgICAgXCJjb2x1bW5zXCI6IDEyLFxuICAgICAgICBcImd1dHRlcnNcIjogMzAvNjgsXG4gICAgICAgIFwiZ3V0dGVyLXBvc2l0aW9uXCI6IFwic3BsaXRcIixcbiAgICAgICAgXCJjb250YWluZXJcIjogOTAlXG4pO1xuXG4vLzk2MCtcbi8vKDk2MC0xMzY2IHVzdWFsKVxuJHN1c3ktZGVza3RvcDogKFxuICAgICAgICBcImNvbHVtbnNcIjogMTIsXG4gICAgICAgIFwiZ3V0dGVyc1wiOiAzMC82OCxcbiAgICAgICAgXCJndXR0ZXItcG9zaXRpb25cIjogXCJzcGxpdFwiLFxuICAgICAgICBcImNvbnRhaW5lclwiOiA5MCVcbiAgLy9cImNvbnRhaW5lclwiOiAxMTc2cHhcbik7XG5cbiRzdXN5LWRlc2t0b3AtY29udGVudHM6IChcbiAgICAgICAgXCJjb2x1bW5zXCI6IDEyLFxuICAgICAgICBcImd1dHRlci1wb3NpdGlvblwiOiBcInNwbGl0XCIsXG4gICAgICAgIFwiY29udGFpbmVyXCI6IDEwMDBweFxuKTtcblxuLy83NjgrXG4vLyg3NjgtOTU5IHVzdWFsKVxuJHN1c3ktdGFibGV0OiAoXG4gICAgICAgIFwiY29sdW1uc1wiOiAxMixcbiAgICAgICAgXCJndXR0ZXJzXCI6IDMwLzM0LFxuICAgICAgICBcImd1dHRlci1wb3NpdGlvblwiOiBcInNwbGl0XCIsXG4gICAgICAgIFwiY29udGFpbmVyXCI6IDkwJVxuKTtcblxuJHN1c3ktbW9iaWxlLXByb2R1Y3RzOiAoXG4gICAgICAgIFwiY29sdW1uc1wiOiA2LFxuICAgICAgICBcImd1dHRlcnNcIjogMi84MCxcbiAgICAgICAgXCJjb250YWluZXJcIjogOTglXG4pO1xuXG4kc3VzeS1tb2JpbGU6IChcbiAgICAgICAgXCJjb2x1bW5zXCI6IDYsXG4gICAgICAgIFwiZ3V0dGVyc1wiOiA0MC8xNCxcbiAgICAgICAgXCJjb250YWluZXJcIjogODglXG4pO1xuXG4vLyBicmVha3BvaW50c1xuXG4kcmV0aW5hZHBpIDogMTQ0ZHBpO1xuJHJldGluYXBpeGVscmF0aW8gOiAyO1xuXG4vLzAtNzY4XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0Om1vYmlsZVwiLCAobWF4LXdpZHRoIDc2N3B4KSk7XG5cbi8vNzY4LTk1OVxuLy9AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0Om1heC10YWJsZXRcIiwgKG1heC13aWR0aCA5NTlweCkpO1xuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptYXgtdGFibGV0XCIsIChtYXgtd2lkdGggMTAyM3B4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0Om1pbi10YWJsZXRcIiwgKG1pbi13aWR0aCA3NjhweCkpO1xuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptaW4tdGFibGV0LWxhcmdlXCIsIChtaW4td2lkdGggOTU5cHgpKTtcbi8vQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDp0YWJsZXRcIiwgKDc2OHB4IDk1OXB4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0OnRhYmxldFwiLCAoNzY4cHggMTAyM3B4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0OnRhYmxldC1jdXN0b21cIiwgKDc2OHB4IDExMTBweCkpO1xuXG5cbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6dGFibGV0LWN0YS1zdGVwLTFcIiwgKDc2OHB4IDkwMHB4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0OnRhYmxldC1jdGEtc3RlcC0yXCIsICg5MDFweCAxMDIzcHgpKTtcblxuXG4vLzk2MCsgZGVza3RvcFxuLy9AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIsIChtaW4td2lkdGggOTYwcHgpKTtcbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6bWluLWRlc2t0b3BcIiwgKG1pbi13aWR0aCAxMDI0cHgpKTtcbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hXCIsICgobWluLXdpZHRoIDEwMjRweCkgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyAkcmV0aW5hcGl4ZWxyYXRpbyksIChtaW4td2lkdGggMTAyNHB4KSAobWluLXJlc29sdXRpb24gJHJldGluYWRwaSkpKTtcbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hM1wiLCAoKG1pbi13aWR0aCAxMDI0cHgpICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gMyksIChtaW4td2lkdGggMTAyNHB4KSAobWluLXJlc29sdXRpb24gMzAwZHBpKSkpO1xuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptaW4tZGVza3RvcC1jdXN0b21cIiwgKG1pbi13aWR0aCAxMTExcHgpKTtcbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6bWluLWRlc2t0b3AtY3VzdG9tLXJldGluYVwiLCAoKG1pbi13aWR0aCAxMTExcHgpICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gJHJldGluYXBpeGVscmF0aW8pLCAobWluLXdpZHRoIDExMTFweCkgKG1pbi1yZXNvbHV0aW9uICRyZXRpbmFkcGkpKSk7XG4vL0BpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6ZGVza3RvcFwiLCAoOTYwcHggMTM2NXB4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0OmRlc2t0b3BcIiwgKDEwMjRweCAxMzY1cHgpKTtcbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwidmlld3BvcnQ6ZGVza3RvcC1yZXRpbmFcIiwgKCgxMDI0cHggMTM2NXB4KSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvICRyZXRpbmFwaXhlbHJhdGlvKSwgKDEwMjRweCAxMzY1cHgpIChtaW4tcmVzb2x1dGlvbiAkcmV0aW5hZHBpKSkpO1xuXG4vLzk2MCsgZGVmYXVsdFxuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptaW4tZGVmYXVsdFwiLCAobWluLXdpZHRoIDEzNjZweCkpO1xuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptaW4tZGVmYXVsdC1yZXRpbmFcIiwgKChtaW4td2lkdGggMTM2NnB4KSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvICRyZXRpbmFwaXhlbHJhdGlvKSwgKG1pbi13aWR0aCAxMzY2cHgpIChtaW4tcmVzb2x1dGlvbiAkcmV0aW5hZHBpKSkpO1xuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDpkZWZhdWx0XCIsICgxMzY2cHggMTQ0MHB4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0OmRlZmF1bHQtcmV0aW5hXCIsICgoMTM2NnB4IDE0NDBweCkgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyAkcmV0aW5hcGl4ZWxyYXRpbyksICgxMzY2cHggMTQ0MHB4KSAobWluLXJlc29sdXRpb24gJHJldGluYWRwaSkpKTtcblxuLy8xNDQwKyB3aWRlXG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0Om1pbi13aWRlXCIsIChtaW4td2lkdGggMTQ0MXB4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcInZpZXdwb3J0Om1pbi13aWRlLXJldGluYVwiLCAoKG1pbi13aWR0aCAxNDQxcHgpICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gJHJldGluYXBpeGVscmF0aW8pLCAobWluLXdpZHRoIDE0NDFweCkgKG1pbi1yZXNvbHV0aW9uICRyZXRpbmFkcGkpKSk7XG5cbi8vMTc0MCsgdWx0cmEtd2lkZVxuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptaW4tdWx0cmEtd2lkZVwiLCAobWluLXdpZHRoIDE2ODFweCkpO1xuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJ2aWV3cG9ydDptaW4tdWx0cmEtd2lkZS1yZXRpbmFcIiwgKChtaW4td2lkdGggMTY4MXB4KSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvICRyZXRpbmFwaXhlbHJhdGlvKSwgKG1pbi13aWR0aCAxNjgxcHgpIChtaW4tcmVzb2x1dGlvbiAkcmV0aW5hZHBpKSkpO1xuXG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcImRldmljZTptb2JpbGVcIiwgKChtYXgtZGV2aWNlLXdpZHRoIDc2N3B4KSAob3JpZW50YXRpb24gcG9ydHJhaXQpLCAobWF4LWRldmljZS13aWR0aCA3MzZweCkgKG9yaWVudGF0aW9uIGxhbmRzY2FwZSkpKTtcbkBpbmNsdWRlIGFkZC1icmVha3BvaW50KFwiZGV2aWNlOm1vYmlsZS1sYW5kc2NhcGVcIiwgKChtYXgtZGV2aWNlLXdpZHRoIDc2OHB4KSAob3JpZW50YXRpb24gcG9ydHJhaXQpLCAobWF4LWRldmljZS13aWR0aCA3MzZweCkgKG9yaWVudGF0aW9uIGxhbmRzY2FwZSkpKTtcblxuQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoXCJkZXZpY2U6ZGVza3RvcFwiLCAoKG1pbi1kZXZpY2Utd2lkdGggNzY5cHgpIChvcmllbnRhdGlvbiBwb3J0cmFpdCksIChtaW4tZGV2aWNlLXdpZHRoIDczN3B4KSAob3JpZW50YXRpb24gbGFuZHNjYXBlKSkpO1xuXG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcIm1vbml0b3I6YmlnXCIsIChtaW4td2lkdGggMTkyMXB4KSk7XG5AaW5jbHVkZSBhZGQtYnJlYWtwb2ludChcIm1vbml0b3I6bm9ybWFsXCIsIChtYXgtd2lkdGggMTkyMHB4KSk7XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gRGlyZWN0aW9uIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRmxvdyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBmbG93OiBsdHIsXG4pKTtcblxuLy8gR2V0IERpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgb3IgJ3RvJyBkaXJlY3Rpb24gb2YgYSBsdHIgb3IgcnRsIGZsb3cuXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG4vLyAtIFska2V5XSAgIDogZnJvbSB8IHRvXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbihcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAka2V5OiBmcm9tXG4pIHtcbiAgJHJldHVybjogaWYoJGZsb3cgPT0gcnRsLCAoZnJvbTogcmlnaHQsIHRvOiBsZWZ0KSwgKGZyb206IGxlZnQsIHRvOiByaWdodCkpO1xuICBAcmV0dXJuIG1hcC1nZXQoJHJldHVybiwgJGtleSk7XG59XG5cbi8vIFRvXG4vLyAtLVxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiB0byhcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XG59XG5cbi8vIEZyb21cbi8vIC0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiBmcm9tKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIGZyb20pO1xufVxuIiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eTogMTtcblxuLmMtY29ybmVyLWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6ICdRdWlja3NhbmQnLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0b3A6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjI1LCAxLCAwLjUsIDEpO1xuICB6LWluZGV4OiB6KCR6TGF5b3V0LCBcImxpbmd1ZXR0YVwiKTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI5OWRlZywgI0I4ODYwQiwgI2ZmODgwMCwgI2ZmNTcwMCwgIzQ0NmUzMik7XG4gIGJhY2tncm91bmQtc2l6ZTogNDAwJSA0MDAlO1xuXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBBbmltYXRpb25OYW1lIDMwcyBlYXNlIGluZmluaXRlO1xuICAtbW96LWFuaW1hdGlvbjogQW5pbWF0aW9uTmFtZSAzMHMgZWFzZSBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBBbmltYXRpb25OYW1lIDMwcyBlYXNlIGluZmluaXRlO1xuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWF4LXRhYmxldFwiKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgei1pbmRleDogeigkekxheW91dC1tb2JpbGUsIFwibGluZ3VldHRhXCIpO1xuICAgIGJye1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCAycHggcmdiYSgwLDAsMCwwLjMpO1xuICAgIHBhZGRpbmc6IDMwMHB4IDAgMTBweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDIwcHgsIC0xMDQlKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XG4gICAgd2lkdGg6IDQwMHB4O1xuICB9XG4gICZfX3RleHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSk7XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1heC10YWJsZXRcIikge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcntcbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3BcIikge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgyMHB4LCAtOTUlKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgLmMtY29ybmVyLWxhYmVsX190ZXh0e1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBBbmltYXRpb25OYW1lIHtcbiAgMCV7YmFja2dyb3VuZC1wb3NpdGlvbjowJSA1MCV9XG4gIDUwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgNTAlfVxuICAxMDAle2JhY2tncm91bmQtcG9zaXRpb246MCUgNTAlfVxufVxuQC1tb3ota2V5ZnJhbWVzIEFuaW1hdGlvbk5hbWUge1xuICAwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIDUwJX1cbiAgNTAle2JhY2tncm91bmQtcG9zaXRpb246MTAwJSA1MCV9XG4gIDEwMCV7YmFja2dyb3VuZC1wb3NpdGlvbjowJSA1MCV9XG59XG5Aa2V5ZnJhbWVzIEFuaW1hdGlvbk5hbWUge1xuICAwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIDUwJX1cbiAgNTAle2JhY2tncm91bmQtcG9zaXRpb246MTAwJSA1MCV9XG4gIDEwMCV7YmFja2dyb3VuZC1wb3NpdGlvbjowJSA1MCV9XG59XG5cbi5tYWluX190b3Bfc3R5bGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiB6KCR6TGF5b3V0LCBcInRvcC1zdHlsZXNcIik7XG5cbiAgJjphZnRlciB7XG4gICAgLypjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiByZW0oNCk7XG4gICAgYm9yZGVyLXRvcDogcmVtKDQgKXNvbGlkICNiOTIwMzQ7XG4gICAgYm9yZGVyLWJvdHRvbTogcmVtKDQgKXNvbGlkICM1YTllNDE7XG5cbiAgICB6LWluZGV4OiB6KCR6TGF5b3V0LCBcInRvcC1zdHlsZXMtc2hhZG93XCIpOyovXG5cbiAgfVxuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogcmVtKDE2NSk7XG4gICAgICBAaW5jbHVkZSBvcGFjaXR5KC40KTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApIDBzKTtcblxuICAgICAgLypiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCRtYWluX3RvcF9zdHlsZV9vcGFjaXR5KTsqL1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsICRtYWluX3RvcF9zdHlsZV9vcGFjaXR5KSAwJSwgcmdiYSgwLCAwLCAwLCAkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSwgcmdiYSgwLCAwLCAwLCAkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSkpLCBjb2xvci1zdG9wKDAlLCByZ2JhKDAsIDAsIDAsICRtYWluX3RvcF9zdHlsZV9vcGFjaXR5KSksIGNvbG9yLXN0b3AoMTAwJSwgcmdiYSgwLCAwLCAwLCAwKSkpO1xuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsICRtYWluX3RvcF9zdHlsZV9vcGFjaXR5KSAwJSwgcmdiYSgwLCAwLCAwLCAkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsICRtYWluX3RvcF9zdHlsZV9vcGFjaXR5KSAwJSwgcmdiYSgwLCAwLCAwLCAkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLCAwLCAwLCAkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSkgMCUsIHJnYmEoMCwgMCwgMCwgJG1haW5fdG9wX3N0eWxlX29wYWNpdHkpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAkbWFpbl90b3Bfc3R5bGVfb3BhY2l0eSkgMCUsIHJnYmEoMCwgMCwgMCwgJG1haW5fdG9wX3N0eWxlX29wYWNpdHkpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xuICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwJywgR3JhZGllbnRUeXBlPTApO1xuICAgICAgei1pbmRleDogeigkekxheW91dCwgXCJ0b3Atc3R5bGVzLXNoYWRvd1wiKTtcblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICAgIGhlaWdodDogcmVtKDYwKTtcbiAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSguMik7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbiAgLy9AaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXRhYmxldFwiKSB7XG4gICAgaHRtbC5zY3JvbGxlZCAmIHtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KC45KTtcbiAgICAgICAgei1pbmRleDogeigkekxheW91dCwgXCJ0b3Atc3R5bGVzLXNoYWRvdy1hY3RpdmVcIik7XG4gICAgICB9XG4gICAgfVxuICAvL31cbn1cblxuLm1haW5fX2hlYWRlciB7XG4gIHotaW5kZXg6IHooJHpMYXlvdXQsIFwiaGVhZGVyXCIpO1xuXG4gIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDE4KSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjNmY2NTVjO1xuXG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IHJlbSg2Mik7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IHJlbSg1OCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRvcCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApIDBzKTtcblxuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcbiAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXRhYmxldFwiKSB7XG4gICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktdGFibGV0KSB7XG4gICAgICBAaW5jbHVkZSBjb250YWluZXI7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuICAgIHRvcDogcmVtKDU1KTtcbiAgfVxuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICB0b3A6IHJlbSg0Myk7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3BcIikge1xuICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LWRlc2t0b3ApIHtcbiAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlZmF1bHRcIikge1xuICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5KSB7XG4gICAgICBAaW5jbHVkZSBjb250YWluZXI7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi13aWRlXCIpIHtcbiAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS13aWRlKSB7XG4gICAgICBAaW5jbHVkZSBjb250YWluZXI7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi10YWJsZXRcIikge1xuICAgIGh0bWwuc2Nyb2xsZWQgJiB7XG4gICAgICB0b3A6IHJlbSgzNSk7XG4gICAgfVxuICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgQGluY2x1ZGUgc2N1dC1yYXRpby1ib3goMjI1LzExOSk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IHJlbSgxMzApO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiByZW0oLTExKTtcbiAgICBodG1sOm5vdCgudG91Y2gpICYge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEuMDAwKSAwcyk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuMDUsIDEuMDUpIHJvdGF0ZSgtNWRlZykpO1xuICAgICAgfVxuICAgIH1cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIHNjdXQtaW1hZ2UtcmVwbGFjZTtcbiAgICAgIEBleHRlbmQgJWFic29sdXRlbHk7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1nL2xvZ28tbWFzZXJmb3JtYWdnaS5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgNTAlIDUwJSAvIDEwMCUgYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIHdpZHRoOiByZW0oNzkpO1xuICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgaHRtbC5tZW51X29wZW4gJntcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IHJlbSg0Myk7XG4gICAgICAgIGxlZnQ6IDYlO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICB3aWR0aDogcmVtKDEyMCk7XG4gICAgICBtYXJnaW4tdG9wOiByZW0oLTEwKTtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi5tYWluX25hdiB7XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkgMHMpO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoMTMwJSkpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZGRjNTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IHJlbSg0KTtcbiAgICAgIGJvcmRlci10b3A6IHJlbSg0IClzb2xpZCAjYjkyMDM0O1xuICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDQgKXNvbGlkICM1YTllNDE7XG4gICAgfVxuXG5cbiAgICBodG1sW25vYmddICZ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGh0bWwubWVudV9vcGVuICZ7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgwKSk7XG4gICAgfVxuXG4gIH1cblxuICAmX19pbm5lcntcbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIEBpbmNsdWRlIGFic29sdXRlbHkoZml4ZWQpO1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbGVmdDogNTAlO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogcmVtKDEzKTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoMCkpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCByZW0oMjUpO1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApIDIwMG1zKTtcblxuICAgICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcblxuICAgICAgaHRtbC5tZW51X29wZW4gJntcbiAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICAgIH1cblxuICAgIH1cblxuXG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6dGFibGV0XCIpIHtcbiAgICAgIHRvcDogcmVtKDYpO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDAgcmVtKDI3ICkwIDA7XG5cbiAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOjAgMCByZW0oMjUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuICAgICAgICBtYXJnaW46IDAgcmVtKDI1ICkwIDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1bHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiByZW0oNCk7XG4gICAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDApO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDExKSwgbnVsbCwgYm9sZCk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJnYXJhbW9uZFwiLCByZW0oMTYpLCAxLjksIDYwMCk7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBodG1sLnBhZ2VfaG9tZXBhZ2UgJntcbiAgICAgICAgICBjb2xvcjogIzZmNjU1YztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgICAgICBjb2xvcjogIzZmNjU1YztcbiAgICAgICAgfVxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBodG1sOm5vdCgucGFnZV9ob21lcGFnZSkgJntcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMHB4IDJweCAxcHggcmdiYSgwLDAsMCwuNCk7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMnB4IDFweCByZ2JhKDAsMCwwLC40KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDE4KSwgbnVsbCwgYm9sZCk7XG4gICAgICAgIC8vQGluY2x1ZGUgdGV4dC1zaGFkb3c7XG5cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hXCIpIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXdpZGVcIikge1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4td2lkZS1yZXRpbmFcIikge1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJvdHRvbTogcmVtKC0yKTtcbiAgICAgICAgICBoZWlnaHQ6IHJlbSgyKTtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICAgIGh0bWwucGFnZV9ob21lcGFnZSAme1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzZmNjU1YztcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICAgICAgICAvL0BpbmNsdWRlIGJveC1zaGFkb3c7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApIDBzKTtcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkgMHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVyIHtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG9wYWNpdHkoMSk7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZle1xuICAgICAgICBhe1xuICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVza3RvcFwiKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IHJlbSg1KTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZmlsbDogI2U1ZGRjNTtcbiAgICAgICAgaHRtbC5wYWdlX2hvbWVwYWdlICZ7XG4gICAgICAgICAgZmlsbDogIzNkMzgzMztcbiAgICAgICAgfVxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgICAgJi5oYW1idXJnZXIge1xuICAgICAgICB3aWR0aDogcmVtKDI4KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMjMpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgc3Zne1xuICAgICAgICAgIGZpbGw6ICNlNWRkYzU7XG4gICAgICAgIH1cbiAgICAgICAgaHRtbC5tZW51X29wZW4gJiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5jbG9zZSB7XG4gICAgICAgIHdpZHRoOiByZW0oMzApO1xuICAgICAgICBoZWlnaHQ6IHJlbSgyMyk7XG4gICAgICAgIEBpbmNsdWRlIG9wYWNpdHkoMSk7XG4gICAgICAgIHN2Z3tcbiAgICAgICAgICBmaWxsOiAjNmY2NTVjICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaHRtbC5tZW51X29wZW4gJiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIHRvcDogcmVtKDQ4KTtcbiAgICAgICAgICByaWdodDogNiU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4ubGFuZ19jaGFuZ2Uge1xuICBjb2xvcjogI2U1ZGRjNTtcbiAgaHRtbC5wYWdlX2hvbWVwYWdlICZ7XG4gICAgY29sb3I6ICM2ZjY1NWM7XG4gIH1cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBAaW5jbHVkZSBmb250KFwib3N3YWxkXCIsIHJlbSgxMykpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgc2N1dC1yYXRpby1ib3goMTE1LzYzKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiByZW0oMCk7XG4gIHJpZ2h0OiByZW0oLTkpO1xuICB3aWR0aDogcmVtKDEwMCk7XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGh0bWwubWVudV9vcGVuICYge1xuICAgICAgY29sb3I6ICM2ZjY1NWM7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgd2lkdGg6IHJlbSg5MCk7XG4gICAgZm9udC1zaXplOiByZW0oMTIpO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi13aWRlXCIpIHtcbiAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgd2lkdGg6IHJlbSgxMzcpO1xuICAgIHRvcDogcmVtKC0xMCk7XG4gIH1cblxuICBzdmcge1xuICAgIGZpbGw6ICNlNWRkYzU7XG4gICAgaHRtbC5wYWdlX2hvbWVwYWdlICZ7XG4gICAgICBmaWxsOiAjNmY2NTVjO1xuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIGh0bWwubWVudV9vcGVuICYge1xuICAgICAgICBmaWxsOiAjNmY2NTVjO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBhYnNvbHV0ZWx5O1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoLjMpO1xuICB9XG4gID4gc3BhbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDIlO1xuICAgIEBpbmNsdWRlIHNjdXQtdmNlbnRlci10dDtcbiAgICBAaW5jbHVkZSB0ZXh0LXNoYWRvdztcbiAgfVxuICBodG1sOm5vdCgudG91Y2gpICYge1xuICAgIHN2ZyB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApIDBzKTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBzdmcge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4wNykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGZ1bmN0aW9uIHooJGxpc3QsICRlbGVtZW50KSB7XG4gICR2YWx1ZTogaW5kZXgoJGxpc3QsICRlbGVtZW50KTtcbiAgQGlmICR2YWx1ZSB7XG4gICAgQHJldHVybiBsZW5ndGgoJGxpc3QpIC0gJHZhbHVlICsgMTtcbiAgfVxuICBAd2FybiAnVGhlcmUgaXMgbm8gaXRlbSBcIiN7JGVsZW1lbnR9XCIgaW4gdGhpcyBsaXN0OyBjaG9vc2Ugb25lIG9mOiAjeyRsaXN0fSc7XG4gIEByZXR1cm4gbnVsbDtcbn1cbiIsIkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6IG8oXCJiYXNlLWZvbnRzaXplXCIpO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQG1peGluIGZvbnQoJGE6bnVsbCwgJGI6bnVsbCwgJGM6bnVsbCwgJGQ6bnVsbCwgJGU6bnVsbCwgJGY6bnVsbCkge1xuICAkZm9udEZhbWlseTogbnVsbDtcbiAgJGZvbnRTaXplOiBudWxsO1xuICAkbGluZUhlaWdodDogbnVsbDtcbiAgJGZvbnRXZWlnaHQ6IG51bGw7XG4gICRsZXR0ZXJTcGFjaW5nOiBudWxsO1xuICAkZm9udFNtb290aGluZzogbnVsbDtcblxuICBAaWYgdHlwZS1vZigkYSkgPT0gJ3N0cmluZycge1xuICAgICRmb250RmFtaWx5OiBmKCRhKTtcbiAgICBAaWYgJGZvbnRGYW1pbHkgPT0gbnVsbCB7XG4gICAgICAkZm9udEZhbWlseTogJGE7XG4gICAgfVxuICB9XG5cbiAgQGlmICRmb250RmFtaWx5ID09IG51bGwge1xuICAgICRmb250U2l6ZTogJGE7XG4gICAgJGxpbmVIZWlnaHQ6ICRiO1xuICAgICRmb250V2VpZ2h0OiAkYztcbiAgICAkbGV0dGVyU3BhY2luZzogJGQ7XG4gICAgJGZvbnRTbW9vdGhpbmc6ICRlO1xuICB9IEBlbHNlIHtcbiAgICAkZm9udFNpemU6ICRiO1xuICAgICRsaW5lSGVpZ2h0OiAkYztcbiAgICAkZm9udFdlaWdodDogJGQ7XG4gICAgJGxldHRlclNwYWNpbmc6ICRlO1xuICAgICRmb250U21vb3RoaW5nOiAkZjtcbiAgfVxuXG4gIGZvbnQtZmFtaWx5OiAkZm9udEZhbWlseTtcbiAgQGlmICgkZm9udFNpemUpIHtcbiAgICBmb250LXNpemU6ICRmb250U2l6ZTtcbiAgfSBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cbiAgQGlmICgkbGluZUhlaWdodCkge1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZUhlaWdodDtcbiAgfVxuICAvL0BlbHNlIHsgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICBAaWYgKCRmb250V2VpZ2h0KSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250V2VpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG4gIEBpZiAoJGxldHRlclNwYWNpbmcpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogJGxldHRlclNwYWNpbmc7XG4gIH1cblxuICBAaWYgJGZvbnRTbW9vdGhpbmcgIT0gZmFsc2Uge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1vLWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH1cbn1cbiIsIi5tYWluX19mb290ZXIge1xuICB6LWluZGV4OiB6KCR6TGF5b3V0LCBcImZvb3RlclwiKTtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IHJlbSg1MDApO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkgMHMpO1xuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuICAgIGhlaWdodDogcmVtKDQwMCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogcmVtKDM1OSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBodG1sLm1lbnVfb3BlbiAme1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgfVxuXG5cblxuXG5cblxuXG4gICZfX2JnXzF7XG4gICAgQGV4dGVuZCAlYWJzb2x1dGVseTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCA5NTBtcyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KSAwcyk7XG5cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybSh4KTtcbiAgICAgIHdpZHRoOiByZW0oMzAxNi42Mik7XG4gICAgICBsZWZ0OiAxMDAlO1xuXG4gICAgICBzdmd7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogcmVtKDMwMTYuNjIpO1xuICAgICAgICBoZWlnaHQ6IHJlbSg1NjMpO1xuICAgICAgICBmaWxsOiByZ2IoMzcsIDYwLCA0Myk7XG5cblxuICAgICAgICBodG1sW25vYmddICZ7XG4gICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGh0bWwucGFnZV9ob21lcGFnZSAme1xuICAgICAgICAgIGZpbGw6ICNGRkY7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6dGFibGV0XCIpIHtcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICBAaW5jbHVkZSBzY3V0LWNlbnRlci10cmFuc2Zvcm0oeCk7XG4gICAgICB3aWR0aDogcmVtKDIyNDMuNzY3KTtcblxuICAgICAgc3Zne1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IHJlbSgyMjQzLjc2Nyk7XG4gICAgICAgIGhlaWdodDogcmVtKDQwMCk7XG4gICAgICAgIGZpbGw6IHJnYigxNzUsIDksIDIzKTtcblxuXG5cbiAgICAgICAgaHRtbFtub2JnXSAme1xuICAgICAgICAgIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBodG1sLnBhZ2VfaG9tZXBhZ2UgJntcbiAgICAgICAgICBmaWxsOiAjRkZGO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgIEBpbmNsdWRlIHNjdXQtY2VudGVyLXRyYW5zZm9ybSh4KTtcbiAgICAgIHdpZHRoOiByZW0oMzAwMCk7XG5cbiAgICAgIHN2Z3tcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiByZW0oMzAwMCk7XG4gICAgICAgIGhlaWdodDogcmVtKDU2Myk7XG4gICAgICAgIGZpbGw6IHJnYigxNzUsIDksIDIzKTtcblxuXG4gICAgICAgIGh0bWxbbm9iZ10gJntcbiAgICAgICAgICBmaWxsOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaHRtbC5wYWdlX2hvbWVwYWdlICZ7XG4gICAgICAgICAgZmlsbDogI0ZGRjtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cblxuICAgIH1cblxuXG5cbiAgICBodG1sLmJvdHRvbWVkICZ7XG5cbiAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG4gICZfX2JnXzJ7XG5cbiAgICBAZXh0ZW5kICVhYnNvbHV0ZWx5O1xuXG4gICAgQGluY2x1ZGUgc2N1dC1jZW50ZXItdHJhbnNmb3JtKHgpO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogcmVtKDU2Myk7XG4gICAgICB3aWR0aDogcmVtKDMwMDApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiByZW0oNDAwKTtcbiAgICAgIHdpZHRoOiByZW0oMjI0My43NjcpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogcmVtKDMwMTYuNjIpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICBzdmd7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZpbGw6IHJnYigxNzUsIDksIDIzKTtcbiAgICAgIGh0bWxbbm9iZ10gJntcbiAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZpbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEuMDAwKSk7XG5cblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICAgICYudGFibGV0LCAmLmRlc2t0b3B7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXRhYmxldFwiKSB7XG4gICAgICAgICYuZGVza3RvcCwgJi5tb2JpbGV7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IHJlbSgzMDE2LjYyKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oNTYzKTtcbiAgICAgICAgZmlsbDogcmdiKDE3NSwgOSwgMjMpO1xuXG5cbiAgICAgICAgJi50YWJsZXQsICYubW9iaWxle1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAmLmRlc2t0b3B7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6dGFibGV0XCIpIHtcblxuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiByZW0oMjI0My43NjcpO1xuICAgICAgICBoZWlnaHQ6IHJlbSg0MDApO1xuICAgICAgICBmaWxsOiByZ2IoMTc1LCA5LCAyMyk7XG5cblxuICAgICAgICAmLnRhYmxldCwgJi5tb2JpbGV7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICYuZGVza3RvcHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVza3RvcFwiKSB7XG5cblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogcmVtKDMwMDApO1xuICAgICAgICBoZWlnaHQ6IHJlbSg1NjEpO1xuICAgICAgICBmaWxsOiByZ2IoMTc1LCA5LCAyMyk7XG5cblxuICAgICAgICAmLnRhYmxldCwgJi5tb2JpbGV7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICYuZGVza3RvcHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgNjUwbXMgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSkgMHMpO1xuICAgIGh0bWwuYm90dG9tZWQgJntcblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1heC10YWJsZXRcIikge1xuXG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAmX19pbm5lcntcbiAgICBAZXh0ZW5kICVhYnNvbHV0ZWx5O1xuXG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IHJlbSgxNTApO1xuICAgIGhlaWdodDogYXV0bztcblxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyO1xuXG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDY1KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDA7XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6dGFibGV0XCIpIHtcbiAgICAgIHRvcDogcmVtKDEwMCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi10YWJsZXRcIikge1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktdGFibGV0KSB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbiAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LWRlc2t0b3ApIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVmYXVsdFwiKSB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeSkge1xuICAgICAgICBAaW5jbHVkZSBjb250YWluZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi13aWRlXCIpIHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRzdXN5LXdpZGUpIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgJl9fbG9nb3tcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogcmVtKDgpO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogcmVtKDk1KTtcbiAgICBoZWlnaHQ6IHJlbSg0OSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHN2Z3tcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmlsbDogI0ZGRjtcbiAgICB9XG4gICAgaHRtbDpub3QoLnRvdWNoKSAmIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkgMHMpO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjA1LCAxLjA1KSByb3RhdGUoLTVkZWcpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvIHJlbSgzMCk7XG4gICAgfVxuICB9XG5cbiAgJl9fbmF2e1xuICAgIEBleHRlbmQgJXNjdXQtY2VudGVyLXRyYW5zZm9ybS14O1xuICAgIHRvcDogcmVtKDUpO1xuXG5cblxuICAgIC8vZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6dGFibGV0XCIpIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDApKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDApKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiByZW0oMTgpIDAgcmVtKDE3KTtcblxuICAgICAgJjphZnRlciwgJjpiZWZvcmV7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTEyJTtcbiAgICAgICAgbGVmdDogLTYlO1xuICAgICAgICByaWdodDogLTYlO1xuICAgICAgICBoZWlnaHQ6IHJlbSgxKTtcbiAgICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSguMTUpO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG4gICAgICAmOmFmdGVye1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgIH1cblxuICAgIH1cblxuICAgID4gdWx7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICAgIC8vZmxvYXQ6IHJpZ2h0O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXRhYmxldFwiKSB7XG4gICAgICAgIEBpbmNsdWRlIGlubGluZS1mbGV4O1xuXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdChjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1mbG93KHJvdyB3cmFwKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKG5vd3JhcCk7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICA+IGxpe1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiByZW0oMTcwKTtcbiAgICAgICAgbWFyZ2luOiAwIHJlbSg0MCkgMCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tdGFibGV0XCIpIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBtYXgtd2lkdGg6IHJlbSgxNzApO1xuICAgICAgICAgIG1hcmdpbjogMCByZW0oMzApIDAgMDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3BcIikge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIG1heC13aWR0aDogcmVtKDE5Myk7XG4gICAgICAgICAgbWFyZ2luOiAwIHJlbSg2MCkgMCAwO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICB3aWR0aDogMzMlO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1heC10YWJsZXRcIikge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwe1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDExKSwgcmVtKDE4KSwgNDAwKTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNyk7XG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiBhe1xuICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDE3KSwgcmVtKDIwKSwgYm9sZCk7XG4gICAgICAgICAgLypAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hXCIpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDE1KSwgcmVtKDE4KSwgYm9sZCk7XG4gICAgICAgICAgfSovXG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXdpZGVcIikge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udChcIm9zd2FsZFwiLCByZW0oMTkpLCByZW0oMjIpLCBib2xkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLypAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXdpZGUtcmV0aW5hXCIpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDE3KSwgcmVtKDIwKSwgYm9sZCk7XG4gICAgICAgICAgfSovXG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KFwib3N3YWxkXCIsIHJlbSgxMyksIHJlbSgxNSksIGJvbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250KFwib3N3YWxkXCIsIHJlbSgxNSksIHJlbSgxNCksIGJvbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IHVse1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi1kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDgpIDAgMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICA+IGxpe1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udChcImdhcmFtb25kXCIsIHJlbSgxNCksIHJlbSgxOSksIDUwMCk7XG4gICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgICAgLypAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hXCIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KFwiYXJpYWxcIiwgcmVtKDExLjUpLCByZW0oMTcpKTtcbiAgICAgICAgICAgICAgfSovXG4gICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KC44KTtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4td2lkZVwiKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udChcImdhcmFtb25kXCIsIHJlbSgxNCksIHJlbSgyMyksIDUwMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLypAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXdpZGUtcmV0aW5hXCIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250KFwiYXJpYWxcIiwgcmVtKDEzKSwgcmVtKDIxKSk7XG4gICAgICAgICAgICAgIH0qL1xuXG4gICAgICAgICAgICAgIGh0bWw6bm90KC50b3VjaCkgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEuMDAwKSAwcyk7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDp0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQoXCJnYXJhbW9uZFwiLCByZW0oMTMpLCByZW0oMTQpLCA1MDApO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jZXJ0c3tcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHJlbSgxMCk7XG4gICAgcmlnaHQ6MDtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6dGFibGV0XCIpIHtcbiAgICAgIHRvcDogcmVtKDI0Nyk7XG4gICAgICBoZWlnaHQ6IHJlbSgzMCk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogcmVtKDMwKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMzEpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMTIlO1xuICAgICAgICBsZWZ0OiAtNiU7XG4gICAgICAgIHJpZ2h0OiAtNiU7XG4gICAgICAgIGhlaWdodDogcmVtKDEpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KC4xNSk7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICBsaXtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBtYXJnaW46IDAgcmVtKDEzKSAwIDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOm50aC1jaGlsZCgzKXtcbiAgICAgICAgd2lkdGg6IHJlbSgzNCk7XG4gICAgICAgIGhlaWdodDogcmVtKDMwKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQoMil7XG4gICAgICAgIHdpZHRoOiByZW0oNDQpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgyNSk7XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCgxKXtcbiAgICAgICAgd2lkdGg6IHJlbSgyNCk7XG4gICAgICAgIGhlaWdodDogcmVtKDMwKTtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBodG1sOm5vdCgudG91Y2gpICYge1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkgMHMpO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEuMTUsIDEuMTUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN2Z3tcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb3B5e1xuXG5cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3ktbW9iaWxlKSB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLXRhYmxldFwiKSB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS10YWJsZXQpIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVza3RvcFwiKSB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1kZXNrdG9wKSB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlZmF1bHRcIikge1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJHN1c3kpIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4td2lkZVwiKSB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS13aWRlKSB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcjtcbiAgICAgIH1cbiAgICB9XG5cblxuXG5cblxuICAgIEBpbmNsdWRlIG9wYWNpdHkoLjUpO1xuICAgIEBpbmNsdWRlIGZvbnQoXCJvc3dhbGRcIiwgcmVtKDEzKSwgcmVtKDE4KSk7XG4gICAgLypAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlc2t0b3AtcmV0aW5hXCIpIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQoXCJhcmlhbFwiLCByZW0oMTEpLCByZW0oMTQpKTtcbiAgICB9Ki9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiByZW0oNTApO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiBhdXRvO1xuXG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICBib3R0b206cmVtKDIyKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB0b3A6IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1le1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHJlbSgxODApO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVza3RvcFwiKSB7XG4gICAgICBib3R0b206IHJlbSgyMDApO1xuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bWluLWRlZmF1bHRcIikge1xuICAgICAgYm90dG9tOiByZW0oNSk7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbn1cbiIsIi8vIEZsZXhib3ggTWl4aW5zXG4vLyBodHRwOi8vcGhpbGlwd2FsdG9uLmdpdGh1Yi5pby9zb2x2ZWQtYnktZmxleGJveC9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vc29sdmVkLWJ5LWZsZXhib3hcbi8vIFxuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEJyaWFuIEZyYW5jb1xuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xuLy8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4vLyB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuXG4vLyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWVxuLy8gQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCxcbi8vIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFXG4vLyBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbi8vXG4vLyBUaGlzIGlzIGEgc2V0IG9mIG1peGlucyBmb3IgdGhvc2Ugd2hvIHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCBmbGV4Ym94XG4vLyB1c2luZyB0aGUgbmF0aXZlIHN1cHBvcnQgb2YgY3VycmVudCBicm93c2Vycy4gRm9yIGZ1bGwgc3VwcG9ydCB0YWJsZVxuLy8gY2hlY2s6IGh0dHA6Ly9jYW5pdXNlLmNvbS9mbGV4Ym94XG4vL1xuLy8gQmFzaWNhbGx5IHRoaXMgd2lsbCB1c2U6XG4vL1xuLy8gKiBGYWxsYmFjaywgb2xkIHN5bnRheCAoSUUxMCwgbW9iaWxlIHdlYmtpdCBicm93c2VycyAtIG5vIHdyYXBwaW5nKVxuLy8gKiBGaW5hbCBzdGFuZGFyZHMgc3ludGF4IChGRiwgU2FmYXJpLCBDaHJvbWUsIElFMTEsIE9wZXJhKVxuLy9cbi8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5OlxuLy8gXG4vLyAqIGh0dHA6Ly9kZXYub3BlcmEuY29tL2FydGljbGVzL3ZpZXcvYWR2YW5jZWQtY3Jvc3MtYnJvd3Nlci1mbGV4Ym94L1xuLy8gXG4vLyBXaXRoIGhlbHAgZnJvbTpcbi8vIFxuLy8gKiBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC9cbi8vICogaHR0cDovL3RoZS1lY2hvcGxleC5uZXQvZmxleHlib3hlcy9cbi8vICogaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2llL2hoNzcyMDY5KHY9dnMuODUpLmFzcHhcbi8vICogaHR0cDovL2Nzcy10cmlja3MuY29tL3VzaW5nLWZsZXhib3gvXG4vLyAqIGh0dHA6Ly9kZXYub3BlcmEuY29tL2FydGljbGVzL3ZpZXcvYWR2YW5jZWQtY3Jvc3MtYnJvd3Nlci1mbGV4Ym94L1xuLy8gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi11cy9kb2NzL3dlYi9ndWlkZS9jc3MvZmxleGlibGVfYm94ZXNcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQ29udGFpbmVyc1xuLy9cbi8vIFRoZSAnZmxleCcgdmFsdWUgY2F1c2VzIGFuIGVsZW1lbnQgdG8gZ2VuZXJhdGUgYSBibG9jay1sZXZlbCBmbGV4XG4vLyBjb250YWluZXIgYm94LlxuLy9cbi8vIFRoZSAnaW5saW5lLWZsZXgnIHZhbHVlIGNhdXNlcyBhbiBlbGVtZW50IHRvIGdlbmVyYXRlIGEgaW5saW5lLWxldmVsXG4vLyBmbGV4IGNvbnRhaW5lciBib3guIFxuLy9cbi8vIGRpc3BsYXk6IGZsZXggfCBpbmxpbmUtZmxleFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LWNvbnRhaW5lcnNcbi8vXG4vLyAoUGxhY2Vob2xkZXIgc2VsZWN0b3JzIGZvciBlYWNoIHR5cGUsIGZvciB0aG9zZSB3aG8gcmF0aGVyIEBleHRlbmQpXG5cbkBtaXhpbiBmbGV4Ym94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1vei1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuJWZsZXhib3ggeyBAaW5jbHVkZSBmbGV4Ym94OyB9XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaW5saW5lLWZsZXgge1xuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbiVpbmxpbmUtZmxleCB7IEBpbmNsdWRlIGlubGluZS1mbGV4OyB9XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IERpcmVjdGlvblxuLy9cbi8vIFRoZSAnZmxleC1kaXJlY3Rpb24nIHByb3BlcnR5IHNwZWNpZmllcyBob3cgZmxleCBpdGVtcyBhcmUgcGxhY2VkIGluXG4vLyB0aGUgZmxleCBjb250YWluZXIsIGJ5IHNldHRpbmcgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZmxleCBjb250YWluZXInc1xuLy8gbWFpbiBheGlzLiBUaGlzIGRldGVybWluZXMgdGhlIGRpcmVjdGlvbiB0aGF0IGZsZXggaXRlbXMgYXJlIGxhaWQgb3V0IGluLiBcbi8vXG4vLyBWYWx1ZXM6IHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2Vcbi8vIERlZmF1bHQ6IHJvd1xuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LWRpcmVjdGlvbi1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcbiAgQGlmICR2YWx1ZSA9PSByb3ctcmV2ZXJzZSB7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4tcmV2ZXJzZSB7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgfVxuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gIC1tb3otZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG4vLyBTaG9ydGVyIHZlcnNpb246XG5AbWl4aW4gZmxleC1kaXIoJGFyZ3MuLi4pIHsgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJGFyZ3MuLi4pOyB9XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IFdyYXBcbi8vXG4vLyBUaGUgJ2ZsZXgtd3JhcCcgcHJvcGVydHkgY29udHJvbHMgd2hldGhlciB0aGUgZmxleCBjb250YWluZXIgaXMgc2luZ2xlLWxpbmVcbi8vIG9yIG11bHRpLWxpbmUsIGFuZCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBjcm9zcy1heGlzLCB3aGljaCBkZXRlcm1pbmVzXG4vLyB0aGUgZGlyZWN0aW9uIG5ldyBsaW5lcyBhcmUgc3RhY2tlZCBpbi4gXG4vL1xuLy8gVmFsdWVzOiBub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlXG4vLyBEZWZhdWx0OiBub3dyYXBcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC13cmFwLXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gTm8gV2Via2l0IEJveCBmYWxsYmFjay5cbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgLW1vei1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgIC1tcy1mbGV4LXdyYXA6IG5vbmU7XG4gIH0gQGVsc2Uge1xuICAgIC1tcy1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgfVxuICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggRmxvdyAoc2hvcnRoYW5kKVxuLy9cbi8vIFRoZSAnZmxleC1mbG93JyBwcm9wZXJ0eSBpcyBhIHNob3J0aGFuZCBmb3Igc2V0dGluZyB0aGUgJ2ZsZXgtZGlyZWN0aW9uJ1xuLy8gYW5kICdmbGV4LXdyYXAnIHByb3BlcnRpZXMsIHdoaWNoIHRvZ2V0aGVyIGRlZmluZSB0aGUgZmxleCBjb250YWluZXInc1xuLy8gbWFpbiBhbmQgY3Jvc3MgYXhlcy5cbi8vXG4vLyBWYWx1ZXM6IDxmbGV4LWRpcmVjdGlvbj4gfCA8ZmxleC13cmFwPiBcbi8vIERlZmF1bHQ6IHJvdyBub3dyYXBcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1mbG93LXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlczogKHJvdyBub3dyYXApKSB7XG4gIC8vIE5vIFdlYmtpdCBCb3ggZmFsbGJhY2suXG4gIC13ZWJraXQtZmxleC1mbG93OiAkdmFsdWVzO1xuICAtbW96LWZsZXgtZmxvdzogJHZhbHVlcztcbiAgLW1zLWZsZXgtZmxvdzogJHZhbHVlcztcbiAgZmxleC1mbG93OiAkdmFsdWVzO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBPcmRlclxuLy9cbi8vIFRoZSAnb3JkZXInIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBvcmRlciBpbiB3aGljaCBmbGV4IGl0ZW1zIGFwcGVhciB3aXRoaW5cbi8vIHRoZWlyIGZsZXggY29udGFpbmVyLCBieSBhc3NpZ25pbmcgdGhlbSB0byBvcmRpbmFsIGdyb3Vwcy5cbi8vXG4vLyBEZWZhdWx0OiAwXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI29yZGVyLXByb3BlcnR5XG5cbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6ICRpbnQgKyAxO1xuICAtd2Via2l0LW9yZGVyOiAkaW50O1xuICAtbW96LW9yZGVyOiAkaW50O1xuICAtbXMtZmxleC1vcmRlcjogJGludDtcbiAgb3JkZXI6ICRpbnQ7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEdyb3dcbi8vXG4vLyBUaGUgJ2ZsZXgtZ3JvdycgcHJvcGVydHkgc2V0cyB0aGUgZmxleCBncm93IGZhY3Rvci4gTmVnYXRpdmUgbnVtYmVyc1xuLy8gYXJlIGludmFsaWQuXG4vL1xuLy8gRGVmYXVsdDogMFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LWdyb3ctcHJvcGVydHlcblxuQG1peGluIGZsZXgtZ3JvdygkaW50OiAwKSB7XG4gIC13ZWJraXQtYm94LWZsZXg6ICRpbnQ7XG4gIC13ZWJraXQtZmxleC1ncm93OiAkaW50O1xuICAtbW96LWZsZXgtZ3JvdzogJGludDtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRpbnQ7XG4gIGZsZXgtZ3JvdzogJGludDtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggU2hyaW5rXG4vL1xuLy8gVGhlICdmbGV4LXNocmluaycgcHJvcGVydHkgc2V0cyB0aGUgZmxleCBzaHJpbmsgZmFjdG9yLiBOZWdhdGl2ZSBudW1iZXJzXG4vLyBhcmUgaW52YWxpZC5cbi8vXG4vLyBEZWZhdWx0OiAxXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtc2hyaW5rLXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LXNocmluaygkaW50OiAxKSB7XG4gIC13ZWJraXQtZmxleC1zaHJpbms6ICRpbnQ7XG4gIC1tb3otZmxleC1zaHJpbms6ICRpbnQ7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkaW50O1xuICBmbGV4LXNocmluazogJGludDtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQmFzaXNcbi8vXG4vLyBUaGUgJ2ZsZXgtYmFzaXMnIHByb3BlcnR5IHNldHMgdGhlIGZsZXggYmFzaXMuIE5lZ2F0aXZlIGxlbmd0aHMgYXJlIGludmFsaWQuIFxuLy9cbi8vIFZhbHVlczogTGlrZSBcIndpZHRoXCIgXG4vLyBEZWZhdWx0OiBhdXRvXG4vL1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNmbGV4LWJhc2lzLXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LWJhc2lzKCR2YWx1ZTogYXV0bykge1xuICAtd2Via2l0LWZsZXgtYmFzaXM6ICR2YWx1ZTtcbiAgLW1vei1mbGV4LWJhc2lzOiAkdmFsdWU7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkdmFsdWU7XG4gIGZsZXgtYmFzaXM6ICR2YWx1ZTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggXCJGbGV4XCIgKHNob3J0aGFuZClcbi8vXG4vLyBUaGUgJ2ZsZXgnIHByb3BlcnR5IHNwZWNpZmllcyB0aGUgY29tcG9uZW50cyBvZiBhIGZsZXhpYmxlIGxlbmd0aDogdGhlXG4vLyBmbGV4IGdyb3cgZmFjdG9yIGFuZCBmbGV4IHNocmluayBmYWN0b3IsIGFuZCB0aGUgZmxleCBiYXNpcy4gV2hlbiBhblxuLy8gZWxlbWVudCBpcyBhIGZsZXggaXRlbSwgJ2ZsZXgnIGlzIGNvbnN1bHRlZCBpbnN0ZWFkIG9mIHRoZSBtYWluIHNpemVcbi8vIHByb3BlcnR5IHRvIGRldGVybWluZSB0aGUgbWFpbiBzaXplIG9mIHRoZSBlbGVtZW50LiBJZiBhbiBlbGVtZW50IGlzXG4vLyBub3QgYSBmbGV4IGl0ZW0sICdmbGV4JyBoYXMgbm8gZWZmZWN0LlxuLy9cbi8vIFZhbHVlczogbm9uZSB8IDxmbGV4LWdyb3c+IDxmbGV4LXNocmluaz4gfHwgPGZsZXgtYmFzaXM+XG4vLyBEZWZhdWx0OiBTZWUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzICgxIDEgMCkuXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtcHJvcGVydHlcblxuQG1peGluIGZsZXgoJGZnOiAxLCAkZnM6IG51bGwsICRmYjogbnVsbCkge1xuXG4gIC8vIFNldCBhIHZhcmlhYmxlIHRvIGJlIHVzZWQgYnkgYm94LWZsZXggcHJvcGVydGllc1xuICAkZmctYm94ZmxleDogJGZnO1xuXG4gIC8vIEJveC1GbGV4IG9ubHkgc3VwcG9ydHMgYSBmbGV4LWdyb3cgdmFsdWUgc28gbGV0J3MgZ3JhYiB0aGVcbiAgLy8gZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBhbmQganVzdCByZXR1cm4gdGhhdC5cbiAgQGlmIHR5cGUtb2YoJGZnKSA9PSAnbGlzdCcge1xuICAgICRmZy1ib3hmbGV4OiBudGgoJGZnLCAxKTtcbiAgfVxuXG4gIC13ZWJraXQtYm94LWZsZXg6ICRmZy1ib3hmbGV4O1xuICAtd2Via2l0LWZsZXg6ICRmZyAkZnMgJGZiO1xuICAtbW96LWJveC1mbGV4OiAkZmctYm94ZmxleDtcbiAgLW1vei1mbGV4OiAkZmcgJGZzICRmYjtcbiAgLW1zLWZsZXg6ICRmZyAkZnMgJGZiO1xuICBmbGV4OiAkZmcgJGZzICRmYjtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggSnVzdGlmeSBDb250ZW50XG4vL1xuLy8gVGhlICdqdXN0aWZ5LWNvbnRlbnQnIHByb3BlcnR5IGFsaWducyBmbGV4IGl0ZW1zIGFsb25nIHRoZSBtYWluIGF4aXNcbi8vIG9mIHRoZSBjdXJyZW50IGxpbmUgb2YgdGhlIGZsZXggY29udGFpbmVyLiBUaGlzIGlzIGRvbmUgYWZ0ZXIgYW55IGZsZXhpYmxlXG4vLyBsZW5ndGhzIGFuZCBhbnkgYXV0byBtYXJnaW5zIGhhdmUgYmVlbiByZXNvbHZlZC4gVHlwaWNhbGx5IGl0IGhlbHBzIGRpc3RyaWJ1dGVcbi8vIGV4dHJhIGZyZWUgc3BhY2UgbGVmdG92ZXIgd2hlbiBlaXRoZXIgYWxsIHRoZSBmbGV4IGl0ZW1zIG9uIGEgbGluZSBhcmVcbi8vIGluZmxleGlibGUsIG9yIGFyZSBmbGV4aWJsZSBidXQgaGF2ZSByZWFjaGVkIHRoZWlyIG1heGltdW0gc2l6ZS4gSXQgYWxzb1xuLy8gZXhlcnRzIHNvbWUgY29udHJvbCBvdmVyIHRoZSBhbGlnbm1lbnQgb2YgaXRlbXMgd2hlbiB0aGV5IG92ZXJmbG93IHRoZSBsaW5lLlxuLy9cbi8vIE5vdGU6ICdzcGFjZS0qJyB2YWx1ZXMgbm90IHN1cHBvcnRlZCBpbiBvbGRlciBzeW50YXhlcy5cbi8vXG4vLyBWYWx1ZXM6IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmRcbi8vIERlZmF1bHQ6IGZsZXgtc3RhcnRcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8janVzdGlmeS1jb250ZW50LXByb3BlcnR5XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG4gIEBpZiAkdmFsdWUgPT0gZmxleC1zdGFydCB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XG4gICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBzcGFjZS1iZXR3ZWVuIHtcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHNwYWNlLWFyb3VuZCB7XG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcbiAgfSBAZWxzZSB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogJHZhbHVlO1xuICAgIC1tcy1mbGV4LXBhY2s6ICR2YWx1ZTtcbiAgfVxuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAtbW96LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cbi8vIFNob3J0ZXIgdmVyc2lvbjpcbkBtaXhpbiBmbGV4LWp1c3QoJGFyZ3MuLi4pIHsgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KCRhcmdzLi4uKTsgfVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBBbGlnbiBJdGVtc1xuLy9cbi8vIEZsZXggaXRlbXMgY2FuIGJlIGFsaWduZWQgaW4gdGhlIGNyb3NzIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGVcbi8vIGZsZXggY29udGFpbmVyLCBzaW1pbGFyIHRvICdqdXN0aWZ5LWNvbnRlbnQnIGJ1dCBpbiB0aGUgcGVycGVuZGljdWxhclxuLy8gZGlyZWN0aW9uLiAnYWxpZ24taXRlbXMnIHNldHMgdGhlIGRlZmF1bHQgYWxpZ25tZW50IGZvciBhbGwgb2YgdGhlIGZsZXhcbi8vIGNvbnRhaW5lcidzIGl0ZW1zLCBpbmNsdWRpbmcgYW5vbnltb3VzIGZsZXggaXRlbXMuICdhbGlnbi1zZWxmJyBhbGxvd3Ncbi8vIHRoaXMgZGVmYXVsdCBhbGlnbm1lbnQgdG8gYmUgb3ZlcnJpZGRlbiBmb3IgaW5kaXZpZHVhbCBmbGV4IGl0ZW1zLiAoRm9yXG4vLyBhbm9ueW1vdXMgZmxleCBpdGVtcywgJ2FsaWduLXNlbGYnIGFsd2F5cyBtYXRjaGVzIHRoZSB2YWx1ZSBvZiAnYWxpZ24taXRlbXMnXG4vLyBvbiB0aGVpciBhc3NvY2lhdGVkIGZsZXggY29udGFpbmVyLikgXG4vL1xuLy8gVmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IHN0cmV0Y2hcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jYWxpZ24taXRlbXMtcHJvcGVydHlcblxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xuICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtYm94LWFsaWduOiAkdmFsdWU7XG4gICAgLW1zLWZsZXgtYWxpZ246ICR2YWx1ZTtcbiAgfVxuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gIC1tb3otYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQWxpZ24gU2VsZlxuLy9cbi8vIFZhbHVlczogYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaFxuLy8gRGVmYXVsdDogYXV0b1xuXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcbiAgLy8gTm8gV2Via2l0IEJveCBGYWxsYmFjay5cbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gIC1tb3otYWxpZ24tc2VsZjogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBmbGV4LWVuZCB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xuICB9IEBlbHNlIHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWU7XG4gIH1cbiAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBBbGlnbiBDb250ZW50XG4vL1xuLy8gVGhlICdhbGlnbi1jb250ZW50JyBwcm9wZXJ0eSBhbGlnbnMgYSBmbGV4IGNvbnRhaW5lcidzIGxpbmVzIHdpdGhpbiB0aGVcbi8vIGZsZXggY29udGFpbmVyIHdoZW4gdGhlcmUgaXMgZXh0cmEgc3BhY2UgaW4gdGhlIGNyb3NzLWF4aXMsIHNpbWlsYXIgdG9cbi8vIGhvdyAnanVzdGlmeS1jb250ZW50JyBhbGlnbnMgaW5kaXZpZHVhbCBpdGVtcyB3aXRoaW4gdGhlIG1haW4tYXhpcy4gTm90ZSxcbi8vIHRoaXMgcHJvcGVydHkgaGFzIG5vIGVmZmVjdCB3aGVuIHRoZSBmbGV4Ym94IGhhcyBvbmx5IGEgc2luZ2xlIGxpbmUuXG4vL1xuLy8gVmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaFxuLy8gRGVmYXVsdDogc3RyZXRjaFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNhbGlnbi1jb250ZW50LXByb3BlcnR5XG5cbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuICAvLyBObyBXZWJraXQgQm94IEZhbGxiYWNrLlxuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgLW1vei1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gZmxleC1zdGFydCB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xuICB9IEBlbHNlIHtcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZTtcbiAgfVxuICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG4iLCJAaW5jbHVkZSByZXNwb25kLXRvKFwidmlld3BvcnQ6bW9iaWxlXCIpIHtcbiAgaHRtbC5vdmVybGF5X29wZW4gLm1haW46Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGFic29sdXRlbHkoZml4ZWQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbi5tYWluX19vdmVybGF5IHtcbiAgQGV4dGVuZCAlYWJzb2x1dGVseTtcbiAgei1pbmRleDogeigkekxheW91dCwgXCJvdmVybGF5XCIpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwbXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEuMDAwKSAtM3MpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAtMnM7XG4gIGNvbG9yOiAjNmY2NTVjO1xuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptb2JpbGVcIikge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8qJi5sb2FkZWR7XG4gICAgLm1haW5fX292ZXJsYXlfX2Jne1xuICAgICAgQGluY2x1ZGUgb3BhY2l0eSguNSk7XG4gICAgfVxuICAgIC5tYWluX19vdmVybGF5X193cmFwcGVye1xuICAgICAgbGVmdDogNTAlO1xuICAgIH1cbiAgfSovXG5cbiAgJi5uZy1hbmltYXRle1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApIC0zcyk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogLTJzO1xuICB9XG5cbiAgJi5uZy1sZWF2ZSwgJi5uZy1sZWF2ZS1hY3RpdmUsICYuY2xvc2luZyB7XG4gICAgLm1haW5fX292ZXJsYXlfX2Jne1xuICAgICAgQGluY2x1ZGUgb3BhY2l0eSgwKTtcbiAgICB9XG4gICAgLm1haW5fX292ZXJsYXlfX3dyYXBwZXJ7XG4gICAgICBsZWZ0OiAxNTAlO1xuICAgIH1cbiAgfVxuICAmLm5nLWVudGVyLCAmLm5nLWVudGVyLWFjdGl2ZSwgJi5uZy1tb3ZlLCAmLm5nLW1vdmUtYWN0aXZlIHtcbiAgICAubWFpbl9fb3ZlcmxheV9fYmd7XG4gICAgICBAaW5jbHVkZSBvcGFjaXR5KDApO1xuICAgIH1cbiAgICAubWFpbl9fb3ZlcmxheV9fd3JhcHBlcntcbiAgICAgIGxlZnQ6IC0xMDAlO1xuICAgIH1cbiAgfVxuXG5cblxuICAmX19iZ3tcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IGFsbCA2MDBtcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgJl9fd3JhcHBlcntcbiAgICBAaW5jbHVkZSBzY3V0LWNlbnRlci10cmFuc2Zvcm0oKTtcbiAgICAvL0BleHRlbmQgLm1hcy1pO1xuICAgIC8vQGluY2x1ZGUgc3ByaXRlLXBlcmMoJG1hcy1pLW92ZXJsYXktYmcsIGJsb2NrLCA5MCk7XG5cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zcHJpdGVzL2kvb3ZlcmxheS1iZy5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IHJlbSgoKDE3MDAgLyAyKSAqIDkwKSAvIDEwMCk7XG4gICAgaGVpZ2h0OiByZW0oKCgxMzQ2IC8gMikgKiA5MCkgLyAxMDApO1xuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDYwMG1zIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxLjAwMCkpO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICAvL0BpbmNsdWRlIHNwcml0ZS1wZXJjKCRtYXMtaS1vdmVybGF5LWJnLCBibG9jaywgODApO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvc3ByaXRlcy9pL292ZXJsYXktYmcucG5nJyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogcmVtKCgoMTcwMCAvIDIpICogODApIC8gMTAwKTtcbiAgICAgIGhlaWdodDogcmVtKCgoMTM0NiAvIDIpICogODApIC8gMTAwKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKG5vbmUpO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gIH1cblxuICAmX19pbm5lcntcbiAgICBjb2xvcjogIzI0MjQyNDtcbiAgICBAaW5jbHVkZSBhYnNvbHV0ZWx5KCk7XG4gICAgcGFkZGluZzogcmVtKDczKSByZW0oODApIHJlbSg2Nyk7XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0OnRhYmxldFwiKSB7XG4gICAgICBwYWRkaW5nOiByZW0oNTMpIHJlbSg0MCkgcmVtKDQ3KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkc3VzeS1tb2JpbGUpIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogcmVtKDIwKTtcbiAgICAgIG1hcmdpbjogMjBweCBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgfVxuICB9XG5cbiAgJl9fc2Nyb2xse1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAmX19jbG9zZXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBzcXVhcmUocmVtKDIwKSk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogcmVtKDYzKTtcbiAgICByaWdodDogcmVtKDM4KTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBzdmd7XG4gICAgICBAZXh0ZW5kICVhYnNvbHV0ZWx5O1xuICAgICAgZmlsbDogIzZmNjU1YztcbiAgICB9XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICByaWdodDogcmVtKDMwKTtcbiAgICAgIHRvcDogcmVtKDMwKTtcbiAgICAgIEBpbmNsdWRlIHNxdWFyZShyZW0oNDApKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgc3Zne1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIHNxdWFyZShyZW0oMTUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5odG1sLm92ZXJsYXlfb3BlbntcbiAgLm1haW57XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICBAaW5jbHVkZSBhYnNvbHV0ZWx5KGZpeGVkKTtcbiAgICB9XG4gICAgJl9fZm9vdGVye1xuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1vYmlsZVwiKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubGl0eXtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbn1cbi5saXR5LWltYWdlIGltZ3tcbiAgcGFkZGluZzogcmVtKDQwKTtcbn1cbi5saXR5LWNsb3NlLC5saXR5LWNsb3NlOmhvdmVyLCAubGl0eS1jbG9zZTpmb2N1cywgLmxpdHktY2xvc2U6YWN0aXZlLCAubGl0eS1jbG9zZTp2aXNpdGVke1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuLmxpdHktY29udGVudDphZnRlcntcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLy8gY29tbW9uICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImNvbW1vblwiO1xuLy9AaW1wb3J0IFwic3ByaXRlc1wiO1xuLy8gbGF5b3V0ICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJhc2UvZm9udHNcIjtcbkBpbXBvcnQgXCJsYXlvdXQvYmFzZVwiO1xuQGltcG9ydCBcImxheW91dC9oZWFkZXJcIjtcbkBpbXBvcnQgXCJsYXlvdXQvZm9vdGVyXCI7XG5AaW1wb3J0IFwibGF5b3V0L292ZXJsYXlcIjtcblxuLnN2Zy1kZWZzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4ubWFpbntcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGh0bWwubWVudV9vcGVuICZ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19zZWN0aW9ue1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byhcInZpZXdwb3J0Om1pbi10YWJsZXRcIikge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLml0ZW1fX2J0bntcbiAgQGluY2x1ZGUgZm9udChcIm9zd2FsZFwiLCByZW0oMTMpLCAxLCBib2xkKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjNmY2NTVjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxOXB4IDQzcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDJweCk7XG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tdGFibGV0XCIpIHtcbiAgICBAaW5jbHVkZSBmb250KFwib3N3YWxkXCIsIHJlbSgxMC4xKSwgcmVtKDExKSwgYm9sZCk7XG4gICAgcGFkZGluZzogMTZweCAzMHB4O1xuICB9XG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oXCJ2aWV3cG9ydDptaW4tZGVza3RvcFwiKSB7XG4gICAgQGluY2x1ZGUgZm9udChcIm9zd2FsZFwiLCByZW0oMTQpLCByZW0oMTQpLCBib2xkKTtcbiAgICBwYWRkaW5nOiAxOXB4IDQwcHg7XG4gIH1cbiAgJjpmb2N1c3tcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgfVxufVxuXG4qW25nLWNsaWNrXXtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIl19 */
</pre></body></html>