/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Rizki Nida Chaerulsyah
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
.after_clear {
  content: '';
  clear: both;
  display: block;
}

.clear {
  clear: both;
}

.absolute-center, .wrap-popup .box-popup .close:after {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

.no-margin {
  margin: 0 !important;
}

/* variable global
----------------------------------------------------------------------------------------------*/
button {
  outline: none;
}

#middle .our-clientnew {
  z-index: 4;
  background: #eee;
}

#middle .our-clientnew h6 {
  margin-bottom: 20px;
}

#middle .our-clientnew a.blueBorderButtton {
  width: 300px;
  margin: auto auto 60px;
  display: block;
}

#middle .our-clientnew .box {
  position: relative;
}

#middle .our-clientnew .box a {
  display: block;
  position: relative;
  overflow: hidden;
}

#middle .our-clientnew .box a img {
  max-width: 100%;
  transition: 0.15s ease-out all;
  -webkit-transition: 0.15s ease-out all;
  -moz-transition: 0.15s ease-out all;
  -ms-transition: 0.15s ease-out all;
  -o-transition: 0.15s ease-out all;
  display: block;
}

#middle .our-clientnew .box a > img {
  -webkit-filter: grayscale(100);
  filter: grayscale(100);
}

#middle .our-clientnew .box a:hover > img {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
  transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
}

#middle .our-clientnew .box .logo {
  position: absolute;
  width: 100px;
  height: 80px;
  background: url(../images/material/logo-bg.png);
  z-index: 1;
}

#middle .our-clientnew .box .logo img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

#middle .our-clientnew .slick-arrow {
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: 50px;
  height: 50px;
  background: #d7d7d7;
  border: none;
  text-indent: -9999px;
  z-index: 1;
  bottom: -25px;
}

#middle .our-clientnew .slick-arrow:before {
  content: "";
  position: absolute;
  width: 0;
  height: 100%;
  left: 0;
  top: 0;
  background: #004478;
  transition: 0.15s ease-out all;
  -webkit-transition: 0.15s ease-out all;
  -moz-transition: 0.15s ease-out all;
  -ms-transition: 0.15s ease-out all;
  -o-transition: 0.15s ease-out all;
}

#middle .our-clientnew .slick-arrow:after {
  content: "";
  position: absolute;
  width: 9px;
  height: 23px;
  background: url(../images/material/arr-slider.png) no-repeat;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

#middle .our-clientnew .slick-arrow.slick-prev {
  left: -50.5px;
  background-position: left top;
}

#middle .our-clientnew .slick-arrow.slick-prev:before {
  left: auto;
  right: 0;
}

#middle .our-clientnew .slick-arrow.slick-prev:after {
  background-position: top left;
}

#middle .our-clientnew .slick-arrow.slick-next {
  right: -50.5px;
  background-position: right top;
}

#middle .our-clientnew .slick-arrow.slick-next:after {
  background-position: top right;
}

#middle .our-clientnew .slick-arrow:hover:before {
  width: 100%;
}

#middle .our-clientnew .slick-arrow:hover:after {
  background-position-y: bottom;
}

#middle section.case_studies {
  padding-top: 80px;
  z-index: 3;
}

#middle section.case_studies .nav_slide {
  box-shadow: 0px 0px 0px !important;
  -webkit-box-shadow: 0px 0px 0px !important;
  -moz-box-shadow: 0px 0px 0px !important;
  -ms-box-shadow: 0px 0px 0px !important;
  -o-box-shadow: 0px 0px 0px !important;
}

#middle section.case_studies .nav_slide .spar {
  display: none;
}

#middle section.case_studies .nav_slide .direction {
  height: 0;
}

#middle section.case_studies .nav_slide .direction a {
  position: absolute;
  bottom: -25px;
  right: 0;
  left: 0;
  margin: auto;
  width: 50px;
  height: 50px;
  background: #d7d7d7;
  border: none;
  text-indent: -9999px;
  z-index: 1;
  padding: 0;
  font-size: 0;
}

#middle section.case_studies .nav_slide .direction a:before {
  content: "";
  position: absolute;
  width: 0;
  height: 100%;
  left: 0;
  top: 0;
  background: #004478;
  transition: 0.15s ease-out all;
  -webkit-transition: 0.15s ease-out all;
  -moz-transition: 0.15s ease-out all;
  -ms-transition: 0.15s ease-out all;
  -o-transition: 0.15s ease-out all;
}

#middle section.case_studies .nav_slide .direction a:after {
  content: "";
  position: absolute;
  width: 9px;
  height: 23px;
  background: url(../images/material/arr-slider.png) no-repeat;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

#middle section.case_studies .nav_slide .direction a.prev_ {
  left: -50.5px;
  background-position: left top;
}

#middle section.case_studies .nav_slide .direction a.prev_:before {
  left: auto;
  right: 0;
}

#middle section.case_studies .nav_slide .direction a.prev_:after {
  background-position: top left;
}

#middle section.case_studies .nav_slide .direction a.next_ {
  right: -50.5px;
  background-position: right top;
}

#middle section.case_studies .nav_slide .direction a.next_:after {
  background-position: top right;
}

#middle section.case_studies .nav_slide .direction a:hover:before {
  width: 100%;
}

#middle section.case_studies .nav_slide .direction a:hover:after {
  background-position-y: bottom;
}

#middle section.case_studies .nav_slide .direction a span {
  display: none;
}

#middle .contact-new {
  padding: 110px 0;
  background: #eef4f8 url(../images/content/bg_contact_2.jpg) no-repeat bottom;
}

#middle .contact-new .btn {
  position: relative;
  overflow: hidden;
  display: block;
  background: #008bd0;
  font-size: 20px;
  font-weight: 900;
  color: #FFF;
  text-align: center;
  text-transform: uppercase;
  border: none;
  transition: 0.2s linear color;
  -webkit-transition: 0.2s linear color;
  -moz-transition: 0.2s linear color;
  -ms-transition: 0.2s linear color;
  -o-transition: 0.2s linear color;
}

#middle .contact-new .btn .hover {
  position: absolute;
  width: 0;
  height: 120%;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  background: #00548e;
  transform: skew(30deg);
  -webkit-transform: skew(30deg);
  -moz-transform: skew(30deg);
  -ms-transform: skew(30deg);
  -o-transform: skew(30deg);
  z-index: 0;
}

#middle .contact-new .btn:hover {
  color: #69cdff;
}

#middle .contact-new .wrapper {
  max-width: 1300px;
  margin: auto;
}

#middle .contact-new .wrapper:after {
  content: "";
  clear: both;
  display: block;
}

#middle .contact-new .left {
  width: 340px;
  text-transform: uppercase;
  margin: 70px 0 0 0;
}

#middle .contact-new .left h4 {
  font-size: 24px;
  color: #000;
  letter-spacing: 2.5px;
  margin: 0 0 20px 0;
}

#middle .contact-new .left p {
  font-size: 14px;
  line-height: 30px;
  letter-spacing: 2px;
  color: #333;
}

#middle .contact-new .left p b {
  display: block;
  margin: 10px 0 0 0;
  line-height: 24px;
}

#middle .contact-new .left p a {
  color: #333;
  text-decoration: none;
}

#middle .contact-new .left .socmed {
  margin: 60px 0 0 -8px;
}

#middle .contact-new .left .socmed a {
  float: left;
  margin: 0 20px 0 0;
}

#middle .contact-new .left .socmed a:hover {
  opacity: 0.7;
}

#middle .contact-new .left .socmed:after {
  content: "";
  clear: both;
  display: block;
}

#middle .contact-new .box-form {
  position: relative;
  float: right;
  width: 640px;
  height: auto;
  background: #FFF;
}

#middle .contact-new .box-form > div {
  position: relative;
  background: #FFF;
}

#middle .contact-new .box-form .row {
  position: relative;
  margin: 0 30px;
  height: 84px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
}

#middle .contact-new .box-form .row.focus label {
  color: #FFF;
}

#middle .contact-new .box-form .row.focus input, #middle .contact-new .box-form .row.focus textarea, #middle .contact-new .box-form .row.focus select {
  color: #FFF;
}

#middle .contact-new .box-form .row.checkbox-row {
  height: auto;
  padding: 75px 0 10px;
}

#middle .contact-new .box-form .row.checkbox-row > label {
  top: 30px;
  height: auto;
}

#middle .contact-new .box-form .row.checkbox-row .hover-bg {
  display: none !important;
}

#middle .contact-new .box-form .row.textarea {
  height: 144px;
}

#middle .contact-new .box-form .row > label {
  display: block;
  position: relative;
  color: #666;
  font-size: 16px;
  top: 35px;
  position: absolute;
  height: 16px;
  margin: auto;
  transition: 0.2s all ease-out;
  -webkit-transition: 0.2s all ease-out;
  -moz-transition: 0.2s all ease-out;
  -ms-transition: 0.2s all ease-out;
  -o-transition: 0.2s all ease-out;
  height: 60px;
  text-transform: capitalize;
}

#middle .contact-new .box-form .row > label span {
  color: #d40d15;
}

#middle .contact-new .box-form input[type=email],
#middle .contact-new .box-form input[type=text],
#middle .contact-new .box-form textarea,
#middle .contact-new .box-form select {
  opacity: 0;
  display: block;
  background: none;
  border: none;
  padding: 20px 0 0 0;
  font-size: 24px;
  color: #333;
  line-height: 65px;
  width: 100%;
  position: relative;
  width: 100%;
  outline: none;
  bottom: -10px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

#middle .contact-new .box-form select {
  height: 70px;
}

#middle .contact-new .box-form select option {
  font-size: 16px;
}

#middle .contact-new .box-form .selectarr:before {
  content: "";
  display: block;
  width: 16px;
  height: 11px;
  background: url(../images/material/select_arr.png) no-repeat;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 1;
}

#middle .contact-new .box-form textarea {
  line-height: 30px;
  top: 40px;
  height: 95px;
  position: relative;
  padding-top: 0;
}

#middle .contact-new .box-form .btn {
  position: relative;
  display: block;
  height: 85px;
  width: 100%;
  cursor: pointer;
  background: #01365e;
  font-size: 16px;
  letter-spacing: 2px;
}

#middle .contact-new .box-form .btn span.hover {
  background: #000;
}

#middle .contact-new .box-form .btn span {
  color: #FFF;
}

#middle .contact-new .box-form .hover-bg {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  bottom: -1px;
  left: -38px;
  padding: 0 38px 1px;
  background: #008bcf;
  opacity: 0;
}

#middle .contact-new .box-form .checkbox_wrap label {
  float: left;
  margin: 0 35px 15px 2px;
  padding: 0 0 0 20px;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: capitalize;
  font-size: 13px;
  position: relative;
}

#middle .contact-new .box-form .checkbox_wrap label input {
  position: absolute;
  left: 0;
  top: 1px;
}

#middle .contact-new .box-form .c-tab {
  display: none;
}

#middle .contact-new .box-form .box-capthca {
  padding: 20px 0 20px 30px;
}

#middle .contact-new .box-form:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  padding-bottom: 110px;
  padding-right: 410px;
  background: url(../images/material/bg-connect-form.png) no-repeat right top;
  z-index: 0;
  background-size: 100% 100%;
}

#middle .our-com {
  background: #FFF;
  z-index: 4;
}

#middle .our-com .wrapper {
  max-width: 1300px;
}

#middle .our-com .wrapper:after {
  clear: both;
  content: '';
  display: block;
}

#middle .our-com h6 {
  width: 200px;
  text-align: left;
  float: left;
  font-size: 24px;
  color: #004578;
  line-height: 22px;
  letter-spacing: 6px;
}

#middle .our-com .right {
  width: 980px;
}

#middle .our-com .right a {
  float: left;
  margin: 10px 3% 0 0;
  width: 22%;
}

#middle .our-com .right a:first-child {
  margin-left: 0;
}

#middle .our-com .right a img {
  max-width: 100%;
}

#middle section.contact_top .wrap_navtab .spar,
#middle section.contact_top .wrap_navtab .spar_3 {
  display: none;
}

.wrap_popup_form .box-capthca {
  padding: 0 0 30px 0;
}

.wrap_popup_form .box-capthca .g-recaptcha {
  margin: auto;
  width: 304px;
}

* {
  outline: none;
}

.lifein {
  padding: 94px 0 0 0;
  position: relative;
  background: #FFF;
  z-index: 1;
  padding-bottom: 100px;
  overflow: hidden;
}

.lifein .wrapper {
  width: 1170px;
  margin: auto;
  position: relative;
}

.lifein .wrapper:after {
  content: '';
  clear: both;
  display: block;
}

.lifein > div {
  margin: 0 65px;
  position: relative;
}

.lifein .li-banner {
  background: url(../images/material/bg-li-1.jpg) no-repeat center;
  padding: 70px 0 40px;
}

.lifein .li-banner .wrapper {
  width: 1400px;
}

.lifein .li-banner .left {
  width: 630px;
  box-shadow: 0px 0px 100px -35px;
  -webkit-box-shadow: 0px 0px 100px -35px;
  -moz-box-shadow: 0px 0px 100px -35px;
  -ms-box-shadow: 0px 0px 100px -35px;
  -o-box-shadow: 0px 0px 100px -35px;
}

.lifein .li-banner .left img {
  display: block;
  max-width: 100%;
}

.lifein .li-banner .caption {
  position: absolute;
  width: 600px;
  height: 300px;
  right: 0;
  top: 0;
  bottom: 70px;
  margin: auto;
}

.lifein .li-banner .caption h2 {
  position: relative;
  font-size: 49px;
  color: #FFF;
  line-height: 60px;
  text-transform: uppercase;
  margin: 0 0 35px 0;
  font-family: "proxima_nova_altbold";
}

.lifein .li-banner .caption h2 span {
  position: absolute;
}

.lifein .li-banner .caption h2 span.line-1 {
  width: 504px;
  height: 142px;
  background: url(../images/material/bg-title-h.png) no-repeat center;
  top: -18px;
  left: -53px;
}

.lifein .li-banner .caption h2 span.line-2 {
  width: 451px;
  height: 165px;
  background: url(../images/material/bg-title-v.png) no-repeat center;
  top: -31px;
  left: -5px;
}

.lifein .li-banner .caption h2 span.line-3 {
  width: 456px;
  height: 133px;
  background: url(../images/material/bg-title-dot.png) no-repeat center;
  left: -8px;
  top: -6px;
}

.lifein .li-banner .caption p {
  font-size: 26px;
  color: #FFF;
  line-height: 36px;
  font-family: "proxima_novalight";
  text-transform: uppercase;
}

.lifein .li-banner .bg-line {
  position: absolute;
  width: 409px;
  height: 353px;
  background: url(../images/material/bg-li-1-bottom.png) no-repeat;
  bottom: -180px;
}

.lifein .workhard {
  padding: 110px 0 0 0;
  color: #333;
}

.lifein .workhard .left {
  width: 350px;
}

.lifein .workhard .left h4 {
  font-size: 36px;
  line-height: 41px;
  text-transform: uppercase;
  margin: 0 0 20px;
  font-family: "proxima_nova_altbold";
}

.lifein .workhard .left p {
  font-size: 20px;
  line-height: 24px;
}

.lifein .workhard .right {
  width: 760px;
}

.lifein .workhard .right .box {
  width: 355px;
  float: left;
  margin: 0 50px 40px 0;
  padding: 0 0 0 90px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}

.lifein .workhard .right .box > img {
  position: absolute;
  left: 0;
  top: 15px;
  margin: auto;
}

.lifein .workhard .right .box:nth-child(2n) {
  margin-right: 0;
}

.lifein .workhard .right .box:nth-child(2n+1) {
  clear: both;
}

.lifein .workhard .right .box h6 {
  font-family: "proxima_nova_altbold";
  margin: 0 0 10px;
  line-height: 24px;
  font-size: 20px;
  text-transform: uppercase;
}

.lifein .workhard .right .box p {
  font-size: 17px;
  line-height: 24px;
}

.lifein .workhard .right:after {
  content: '';
  clear: both;
  display: block;
}

.lifein .workhard .illus {
  margin: 50px 0 0 0;
  text-align: center;
}

.lifein .li-testi {
  padding: 0 0 250px;
  background: url(../images/material/bg-li-2.jpg) no-repeat top center;
}

.lifein .li-testi .bg-line {
  position: absolute;
  width: 485px;
  height: 382px;
  background: url(../images/material/bg-li-2-bottom.png) no-repeat;
  bottom: -192px;
  right: -70px;
}

.lifein .li-testi .left {
  width: 570px;
  height: 300px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}

.lifein .li-testi .left .slick-arrow {
  display: none !important;
}

.lifein .li-testi .left p {
  font-size: 26px;
  color: #FFF;
  line-height: 34px;
  padding: 0 0 0 30px;
}

.lifein .li-testi .left p:before, .lifein .li-testi .left p:after {
  content: "";
  display: inline-block;
  width: 19px;
  height: 15px;
  background: url(../images/material/string-ico-1.png) no-repeat;
  position: relative;
  margin: 0 0px 10px -27px;
}

.lifein .li-testi .left p:after {
  background: url(../images/material/string-ico-2.png) no-repeat;
  margin: 0 0px -8px 3px;
}

.lifein .li-testi .left h6 {
  font-family: "proxima_nova_altbold";
  font-size: 20px;
  text-transform: uppercase;
  color: #FFF;
  padding: 0 0 0 30px;
}

.lifein .li-testi .left h6:before {
  content: "";
  display: block;
  width: 80px;
  height: 6px;
  background: #FFF;
  margin: 35px 0 20px 0;
}

.lifein .li-testi .right {
  width: 475px;
  box-shadow: 0px 30px 120px -45px;
  -webkit-box-shadow: 0px 30px 120px -45px;
  -moz-box-shadow: 0px 30px 120px -45px;
  -ms-box-shadow: 0px 30px 120px -45px;
  -o-box-shadow: 0px 30px 120px -45px;
}

.lifein .li-testi .right img {
  display: block;
}

.lifein .li-testi .right .slick-arrow {
  position: absolute;
  width: 70px;
  height: 70px;
  bottom: 0;
  padding: 0;
  border: none;
  background: #FFF;
  display: block;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
  text-indent: -9999px;
}

.lifein .li-testi .right .slick-arrow:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 18px;
  height: 32px;
  background: url(../images/material/arrow-li.png) no-repeat;
}

.lifein .li-testi .right .slick-arrow.slick-prev {
  left: -70.5px;
}

.lifein .li-testi .right .slick-arrow.slick-prev:after {
  background-position: top left;
}

.lifein .li-testi .right .slick-arrow.slick-next {
  left: 0.5px;
}

.lifein .li-testi .right .slick-arrow.slick-next:after {
  background-position: top right;
}

.lifein .li-testi .right .slick-arrow:hover {
  background: #246c8c;
}

.lifein .li-testi .right .slick-arrow:hover:after {
  background-position-y: bottom;
}

.lifein .li-events > div:after {
  content: "";
  display: block;
  clear: both;
}

.lifein .li-events .box {
  width: 370px;
  position: relative;
  margin: 0 30px 50px 0;
  float: left;
  cursor: pointer;
}

.lifein .li-events .box img {
  display: block;
}

.lifein .li-events .box .text {
  position: relative;
  padding: 45px 40px;
  background: #666;
  width: 320px;
  height: 130px;
  left: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  color: #FFF;
  text-transform: uppercase;
  margin-top: -150px;
}

.lifein .li-events .box .text small {
  display: block;
  font-size: 16px;
  margin: 0 0 5px 0;
}

.lifein .li-events .box .text h6 {
  font-size: 20px;
  font-family: "proxima_nova_ltsemibold";
  margin: 0;
}

.lifein .li-events .box:nth-child(1n) .text {
  background: #d31536;
}

.lifein .li-events .box:nth-child(2n) .text {
  background: #334ba8;
}

.lifein .li-events .box:nth-child(3n) .text {
  background: #248f5b;
}

.lifein .li-events .box:nth-child(4n) .text {
  background: #e19024;
}

.lifein .li-events .box:nth-child(5n) .text {
  background: #0e8e9b;
}

.lifein .li-events .box:nth-child(6n) .text {
  background: #222e3e;
}

.lifein .li-events .box:nth-child(3n) {
  margin-right: 0;
}

.lifein .li-events .load-more {
  color: #b1b1b1;
  display: block;
  position: relative;
  display: block;
  text-align: center;
  font-size: 14px;
  font-family: "proxima_nova_ltsemibold";
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
  margin-top: 120px;
  outline: none !important;
}

.lifein .li-events .load-more span {
  background: #FFF;
  padding: 0 20px;
  display: inline-block;
  position: relative;
  z-index: 1;
}

.lifein .li-events .load-more:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: #e1e1e1;
  margin: auto;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
}

.lifein .li-events .load-more:hover {
  color: #01365e;
}

.lifein .li-events .load-more:hover:after {
  background: #01365e;
}

.lifein .li-tagline {
  background: url(../images/material/bg-li-3.jpg) no-repeat;
  height: 500px;
  position: relative;
}

.lifein .li-tagline .caption {
  width: 1140px;
  height: 120px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}

.lifein .li-tagline .caption p {
  font-size: 30px;
  color: #FFF;
  margin: 0 0 30px 0;
}

.lifein .li-tagline .caption a {
  width: 220px;
  display: block;
  margin: auto;
  height: 44px;
  border: 3px solid #FFF;
  font-size: 18px;
  line-height: 44px;
  color: #FFF;
  font-family: "proxima_nova_ltsemibold";
  text-transform: uppercase;
  text-decoration: none;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
}

.lifein .li-tagline .caption a:hover {
  color: #01365e;
  background: #FFF;
}

.no-scroll {
  overflow: hidden !important;
}

.data-popup {
  display: none;
}

.wrap-popup {
  position: fixed;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 6;
  top: 0;
  left: 0;
  overflow: auto;
  display: none;
}

.wrap-popup .box-popup {
  width: 900px;
  background: #FFF;
  padding: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin: 5% auto;
  position: relative;
}

.wrap-popup .box-popup .close {
  position: absolute;
  width: 32px;
  height: 32px;
  background: #e93251;
  text-indent: -99999px;
  top: -15px;
  right: -15px;
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
}

.wrap-popup .box-popup .close:hover:after {
  transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
}

.wrap-popup .box-popup .close:after {
  content: "";
  background: url(../images/material/plus_ico.png) no-repeat center;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transition: 0.2s linear all;
  -webkit-transition: 0.2s linear all;
  -moz-transition: 0.2s linear all;
  -ms-transition: 0.2s linear all;
  -o-transition: 0.2s linear all;
}

.wrap-popup .box-popup .img {
  margin: 0 0 30px 0;
}

.wrap-popup .box-popup .img img {
  max-width: 100%;
}

.wrap-popup .box-popup .text h5 {
  font-family: "proxima_nova_altbold";
  font-size: 28px;
  margin: 0;
  margin-bottom: 5px;
}

.wrap-popup .box-popup .text small {
  font-size: 14px;
  font-weight: 500;
  color: #666;
  display: block;
  margin: 0 0 20px 0;
}

.wrap-popup .box-popup .text p {
  font-size: 16px;
  line-height: 22px;
  color: #333;
}

.wrap-popup .box-popup .slick-arrow {
  position: absolute;
  width: 60px;
  height: 60px;
  bottom: 0;
  top: 0;
  margin: auto;
  padding: 0;
  border: none;
  background: #FFF;
  display: block;
  transition: 0.15s linear all;
  -webkit-transition: 0.15s linear all;
  -moz-transition: 0.15s linear all;
  -ms-transition: 0.15s linear all;
  -o-transition: 0.15s linear all;
  text-indent: -9999px;
  z-index: 2;
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
  transform: scale(0.7);
  -webkit-transform: scale(0.7);
  -moz-transform: scale(0.7);
  -ms-transform: scale(0.7);
  -o-transform: scale(0.7);
  box-shadow: 0px 0px 10px -4px #000;
  -webkit-box-shadow: 0px 0px 10px -4px #000;
  -moz-box-shadow: 0px 0px 10px -4px #000;
  -ms-box-shadow: 0px 0px 10px -4px #000;
  -o-box-shadow: 0px 0px 10px -4px #000;
}

.wrap-popup .box-popup .slick-arrow:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 18px;
  height: 32px;
  background: url(../images/material/arrow-li.png) no-repeat;
}

.wrap-popup .box-popup .slick-arrow.slick-prev {
  left: 0;
  right: auto;
}

.wrap-popup .box-popup .slick-arrow.slick-prev:after {
  background-position: top left;
}

.wrap-popup .box-popup .slick-arrow.slick-next {
  right: 0;
}

.wrap-popup .box-popup .slick-arrow.slick-next:after {
  background-position: top right;
}

.wrap-popup .box-popup .slick-arrow:hover {
  background: #246c8c;
}

.wrap-popup .box-popup .slick-arrow:hover:after {
  background-position-y: bottom;
}

footer {
  height: 105px;
}

footer .footer_content {
  height: 127px;
}

@media (min-width: 0px) and (max-width: 1600px) {
  .lifein img {
    max-width: 100%;
  }
  .lifein .wrapper {
    width: 1000px;
  }
  .lifein > div {
    margin: 0 40px;
  }
  .lifein .li-banner {
    background-size: cover;
  }
  .lifein .li-banner .bg-line {
    width: 300px;
    background-size: 100% auto;
    bottom: -223px;
  }
  .lifein .li-banner .wrapper {
    width: 1100px;
  }
  .lifein .li-banner .wrapper .left {
    width: 43%;
  }
  .lifein .li-banner .wrapper .caption {
    width: 45%;
  }
  .lifein .li-banner .wrapper .caption h2 {
    font-size: 33px;
    line-height: 45px;
  }
  .lifein .li-banner .wrapper .caption h2 span {
    transform: scale(0.7);
    -webkit-transform: scale(0.7);
    -moz-transform: scale(0.7);
    -ms-transform: scale(0.7);
    -o-transform: scale(0.7);
    margin: -12px 0 0 -70px;
  }
  .lifein .li-banner .wrapper .caption p {
    font-size: 24px;
    line-height: 32px;
  }
  .lifein .workhard .left {
    width: 260px;
  }
  .lifein .workhard .left h4 {
    font-size: 30px;
    line-height: 33px;
    margin-bottom: 15px;
  }
  .lifein .workhard .left p {
    font-size: 18px;
  }
  .lifein .workhard .right {
    width: 660px;
  }
  .lifein .workhard .right .box {
    width: 48%;
    margin: 0 4% 20px 0;
    padding-left: 65px;
  }
  .lifein .workhard .right .box img {
    width: 45px;
    top: 10px;
  }
  .lifein .workhard .right .box h6 {
    font-size: 18px;
    line-height: 22px;
    margin-bottom: 10px;
  }
  .lifein .workhard .right .box p {
    font-size: 15px;
    line-height: 20px;
  }
  .lifein .workhard .illus {
    margin: 0 0 70px 0;
  }
  .lifein .li-testi {
    padding-bottom: 8%;
    background-size: cover;
    margin-bottom: 70px;
  }
  .lifein .li-testi .bg-line {
    bottom: -325px;
    width: 350px;
    background-size: 100%;
  }
  .lifein .li-testi .left {
    width: 50%;
    height: 230px;
  }
  .lifein .li-testi .left p {
    font-size: 22px;
    line-height: 32px;
  }
  .lifein .li-testi .left h6 {
    margin: 0;
    font-size: 20px;
  }
  .lifein .li-testi .left h6:before {
    height: 4px;
  }
  .lifein .li-testi .right {
    width: 40%;
  }
  .lifein .li-testi .right .slick-arrow {
    width: 50px;
    height: 50px;
  }
  .lifein .li-testi .right .slick-arrow:after {
    transform: scale(0.8);
    -webkit-transform: scale(0.8);
    -moz-transform: scale(0.8);
    -ms-transform: scale(0.8);
    -o-transform: scale(0.8);
  }
  .lifein .li-testi .right .slick-arrow.slick-prev {
    left: -50.5px;
  }
  .lifein .li-events .box {
    width: 32%;
    margin-right: 2%;
  }
  .lifein .li-events .box .text {
    width: 85%;
    padding: 30px;
    height: 105px;
  }
  .lifein .li-events .box .text small {
    font-size: 14px;
  }
  .lifein .li-events .box .text h6 {
    font-size: 18px;
  }
}

@media (min-width: 0px) and (max-width: 1440px) {
  #middle .contact-new .wrapper {
    width: auto;
    margin: 0 80px;
  }
  #middle .our-com {
    padding: 45px 0 0 0;
  }
  #middle .our-com .wrapper {
    width: auto;
    margin: 0 80px;
  }
  #middle .our-com h6 {
    float: none;
    text-align: center;
    width: 100%;
    margin: 0 0 20px;
  }
  #middle .our-com .right {
    float: none;
    display: block;
    width: auto;
    padding: 0 0 40px 0;
  }
  #middle .our-com .right a {
    float: left;
    display: block;
    width: 25%;
    margin: 0;
    text-align: center;
  }
  #middle .our-com .right a img {
    max-width: 80%;
  }
  #middle .our-com .right:after {
    content: "";
    display: block;
    clear: both;
  }
}

@media (min-width: 0px) and (max-width: 1280px) {
  #middle .our-clientnew .box .logo {
    transform: scale(0.6);
    -webkit-transform: scale(0.6);
    -moz-transform: scale(0.6);
    -ms-transform: scale(0.6);
    -o-transform: scale(0.6);
    top: -16px;
    left: -20px;
  }
  #middle .contact-new .wrapper {
    margin: 0 40px;
  }
  #middle .contact-new .left {
    width: 280px;
  }
  #middle .contact-new .left p {
    font-size: 13px;
    line-height: 26px;
  }
  #middle .contact-new .left p b {
    line-height: 22px;
  }
  #middle .contact-new .box-form {
    width: 500px;
  }
  #middle .contact-new .box-form:before {
    left: 0;
    padding-right: 318px;
  }
  #middle .our-com {
    padding: 45px 0 0 0;
  }
  #middle .our-com .wrapper {
    margin: 0 40px;
  }
  .wrap-popup .box-popup {
    width: 90%;
  }
  .lifein {
    padding-top: 70px;
  }
  .lifein .li-banner .wrapper {
    width: auto;
    margin: 0 60px;
  }
  .lifein .li-banner .wrapper .caption h2 {
    font-size: 30px;
    line-height: 38px;
  }
  .lifein .li-banner .wrapper .caption h2 span {
    transform: scale(0.6);
    -webkit-transform: scale(0.6);
    -moz-transform: scale(0.6);
    -ms-transform: scale(0.6);
    -o-transform: scale(0.6);
    margin: -20px 0 0 -100px;
  }
  .lifein .li-banner .wrapper .caption p {
    font-size: 18px;
    line-height: 24px;
  }
  .lifein .li-banner .bg-line {
    width: 220px;
    bottom: -245px;
  }
  .lifein .workhard {
    padding-top: 50px;
  }
  .lifein .workhard .wrapper {
    width: auto;
    margin: 0 80px;
  }
  .lifein .workhard .left {
    float: none;
    text-align: center;
    margin: 0 auto 50px;
    display: block;
    width: auto;
    width: 500px;
  }
  .lifein .workhard .right {
    float: none;
  }
  .lifein .workhard .right .box img {
    top: 15px;
  }
  .lifein .li-testi .wrapper {
    width: auto;
    margin: 0 80px;
  }
  .lifein .li-testi .left p {
    font-size: 20px;
    line-height: 24px;
  }
  .lifein .li-testi .left h6 {
    font-size: 16px;
  }
  .lifein .li-testi .right {
    width: 43%;
    box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.4);
    -webkit-box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.4);
    -ms-box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.4);
    -o-box-shadow: 0 0 20px -5px rgba(0, 0, 0, 0.4);
  }
  .lifein .li-testi .bg-line {
    width: 280px;
    bottom: -340px;
    right: -50px;
  }
  .lifein .li-events {
    width: auto;
    margin: 0 40px;
  }
  .lifein .li-events .load-more {
    margin-top: 80px;
  }
  .lifein .li-tagline {
    height: 350px;
    background-size: cover;
    background-position: center;
  }
  .lifein .li-tagline .caption {
    width: auto;
    margin: auto 80px;
  }
  .lifein .li-tagline .caption p {
    font-size: 20px;
  }
  .lifein .li-tagline .caption a {
    border-width: 2px;
    height: 41px;
    line-height: 41px;
    font-size: 16px;
    width: 200px;
  }
}

@media (min-width: 0px) and (max-width: 900px) {
  #middle .contact-new .wrapper {
    position: relative;
    padding-bottom: 300px;
  }
  #middle .contact-new .left {
    width: auto;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    z-index: 2;
  }
  #middle .contact-new .left p {
    font-size: 13px;
    line-height: 26px;
  }
  #middle .contact-new .left p b {
    line-height: 22px;
  }
  #middle .contact-new .left .socmed {
    width: 221px;
    margin: auto;
  }
  #middle .contact-new .left .socmed a:last-child {
    margin: 0;
  }
  #middle .contact-new .box-form {
    float: none;
    margin: auto;
  }
  #middle .contact-new .box-form:before {
    display: none;
  }
  #middle .contact-new .right {
    margin: auto;
    float: none;
    display: block;
    z-index: 1;
    position: relative;
  }
  #middle .our-com {
    padding: 45px 0 0 0;
  }
  #middle .our-com .wrapper {
    margin: 0 40px;
  }
  .lifein {
    overflow: hidden;
    position: relative;
    padding-bottom: 50px;
  }
  .lifein > div {
    margin: 0;
  }
  .lifein .li-banner {
    padding: 40px 0;
  }
  .lifein .li-banner .wrapper {
    width: auto;
    margin: 0 40px;
  }
  .lifein .li-banner .wrapper .left {
    width: 44%;
  }
  .lifein .li-banner .caption {
    height: 235px;
  }
  .lifein .li-banner .bg-line {
    width: 220px;
    bottom: -120px;
    height: 200px;
    left: -15px;
  }
  .lifein .workhard .wrapper {
    width: auto;
    margin: 0 40px;
  }
  .lifein .li-testi {
    padding-bottom: 10%;
  }
  .lifein .li-testi .wrapper {
    width: auto;
    margin: 0 40px;
  }
  .lifein .li-testi .left {
    width: 51%;
  }
  .lifein .li-testi .left p {
    font-size: 18px;
    line-height: 24px;
  }
  .lifein .li-testi .left h6 {
    font-size: 14px;
  }
  .lifein .li-testi .right {
    width: 41%;
  }
  .lifein .li-testi .right .slick-arrow {
    width: 45px;
    height: 45px;
  }
  .lifein .li-testi .right .slick-arrow:after {
    width: 12px;
  }
  .lifein .li-testi .right .slick-arrow.slick-prev {
    left: -45.5px;
  }
  .lifein .li-testi .bg-line {
    width: 200px;
    bottom: -110px;
    right: -50px;
    height: 150px;
  }
  .lifein .li-events {
    width: auto;
    margin: 0 40px;
  }
  .lifein .li-events .box .text {
    width: 91%;
    padding: 32px 20px;
    height: 100px;
    margin-top: -125px;
  }
  .lifein .li-events .box .text small {
    font-size: 12px;
    margin: 0;
  }
  .lifein .li-events .box .text h6 {
    font-size: 16px;
  }
  .lifein .li-tagline {
    height: 280px;
    background-size: cover;
    background-position: center;
  }
  .lifein .li-tagline .caption {
    width: auto;
    margin: auto 40px;
  }
  .lifein .li-tagline .caption p {
    font-size: 16px;
    margin-bottom: 20px;
  }
  .lifein .li-tagline .caption a {
    border-width: 2px;
    height: 36px;
    line-height: 36px;
    font-size: 13px;
    width: 160px;
  }
}

@media (min-width: 0px) and (max-width: 719px) {
  .wrap-popup .box-popup {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }
  .wrap-popup .box-popup .close {
    width: 28px;
    height: 28px;
    top: 0;
    right: 0;
    border-radius: 0;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    -o-border-radius: 0;
    z-index: 2;
  }
  .wrap-popup .box-popup .img {
    margin-bottom: 20px;
  }
  .wrap-popup .box-popup .text {
    padding: 0 20px 20px;
  }
  .wrap-popup .box-popup .text h5 {
    font-size: 24px;
  }
  .wrap-popup .box-popup .text small {
    margin-bottom: 15px;
    font-size: 13px;
  }
  #middle section.case_studies {
    padding-top: 0;
    padding-bottom: 50px;
  }
  #middle section.case_studies .nav_slide {
    height: 0;
  }
  #middle section.case_studies .nav_slide .direction a {
    width: 50%;
    bottom: -50px;
  }
  #middle section.case_studies .nav_slide .direction a.prev_ {
    left: 0;
    right: auto;
  }
  #middle section.case_studies .nav_slide .direction a.prev_:after {
    left: auto;
    right: 30px;
  }
  #middle section.case_studies .nav_slide .direction a.next_ {
    right: 0;
    left: auto;
  }
  #middle section.case_studies .nav_slide .direction a.next_:after {
    right: auto;
    left: 30px;
  }
  #middle .our-clientnew {
    padding-bottom: 50px;
  }
  #middle .our-clientnew > h2,
  #middle .our-clientnew > h6 {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto;
  }
  #middle .our-clientnew .slick-arrow {
    bottom: -50px;
    width: 50%;
  }
  #middle .our-clientnew .slick-arrow.slick-next {
    left: auto;
    right: 0;
  }
  #middle .our-clientnew .slick-arrow.slick-next:after {
    right: auto;
    left: 30px;
  }
  #middle .our-clientnew .slick-arrow.slick-prev {
    right: auto;
    left: 0;
  }
  #middle .our-clientnew .slick-arrow.slick-prev:after {
    left: auto;
    right: 30px;
  }
  #middle .contact-new {
    padding: 80px 0;
  }
  #middle .contact-new .wrapper {
    margin: 0 30px;
  }
  #middle .contact-new .box-form {
    width: 100%;
  }
  #middle .our-com {
    padding: 30px 0 0 0;
  }
  #middle .our-com .wrapper {
    margin: 0 30px;
  }
  #middle .our-com h6 {
    font-size: 18px;
  }
  #middle .our-com .right {
    padding-bottom: 20px;
  }
  #middle .our-com .right a {
    width: 50%;
    margin: 0 0 15px;
  }
  .lifein {
    padding-bottom: 35px;
  }
  .lifein > div {
    margin: 0;
  }
  .lifein .li-banner {
    padding: 100px 0 40px;
    height: 400px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    position: relative;
    background: none;
  }
  .lifein .li-banner:after {
    content: '';
    background: url("../images/material/bg-li-1-mobile.png") no-repeat right bottom;
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: block;
    z-index: 2;
    background-size: cover;
  }
  .lifein .li-banner .wrapper {
    width: auto;
    margin: 0 20px;
  }
  .lifein .li-banner .wrapper .left {
    width: 44%;
    display: none;
  }
  .lifein .li-banner .wrapper .caption {
    position: relative;
    text-align: center;
    width: auto;
    z-index: 3;
  }
  .lifein .li-banner .wrapper .caption h2 {
    font-size: 28px;
    width: 240px;
    display: block;
    margin: 0 auto 20px;
    position: relative;
    line-height: 32px;
  }
  .lifein .li-banner .wrapper .caption h2 span {
    transform: scale(1);
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    margin: auto !important;
  }
  .lifein .li-banner .wrapper .caption h2 span.line-1 {
    background: url(../images/material/bg-title-h-mobile.png) no-repeat center center;
    width: 270px;
    height: 76px;
    left: -20px;
    top: -10px;
  }
  .lifein .li-banner .wrapper .caption h2 span.line-2 {
    background: url(../images/material/bg-title-v-mobile.png) no-repeat center center;
    width: 234px;
    height: 87px;
    left: 0;
    bottom: auto;
    top: -17px;
  }
  .lifein .li-banner .wrapper .caption h2 span.line-3 {
    background: url(../images/material/bg-title-dot-mobile.png) no-repeat center center;
    width: 238px;
    height: 72px;
    left: -2px;
    bottom: -4px;
  }
  .lifein .li-banner .wrapper .caption p {
    font-size: 14px;
    line-height: 20px;
    max-width: 600px;
    display: block;
    margin: 0 auto 15px;
  }
  .lifein .li-banner .bg-line {
    width: 190px;
  }
  .lifein .workhard {
    margin-bottom: 50px;
  }
  .lifein .workhard .wrapper {
    margin: 0 20px;
  }
  .lifein .workhard .left {
    width: auto;
    margin-bottom: 40px;
  }
  .lifein .workhard .left h4 {
    font-size: 22px;
    margin-bottom: 10px;
  }
  .lifein .workhard .left p {
    font-size: 16px;
    line-height: 20px;
  }
  .lifein .workhard .right {
    display: block;
    width: 70%;
    min-width: 280px;
    margin: 0 auto;
  }
  .lifein .workhard .right .box {
    width: auto;
    margin: 0 0 25px;
    float: none;
    padding-left: 70px;
  }
  .lifein .workhard .right .box h6 {
    font-size: 16px;
    margin-bottom: 0;
  }
  .lifein .workhard .right .box img {
    width: 50px;
    top: 8px;
  }
  .lifein .workhard .right .box p {
    font-size: 14px;
    line-height: 18px;
  }
  .lifein .workhard .illus {
    display: none;
  }
  .lifein .li-testi {
    padding: 70px 0 85px;
    background: url("../images/material/bg-li-2-mobile.jpg") no-repeat bottom center;
    background-size: 100%;
    margin-bottom: 40px;
    position: relative;
  }
  .lifein .li-testi .wrapper {
    width: auto;
    margin: 0 20px;
    display: -webkit-box;
    display: -moz-box;
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
    display: -ms-flexbox;
    display: -moz-flex;
    display: -webkit-flex;
    display: flex;
  }
  .lifein .li-testi .left {
    float: none;
    order: 2;
    -webkit-order: 2;
    -moz-order: 2;
    display: block;
    position: relative;
    width: 100%;
    height: auto;
  }
  .lifein .li-testi .left .slider .slick-slide {
    white-space: normal;
  }
  .lifein .li-testi .right {
    float: none;
    order: 1;
    -webkit-order: 1;
    -moz-order: 1;
    display: block;
    width: 86%;
    margin: 0 auto 35px;
    max-width: 370px;
  }
  .lifein .li-testi .right .slick-arrow {
    z-index: 2;
  }
  .lifein .li-testi .right .slick-arrow.slick-prev {
    left: 0;
    right: auto;
  }
  .lifein .li-testi .right .slick-arrow.slick-next {
    left: 46px;
  }
  .lifein .li-testi .bg-line {
    width: auto;
    bottom: -110px;
    right: -50px;
    height: 150px;
  }
  .lifein .li-testi:before {
    height: 30px;
    position: absolute;
    left: 0;
    right: 0;
    content: '';
    top: -20px;
    background: #fff;
    transform: rotate(2deg);
    -webkit-transform: rotate(2deg);
    -moz-transform: rotate(2deg);
    -ms-transform: rotate(2deg);
    -o-transform: rotate(2deg);
  }
  .lifein .li-events {
    width: auto;
    margin: 0 20px;
  }
  .lifein .li-events .box {
    width: 48%;
    margin-right: 4%;
    margin-bottom: 20px;
    position: relative;
  }
  .lifein .li-events .box:nth-child(3n) {
    margin-right: 4%;
  }
  .lifein .li-events .box:nth-child(2n) {
    margin-right: 0;
  }
  .lifein .li-events .box .text {
    height: auto;
    margin: 0;
    width: auto;
    padding: 10px 15px;
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
  }
  .lifein .li-events .load-more {
    margin-top: 25px;
  }
}

@media (min-width: 0px) and (max-width: 425px) {
  .g-recaptcha {
    transform: scale(0.9);
    -webkit-transform: scale(0.9);
    -moz-transform: scale(0.9);
    -ms-transform: scale(0.9);
    -o-transform: scale(0.9);
  }
  .wrap-popup .box-popup .slick-arrow {
    transform: scale(0.4);
    -webkit-transform: scale(0.4);
    -moz-transform: scale(0.4);
    -ms-transform: scale(0.4);
    -o-transform: scale(0.4);
  }
  #middle .contact-new {
    padding: 60px 0;
  }
  #middle .contact-new .wrapper {
    width: auto;
    margin: 0;
    padding-bottom: 280px;
  }
  #middle .contact-new .box-form .row {
    margin: 0 20px;
  }
  #middle .our-com .right a {
    width: 100%;
  }
  #middle .contact-new .box-form .box-capthca {
    padding: 20px 0 20px 5px;
  }
  .lifein .li-events {
    width: auto;
    margin: 0 20px;
  }
  .lifein .li-events .box {
    width: 100%;
    margin-right: 0;
    height: 180px;
    overflow: hidden;
    padding-bottom: 20px;
  }
  .lifein .li-events .box:nth-child(3n) {
    margin-right: 0;
  }
  .lifein .li-events .box:nth-child(2n) {
    margin-right: 0;
  }
  .lifein .li-events .box .text {
    padding: 6px 15px;
  }
  .lifein .li-events .box img {
    position: relative;
    width: 100%;
    object-fit: cover;
    height: 100%;
  }
  footer {
    height: 140px;
  }
  footer .footer_content {
    height: 140px;
  } 
  footer .footer_content p {
    margin-top: 24px;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtbmV3LmNzcyIsInNvdXJjZXMiOlsic3R5bGUtbmV3LnNjc3MiLCJzYXNzLWxpYi5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHRcclxuICAgIENvbXBhbnkgICAgOiBQVCBXZWIgQXJjaGl0ZWN0IFRlY2hub2xvZ3kgLSB3ZWJhcnEuY29tXHJcbiAgICBEb2N1bWVudCAgIDogU3R5bGVzaGVldFxyXG4gICAgQXV0aG9yICAgICA6IFJpemtpIE5pZGEgQ2hhZXJ1bHN5YWhcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbkBpbXBvcnQgXCJzYXNzLWxpYlwiO1xyXG4kZl9ib2xkOlwicHJveGltYV9ub3ZhX2FsdGJvbGRcIjtcclxuJGZfc2VtaTpcInByb3hpbWFfbm92YV9sdHNlbWlib2xkXCI7XHJcbmJ1dHRvbnsgb3V0bGluZTogbm9uZTs7fVxyXG4jbWlkZGxle1xyXG4gICAgLm91ci1jbGllbnRuZXd7XHJcbiAgICAgICAgei1pbmRleDo0O2JhY2tncm91bmQ6I2VlZTtcclxuICAgICAgICBoNnttYXJnaW4tYm90dG9tOiAyMHB4O31cclxuICAgICAgICBhLmJsdWVCb3JkZXJCdXR0dG9uIHt3aWR0aDozMDBweDttYXJnaW46YXV0byBhdXRvIDYwcHg7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgICAgIC5ib3h7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgYXtkaXNwbGF5OiBibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47XHJcbiAgICAgICAgICAgICAgaW1ne21heC13aWR0aDogMTAwJTtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMTVzIGVhc2Utb3V0IGFsbCk7ZGlzcGxheTogYmxvY2s7fVxyXG4gICAgICAgICAgICAgID5pbWd7QGluY2x1ZGUgZmlsdGVyKGdyYXlzY2FsZSgxMDApKTt9XHJcbiAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgPmltZ3tAaW5jbHVkZSBmaWx0ZXIoZ3JheXNjYWxlKDApKTtAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4xKSl9IFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubG9nb3tcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDoxMDBweDtoZWlnaHQ6ODBweDtiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2xvZ28tYmcucG5nKTt6LWluZGV4OjE7XHJcbiAgICAgICAgICAgICAgICBpbWd7cG9zaXRpb246IGFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7bGVmdDowO21hcmdpbjphdXRvO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc2xpY2stYXJyb3d7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206MDtyaWdodDowO2xlZnQ6MDttYXJnaW46YXV0bzt3aWR0aDogNTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kOiNkN2Q3ZDcgO1xyXG4gICAgICAgICAgICBib3JkZXI6bm9uZTt0ZXh0LWluZGVudDogLTk5OTlweDt6LWluZGV4OjE7Ym90dG9tOi0yNXB4O1xyXG4gICAgICAgICAgICAmOmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246IGFic29sdXRlO3dpZHRoOjA7aGVpZ2h0OiAxMDAlO2xlZnQ6MDt0b3A6MDtiYWNrZ3JvdW5kOiAjMDA0NDc4O0BpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgZWFzZS1vdXQgYWxsKX1cclxuICAgICAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6OXB4O2hlaWdodDoyM3B4O2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYXJyLXNsaWRlci5wbmcpIG5vLXJlcGVhdDt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnNsaWNrLXByZXZ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAtNTAuNXB4O2JhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7bGVmdDphdXRvO3JpZ2h0OjA7fVxyXG4gICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IC01MC41cHg7YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdG9wO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXt3aWR0aDogMTAwJTt9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVye2JhY2tncm91bmQtcG9zaXRpb24teTogYm90dG9tO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICBzZWN0aW9uLmNhc2Vfc3R1ZGllc3tcclxuICAgICAgICBwYWRkaW5nLXRvcDo4MHB4O3otaW5kZXg6MztcclxuICAgICAgICAubmF2X3NsaWRle1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBib3hTaGFkb3coMHB4IDBweCAwcHggIWltcG9ydGFudCk7XHJcbiAgICAgICAgICAgIC5zcGFye2Rpc3BsYXk6IG5vbmU7fVxyXG4gICAgICAgICAgICAuZGlyZWN0aW9ueyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OjA7XHJcbiAgICAgICAgICAgICAgICBhe1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtib3R0b206LTI1cHg7cmlnaHQ6MDtsZWZ0OjA7bWFyZ2luOmF1dG87d2lkdGg6IDUwcHg7aGVpZ2h0OjUwcHg7YmFja2dyb3VuZDojZDdkN2Q3IDtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6bm9uZTt0ZXh0LWluZGVudDogLTk5OTlweDt6LWluZGV4OjE7cGFkZGluZzowO2ZvbnQtc2l6ZTowO1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6IDEwMCU7bGVmdDowO3RvcDowO2JhY2tncm91bmQ6ICMwMDQ0Nzg7QGluY2x1ZGUgdHJhbnNpdGlvbigwLjE1cyBlYXNlLW91dCBhbGwpfVxyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6OXB4O2hlaWdodDoyM3B4O2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYXJyLXNsaWRlci5wbmcpIG5vLXJlcGVhdDt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLnByZXZfe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtNTAuNXB4O2JhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXtsZWZ0OmF1dG87cmlnaHQ6MDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGxlZnQ7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLm5leHRfe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogLTUwLjVweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0O31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7d2lkdGg6IDEwMCU7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVye2JhY2tncm91bmQtcG9zaXRpb24teTogYm90dG9tO31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc3BhbntkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29udGFjdC1uZXd7XHJcbiAgICAgICAgcGFkZGluZzoxMTBweCAwO2JhY2tncm91bmQ6I2VlZjRmOCB1cmwoLi4vaW1hZ2VzL2NvbnRlbnQvYmdfY29udGFjdF8yLmpwZykgbm8tcmVwZWF0IGJvdHRvbSA7XHJcblxyXG4gICAgICAgIC5idG57XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtvdmVyZmxvdzogaGlkZGVuO2Rpc3BsYXk6IGJsb2NrO2JhY2tncm91bmQ6IzAwOGJkMDtmb250LXNpemU6IDIwcHg7Zm9udC13ZWlnaHQ6IDkwMDtjb2xvcjojRkZGO3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtib3JkZXI6bm9uZTtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgbGluZWFyIGNvbG9yKTtcclxuICAgICAgICAgICAgLmhvdmVye1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOjA7aGVpZ2h0OjEyMCU7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7bWFyZ2luOmF1dG87YmFja2dyb3VuZDogIzAwNTQ4ZTtAaW5jbHVkZSB0cmFuc2Zvcm0oc2tldygzMGRlZykpO3otaW5kZXg6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmJ0bjpob3Zlcntjb2xvcjojNjljZGZmO31cclxuICAgICAgICAud3JhcHBlcntcclxuICAgICAgICAgICAgbWF4LXdpZHRoOjEzMDBweDttYXJnaW46YXV0bztcclxuICAgICAgICAgICAgJjphZnRlcntjb250ZW50OlwiXCI7Y2xlYXI6IGJvdGg7ZGlzcGxheTogYmxvY2s7fSAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0e1xyXG4gICAgICAgICAgICB3aWR0aDozNDBweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luOjcwcHggMCAwIDA7XHJcbiAgICAgICAgICAgIGg0e2ZvbnQtc2l6ZToyNHB4O2NvbG9yOiMwMDA7bGV0dGVyLXNwYWNpbmc6IDIuNXB4O21hcmdpbjowIDAgMjBweCAwO31cclxuICAgICAgICAgICAgcHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OiAzMHB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjojMzMzO1xyXG4gICAgICAgICAgICAgICAgYntkaXNwbGF5OiBibG9jazttYXJnaW46MTBweCAwIDAgMDtsaW5lLWhlaWdodDogMjRweDt9XHJcbiAgICAgICAgICAgICAgICBhe2NvbG9yOiMzMzM7dGV4dC1kZWNvcmF0aW9uOiBub25lfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zb2NtZWR7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46NjBweCAwIDAgLThweDtcclxuICAgICAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7bWFyZ2luOiAwIDIwcHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7b3BhY2l0eTogMC43O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7Y29udGVudDpcIlwiO2NsZWFyOiBib3RoO2Rpc3BsYXk6IGJsb2NrO30gICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYm94LWZvcm17XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OiByaWdodDt3aWR0aDo2NDBweDtoZWlnaHQ6IGF1dG87YmFja2dyb3VuZDogI0ZGRjtcclxuICAgICAgICAgICAgPiBkaXYge3Bvc2l0aW9uOiByZWxhdGl2ZTtiYWNrZ3JvdW5kOiAjRkZGfVxyXG4gICAgICAgICAgICAucm93e1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO21hcmdpbjowIDMwcHg7aGVpZ2h0OiA4NHB4O2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO2N1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICYuZm9jdXN7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWx7Y29sb3I6ICNGRkY7fVxyXG4gICAgICAgICAgICAgICAgICAgIGlucHV0LHRleHRhcmVhLHNlbGVjdHtjb2xvcjojRkZGO31cclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAmLmNoZWNrYm94LXJvd3tcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87cGFkZGluZzogNzVweCAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgPiBsYWJlbHt0b3A6MzBweDtoZWlnaHQ6IGF1dG87fVxyXG4gICAgICAgICAgICAgICAgICAgIC5ob3Zlci1iZ3tkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5yb3cudGV4dGFyZWF7aGVpZ2h0OiAxNDRweDt9XHJcbiAgICAgICAgICAgIC5yb3cgPiBsYWJlbHtkaXNwbGF5OiBibG9jaztwb3NpdGlvbjogcmVsYXRpdmU7Y29sb3I6IzY2Njtmb250LXNpemU6MTZweDt0b3A6MzVweDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTZweDttYXJnaW46YXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oMC4ycyBhbGwgZWFzZS1vdXQgKTtoZWlnaHQ6NjBweDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbntjb2xvcjojZDQwZDE1O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbnB1dFt0eXBlPWVtYWlsXSxcclxuICAgICAgICAgICAgaW5wdXRbdHlwZT10ZXh0XSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgdGV4dGFyZWEsXHJcbiAgICAgICAgICAgIHNlbGVjdHtvcGFjaXR5OiAwO2Rpc3BsYXk6IGJsb2NrO2JhY2tncm91bmQ6IG5vbmU7Ym9yZGVyOiBub25lO3BhZGRpbmc6IDIwcHggMCAwIDA7Zm9udC1zaXplOiAyNHB4O2NvbG9yOiAjMzMzO2xpbmUtaGVpZ2h0OiA2NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAxMDAlO291dGxpbmU6IG5vbmU7Ym90dG9tOi0xMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZWxlY3R7aGVpZ2h0OiA3MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgb3B0aW9ue2ZvbnQtc2l6ZTogMTZweH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc2VsZWN0YXJyOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtkaXNwbGF5OiBibG9jazt3aWR0aDogMTZweDtoZWlnaHQ6IDExcHg7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9zZWxlY3RfYXJyLnBuZykgbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7bWFyZ2luOmF1dG87ei1pbmRleDogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0ZXh0YXJlYXtsaW5lLWhlaWdodDogMzBweDt0b3A6IDQwcHg7aGVpZ2h0OiA5NXB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtwYWRkaW5nLXRvcDogMDt9XHJcbiAgICAgICAgICAgIC5idG57cG9zaXRpb246IHJlbGF0aXZlO2Rpc3BsYXk6IGJsb2NrO2hlaWdodDogODVweDt3aWR0aDoxMDAlO2N1cnNvcjogcG9pbnRlcjtiYWNrZ3JvdW5kOiMwMTM2NWU7Zm9udC1zaXplOjE2cHg7bGV0dGVyLXNwYWNpbmc6MnB4O1xyXG4gICAgICAgICAgICAgICAgIHNwYW4uaG92ZXJ7YmFja2dyb3VuZDogIzAwMDt9XHJcbiAgICAgICAgICAgICAgICAgc3Bhbntjb2xvcjojRkZGO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuaG92ZXItYmd7cG9zaXRpb246IGFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3R0b206LTFweDtsZWZ0Oi0zOHB4O3BhZGRpbmc6MCAzOHB4IDFweDtiYWNrZ3JvdW5kOiAjMDA4YmNmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTowO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jaGVja2JveF93cmFwIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDM1cHggMTVweCAycHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjAgMCAwIDIwcHg7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDt0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtmb250LXNpemU6MTNweDtwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIGlucHV0e3Bvc2l0aW9uOiBhYnNvbHV0ZTtsZWZ0OjA7dG9wOjFweH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYy10YWJ7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgIC5ib3gtY2FwdGhjYXtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6MjBweCAwIDIwcHggMzBweDtcclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3gtZm9ybTpiZWZvcmV7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtkaXNwbGF5OiBibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOiBhYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cGFkZGluZy1ib3R0b206MTEwcHg7cGFkZGluZy1yaWdodDogNDEwcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctY29ubmVjdC1mb3JtLnBuZyluby1yZXBlYXQgcmlnaHQgdG9wO3otaW5kZXg6IDA7YmFja2dyb3VuZC1zaXplOiAgMTAwJSAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5vdXItY29te1xyXG4gICAgICAgIGJhY2tncm91bmQ6I0ZGRjt6LWluZGV4OjQ7XHJcbiAgICAgICAgLndyYXBwZXJ7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTMwMHB4O1xyXG4gICAgICAgICAgICAmOmFmdGVye2NsZWFyOmJvdGg7Y29udGVudDonJztkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGg2e3dpZHRoOjIwMHB4O3RleHQtYWxpZ246bGVmdDtmbG9hdDpsZWZ0O2ZvbnQtc2l6ZTogMjRweDtjb2xvcjojMDA0NTc4O2xpbmUtaGVpZ2h0OiAyMnB4O2xldHRlci1zcGFjaW5nOiA2cHh9XHJcbiAgICAgICAgLnJpZ2h0e1xyXG4gICAgICAgICAgICB3aWR0aDogOTgwcHg7XHJcbiAgICAgICAgICAgIGF7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDttYXJnaW46MTBweCAzJSAwIDA7d2lkdGg6MjIlO1xyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDogMH1cclxuICAgICAgICAgICAgICAgIGltZ3ttYXgtd2lkdGg6IDEwMCU7fVxyXG4gICAgICAgICAgICB9ICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2VjdGlvbi5jb250YWN0X3RvcHtcclxuICAgICAgICAud3JhcF9uYXZ0YWIgLnNwYXIsXHJcbiAgICAgICAgLndyYXBfbmF2dGFiIC5zcGFyXzN7ZGlzcGxheTogbm9uZX1cclxuICAgIH1cclxufVxyXG5cclxuLndyYXBfcG9wdXBfZm9ybSB7XHJcbiAgICAuYm94LWNhcHRoY2F7XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDMwcHggMDtcclxuICAgICAgICAuZy1yZWNhcHRjaGF7bWFyZ2luOiBhdXRvO3dpZHRoOjMwNHB4O31cclxuICAgIH1cclxufVxyXG4qe291dGxpbmU6IG5vbmU7fVxyXG5cclxuLmxpZmVpbntcclxuICAgIHBhZGRpbmc6OTRweCAwIDAgMDtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNGRkY7ei1pbmRleDoxO3BhZGRpbmctYm90dG9tOjEwMHB4O292ZXJmbG93OmhpZGRlbjtcclxuICAgIC5wYXJhbGxheC1zY3JvbGx7fVxyXG4gICAgLndyYXBwZXJ7XHJcbiAgICAgICAgd2lkdGg6MTE3MHB4O21hcmdpbjphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO1xyXG4gICAgICAgICY6YWZ0ZXJ7Y29udGVudDonJztjbGVhcjpib3RoO2Rpc3BsYXk6IGJsb2NrO30gICAgIFxyXG4gICAgfVxyXG4gICAgPiBkaXZ7bWFyZ2luOjAgNjVweDtwb3NpdGlvbjpyZWxhdGl2ZTt9XHJcbiAgICAubGktYmFubmVye1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctbGktMS5qcGcpIG5vLXJlcGVhdCBjZW50ZXI7cGFkZGluZzo3MHB4IDAgNDBweDtcclxuICAgICAgICAud3JhcHBlcnt3aWR0aDoxNDAwcHg7fVxyXG4gICAgICAgIC5sZWZ0e1xyXG4gICAgICAgICAgICB3aWR0aDo2MzBweDtAaW5jbHVkZSBib3hTaGFkb3coMHB4IDBweCAxMDBweCAtMzVweCk7XHJcbiAgICAgICAgICAgIGltZ3tkaXNwbGF5OiBibG9jazttYXgtd2lkdGg6MTAwJTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXB0aW9ue1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6NjAwcHg7aGVpZ2h0OiAzMDBweDtyaWdodDowO3RvcDowO2JvdHRvbTo3MHB4O21hcmdpbjphdXRvO1xyXG4gICAgICAgICAgICBoMntcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTo0OXB4O2NvbG9yOiNGRkY7bGluZS1oZWlnaHQ6IDYwcHg7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTttYXJnaW46MCAwIDM1cHggMDtmb250LWZhbWlseTokZl9ib2xkO1xyXG4gICAgICAgICAgICAgICAgc3Bhbntwb3NpdGlvbjogYWJzb2x1dGU7fVxyXG4gICAgICAgICAgICAgICAgc3Bhbi5saW5lLTF7d2lkdGg6IDUwNHB4O2hlaWdodDogMTQycHg7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy10aXRsZS1oLnBuZykgbm8tcmVwZWF0IGNlbnRlcjt0b3A6LTE4cHg7bGVmdDotNTNweDt9XHJcbiAgICAgICAgICAgICAgICBzcGFuLmxpbmUtMnt3aWR0aDogNDUxcHg7aGVpZ2h0OiAxNjVweDtiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2JnLXRpdGxlLXYucG5nKSBuby1yZXBlYXQgY2VudGVyO3RvcDotMzFweDtsZWZ0Oi01cHg7fVxyXG4gICAgICAgICAgICAgICAgc3Bhbi5saW5lLTN7d2lkdGg6IDQ1NnB4O2hlaWdodDogMTMzcHg7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy10aXRsZS1kb3QucG5nKSBuby1yZXBlYXQgY2VudGVyO2xlZnQ6LThweDt0b3A6LTZweH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHtmb250LXNpemU6IDI2cHg7Y29sb3I6I0ZGRjtsaW5lLWhlaWdodDogMzZweDtmb250LWZhbWlseTogXCJwcm94aW1hX25vdmFsaWdodFwiO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYmctbGluZXtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOjQwOXB4O2hlaWdodDogMzUzcHg7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy1saS0xLWJvdHRvbS5wbmcpIG5vLXJlcGVhdDtib3R0b206LTE4MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b3JraGFyZHtcclxuICAgICAgICBwYWRkaW5nOjExMHB4IDAgMCAwO2NvbG9yOiMzMzM7O1xyXG4gICAgICAgIC5sZWZ0e1xyXG4gICAgICAgICAgICB3aWR0aDozNTBweDtcclxuICAgICAgICAgICAgaDR7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6IDQxcHg7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTttYXJnaW46MCAwIDIwcHg7Zm9udC1mYW1pbHk6JGZfYm9sZDt9XHJcbiAgICAgICAgICAgIHB7Zm9udC1zaXplOiAyMHB4O2xpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0eyBcclxuICAgICAgICAgICAgd2lkdGg6NzYwcHg7XHJcbiAgICAgICAgICAgIC5ib3h7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDozNTVweDtmbG9hdDpsZWZ0O21hcmdpbjowIDUwcHggNDBweCAwO3BhZGRpbmc6MCAwIDAgOTBweDtAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7cG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICA+IGltZ3twb3NpdGlvbjogYWJzb2x1dGU7bGVmdDowO3RvcDoxNXB4O21hcmdpbjphdXRvO31cclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKXttYXJnaW4tcmlnaHQ6MH1cclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKzEpe2NsZWFyOiBib3RoO31cclxuICAgICAgICAgICAgICAgIGg2e2ZvbnQtZmFtaWx5OiAkZl9ib2xkO21hcmdpbjowIDAgMTBweDtsaW5lLWhlaWdodDogMjRweDtmb250LXNpemU6MjBweDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO31cclxuICAgICAgICAgICAgICAgIHB7Zm9udC1zaXplOiAxN3B4O2xpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlcntjb250ZW50OicnO2NsZWFyOmJvdGg7ZGlzcGxheTogYmxvY2s7fSAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pbGx1c3tcclxuICAgICAgICAgICAgbWFyZ2luOiA1MHB4IDAgMCAwO3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLmxpLXRlc3Rpe1xyXG4gICAgICAgIHBhZGRpbmc6MCAwIDI1MHB4O2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctbGktMi5qcGcpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xyXG5cclxuICAgICAgICAuYmctbGluZXtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOjQ4NXB4O2hlaWdodDogMzgycHg7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy1saS0yLWJvdHRvbS5wbmcpIG5vLXJlcGVhdDtib3R0b206LTE5MnB4O3JpZ2h0Oi03MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmxlZnR7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1NzBweDtoZWlnaHQ6MzAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOiAwO2xlZnQ6MDttYXJnaW46YXV0bztcclxuICAgICAgICAgICAgLnNsaWNrLWFycm93e2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudDt9ICBcclxuICAgICAgICAgICAgcHtmb250LXNpemU6IDI2cHg7Y29sb3I6I0ZGRjtsaW5lLWhlaWdodDozNHB4O3BhZGRpbmc6MCAwIDAgMzBweDtcclxuICAgICAgICAgICAgICAmOmJlZm9yZSwmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgICBjb250ZW50OlwiXCI7ZGlzcGxheTogaW5saW5lLWJsb2NrO3dpZHRoOjE5cHg7aGVpZ2h0OjE1cHg7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9zdHJpbmctaWNvLTEucG5nKSBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowIDBweCAxMHB4IC0yN3B4O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL3N0cmluZy1pY28tMi5wbmcpIG5vLXJlcGVhdDttYXJnaW46MCAwcHggLThweCAzcHg7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoNntmb250LWZhbWlseTogJGZfYm9sZDtmb250LXNpemU6MjBweDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO2NvbG9yOiNGRkY7cGFkZGluZzowIDAgMCAzMHB4O1xyXG4gICAgICAgICAgICAgICAmOmJlZm9yZXtjb250ZW50OlwiXCI7ZGlzcGxheTogYmxvY2s7d2lkdGg6IDgwcHg7aGVpZ2h0OjZweDtiYWNrZ3JvdW5kOiAjRkZGO21hcmdpbjozNXB4IDAgMjBweCAwO31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHR7XHJcbiAgICAgICAgICAgIHdpZHRoOjQ3NXB4O0BpbmNsdWRlIGJveFNoYWRvdygwcHggMzBweCAxMjBweCAtNDVweCk7XHJcbiAgICAgICAgICAgIGltZ3tkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgICAgIC5zbGljay1hcnJvd3tcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDo3MHB4O2hlaWdodDo3MHB4O2JvdHRvbTowO3BhZGRpbmc6MDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOiAjRkZGO2Rpc3BsYXk6IGJsb2NrO0BpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgbGluZWFyIGFsbCk7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDotOTk5OXB4O1xyXG4gICAgICAgICAgICAgICAgJjphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTogYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7bWFyZ2luOmF1dG87d2lkdGg6MThweDtoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYXJyb3ctbGkucG5nKSBuby1yZXBlYXQgO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5zbGljay1wcmV2e1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6LTcwLjVweDs7XHJcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnNsaWNrLW5leHR7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDowLjVweDs7XHJcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiMyNDZjOGM7XHJcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGJvdHRvbTt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgLmxpLWV2ZW50c3tcclxuICAgICAgICA+ZGl2OmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OiBibG9jaztjbGVhcjpib3RofVxyXG4gICAgICAgIC5ib3h7XHJcbiAgICAgICAgICAgIHdpZHRoOjM3MHB4O3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowIDMwcHggNTBweCAwO2Zsb2F0OmxlZnQ7Y3Vyc29yOnBvaW50ZXI7XHJcbiAgICAgICAgICAgIGltZ3tkaXNwbGF5OiBibG9jazt9XHJcbiAgICAgICAgICAgIC50ZXh0e1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO3BhZGRpbmc6NDVweCA0MHB4O2JhY2tncm91bmQ6ICM2NjY7d2lkdGg6MzIwcHg7aGVpZ2h0OiAxMzBweDtsZWZ0OjA7QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6I0ZGRjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLXRvcDotMTUwcHg7XHJcbiAgICAgICAgICAgICAgICBzbWFsbHtkaXNwbGF5OiBibG9jaztmb250LXNpemU6IDE2cHg7bWFyZ2luOiAwIDAgNXB4IDA7fVxyXG4gICAgICAgICAgICAgICAgaDZ7Zm9udC1zaXplOjIwcHg7Zm9udC1mYW1pbHk6ICRmX3NlbWk7bWFyZ2luOjA7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDFuKSAudGV4dHtiYWNrZ3JvdW5kOiAjZDMxNTM2O31cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4pIC50ZXh0e2JhY2tncm91bmQ6ICMzMzRiYTg7fVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzbikgLnRleHR7YmFja2dyb3VuZDogIzI0OGY1Yjt9XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDRuKSAudGV4dHtiYWNrZ3JvdW5kOiAjZTE5MDI0O31cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNW4pIC50ZXh0e2JhY2tncm91bmQ6ICMwZThlOWI7fVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg2bikgLnRleHR7YmFja2dyb3VuZDogIzIyMmUzZTt9IFxyXG5cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoM24pIHttYXJnaW4tcmlnaHQ6IDA7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAubG9hZC1tb3Jle1xyXG4gICAgICAgICAgICBjb2xvcjojYjFiMWIxO2Rpc3BsYXk6IGJsb2NrO3Bvc2l0aW9uOiByZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OiRmX3NlbWk7QGluY2x1ZGUgdHJhbnNpdGlvbigwLjE1cyBsaW5lYXIgYWxsKTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDoxMjBweDtvdXRsaW5lOm5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgc3BhbntiYWNrZ3JvdW5kOiAjRkZGO3BhZGRpbmc6MCAyMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOiByZWxhdGl2ZTt6LWluZGV4OiAxO31cclxuICAgICAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7aGVpZ2h0OiAxcHg7YmFja2dyb3VuZDogI2UxZTFlMTttYXJnaW46YXV0bztAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMTVzIGxpbmVhciBhbGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjojMDEzNjVlO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kOiMwMTM2NWU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmxpLXRhZ2xpbmV7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy1saS0zLmpwZykgbm8tcmVwZWF0O2hlaWdodDo1MDBweDtwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgICAgICAuY2FwdGlvbntcclxuICAgICAgICAgICAgd2lkdGg6MTE0MHB4O2hlaWdodDoxMjBweDtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7bWFyZ2luOmF1dG87dGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBwe2ZvbnQtc2l6ZTogMzBweDtjb2xvcjojRkZGO21hcmdpbjowIDAgMzBweCAwO31cclxuICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgIHdpZHRoOjIyMHB4O2Rpc3BsYXk6IGJsb2NrO21hcmdpbjphdXRvO2hlaWdodDogNDRweDtib3JkZXI6M3B4IHNvbGlkICNGRkY7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6IDQ0cHg7Y29sb3I6I0ZGRjtcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZl9zZW1pO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7dGV4dC1kZWNvcmF0aW9uOiBub25lO0BpbmNsdWRlIHRyYW5zaXRpb24oMC4xNXMgbGluZWFyIGFsbCk7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVye2NvbG9yOiMwMTM2NWU7YmFja2dyb3VuZDogI0ZGRjt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLm5vLXNjcm9sbHtvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7fVxyXG4uZGF0YS1wb3B1cHtkaXNwbGF5OiBub25lfVxyXG4ud3JhcC1wb3B1cHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDt3aWR0aDoxMDAlO2hlaWdodDogMTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC44KTt6LWluZGV4OiA2O3RvcDowO2xlZnQ6MDtvdmVyZmxvdzogYXV0bztkaXNwbGF5Om5vbmU7XHJcbiAgICAuYm94LXBvcHVwe1xyXG4gICAgICAgIHdpZHRoOiA5MDBweDtiYWNrZ3JvdW5kOiNGRkY7cGFkZGluZzozMHB4O0BpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTttYXJnaW46NSUgYXV0bztwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgICAgICAuY2xvc2V7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQ6I2U5MzI1MTt0ZXh0LWluZGVudDogLTk5OTk5cHg7XHJcbiAgICAgICAgICAgIHRvcDotMTVweDtyaWdodDotMTVweDtAaW5jbHVkZSBib3JkZXJSYWRpdXMoMTAwJSk7XHJcbiAgICAgICAgICAgICY6aG92ZXI6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OlwiXCI7QGV4dGVuZCAuYWJzb2x1dGUtY2VudGVyO2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvcGx1c19pY28ucG5nKSBuby1yZXBlYXQgY2VudGVyO0BpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTtAaW5jbHVkZSB0cmFuc2l0aW9uKDAuMnMgbGluZWFyIGFsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmltZ3tcclxuICAgICAgICAgICAgbWFyZ2luOjAgMCAzMHB4IDA7XHJcbiAgICAgICAgICAgIGltZ3ttYXgtd2lkdGg6IDEwMCV9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50ZXh0e1xyXG4gICAgICAgICAgICBoNXtmb250LWZhbWlseTogXCJwcm94aW1hX25vdmFfYWx0Ym9sZFwiO2ZvbnQtc2l6ZToyOHB4O21hcmdpbjowO21hcmdpbi1ib3R0b206IDVweDt9XHJcbiAgICAgICAgICAgIHNtYWxse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojNjY2O2Rpc3BsYXk6IGJsb2NrO21hcmdpbjowIDAgMjBweCAwO31cclxuICAgICAgICAgICAgcHtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDogMjJweDtjb2xvcjojMzMzO31cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zbGljay1hcnJvd3tcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7Ym90dG9tOjA7dG9wOjA7bWFyZ2luOmF1dG87cGFkZGluZzowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6ICNGRkY7ZGlzcGxheTogYmxvY2s7QGluY2x1ZGUgdHJhbnNpdGlvbigwLjE1cyBsaW5lYXIgYWxsKTtcclxuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6LTk5OTlweDt6LWluZGV4OjI7QGluY2x1ZGUgYm9yZGVyUmFkaXVzKDEwMCUpO0BpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjcpKTtAaW5jbHVkZSBib3hTaGFkb3coMHB4IDBweCAxMHB4IC00cHggIzAwMCk7XHJcbiAgICAgICAgICAgICY6YWZ0ZXJ7Y29udGVudDpcIlwiO2Rpc3BsYXk6IGJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO21hcmdpbjphdXRvO3dpZHRoOjE4cHg7aGVpZ2h0OiAzMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYXJyb3ctbGkucG5nKSBuby1yZXBlYXQgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2xpY2stcHJldntcclxuICAgICAgICAgICAgICAgIGxlZnQ6MDtyaWdodDphdXRvO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6MDtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDojMjQ2YzhjO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGJvdHRvbTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuZm9vdGVyIHtcclxuICAgIGhlaWdodDogMTA1cHg7XHJcbiAgICAuZm9vdGVyX2NvbnRlbnR7XHJcbiAgICAgICAgaGVpZ2h0OiAxMjdweDtcclxuICAgIH1cclxufVxyXG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTYwMHB4KSB7XHJcbiAgICAubGlmZWlue1xyXG4gICAgICAgIGltZ3ttYXgtd2lkdGg6IDEwMCU7fVxyXG4gICAgICAgIC53cmFwcGVye3dpZHRoOjEwMDBweH1cclxuICAgICAgICA+IGRpdnttYXJnaW46IDAgNDBweH1cclxuICAgICAgICAubGktYmFubmVye1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcbiAgICAgICAgICAgIC5iZy1saW5le3dpZHRoOjMwMHB4O2JhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO2JvdHRvbTogLTIyM3B4fVxyXG4gICAgICAgICAgICAud3JhcHBlcntcclxuICAgICAgICAgICAgICAgIHdpZHRoOjExMDBweDtcclxuICAgICAgICAgICAgICAgIC5sZWZ0e3dpZHRoOjQzJTt9XHJcbiAgICAgICAgICAgICAgICAuY2FwdGlvbntcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICAgICAgICAgICAgICAgIGgye2ZvbnQtc2l6ZTogMzNweDtsaW5lLWhlaWdodDo0NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgIHNwYW57QGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNykpO21hcmdpbjotMTJweCAwIDAgLTcwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIH0gICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHB7Zm9udC1zaXplOiAyNHB4O2xpbmUtaGVpZ2h0OiAzMnB4fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b3JraGFyZHtcclxuICAgICAgICAgICAgLmxlZnR7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDoyNjBweDtcclxuICAgICAgICAgICAgICAgIGg0e2ZvbnQtc2l6ZTozMHB4O2xpbmUtaGVpZ2h0OiAzM3B4O21hcmdpbi1ib3R0b206IDE1cHh9ICBcclxuICAgICAgICAgICAgICAgIHB7Zm9udC1zaXplOiAxOHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucmlnaHR7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDo2NjBweDtcclxuICAgICAgICAgICAgICAgIC5ib3h7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6NDglO21hcmdpbjowIDQlIDIwcHggMDsgcGFkZGluZy1sZWZ0OiA2NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGltZ3t3aWR0aDogNDVweDt0b3A6MTBweH1cclxuICAgICAgICAgICAgICAgICAgICBoNntmb250LXNpemU6MThweDtsaW5lLWhlaWdodDogMjJweDttYXJnaW4tYm90dG9tOiAxMHB4fVxyXG4gICAgICAgICAgICAgICAgICAgIHB7Zm9udC1zaXplOiAxNXB4O2xpbmUtaGVpZ2h0OiAyMHB4fVxyXG4gICAgICAgICAgICAgICAgfSAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5pbGx1c3ttYXJnaW46MCAwIDcwcHggMH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpLXRlc3Rpe1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTo4JTtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7bWFyZ2luLWJvdHRvbTo3MHB4O1xyXG4gICAgICAgICAgICAuYmctbGluZXtib3R0b206IC0zMjVweDt3aWR0aDozNTBweDtiYWNrZ3JvdW5kLXNpemU6IDEwMCV9XHJcbiAgICAgICAgICAgIC5sZWZ0e1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6NTAlO2hlaWdodDoyMzBweDtcclxuICAgICAgICAgICAgICAgIHB7Zm9udC1zaXplOjIycHg7bGluZS1oZWlnaHQ6IDMycHg7fVxyXG4gICAgICAgICAgICAgICAgaDZ7bWFyZ2luOiAwO2ZvbnQtc2l6ZToyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7aGVpZ2h0OiA0cHh9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnJpZ2h0e1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6NDAlO1xyXG4gICAgICAgICAgICAgICAgLnNsaWNrLWFycm93e1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7IFxyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7QGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOCkpfVxyXG4gICAgICAgICAgICAgICAgICAgICYuc2xpY2stcHJldntsZWZ0OiAtNTAuNXB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpLWV2ZW50c3tcclxuICAgICAgICAgICAgLmJveHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMiU7bWFyZ2luLXJpZ2h0OiAyJTtcclxuICAgICAgICAgICAgICAgIC50ZXh0e1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjg1JTtwYWRkaW5nOjMwcHg7aGVpZ2h0OiAxMDVweDtcclxuICAgICAgICAgICAgICAgICAgICBzbWFsbHtmb250LXNpemU6MTRweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgaDZ7Zm9udC1zaXplOjE4cHh9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTQ0MHB4KSB7XHJcbiAgICAjbWlkZGxle1xyXG5cclxuICAgICAgICAuY29udGFjdC1uZXcgLndyYXBwZXIge3dpZHRoOmF1dG87bWFyZ2luOjAgODBweDt9XHJcbiAgICAgICAgLm91ci1jb217IFxyXG4gICAgICAgICAgICBwYWRkaW5nOjQ1cHggMCAwIDA7XHJcbiAgICAgICAgICAgIC53cmFwcGVye1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6YXV0bzttYXJnaW46MCA4MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGg2e2Zsb2F0Om5vbmU7dGV4dC1hbGlnbjogY2VudGVyO3dpZHRoOjEwMCU7bWFyZ2luOjAgMCAyMHB4IDt9XHJcbiAgICAgICAgICAgIC5yaWdodHtcclxuICAgICAgICAgICAgICAgIGZsb2F0Om5vbmU7ZGlzcGxheTogYmxvY2s7d2lkdGg6YXV0bztwYWRkaW5nOjAgMCA0MHB4IDA7XHJcbiAgICAgICAgICAgICAgICBhe2Zsb2F0OmxlZnQ7ZGlzcGxheTogYmxvY2s7d2lkdGg6MjUlO21hcmdpbjowO3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgaW1ne21heC13aWR0aDogODAlO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDpcIlwiO2Rpc3BsYXk6IGJsb2NrO2NsZWFyOiBib3RoO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbkBtZWRpYSAobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjgwcHgpIHtcclxuICAgICNtaWRkbGV7XHJcbiAgICAgICAgLm91ci1jbGllbnRuZXcgLmJveHtcclxuICAgICAgICAgICAgLmxvZ297QGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNikpO3RvcDotMTZweDtsZWZ0Oi0yMHB4fVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGFjdC1uZXd7XHJcbiAgICAgICAgICAgIC53cmFwcGVyIHttYXJnaW46MCA0MHB4O30gICBcclxuICAgICAgICAgICAgLmxlZnR7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDoyODBweDtcclxuICAgICAgICAgICAgICAgIHB7Zm9udC1zaXplOiAxM3B4O2xpbmUtaGVpZ2h0OiAyNnB4O1xyXG4gICAgICAgICAgICAgICAgICBie2xpbmUtaGVpZ2h0OiAyMnB4fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5ib3gtZm9ybXtcclxuICAgICAgICAgICAgICAgIHdpZHRoOjUwMHB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7bGVmdDowO3BhZGRpbmctcmlnaHQ6IDMxOHB4fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5vdXItY29teyBcclxuICAgICAgICAgICAgcGFkZGluZzo0NXB4IDAgMCAwO1xyXG4gICAgICAgICAgICAud3JhcHBlcntcclxuICAgICAgICAgICAgICAgIG1hcmdpbjowIDQwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaDZ7fVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud3JhcC1wb3B1cHtcclxuICAgICAgICAuYm94LXBvcHVwe1xyXG4gICAgICAgICAgICB3aWR0aDo5MCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmxpZmVpbiB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDcwcHg7XHJcbiAgICAgICAgLmxpLWJhbm5lciB7XHJcbiAgICAgICAgICAgIC53cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBtYXJnaW46IDAgNjBweDtcclxuICAgICAgICAgICAgICAgIC5jYXB0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsgbGluZS1oZWlnaHQ6IDM4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge0BpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjYpKTsgbWFyZ2luOiAtMjBweCAwIDAgLTEwMHB4fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBwIHtmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYmctbGluZSB7d2lkdGg6IDIyMHB4OyBib3R0b206IC0yNDVweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b3JraGFyZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gICAgICAgICAgICAud3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDgwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmxlZnQge2Zsb2F0OiBub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjowIGF1dG8gNTBweDsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiBhdXRvOyB3aWR0aDogNTAwcHg7fVxyXG4gICAgICAgICAgICAucmlnaHQge1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAuYm94IHtcclxuICAgICAgICAgICAgICAgICAgICBpbWcge3RvcDogMTVweDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpLXRlc3RpIHtcclxuICAgICAgICAgICAgLndyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1hcmdpbjogMCA4MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgICAgICAgIHAge2ZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDI0cHg7fVxyXG4gICAgICAgICAgICAgICAgaDYge2ZvbnQtc2l6ZTogMTZweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnJpZ2h0IHt3aWR0aDogNDMlOyBAaW5jbHVkZSBib3hTaGFkb3coMCAwIDIwcHggLTVweCByZ2JhKDAsMCwwLDAuNCkpO31cclxuICAgICAgICAgICAgLmJnLWxpbmUge3dpZHRoOiAyODBweDsgYm90dG9tOiAtMzQwcHg7IHJpZ2h0OiAtNTBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saS1ldmVudHMge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDQwcHg7XHJcbiAgICAgICAgICAgIC5sb2FkLW1vcmUge21hcmdpbi10b3A6IDgwcHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAubGktdGFnbGluZSB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMzUwcHg7IGJhY2tncm91bmQtc2l6ZTogY292ZXI7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1hcmdpbjogYXV0byA4MHB4O1xyXG4gICAgICAgICAgICAgICAgcCB7Zm9udC1zaXplOiAyMHB4O31cclxuICAgICAgICAgICAgICAgIGEge2JvcmRlci13aWR0aDogMnB4OyBoZWlnaHQ6IDQxcHg7IGxpbmUtaGVpZ2h0OiA0MXB4OyBmb250LXNpemU6IDE2cHg7IHdpZHRoOiAyMDBweDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuQG1lZGlhIChtaW4td2lkdGg6IDBweCkgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XHJcbiAgICAjbWlkZGxle1xyXG5cclxuICAgICAgICAuY29udGFjdC1uZXd7XHJcbiAgICAgICAgICAgIC53cmFwcGVyIHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWJvdHRvbTogMzAwcHg7fSAgIFxyXG4gICAgICAgICAgICAubGVmdHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7bWFyZ2luOmF1dG87dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDoyO1xyXG4gICAgICAgICAgICAgICAgcHtmb250LXNpemU6IDEzcHg7bGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgICAgICAgICAgICAgICAgIGJ7bGluZS1oZWlnaHQ6IDIycHh9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuc29jbWVke3dpZHRoOiAyMjFweDttYXJnaW46YXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYTpsYXN0LWNoaWxke21hcmdpbjowO31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYm94LWZvcm17XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTttYXJnaW46YXV0bztcclxuICAgICAgICAgICAgICAgICY6YmVmb3Jle2Rpc3BsYXk6IG5vbmU7fSAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5yaWdodHttYXJnaW46YXV0bztmbG9hdDpub25lO2Rpc3BsYXk6IGJsb2NrO3otaW5kZXg6IDE7cG9zaXRpb246IHJlbGF0aXZlO31cclxuICAgICAgICB9XHJcbiAgICAgICAgLm91ci1jb217IFxyXG4gICAgICAgICAgICBwYWRkaW5nOjQ1cHggMCAwIDA7XHJcbiAgICAgICAgICAgIC53cmFwcGVye1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOjAgNDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoNnt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmxpZmVpbiB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICAgICAgICA+IGRpdiB7bWFyZ2luOiAwO31cclxuICAgICAgICAubGktYmFubmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZzogNDBweCAwO1xyXG4gICAgICAgICAgICAud3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDQwcHg7XHJcbiAgICAgICAgICAgICAgICAubGVmdCB7d2lkdGg6IDQ0JTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNhcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMzVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYmctbGluZSB7d2lkdGg6IDIyMHB4OyBib3R0b206IC0xMjBweDsgaGVpZ2h0OiAyMDBweDsgbGVmdDogLTE1cHg7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAud29ya2hhcmQge1xyXG4gICAgICAgICAgICAud3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDQwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpLXRlc3RpIHtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwJTtcclxuICAgICAgICAgICAgLndyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1hcmdpbjogMCA0MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA1MSU7XHJcbiAgICAgICAgICAgICAgICBwIHtmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyNHB4O31cclxuICAgICAgICAgICAgICAgIGg2IHtmb250LXNpemU6IDE0cHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5yaWdodCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNDElO1xyXG4gICAgICAgICAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDVweDsgaGVpZ2h0OiA0NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge3dpZHRoOiAxMnB4O31cclxuICAgICAgICAgICAgICAgICAgICAmLnNsaWNrLXByZXYge2xlZnQ6IC00NS41cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5iZy1saW5lIHt3aWR0aDogMjAwcHg7IGJvdHRvbTogLTExMHB4OyByaWdodDogLTUwcHg7IGhlaWdodDogMTUwcHh9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saS1ldmVudHMge1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDQwcHg7XHJcbiAgICAgICAgICAgIC5ib3gge1xyXG4gICAgICAgICAgICAgICAgLnRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MSU7IHBhZGRpbmc6IDMycHggMjBweDsgaGVpZ2h0OiAxMDBweDsgbWFyZ2luLXRvcDogLTEyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHNtYWxsIHtmb250LXNpemU6IDEycHg7IG1hcmdpbjogMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgaDYge2ZvbnQtc2l6ZTogMTZweDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxpLXRhZ2xpbmUge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDI4MHB4OyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIC5jYXB0aW9uIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBtYXJnaW46IGF1dG8gNDBweDtcclxuICAgICAgICAgICAgICAgIHAge2ZvbnQtc2l6ZTogMTZweDsgbWFyZ2luLWJvdHRvbTogMjBweDt9XHJcbiAgICAgICAgICAgICAgICBhIHtib3JkZXItd2lkdGg6IDJweDsgaGVpZ2h0OiAzNnB4OyBsaW5lLWhlaWdodDogMzZweDsgZm9udC1zaXplOiAxM3B4OyB3aWR0aDogMTYwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbkBtZWRpYSAobWluLXdpZHRoOiAwcHgpIGFuZCAobWF4LXdpZHRoOiA3MTlweCkge1xyXG4gICAgLndyYXAtcG9wdXB7XHJcbiAgICAgICAgLmJveC1wb3B1cHtcclxuICAgICAgICAgICAgd2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgICAgICAgICAuY2xvc2V7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDt0b3A6MDtyaWdodDowO0BpbmNsdWRlIGJvcmRlclJhZGl1cygwKTsgICAgei1pbmRleDogMjt9XHJcbiAgICAgICAgICAgIC5pbWd7bWFyZ2luLWJvdHRvbTogMjBweDt9XHJcbiAgICAgICAgICAgIC50ZXh0e1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzowIDIwcHggMjBweDs7XHJcbiAgICAgICAgICAgICAgICBoNXtmb250LXNpemU6MjRweDt9XHJcbiAgICAgICAgICAgICAgICBzbWFsbHttYXJnaW4tYm90dG9tOiAxNXB4O2ZvbnQtc2l6ZToxM3B4fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgI21pZGRsZXtcclxuICAgICAgICBzZWN0aW9uLmNhc2Vfc3R1ZGllc3tcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7cGFkZGluZy1ib3R0b206NTBweDtcclxuICAgICAgICAgICAgLm5hdl9zbGlkZXtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgIC5kaXJlY3Rpb257ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6NTAlO2JvdHRvbTotNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5wcmV2X3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7cmlnaHQ6YXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7bGVmdDphdXRvO3JpZ2h0OjMwcHh9ICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5uZXh0X3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO2xlZnQ6YXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjMwcHh9ICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm91ci1jbGllbnRuZXd7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOjUwcHg7XHJcbiAgICAgICAgICAgID4gaDIsXHJcbiAgICAgICAgICAgID4gaDZ7bWF4LXdpZHRoOiA4MCU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt9XHJcbiAgICAgICAgICAgIC5zbGljay1hcnJvd3tcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogLTUwcHg7d2lkdGg6NTAlO1xyXG4gICAgICAgICAgICAgICAgJi5zbGljay1uZXh0e1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87cmlnaHQ6MDtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVye3JpZ2h0OmF1dG87bGVmdDozMHB4fSAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgJi5zbGljay1wcmV2e1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO2xlZnQ6MDtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVye2xlZnQ6YXV0bztyaWdodDozMHB4fSAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250YWN0LW5ld3tcclxuICAgICAgICAgICAgcGFkZGluZzo4MHB4IDA7XHJcbiAgICAgICAgICAgIC53cmFwcGVye21hcmdpbjowIDMwcHg7fVxyXG4gICAgICAgICAgICAuYm94LWZvcm17d2lkdGg6IDEwMCU7fVxyXG4gICAgICAgIH1cclxuICAgICAgICAub3VyLWNvbXtcclxuICAgICAgICAgICAgcGFkZGluZzozMHB4IDAgMCAwO1xyXG4gICAgICAgICAgICAud3JhcHBlcnsgbWFyZ2luOjAgMzBweDt9XHJcbiAgICAgICAgICAgIGg2e2ZvbnQtc2l6ZToxOHB4fVxyXG4gICAgICAgICAgICAucmlnaHR7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG4gICAgICAgICAgICAgICAgYXt3aWR0aDogNTAlO21hcmdpbjowIDAgMTVweCB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud3JhcF9wb3B1cF9mb3JtIHtcclxuICAgICAgICAuYm94LWNhcHRoY2F7XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubGlmZWluIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzVweDtcclxuICAgICAgICA+IGRpdiB7bWFyZ2luOiAwO31cclxuICAgICAgICAubGktYmFubmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTAwcHggMCA0MHB4O2hlaWdodDogNDAwcHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL21hdGVyaWFsL2JnLWxpLTEtbW9iaWxlLnBuZycpIG5vLXJlcGVhdCByaWdodCBib3R0b207IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwOyBkaXNwbGF5OiBibG9jazsgei1pbmRleDogMjsgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAud3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIDIwcHg7XHJcbiAgICAgICAgICAgICAgICAubGVmdCB7d2lkdGg6IDQ0JTsgZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgICAgICAuY2FwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOiBhdXRvOyB6LWluZGV4OiAzO1xyXG4gICAgICAgICAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O3dpZHRoOiAyNDBweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCBhdXRvIDIwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGluZS1oZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTsgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmxpbmUtMSB7YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9iZy10aXRsZS1oLW1vYmlsZS5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyOyB3aWR0aDogMjcwcHg7IGhlaWdodDogNzZweDsgbGVmdDogLTIwcHg7IHRvcDogLTEwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5saW5lLTIge2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvYmctdGl0bGUtdi1tb2JpbGUucG5nKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjsgd2lkdGg6IDIzNHB4OyBoZWlnaHQ6IDg3cHg7IGxlZnQ6IDA7IGJvdHRvbTogYXV0bzsgdG9wOiAtMTdweH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYubGluZS0zIHtiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2JnLXRpdGxlLWRvdC1tb2JpbGUucG5nKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjsgd2lkdGg6IDIzOHB4OyBoZWlnaHQ6IDcycHg7IGxlZnQ6IC0ycHg7IGJvdHRvbTogLTRweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7Zm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjBweDsgbWF4LXdpZHRoOiA2MDBweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCBhdXRvIDE1cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuYmctbGluZSB7d2lkdGg6IDE5MHB4O31cclxuICAgICAgICB9XHJcbiAgICAgICAgLndvcmtoYXJkIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICAgICAgICAgICAgLndyYXBwZXIgeyBtYXJnaW46IDAgMjBweDt9XHJcbiAgICAgICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgaDQge2ZvbnQtc2l6ZTogMjJweDsgbWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbiAgICAgICAgICAgICAgICBwIHtmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucmlnaHQge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IHdpZHRoOiA3MCU7IG1pbi13aWR0aDogMjgwcHg7IG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICAgICAgLmJveCB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1hcmdpbjogMCAwIDI1cHg7IGZsb2F0OiBub25lOyBwYWRkaW5nLWxlZnQ6IDcwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaDYge2ZvbnQtc2l6ZTogMTZweDsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nIHt3aWR0aDogNTBweDsgdG9wOiA4cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIHAge2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDE4cHg7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5pbGx1cyB7ZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5saS10ZXN0aSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDcwcHggMCA4NXB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9iZy1saS0yLW1vYmlsZS5qcGcnKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC53cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyBtYXJnaW46IDAgMjBweDtkaXNwbGF5OiAtd2Via2l0LWJveDtkaXNwbGF5OiAtbW96LWJveDsgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdyB3cmFwO2ZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgZGlzcGxheTogLW1vei1mbGV4O2Rpc3BsYXk6IC13ZWJraXQtZmxleDtkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO29yZGVyOiAyOyAtd2Via2l0LW9yZGVyOjI7IC1tb3otb3JkZXI6IDI7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAuc2xpZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2stc2xpZGUge3doaXRlLXNwYWNlOiBub3JtYWw7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5yaWdodCB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTsgb3JkZXI6IDE7IC13ZWJraXQtb3JkZXI6MTsgLW1vei1vcmRlcjogMTsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4NiU7IG1hcmdpbjogMCBhdXRvIDM1cHg7IG1heC13aWR0aDogMzcwcHg7XHJcbiAgICAgICAgICAgICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgJi5zbGljay1wcmV2IHtsZWZ0OiAwOyByaWdodDogYXV0bzt9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5zbGljay1uZXh0IHtsZWZ0OiA0NnB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYmctbGluZSB7IHdpZHRoOiBhdXRvOyBib3R0b206IC0xMTBweDsgcmlnaHQ6IC01MHB4OyBoZWlnaHQ6IDE1MHB4fVxyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IGNvbnRlbnQ6ICcnOyB0b3A6IC0yMHB4OyBiYWNrZ3JvdW5kOiAjZmZmOyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDJkZWcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubGktZXZlbnRzIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1hcmdpbjogMCAyMHB4O1xyXG4gICAgICAgICAgICAuYm94IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0OCU7IG1hcmdpbi1yaWdodDogNCU7IG1hcmdpbi1ib3R0b206IDIwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKSB7bWFyZ2luLXJpZ2h0OiA0JTt9XHJcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybikge21hcmdpbi1yaWdodDogMDt9XHJcbiAgICAgICAgICAgICAgICAudGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOyBtYXJnaW46IDA7IHdpZHRoOiBhdXRvOyBwYWRkaW5nOiAxMHB4IDE1cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyByaWdodDogMDsgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAubG9hZC1tb3JlIHttYXJnaW4tdG9wOiAyNXB4O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogNDI1cHgpIHtcclxuXHJcbiAgICAuZy1yZWNhcHRjaGF7QGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOSkpfVxyXG4gICAgLndyYXAtcG9wdXAgLmJveC1wb3B1cCAuc2xpY2stYXJyb3d7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNCkpO1xyXG4gICAgfVxyXG5cclxuICAgICNtaWRkbGV7XHJcbiAgICAgICAgLmNvbnRhY3QtbmV3e1xyXG4gICAgICAgICAgICBwYWRkaW5nOjYwcHggMDtcclxuICAgICAgICAgICAgLndyYXBwZXJ7d2lkdGg6YXV0bzttYXJnaW46MDtwYWRkaW5nLWJvdHRvbTogMjgwcHh9XHJcbiAgICAgICAgICAgIC5ib3gtZm9ybSAucm93IHttYXJnaW46IDAgMjBweDt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5vdXItY29te1xyXG4gICAgICAgICAgICAucmlnaHR7XHJcbiAgICAgICAgICAgICAgICBhe3dpZHRoOjEwMCU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb250YWN0LW5ldyAuYm94LWZvcm0gLmJveC1jYXB0aGNhe1xyXG4gICAgICAgICAgICBwYWRkaW5nOjIwcHggMCAyMHB4IDVweDtcclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbiAgICAubGlmZWluIHtcclxuICAgICAgICAubGktZXZlbnRzIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87IG1hcmdpbjogMCAyMHB4O1xyXG4gICAgICAgICAgICAuYm94IHsgXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgbWFyZ2luLXJpZ2h0OiAwOyBoZWlnaHQ6IDE4MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDNuKSB7bWFyZ2luLXJpZ2h0OiAwO31cclxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuKSB7bWFyZ2luLXJpZ2h0OiAwO31cclxuICAgICAgICAgICAgICAgIC50ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZyB7cG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTAwJTsgb2JqZWN0LWZpdDogY292ZXI7IGhlaWdodDogMTAwJTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblx0XHJcbiAgICBmb290ZXJ7XHJcblx0XHRoZWlnaHQ6MTQwcHg7XHJcblx0XHQuZm9vdGVyX2NvbnRlbnR7aGVpZ2h0OjE0MHB4O31cclxuXHRcdC5mb290ZXJfY29udGVudCBwIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogMjRweDtcclxuXHRcdH1cdFxyXG5cdH1cclxufSIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHRcclxuICAgIENvbXBhbnkgICAgOiBQVCBXZWIgQXJjaGl0ZWN0IFRlY2hub2xvZ3kgLSB3ZWJhcnEuY29tXHJcbiAgICBEb2N1bWVudCAgIDogU3R5bGVzaGVldFxyXG4gICAgQXV0aG9yICAgICA6IEZyb250RW5kIFRlYW0gIFxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi8qIGltcG9ydCBib3VyYm9uIC0gaHR0cDovL2JvdXJib24uaW8vZG9jcyAqL1xyXG5AaW1wb3J0IFwiYm91cmJvbi9ib3VyYm9uXCI7XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbigkYXR0cil7XHJcbiAgICB0cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1zLXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNpdGlvbjogJGF0dHI7XHJcbn1cclxuQG1peGluIHRyYW5zZm9ybSgkYXR0cil7XHJcbiAgICB0cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW1zLXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtby10cmFuc2Zvcm06ICRhdHRyO1xyXG59XHJcbkBtaXhpbiBib3JkZXJSYWRpdXMoJGF0dHIpe1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tcy1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1vLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG59XHJcbkBtaXhpbiBib3hTaGFkb3coJGF0dHIpe1xyXG4gICAgYm94LXNoYWRvdzogICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbXMtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtby1ib3gtc2hhZG93OiAkYXR0clxyXG59XHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpe1xyXG4gICAgYm94LXNpemluZzogICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbXMtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtby1ib3gtc2l6aW5nOiAkYXR0clxyXG59XHJcbkBtaXhpbiBwbGFjZWhvbGRlciB7XHJcbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxyXG4gICAgOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXHJcbn1cclxuQG1peGluIGJveFNpemluZygkYXR0cil7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIGJveC1zaXppbmc6ICRhdHRyO1xyXG59XHJcbi5hZnRlcl9jbGVhcntjb250ZW50OicnO2NsZWFyOiBib3RoO2Rpc3BsYXk6IGJsb2NrO31cclxuLmNsZWFye2NsZWFyOiBib3RoO31cclxuLmFic29sdXRlLWNlbnRlcntwb3NpdGlvbjogYWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7bWFyZ2luOiBhdXRvO31cclxuLm5vLW1hcmdpbnttYXJnaW46IDAgIWltcG9ydGFudDt9XHJcbi8qIHZhcmlhYmxlIGdsb2JhbFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuJGZvbnQtMjpcIlRpbWVzIE5ldyBSb21hblwiO1xyXG4kY18xMTE6ICMxMTE7XHJcbiRjXzMzMzogIzMzMztcclxuJGNfNjY2OiAjNjY2O1xyXG4kY185OTk6ICM5OTk7XHJcbiRjX2VhOiAjZWFlYWVhO1xyXG4kYmx1ZTogIzAwMzM2NjtcclxuJGdyZWVuOiAjMjdhMDQzO1xyXG4iLCIvLyBCb3VyYm9uIDQuMi43XHJcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXHJcbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxyXG4vLyBNSVQgTGljZW5zZVxyXG5cclxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcclxuXHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xyXG5cclxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XHJcblxyXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvY2FsY1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcclxuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcclxuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcclxuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcclxuXHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcclxuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcclxuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcclxuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xyXG5cclxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcclxuXHJcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xyXG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xcclxuXHJcbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XHJcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcclxuICAkbGlzdDogKCk7XHJcblxyXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcclxuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xyXG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XHJcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXHJcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xyXG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xyXG4gICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiB0cnVlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcclxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICBAaWYgbm90ICRpdGVtIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxyXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxyXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3NcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xyXG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcclxuXHJcbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG5cclxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcclxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuXHJcbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcclxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxyXG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXHJcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cclxuXHJcbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcblxyXG4gICRiYXNlOiAkZW0tYmFzZTtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAkZGltZW5zaW9uOiAxMDtcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cclxuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcclxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXHJcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkbmV3LXByb3BzOiAoKTtcclxuXHJcbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcclxuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRuZXctcHJvcHM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXHJcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XHJcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkcHJvcDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xyXG4vLy8gICB9XHJcblxyXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcclxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xyXG4gIH1cclxufVxyXG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xyXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XHJcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcclxuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xyXG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xyXG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcclxuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xyXG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XHJcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XHJcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XHJcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcclxuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xyXG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XHJcbiRvY3RhdmU6ICAgICAgICAgICAyO1xyXG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xyXG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XHJcbiRtYWpvci10d2VsZnRoOiAgICAzO1xyXG4kZG91YmxlLW9jdGF2ZTogICAgNDtcclxuXHJcbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XHJcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xyXG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XHJcbiAgJHZhbHVlOiAkdjE7XHJcblxyXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxyXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xyXG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxyXG4gIH1cclxuICBAd2hpbGUgJHYyIDwgJHYxIHtcclxuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXHJcbiAgfVxyXG5cclxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxyXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcclxuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcclxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcclxuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgIH1cclxuXHJcbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xyXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcclxuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XHJcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xyXG5cclxuICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xyXG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcclxuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fVxyXG5cclxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xyXG4gICRvdXRwdXQ6IG51bGw7XHJcblxyXG4gICRhOiBudGgoJHZhbHMsIDEpO1xyXG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xyXG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xyXG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XHJcblxyXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cclxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XHJcbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxyXG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cclxuXHJcbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxyXG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cclxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XHJcbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxyXG5cclxuICBAcmV0dXJuICRvdXRwdXQ7XHJcbn1cclxuXHJcbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXHJcbi8vLyAgIFByZWZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXHJcbi8vLyAgIFN1ZmZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG5cclxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XHJcbiAgLy8gUHJvcGVydHkgTmFtZXNcclxuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG5cclxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcclxuXHJcbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XHJcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgI3skYWxsfTogJHZhbHM7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXHJcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcclxuXHJcbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgQHJldHVybiBmb250LXVybDtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gdXJsO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzLFxyXG4gICRmb250LXVybCkge1xyXG5cclxuICAkc3JjOiAoKTtcclxuXHJcbiAgJGZvcm1hdHMtbWFwOiAoXHJcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcclxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcclxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXHJcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxyXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXHJcbiAgKTtcclxuXHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xyXG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcclxuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xyXG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRzcmM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XHJcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XHJcbiAgJG9mZnNldDogbnVsbDtcclxuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXHJcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkb2Zmc2V0IHtcclxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xyXG5cclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcclxuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xyXG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xyXG5cclxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xyXG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xyXG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XHJcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkc3BlYzogbnVsbDtcclxuICAkZGVncmVlOiBudWxsO1xyXG4gICRzaWRlOiBudWxsO1xyXG4gICRjb3JuZXI6IG51bGw7XHJcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xyXG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcclxuICBAaWYgKCRsZW5ndGggPiAxKSB7XHJcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxyXG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xyXG5cclxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcclxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XHJcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcclxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XHJcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xyXG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xyXG4gICAgICAkZGVncmVlOiAkcG9zO1xyXG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXHJcbiAgICAgICRzcGVjOiAkcG9zO1xyXG4gICAgfVxyXG4gIH1cclxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XHJcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcclxuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XHJcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xyXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xyXG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR2YWwtMzogbnVsbDtcclxuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XHJcblxyXG4gIEBpZiAkaGFzLXZhbC0zIHtcclxuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XHJcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcclxuICB9XHJcblxyXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xyXG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xyXG5cclxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxyXG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcclxuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xyXG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcclxuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cclxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XHJcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcclxuICAgIH1cclxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XHJcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAkZzE6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XHJcblxyXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmXHJcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xyXG5cclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XHJcbiAgICAgICAgICAgICRnMjogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcclxuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxyXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xyXG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG5cclxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xyXG5cclxuICAvLyBBZGQgY29tbWFcclxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xyXG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xyXG5cclxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcclxuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcclxuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXHJcblxyXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJHByZS1zcGVjOiBudWxsO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xyXG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xyXG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xyXG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XHJcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR2ZW5kb3Ige1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xyXG4gIH1cclxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcclxuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xyXG4gICAgICAkdmFsdWU6IG51bGw7XHJcbiAgICB9XHJcbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcclxuICAvLyBNYXRyaWNlc1xyXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcclxuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XHJcblxyXG4gIC8vIFJlc3VsdFxyXG4gICRyZXN1bHQ6IDA7XHJcbiAgJGRpdmlkZXI6IDA7XHJcbiAgJG1pbnVzOiBmYWxzZTtcclxuXHJcbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xyXG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XHJcblxyXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xyXG4gICAgICAkbWludXM6IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XHJcbiAgICAgICRkaXZpZGVyOiAxO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XHJcblxyXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XHJcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcclxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcclxuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxufVxyXG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cclxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcclxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xyXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xyXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xyXG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XHJcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXHJcbi8vIG5vdGF0aW9uLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcclxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcclxuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XHJcblxyXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XHJcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcclxuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcclxuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XHJcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxyXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XHJcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xyXG4gICRzcGVjLWltYWdlczogKCk7XHJcblxyXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcclxuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xyXG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xyXG5cclxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XHJcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XHJcbn1cclxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xyXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XHJcbiAgJHNwZWMtYm9yZGVyczogKCk7XHJcblxyXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xyXG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xyXG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcclxuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcclxuXHJcbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcclxuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcclxuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG59XHJcblxyXG4vL0V4YW1wbGVzOlxyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xyXG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xyXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XHJcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XHJcbn1cclxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xyXG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcclxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xyXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcclxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8fCBhbGxcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcclxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcblxyXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XHJcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XHJcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XHJcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcclxuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XHJcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNwbGF5LWJveCB7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXHJcbiAgZGlzcGxheTogYm94O1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xyXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcclxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XHJcbi8vIHNpbmdsZXxtdWx0aXBsZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cclxuXHJcbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxyXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxyXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxyXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcclxuLy8gZmxleCB8IGlubGluZS1mbGV4XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XHJcbiAgICAvLyAyMDA5XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gICAgZGlzcGxheTogYm94O1xyXG5cclxuICAgIC8vIDIwMTJcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XHJcblxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICB9IEBlbHNlIHtcclxuICAgIGRpc3BsYXk6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxyXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxyXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcclxuXHJcbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxyXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXHJcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxyXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gICRkaXJlY3Rpb246IG5vcm1hbDtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSByb3cge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXHJcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcclxuICAvLyBBbHQgdmFsdWVzXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXHJcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXHJcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcclxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcclxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcclxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcclxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXHJcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmFjZShcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkd2VpZ2h0OiBub3JtYWwsXHJcbiAgJHN0eWxlOiBub3JtYWwsXHJcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xyXG5cclxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xyXG5cclxuICBAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XHJcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcclxuXHJcbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICAgICAkZm9udC1mYW1pbHksXHJcbiAgICAgICRmaWxlLXBhdGgsXHJcbiAgICAgICRhc3NldC1waXBlbGluZSxcclxuICAgICAgJGZpbGUtZm9ybWF0cyxcclxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcclxuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcclxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcclxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XHJcblxyXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcclxuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcclxuICB9XHJcbn1cclxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XHJcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XHJcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XHJcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcclxuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkcG9zLXNwZWM6IG51bGw7XHJcbiAgJHBvcy1kZWdyZWU6IG51bGw7XHJcblxyXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxyXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcclxuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XHJcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xyXG4gICAgJHBvczogbnVsbDtcclxuICB9XHJcblxyXG4gIEBpZiAkcG9zIHtcclxuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcclxuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XHJcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xyXG5cclxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xyXG59XHJcbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPGxlbmd0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XHJcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xyXG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcclxuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xyXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG5cclxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XHJcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcclxuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xyXG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcclxuXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xyXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xyXG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcclxuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xyXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xyXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xyXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XHJcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XHJcbn1cclxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XHJcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcclxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXHJcbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcclxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XHJcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcclxuICAkd2Via2l0OiAoKTtcclxuICAkbW96OiAoKTtcclxuICAkc3BlYzogKCk7XHJcblxyXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxyXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcclxuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XHJcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MzogKCk7XHJcblxyXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcclxuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcclxuXHJcbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcclxuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XHJcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xyXG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xyXG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5YztcclxuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcclxuXHJcbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcclxuXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxyXG5cclxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcclxuXHJcbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGJ1dHRvbixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcclxuLy8vICAgYnV0dG9uOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxyXG5cclxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcclxuXHJcbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XHJcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xyXG5cclxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XHJcbi8vLyAgICAgY2xlYXI6IGJvdGg7XHJcbi8vLyAgICAgY29udGVudDogXCJcIjtcclxuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxyXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogJHdpZHRoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XHJcblxyXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XHJcblxyXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcclxuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXHJcblxyXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtaW5kZW50OiAxMDElO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gIEBpZiAkaGVpZ2h0IHtcclxuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYG1hcmdpbmBcclxuXHJcbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xyXG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXHJcblxyXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cclxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cclxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBsZWZ0OiAxMGVtO1xyXG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8vICAgICB0b3A6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcclxuXHJcbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcclxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xyXG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XHJcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcclxuXHJcbiAgJG9mZnNldHM6IChcclxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXHJcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxyXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcclxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcclxuICApO1xyXG5cclxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xyXG5cclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcclxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcclxuLy8vICAgVmFsdWUgdG8gdXNlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcclxuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXHJcblxyXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcclxuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XHJcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XHJcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlICB7XHJcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcclxufVxyXG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGhpZHBpIHtcclxuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcclxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cclxuLy8vXHJcbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiAyZW07XHJcbi8vLyAgICAgaGVpZ2h0OiAyZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IGF1dG87XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XHJcblxyXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcclxuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xyXG4gICRoZWlnaHQ6ICR3aWR0aDtcclxuXHJcbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XHJcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcclxuLy8vICAgdGV4dGFyZWEge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxyXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXHJcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxyXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxyXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcclxuXHJcbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcclxuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcclxuLy8vXHJcbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXHJcbi8vL1xyXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXHJcblxyXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xyXG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xyXG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xyXG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xyXG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xyXG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xyXG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xyXG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xyXG5cclxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcclxuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcclxuXHJcbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XHJcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XHJcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XHJcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XHJcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XHJcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xyXG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xyXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuXHJcbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xyXG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xyXG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxyXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xyXG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xyXG4gIHdvcmQtd3JhcDogJHdyYXA7XHJcblxyXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICB9IEBlbHNlIHtcclxuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXHJcblxyXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XHJcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICB9XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxyXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XHJcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29sb3JlZCBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaW1wbGUgQnV0dG9uXHJcbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2hpbnkgQnV0dG9uXHJcbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xyXG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcclxuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xyXG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcclxuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcclxuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcclxuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xyXG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUGlsbCBCdXR0b25cclxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcclxuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xyXG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxhdCBCdXR0b25cclxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3JkZXI6IDA7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGdyaWRcclxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcclxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGd1dHRlclxyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XHJcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xyXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcclxufVxyXG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7O2dHQUlnRztBQ0poRzs7OztnR0FJZ0c7QUFFaEcsNkNBQTZDO0FBaUQ3QyxBQUFBLFlBQVksQ0FBQTtFQUFDLE9BQU8sRUFBQyxFQUFHO0VBQUMsS0FBSyxFQUFFLElBQUs7RUFBQyxPQUFPLEVBQUUsS0FBTTtDQUFHOztBQUN4RCxBQUFBLE1BQU0sQ0FBQTtFQUFDLEtBQUssRUFBRSxJQUFLO0NBQUc7O0FBQ3RCLEFBQUEsZ0JBQWdCLEVEcVRoQixBQ3JUQSxXRHFUVyxDQUVQLFVBQVUsQ0FFTixNQUFNLEFBTUQsTUFBTSxDQy9USDtFQUFDLFFBQVEsRUFBRSxRQUFTO0VBQUMsR0FBRyxFQUFDLENBQUU7RUFBQyxJQUFJLEVBQUMsQ0FBRTtFQUFDLEtBQUssRUFBQyxDQUFFO0VBQUMsTUFBTSxFQUFDLENBQUU7RUFBQyxNQUFNLEVBQUUsSUFBSztDQUFHOztBQUN2RixBQUFBLFVBQVUsQ0FBQTtFQUFDLE1BQU0sRUFBRSxZQUFhO0NBQUc7O0FBQ25DO2dHQUNnRztBRHBEaEcsQUFBQSxNQUFNLENBQUE7RUFBRSxPQUFPLEVBQUUsSUFBSztDQUFJOztBQUMxQixBQUNJLE9BREcsQ0FDSCxjQUFjLENBQUE7RUFDVixPQUFPLEVBQUMsQ0FBRTtFQUFDLFVBQVUsRUFBQyxJQUFLO0NBd0M5Qjs7QUExQ0wsQUFHUSxPQUhELENBQ0gsY0FBYyxDQUVWLEVBQUUsQ0FBQTtFQUFDLGFBQWEsRUFBRSxJQUFLO0NBQUc7O0FBSGxDLEFBSVMsT0FKRixDQUNILGNBQWMsQ0FHVixDQUFDLEFBQUEsa0JBQWtCLENBQUM7RUFBQyxLQUFLLEVBQUMsS0FBTTtFQUFDLE1BQU0sRUFBQyxj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QUU7SUFBQyxjQUFjLEVBQUUsS0FBTTtHQUFFO0VBSC9ELEFBSWtCLE9BSlgsQ0FDSCxZQUFZLENBR1IsU0FBUyxDQUFDLElBQUksQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFPO0dBQUc7RUFKMUMsQUFRWSxPQVJMLENBTUgsUUFBUSxDQUNKLE1BQU0sQ0FDRixDQUFDLENBQUE7SUFBQyxLQUFLLEVBQUMsSUFBSztHQUFHO0VBUjVCLEFBVzJCLE9BWHBCLENBV0gsWUFBWSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUE7SUFDL0IsT0FBTyxFQUFDLGVBQWdCO0dBQzNCO0VBRUwsQUFDSSxPQURHLENBQ0gsVUFBVSxDQUFDO0lBQ1AsS0FBSyxFQUFFLElBQUs7SUFBRSxNQUFNLEVBQUUsTUFBTztHQVVoQztFQVpMLEFBR1EsT0FIRCxDQUNILFVBQVUsQ0FFTixJQUFJLENBQUM7SUFDRCxLQUFLLEVBQUUsSUFBSztJQUFFLFlBQVksRUFBRSxDQUFFO0lBQUUsTUFBTSxFQUFFLEtBQU07SUFBRSxRQUFRLEVBQUUsTUFBTztJQUFFLGNBQWMsRUFBRSxJQUFLO0dBTzNGO0VBWFQsQUFHUSxPQUhELENBQ0gsVUFBVSxDQUVOLElBQUksQUFFQyxVQUFXLENBQUEsRUFBRSxFQUFFO0lBQUMsWUFBWSxFQUFFLENBQUU7R0FBRztFQUxoRCxBQUdRLE9BSEQsQ0FDSCxVQUFVLENBRU4sSUFBSSxBQUdDLFVBQVcsQ0FBQSxFQUFFLEVBQUU7SUFBQyxZQUFZLEVBQUUsQ0FBRTtHQUFHO0VBTmhELEFBT1ksT0FQTCxDQUNILFVBQVUsQ0FFTixJQUFJLENBSUEsS0FBSyxDQUFDO0lBQ0YsT0FBTyxFQUFFLFFBQVM7R0FDckI7RUFUYixBQVVZLE9BVkwsQ0FDSCxVQUFVLENBRU4sSUFBSSxDQU9BLEdBQUcsQ0FBQztJQUFDLFFBQVEsRUFBRSxRQUFTO0lBQUUsS0FBSyxFQUFFLElBQUs7SUFBRSxVQUFVLEVBQUUsS0FBTTtJQUFFLE1BQU0sRUFBRSxJQUFLO0dBQUc7RUFLeEYsQUFBQSxNQUFNLENBQUE7SUFDUixNQUFNLEVBQUMsS0FBTTtHQUtiO0VBTkUsQUFFRixNQUZRLENBRVIsZUFBZSxDQUFBO0lBQUMsTUFBTSxFQUFDLEtBQU07R0FBRztFQUY5QixBQUdjLE1BSFIsQ0FHUixlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxJQUFLO0dBQ2pCIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
