/*=============================================================================================
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Harlan
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
/* structure
----------------------------------------------------------------------------------------------*/
section {
  position: relative;
}

.wrapper {
  width: 1370px;
  margin: 0 auto;
}

.after_clear:after, .box-cc .row .ls-radio:after, .wrapper:after, section:after {
  clear: both;
  display: block;
  content: " ";
}

.btn-cart {
  color: #fea821;
  border: 1px solid #fea821;
  line-height: 35px;
  font-size: 11px;
  padding: 0 20px 0 45px;
  display: inline-block;
  text-transform: uppercase;
  font-weight: 600;
  position: relative;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
}

.btn-cart:before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 15px;
  margin: auto 0;
  background: url(../images/material/ic-cart-splt.png) no-repeat top;
  width: 20px;
  height: 16px;
}

.btn-cart:hover {
  color: #fff;
  background: #fea821;
  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;
}

.btn-cart:hover:before {
  background-position: bottom;
  transition: 0.4s all ease-out;
  -webkit-transition: 0.4s all ease-out;
  -moz-transition: 0.4s all ease-out;
  -ms-transition: 0.4s all ease-out;
  -o-transition: 0.4s all ease-out;
}

.btn-download {
  font-size: 14px;
  color: #b28e35;
  font-weight: 500;
  padding-left: 30px;
  position: relative;
  line-height: 25px;
  display: inline-block;
}

.btn-download:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 23px;
  height: 21px;
  background: url(../images/material/ic-download.png) no-repeat center;
}

.btn-arr {
  text-transform: uppercase;
  color: #b28e35;
  font-size: 16px;
  font-weight: 600;
  padding-right: 30px;
  position: relative;
}

.btn-arr:after {
  content: '';
  background: url(../images/material/arr-org-s.png) no-repeat center;
  width: 16px;
  height: 14px;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
  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;
}

.btn-arr:hover {
  color: #b28e35;
}

.btn-arr:hover:after {
  right: -5px;
  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;
}

.btn-arr.wht {
  color: #fff;
}

.btn-arr.wht:after {
  background: url(../images/material/arr-wht-s.png) no-repeat center;
}

.btn-edit {
  font-size: 14px;
  position: relative;
  padding-left: 20px;
  display: inline-block;
  color: #686868;
  line-height: 20px;
  font-weight: 600;
}

.btn-edit:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 16px;
  height: 16px;
  background: url(../images/material/ic-edit.png) no-repeat center;
}

.btn-rounded {
  font-size: 13px;
  color: #fff;
  background: #fea821;
  padding: 0 40px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  line-height: 40px;
  border: 1px solid #fea821;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
  cursor: pointer;
  text-transform: uppercase;
  font-weight: 600;
  margin-left: 100px;
  display: inline-block;
  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;
}

.btn-rounded:hover {
  background: transparent;
  color: #fea821;
  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;
}

.btn-rounded.pop {
  margin: -5px 0 0 20px;
}

.add-addrs {
  font-size: 13px;
  color: #fff;
  background: #b28e35;
  padding: 0 20px 0 45px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  line-height: 40px;
  border: 1px solid #b28e35;
  border-radius: 20px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  -ms-border-radius: 20px;
  -o-border-radius: 20px;
  cursor: pointer;
  text-transform: uppercase;
  font-weight: 600;
  display: inline-block;
  position: relative;
  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;
}

.add-addrs:before {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  left: 20px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  background: url(../images/material/ic-add.png) no-repeat center;
}

.add-addrs:hover {
  background: #d3a941;
  color: #fff;
  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;
  border-color: #d3a941;
}

.flex-list, .nav_cart ul, .main_wrap .block .row {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
}

/* header
----------------------------------------------------------------------------------------------*/
header .bot .drop_cart {
  background: #f7f7f7;
  position: fixed;
  right: -420px;
  top: 145px;
  bottom: 0;
  padding: 20px;
  width: 420px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  left: auto;
  z-index: 99;
}

header .bot .drop_cart.empty {
  height: 445px;
}

header .bot .drop_cart.empty .ls_empty {
  display: block;
}

header .bot .drop_cart.empty .ls_cart {
  display: none;
}

header .bot .drop_cart.empty .btn_abs {
  display: none;
}

header .bot .drop_cart.empty .cart_tot {
  display: none;
}

header .bot .ls_cart {
  height: 570px;
  overflow: auto;
}

header .bot .ls_cart .ls {
  padding-bottom: 25px;
  margin-bottom: 25px;
  border-bottom: 1px solid #ddd;
  position: relative;
}

header .bot .ls_cart .ls:after {
  content: "";
  display: block;
  clear: both;
}

header .bot .ls_cart .ls .img {
  width: 110px;
  border: 1px solid #ddd;
  float: left;
}

header .bot .ls_cart .ls .img img {
  width: 100%;
}

header .bot .ls_cart .ls .desc {
  margin-left: 130px;
  padding-right: 30px;
}

header .bot .ls_cart .ls .desc h6 {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 8px;
}

header .bot .ls_cart .ls .desc p {
  font-size: 14px;
  line-height: 20px;
}

header .bot .ls_cart .ls .desc table {
  width: 100%;
}

header .bot .ls_cart .ls .desc table td {
  font-size: 13px;
  font-weight: 600;
}

header .bot .ls_cart .ls .desc table td:last-child {
  text-align: right;
}

header .bot .ls_cart .ls .del {
  position: absolute;
  width: 26px;
  height: 26px;
  right: -10px;
  top: -2px;
}

header .bot .ls_cart .ls .del:after, header .bot .ls_cart .ls .del:before {
  content: '';
  width: 17px;
  height: 3px;
  background: #d7d7d7;
  display: block;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  top: 12px;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 2px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
}

header .bot .ls_cart .ls .del:before {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
}

header .bot .ls_empty {
  text-align: center;
  display: none;
}

header .bot .ls_empty figure {
  margin-bottom: 50px;
  display: block;
}

header .bot .ls_empty h6 {
  font-size: 19px;
  font-weight: 500;
  color: #333;
  line-height: 22px;
  margin-bottom: 10px;
}

header .bot .ls_empty p {
  font-size: 16px;
  color: #a2a2a2;
  line-height: 19px;
}

header .bot .ls_empty .wrap-abs {
  position: absolute;
  right: 20px;
  left: 20px;
  bottom: 5%;
}

header .bot .ls_empty .btn-rounded {
  margin-left: 0;
  width: 100%;
}

header .bot .cart_tot table {
  width: 100%;
  margin-top: 20px;
}

header .bot .cart_tot table td {
  font-weight: 700;
  font-size: 16px;
  padding: 10px;
}

header .bot .cart_tot table td:last-child {
  text-align: right;
}

header .bot .btn_abs {
  position: absolute;
  left: 30px;
  right: 30px;
  bottom: 30px;
}

header .bot .btn_abs .btn-rounded {
  margin-left: 0;
  width: 100%;
  text-align: center;
}

header .bot .btn_abs a.bk {
  color: #adadad;
  display: block;
  text-align: center;
  margin-top: 20px;
  text-decoration: underline;
}

.overlay-cart {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 5;
  background: rgba(0, 0, 0, 0.5);
  display: none;
}

/* middle
----------------------------------------------------------------------------------------------*/
.nav_cart {
  position: fixed;
  left: 0;
  right: 0;
  top: 75px;
  background: #f6f6f6;
  z-index: 5;
}

.nav_cart ul {
  justify-content: center;
  width: 100%;
}

.nav_cart ul li {
  counter-increment: step-counter;
  font-size: 14px;
  color: #b9b9b9;
  line-height: 24px;
  min-width: 290px;
  text-align: center;
  padding: 22px 0;
  border-right: 1px solid #e1e1e1;
}

.nav_cart ul li:before {
  content: counter(step-counter);
  display: inline-block;
  vertical-align: middle;
  width: 24px;
  height: 24px;
  border: 1px solid #b9b9b9;
  text-align: center;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  margin-right: 10px;
}

.nav_cart ul li:first-child {
  border-left: 1px solid #e1e1e1;
}

.nav_cart ul li:last-child {
  border-right: 0;
}

.nav_cart ul li.active {
  background: #e1e1e1;
  color: #333;
  font-weight: 600;
}

.nav_cart ul li.ok:before {
  content: '';
  background: url(../images/material/ic-ok.png) no-repeat center;
  border-color: #b28e35;
}

.nav_cart .vmobile {
  display: none;
}

.middle.cart {
  padding-top: 145px;
}

.main_wrap {
  padding-top: 60px;
}

.main_wrap .lf_wrap {
  width: 61.67%;
  float: left;
}

.main_wrap .rh_wrap {
  width: 27%;
  min-width: 350px;
  float: right;
}

.main_wrap .tittle-sub {
  margin-bottom: 22px;
}

.main_wrap .block {
  margin-bottom: 30px;
}

.main_wrap .block .row {
  background: #fff;
  padding: 10px 15px;
  border-bottom: 1px solid #efefef;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.main_wrap .block .row label {
  font-weight: 600;
  color: #333;
  line-height: 30px;
  width: 150px;
  font-size: 14px;
}

.main_wrap .block .row:last-child {
  border: none;
}

.main_wrap .block .row .inp_field {
  width: auto;
  width: 70%;
}

.main_wrap .block .row .inp_field input[type="text"], .main_wrap .block .row .inp_field input[type="email"], .main_wrap .block .row .inp_field input[type="password"],
.main_wrap .block .row .inp_field select {
  font-size: 14px;
  padding: 8px 12px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: none;
  width: 100%;
}

.main_wrap .block .row .inp_field ::-webkit-input-placeholder {
  color: #919191;
  font-style: italic;
}

.main_wrap .block .row .inp_field :-moz-placeholder {
  color: #919191;
  font-style: italic;
}

.main_wrap .block .row .inp_field ::-moz-placeholder {
  color: #919191;
  font-style: italic;
}

.main_wrap .block .row .inp_field :-ms-input-placeholder {
  color: #919191;
  font-style: italic;
}

.main_wrap .block .row .inp_field select {
  width: auto;
  padding-right: 30px;
  background: url("../images/material/arr-dwn.png") no-repeat 95% center;
  min-width: 120px;
}

.main_wrap .block .row .opt {
  display: inline-block;
  font-size: 14px;
  color: #686868;
  font-weight: 500;
  padding-left: 20px;
  position: relative;
  line-height: 30px;
  width: 100px;
  margin-bottom: 10px;
}

.main_wrap .block .row .opt input[type='radio'] {
  background: url(../images/material/ic-radio.png) no-repeat left;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto 0;
  width: 100%;
  height: 15px;
  cursor: pointer;
  z-index: 2;
}

.main_wrap .block .row .opt input[type='radio']:checked {
  background: url(../images/material/ic-radio-chk.png) no-repeat left;
}

.main_wrap .block .row.total {
  background: #939393;
}

.main_wrap .block .row.total label {
  color: #fff;
  font-weight: 700;
}

.main_wrap .block .row.total .inp_field input[type="text"]:disabled {
  background: transparent;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  padding: 5px 10px;
}

.main_wrap .block .row.btn {
  margin-top: 50px;
  display: block;
}

.main_wrap .block .row.btn .btn-rounded {
  float: right;
  min-width: 200px;
}

.main_wrap .block.nomarg {
  margin-bottom: 0;
}

.main_wrap .block.none {
  display: none;
}

.main_wrap .block.margin2 {
  margin: 35px 0;
}

.main_wrap .box {
  padding: 20px 20px 25px;
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.main_wrap .box .edit_addrs {
  position: absolute;
  top: 20px;
  right: 20px;
}

.main_wrap .box.grey {
  background: #f1f1f1;
}

.main_wrap .box.none {
  display: none;
}

.main_wrap .box.border {
  border-top: 1px dashed #d9d9d9;
}

.main_wrap .box.minheight {
  min-height: 100px;
}

.main_wrap .shdow {
  box-shadow: 0 0 10px -2px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: 0 0 10px -2px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 0 10px -2px rgba(0, 0, 0, 0.15);
  -ms-box-shadow: 0 0 10px -2px rgba(0, 0, 0, 0.15);
  -o-box-shadow: 0 0 10px -2px rgba(0, 0, 0, 0.15);
  border-radius: 3px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
}

.main_wrap .txt h4 {
  color: #b28e35;
  font-weight: 700;
  margin-bottom: 20px;
  font-size: 16px;
}

.main_wrap .txt h6 {
  font-size: 16px;
  font-weight: 700;
  color: #555;
  margin-bottom: 6px;
}

.main_wrap .txt p {
  max-width: 350px;
  font-size: 16px;
  line-height: 24px;
  margin: 0;
}

.main_wrap .edit_addrs {
  font-weight: 700;
  color: #686868;
  font-size: 14px;
  display: inline-block;
  padding: 15px 15px 15px 40px;
  border: 1px solid #e1e1e1;
  background: url("../images/material/ic-edit.png") no-repeat 18px center;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
}

.main_wrap .box_rh {
  background: #f1f1f1;
  padding: 30px 20px;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
}

.main_wrap .box_rh h5 {
  font-size: 16px;
  text-transform: uppercase;
  font-weight: 500;
  padding-bottom: 12px;
  border-bottom: 1px solid #dedede;
  margin-bottom: 15px;
}

.main_wrap .box_rh table {
  width: 100%;
}

.main_wrap .box_rh table td {
  font-weight: 700;
  font-size: 16px;
  padding: 15px 0;
  border-bottom: 1px solid #dedede;
  position: relative;
}

.main_wrap .box_rh table td:last-child {
  text-align: right;
}

.main_wrap .box_rh table .Shipping td {
  color: #919191;
}

.main_wrap .box_rh table .close {
  width: 15px;
  height: 15px;
  position: absolute;
  top: 10px;
}

.main_wrap .box_rh table h6 {
  text-align: left;
  margin: 10px 0 20px;
  font-weight: 700;
}

.main_wrap .box_rh table form {
  width: 100%;
  text-align: left;
  position: relative;
}

.main_wrap .box_rh table form input {
  width: 100%;
  background: #fff;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: none;
  font-size: 14px;
  padding-right: 110px;
}

.main_wrap .box_rh table form button {
  position: absolute;
  left: auto;
  top: 0;
  bottom: 0;
  right: 0;
  border: none;
  padding: 0 20px;
  color: #fff;
  font-size: 13px;
  text-transform: uppercase;
  font-weight: 600;
  background: #b28e35;
  border-radius: 0 4px 4px 0;
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  -ms-border-radius: 0 4px 4px 0;
  -o-border-radius: 0 4px 4px 0;
  cursor: pointer;
}

.main_wrap .box_rh table tr:last-child td {
  border-bottom: none;
}

.main_wrap .box_rh table tr:last-child td:last-child {
  font-size: 18px;
}

.main_wrap .box_rh table .btn-rounded {
  display: inline-block;
  margin-left: 0;
  width: 100%;
  text-align: center;
}

.main_wrap .addres-reciv h5 {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 20px;
}

.main_wrap .addres-reciv p {
  font-size: 16px;
  color: #555;
  font-weight: 500;
}

.main_wrap .addres-reciv .org {
  font-size: 16px;
  color: #b28e35;
  display: block;
  margin-bottom: 15px;
  font-weight: 500;
}

.main_wrap .addres-reciv hr {
  color: #ccc;
  display: block;
}

.main_wrap .addres-reciv .box-s {
  padding: 20px 0;
  border-bottom: 1px solid #ddd;
}

.main_wrap .addres-reciv .box-s:last-child {
  border: none;
}

.block_addrs {
  position: relative;
  box-shadow: 5px 0px 1px 0px rgba(0, 0, 0, 0.05);
  -webkit-box-shadow: 5px 0px 1px 0px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 5px 0px 1px 0px rgba(0, 0, 0, 0.05);
  -ms-box-shadow: 5px 0px 1px 0px rgba(0, 0, 0, 0.05);
  -o-box-shadow: 5px 0px 1px 0px rgba(0, 0, 0, 0.05);
}

.block_addrs .col {
  padding: 15px;
  border-bottom: 1px solid #ddd;
  box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.1);
  -webkit-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.1);
  -ms-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.1);
  -o-box-shadow: 0 0 15px -2px rgba(0, 0, 0, 0.1);
  position: relative;
}

.block_addrs .col .ck_rdio {
  position: absolute;
  left: 15px;
}

.block_addrs .col .ck_rdio input {
  width: 14px;
  height: 14px;
  background: url("../images/material/ic-radio.png") no-repeat;
  padding: 0;
  cursor: pointer;
}

.block_addrs .col .ck_rdio input:checked {
  background: url("../images/material/ic-radio-chk.png") no-repeat;
}

.block_addrs .col .txt_addrs {
  padding-left: 30px;
}

.block_addrs .col .txt_addrs h6 {
  color: #b28e35;
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 15px;
}

.block_addrs .col .txt_addrs p {
  margin-bottom: 0;
  font-size: 15px;
  line-height: 24px;
  max-width: 45%;
  color: #555;
}

.block_addrs .col .edit {
  position: absolute;
  top: 15px;
  right: 35px;
  padding-left: 22px;
  background: url("../images/material/ic-edit.png") no-repeat left top;
  line-height: 18px;
  font-weight: 600;
  color: #555;
}

.block_addrs + .blok_btn {
  margin-top: 40px;
}

.blok_btn .btn-rounded {
  margin-left: 0;
  line-height: 38px;
}

.blok_btn:after {
  content: "";
  display: block;
  clear: both;
}

.form_addrs .row {
  border-bottom: 1px solid #dddddd;
  margin-bottom: 0;
  position: relative;
}

.form_addrs .row .col {
  padding: 0 12px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border-right: 1px  solid #dddddd;
  width: 100%;
}

.form_addrs .row .col:last-child {
  border-right: none;
}

.form_addrs .row .col:after {
  display: block;
  content: "";
  clear: both;
}

.form_addrs .row .col label {
  font-size: 14px;
  color: #333;
  float: left;
  width: 150px;
  line-height: 50px;
  position: relative;
  padding-right: 5px;
}

.form_addrs .row .col label:before {
  top: 0;
  display: none;
}

.form_addrs .row .col .inp_field {
  margin-left: 160px;
}

.form_addrs .row .col input[type="text"], .form_addrs .row .col input[type="email"], .form_addrs .row .col input[type="number"],
.form_addrs .row .col input[type="password"], .form_addrs .row .col select, .form_addrs .row .col textarea {
  border: none;
  width: 100%;
  padding: 15px 12px;
  height: 50px;
  font-size: 16px;
}

.form_addrs .row .col.col5 {
  width: 50%;
}

.form_addrs .row .col textarea {
  height: 100px;
  resize: none;
}

.form_addrs .row:last-of-type {
  border-bottom: none;
}

.form_addrs .blok_btn {
  margin-top: 30px;
}

.form_addrs .shdow {
  box-shadow: 0 0 12px -2px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: 0 0 12px -2px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 0 12px -2px rgba(0, 0, 0, 0.15);
  -ms-box-shadow: 0 0 12px -2px rgba(0, 0, 0, 0.15);
  -o-box-shadow: 0 0 12px -2px rgba(0, 0, 0, 0.15);
  border-radius: 3px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
}

.form_addrs.ulas .row {
  border: none;
  margin-bottom: 10px;
}

.form_addrs.ulas .row .col input[type="text"], .form_addrs.ulas .row .col input[type="email"], .form_addrs.ulas .row .col input[type="number"],
.form_addrs.ulas .row .col input[type="password"], .form_addrs.ulas .row .col select, .form_addrs.ulas .row .col textarea {
  border: 1px solid #ddd;
}

.form_addrs.ulas .blok_btn {
  margin-left: 170px;
}

.form_addrs.border .row .col label:after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #ddd;
  height: 40%;
  margin: auto 0;
}

/* ------  popup style  ------- */
.wrap_pop {
  position: fixed;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(0, 0, 0, 0.9);
  z-index: 9999999;
  display: none;
  overflow-y: auto;
}

.wrap_pop .pop_inner {
  position: absolute;
  display: table;
  height: 100%;
  width: 100%;
}

.wrap_pop .pop_inner .overlay_pop {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 7;
}

.wrap_pop .pop_inner .box_pop {
  display: table-cell;
  vertical-align: middle;
}

.wrap_pop .pop_inner .close {
  position: absolute;
  width: 26px;
  height: 26px;
  right: 15px;
  top: 15px;
  z-index: 10;
}

.wrap_pop .pop_inner .close:after, .wrap_pop .pop_inner .close:before {
  content: '';
  width: 17px;
  height: 3px;
  background: #d7d7d7;
  display: block;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  top: 12px;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 2px;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
}

.wrap_pop .pop_inner .close:before {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
}

.wrap_pop .pop_inner .content_pop {
  background: #fff;
  width: 900px;
  margin: 10% auto;
  padding: 30px 25px;
  border-radius: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
  position: relative;
  z-index: 8;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.wrap_pop#info-gift .pop_inner .content_pop {
  width: 800px;
}

.wrap_pop#info-gift .gift-pop {
  display: flex;
  padding-right: 10px;
}

.wrap_pop#info-gift .gift-pop figure {
  flex: 0 0 135px;
  max-width: 135px;
}

.wrap_pop#info-gift .gift-pop p {
  flex: 0 0 calc(100% - 135px);
  max-width: calc(100% - 135px);
  padding-left: 25px;
  box-sizing: border-box;
  font-size: 18px;
  color: #333333;
  align-self: center;
  margin-bottom: 0;
}

#metod-payment .pop_inner .content_pop,
#metod-payment2 .pop_inner .content_pop,
#metod-cc .pop_inner .content_pop,
#metod-dtl .pop_inner .content_pop,
#metod-premium .pop_inner .content_pop {
  width: 635px;
  padding: 40px 25px;
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  -ms-border-radius: 15px;
  -o-border-radius: 15px;
  margin: 5% auto;
}

#metod-payment .pop_inner .content_pop .top_pop,
#metod-payment2 .pop_inner .content_pop .top_pop,
#metod-cc .pop_inner .content_pop .top_pop,
#metod-dtl .pop_inner .content_pop .top_pop,
#metod-premium .pop_inner .content_pop .top_pop {
  position: relative;
  margin-bottom: 40px;
}

#metod-payment .pop_inner .content_pop .top_pop label,
#metod-payment2 .pop_inner .content_pop .top_pop label,
#metod-cc .pop_inner .content_pop .top_pop label,
#metod-dtl .pop_inner .content_pop .top_pop label,
#metod-premium .pop_inner .content_pop .top_pop label {
  display: block;
  font-size: 16px;
  color: #555;
  margin-bottom: 7px;
}

#metod-payment .pop_inner .content_pop .top_pop h3,
#metod-payment2 .pop_inner .content_pop .top_pop h3,
#metod-cc .pop_inner .content_pop .top_pop h3,
#metod-dtl .pop_inner .content_pop .top_pop h3,
#metod-premium .pop_inner .content_pop .top_pop h3 {
  font-size: 29px;
  color: #333;
  font-weight: 700;
}

#metod-payment .pop_inner .content_pop .top_pop .link_dtl,
#metod-payment2 .pop_inner .content_pop .top_pop .link_dtl,
#metod-cc .pop_inner .content_pop .top_pop .link_dtl,
#metod-dtl .pop_inner .content_pop .top_pop .link_dtl,
#metod-premium .pop_inner .content_pop .top_pop .link_dtl {
  font-size: 16px;
  color: #FEA821;
  position: absolute;
  right: 0;
  bottom: 0;
  text-decoration: underline;
}

#metod-payment .pop_inner .content_pop ul li,
#metod-payment2 .pop_inner .content_pop ul li,
#metod-cc .pop_inner .content_pop ul li,
#metod-dtl .pop_inner .content_pop ul li,
#metod-premium .pop_inner .content_pop ul li {
  font-size: 16px;
  color: #5a5a5a;
  line-height: 22px;
  margin-bottom: 15px;
  padding-left: 25px;
  position: relative;
}

#metod-payment .pop_inner .content_pop ul li:before,
#metod-payment2 .pop_inner .content_pop ul li:before,
#metod-cc .pop_inner .content_pop ul li:before,
#metod-dtl .pop_inner .content_pop ul li:before,
#metod-premium .pop_inner .content_pop ul li:before {
  content: "";
  left: 0;
  height: 6px;
  background: #B18D3E;
  width: 6px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  position: absolute;
  display: block;
  top: 8px;
}

#metod-payment2 .pop_inner .content_pop,
#metod-cc .pop_inner .content_pop {
  padding-bottom: 20px;
}

#metod-payment2 .pop_inner .content_pop .content-payment,
#metod-cc .pop_inner .content_pop .content-payment {
  position: relative;
  padding-bottom: 130px;
}

#metod-payment2 .pop_inner .content_pop .logo-card,
#metod-cc .pop_inner .content_pop .logo-card {
  padding-top: 20px;
  text-align: center;
}

#metod-payment2 .pop_inner .content_pop .logo-card > div,
#metod-cc .pop_inner .content_pop .logo-card > div {
  display: inline-block;
  width: 70px;
  margin: 0 5px;
}

#metod-premium .pop_inner .content_pop {
  overflow: hidden;
  position: relative;
  padding: 40px 25px 100px;
}

#metod-premium .wrp-btn {
  text-align: right;
  margin-bottom: 10px;
}

#metod-premium .wrp-btn .link_dtl {
  font-size: 16px;
  color: #FEA821;
  text-decoration: underline;
}

#metod-premium .payment-btn {
  position: absolute;
  left: 0;
  bottom: 0;
  right: 0;
  background: #F0F1F2;
  padding: 10px 20px;
  z-index: 8;
  display: flex;
}

#metod-premium .payment-btn button {
  margin-left: auto;
}

#metod-premium .payment-btn label {
  margin-bottom: 5px;
  display: block;
  font-size: 16px;
}

#metod-premium .payment-btn h3 {
  font-size: 23px;
  font-weight: bold;
}

.abs-btm {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
}

.abs-btm .btn-rounded {
  display: block;
  margin: 0 0 10px;
  width: auto;
  background: #B18D3E;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
  border: none;
}

.abs-btm .btn-rounded:hover {
  color: #fff;
}

.abs-btm p {
  font-size: 14px;
  color: #5a5a5a;
}

.abs-btm p a {
  color: #0DA41F;
}

#metod-dtl .box-cc {
  margin-bottom: 10px;
}

.switch-premium {
  display: flex;
  align-items: center;
  padding: 15px 30px;
  border: 1px solid #CED3D9;
  border-radius: 10px;
  box-sizing: border-box;
  margin-bottom: 20px;
  box-shadow: 0 3px 20px -15px #000;
}

.switch-premium h5 {
  font-size: 19px;
  font-weight: 600;
  color: #333;
  margin-left: 10px;
  margin-top: 10px;
}

.switch-premium .toggle-switch {
  position: relative;
  display: inline-block;
  margin-left: auto;
  width: 70px;
  height: 40px;
}

.switch-premium .toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch-premium .toggle-switch .slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  border-radius: 30px;
  transition: .4s;
}

.switch-premium .toggle-switch .slider:before {
  content: "";
  position: absolute;
  height: 34px;
  width: 34px;
  left: 5px;
  bottom: 3px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
  border-radius: 50%;
}

.switch-premium .toggle-switch input:checked + .slider {
  background-color: #36C13E;
}

.switch-premium .toggle-switch input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

.box-cc {
  position: relative;
  padding: 30px 30px 0;
  margin-bottom: 50px;
  box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -webkit-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -moz-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -ms-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -o-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  border: 1px solid #DEDEDE;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  position: relative;
}

.box-cc .row {
  border-bottom: 1px solid #dedede;
  padding-bottom: 16px;
  margin-bottom: 20px;
  position: relative;
}

.box-cc .row h4 {
  font-size: 16px;
  line-height: 24px;
  padding-right: 100px;
  font-weight: 500;
}

.box-cc .row .abs {
  position: absolute;
  right: 0;
  top: 0;
}

.box-cc .row label {
  font-size: 16px;
  display: block;
  margin-bottom: 20px;
}

.box-cc .row .ls-radio {
  border-bottom: 1px solid #dedede;
  padding-bottom: 16px;
  margin-bottom: 20px;
}

.box-cc .row .ls-radio .lf {
  float: left;
  position: relative;
  padding-left: 28px;
  max-width: 70%;
}

.box-cc .row .ls-radio .lf input[type="radio"] {
  width: 120px;
  height: 16px;
  position: absolute;
  background: url("../images/material/ck-ijo.png") no-repeat left center;
  left: 0;
  cursor: pointer;
}

.box-cc .row .ls-radio .lf input[type="radio"]:checked {
  background: url("../images/material/ck-ijo2.png") no-repeat left center;
}

.box-cc .row .ls-radio .lf h5 {
  font-size: 16px;
  font-weight: 600;
}

.box-cc .row .ls-radio .lf h5 span {
  display: block;
  font-weight: 300;
  margin-top: 5px;
  font-size: 14px;
  line-height: 16px;
}

.box-cc .row .ls-radio .rh {
  float: right;
  text-align: right;
}

.box-cc .row .ls-radio .rh h4 {
  text-align: right;
  padding-right: 0;
}

.box-cc .row .ls-radio:last-child {
  border: none;
  margin-bottom: 0;
}

.box-cc .row .ls-radio.prod .lf {
  padding-left: 0;
}

.box-cc .row .ls-radio.prod .lf h5 span {
  line-height: 22px;
}

.box-cc .row .ls-radio.prod .rh h4 {
  font-weight: 600;
}

.box-cc .row:last-child {
  border: none;
  margin-bottom: 5px;
}

.scrll-pop {
  max-height: 50vh;
  overflow: auto;
  min-height: 350px;
}

.scrll-pop .mCSB_scrollTools {
  opacity: 1;
}

.scrll-pop .mCSB_inside > .mCSB_container {
  margin-right: 20px;
}

.scrll-pop .mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail, .scrll-pop .mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail, .scrll-pop .mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail {
  background: transparent;
}

.scrll-pop .mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .scrll-pop .mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar, .scrll-pop .mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
  background: #949494;
  margin-top: 24px;
}

.scrll-pop .block {
  margin-bottom: 30px;
}

.scrll-pop .block h4 {
  font-size: 14px;
  margin-bottom: 10px;
}

.scrll-pop .block:last-child {
  margin-bottom: 0;
}

.scrll-pop .list-pay {
  border: 1px solid #DEDEDE;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  position: relative;
  padding: 0 20px;
  box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -webkit-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -moz-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -ms-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -o-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
}

.scrll-pop .list-pay .item {
  display: block;
  padding: 17px 0px;
  border-bottom: 1px solid #cacaca;
  position: relative;
  cursor: pointer;
}

.scrll-pop .list-pay .item:after {
  content: '';
  clear: both;
  display: block;
}

.scrll-pop .list-pay .item img {
  display: block;
  padding-right: 30px;
  width: 77px;
  float: left;
  position: relative;
  z-index: 4;
}

.scrll-pop .list-pay .item h6 {
  display: block;
  margin-left: 110px;
  line-height: 24px;
  position: relative;
  z-index: 4;
}

.scrll-pop .list-pay .item:first-child:before {
  border-radius: 10px 10px 0px 0;
  -webkit-border-radius: 10px 10px 0px 0;
  -moz-border-radius: 10px 10px 0px 0;
  -ms-border-radius: 10px 10px 0px 0;
  -o-border-radius: 10px 10px 0px 0;
}

.scrll-pop .list-pay .item:last-child {
  border-bottom: none;
}

.scrll-pop .list-pay .item:last-child:before {
  border-radius: 0 0 10px 10px;
  -webkit-border-radius: 0 0 10px 10px;
  -moz-border-radius: 0 0 10px 10px;
  -ms-border-radius: 0 0 10px 10px;
  -o-border-radius: 0 0 10px 10px;
}

.scrll-pop .list-pay .item:before {
  content: "";
  left: -20px;
  right: -20px;
  top: 0;
  background: transparent;
  position: absolute;
  z-index: 3;
  bottom: 0;
}

.scrll-pop .list-pay .item:hover {
  border-color: transparent;
}

.scrll-pop .list-pay .item:hover:before {
  background: #EBF3FD;
}

.scrll-pop .list-pay .item.disabled {
  border-color: transparent;
  cursor: default;
}

.scrll-pop .list-pay .item.disabled:before {
  background: #E1E1E1;
}

.box-det {
  position: relative;
  padding: 10px 30px;
  box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -webkit-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -moz-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -ms-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  -o-box-shadow: 0 1px 10px -2px rgba(152, 152, 152, 0.4);
  border: 1px solid #DEDEDE;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  position: relative;
}

.box-det .bx-info {
  position: relative;
  margin-top: 20px;
}

.box-det .bx-info h4 {
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid #dedede;
  padding-right: 100px;
  padding-bottom: 16px;
  margin-bottom: 20px;
  font-weight: 500;
}

.box-det .bx-info .abs {
  position: absolute;
  right: 0;
  top: 0;
}

#ulasan .pop_inner .content_pop {
  width: 760px;
}

#redeem .pop_inner .content_pop {
  margin: 5% auto;
}

#login .pop_inner .content_pop {
  width: 770px;
}

#login .wrap-btn span {
  font-size: 12px;
  color: #333333;
  text-align: center;
  display: block;
  padding: 10px 0;
  font-weight: 500;
}

#login .wrap-btn .fb {
  background: #3b5998;
  border-color: #3b5998;
  margin-top: 0px;
  position: relative;
}

#login .wrap-btn .fb:before {
  content: '';
  position: absolute;
  left: 50px;
  top: 0;
  bottom: 0;
  background: url(../images/material/ic-fb-s.png) no-repeat top;
  width: 8px;
  height: 18px;
  margin: auto 0;
}

#login .wrap-btn .fb:hover {
  borrder-color: #3b5998;
  color: #3b5998;
  background: transparent;
}

#login .wrap-btn .fb:hover:before {
  background-position: bottom;
}

.note-kupon {
  font-size: 11px;
  font-weight: 500;
  text-align: left;
  display: block;
  margin-top: 10px;
  line-height: 16px;
}

.slider-home.new-version {
  padding-top: 20px;
  padding-bottom: 40px;
}

.slider-home.new-version figure {
  float: none;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}

.slider-home.new-version figure img {
  width: 100%;
  object-fit: cover;
  display: block;
  min-height: 160px;
  height: 666px;
  max-height: 666px;
}

.slider-home.new-version figure:after {
  content: '';
  position: absolute;
  inset: 0;
  background: #FFF;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.1) 30%, rgba(0, 0, 0, 0.25) 50%, rgba(0, 0, 0, 0.45) 70%, rgba(0, 0, 0, 0.62) 100%);
  top: auto;
  height: 30%;
}

.slider-home.new-version figure a {
  display: block;
}

.slider-home.new-version .slick-dots {
  left: 0;
  right: 0;
  width: auto;
  display: flex !important;
  justify-content: center;
  top: auto;
  bottom: 14px;
  gap: 0 12px;
}

.slider-home.new-version .slick-dots li {
  flex: none;
  height: 12px;
  padding: 0;
  margin: 0;
}

.slider-home.new-version .slick-dots li:after {
  display: none;
}

.slider-home.new-version .slick-dots li.slick-active button {
  background-color: #B28E3E;
}

.slider-home.new-version .slick-dots li button {
  display: block;
  width: 12px;
  height: 12px;
  background: #E9E9E9;
  border-radius: 50%;
  padding: 0;
  line-height: 1;
  position: relative;
  top: 0;
}

.tiktok-catalog {
  position: relative;
  padding: 0 0 40px;
}

.tiktok-catalog .wrapper {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 30px;
}

.tiktok-catalog .wrapper .iframe-tiktok {
  width: calc(100% - 360px - 30px);
  max-width: 780px;
}

.tiktok-catalog .wrapper .iframe-tiktok iframe {
  width: 100%;
  height: 475px;
  display: block;
}

.tiktok-catalog .wrapper .catalag-wrap {
  width: 360px;
  margin-left: 0;
  position: relative;
}

.tiktok-catalog .wrapper .catalag-wrap figure {
  position: relative;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
}

.tiktok-catalog .wrapper .catalag-wrap figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tiktok-catalog .wrapper .catalag-wrap__text {
  position: absolute;
  top: 0;
  left: 0;
  padding: 40px;
  padding-right: 20px;
  padding-bottom: 0;
}

.tiktok-catalog .wrapper .catalag-wrap__text h3 {
  font-size: 32px;
  text-transform: uppercase;
  color: #111;
  line-height: 115%;
  font-weight: 600;
  margin-bottom: 16px;
}

.tiktok-catalog .wrapper .catalag-wrap__text a {
  font-size: 14px;
  color: #070707;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 0 6px;
  font-weight: 600;
  transition: all 0.3s ease-in-out;
}

.tiktok-catalog .wrapper .catalag-wrap__text a svg {
  width: 24px;
}

.tiktok-catalog .wrapper .catalag-wrap__text a:hover {
  transition: all 0.3s ease-in-out;
  gap: 0 8px;
}

.home.suges-prod .sugprod-slider.rounded .list {
  padding: 0 18px;
  display: block;
}

.home.suges-prod .sugprod-slider.rounded .list figure {
  border-radius: 50%;
  aspect-ratio: 1/1;
  overflow: hidden;
}

.home.suges-prod .sugprod-slider.rounded .list figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: all 0.3s ease-out;
}

.home.suges-prod .sugprod-slider.rounded .list .tittle-slide {
  margin-top: 12px;
}

.home.suges-prod .sugprod-slider.rounded .list:hover figure img {
  transform: scale(1.075);
  transition: all 0.3s ease-out;
}

.home.suges-prod .sugprod-slider .slick-arrow.slick-prev {
  left: -60px;
}

.home.suges-prod .sugprod-slider .slick-arrow.slick-next {
  right: -60px;
}

.wrap-colection.koleksi {
  background: #fff;
}

.wrap-colection.koleksi .slider-koleksi {
  padding-top: 0px;
}

.wrap-colection.koleksi .slider-koleksi .slick-list {
  padding: 0;
}

.wrap-colection.koleksi .slider-koleksi .list {
  padding-bottom: 0;
}

.wrap-colection.koleksi .slider-koleksi .list:hover {
  box-shadow: none;
}

.wrap-colection.koleksi .slider-koleksi .list:hover .box {
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}

.wrap-colection.koleksi .slider-koleksi .list .box {
  display: block;
  padding: 20px 25px;
  height: 100%;
  position: relative;
  padding-bottom: 65px;
  border-radius: 12px;
  overflow: hidden;
}

.wrap-colection.koleksi .slider-koleksi .list .box .btn-cart {
  bottom: 20px;
  white-space: nowrap;
}

.wrap-colection.koleksi .slider-koleksi .slick-arrow.slick-prev {
  left: -60px;
}

.wrap-colection.koleksi .slider-koleksi .slick-arrow.slick-next {
  right: -60px;
}

.wrap-colection__block:last-of-type {
  margin-bottom: 0;
}

.wrap-colection__block .title-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.wrap-colection__block .title-block h3 {
  font-size: 23px;
  color: #333;
  font-weight: 600;
  margin: 0;
}

.wrap-colection__block .title-block a {
  color: #B28E35;
  font-size: 14px;
  text-transform: uppercase;
  font-weight: 600;
  transition: all .25s ease-out;
}

.wrap-colection__block .title-block a:hover {
  transition: all 0.25s ease-out;
  text-decoration: underline;
}

.middle.homepage {
  padding-bottom: 0;
}

.full-box {
  padding: 0 0 40px;
}

.full-box .wrapper {
  position: relative;
}

.full-box figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 300px;
}

.full-box__text {
  width: 375px;
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  top: 45%;
  transform: translateY(-50%);
  text-align: center;
}

.full-box__text h3 {
  font-size: 30px;
  text-transform: uppercase;
  color: #D5A01D;
  line-height: 150%;
  font-weight: 600;
  margin-bottom: 4px;
}

.full-box__text p {
  font-size: 20px;
  line-height: 150%;
  color: #111;
  margin-bottom: 16px;
}

@media all and (max-width: 1280px) {
  .tiktok-catalog .wrapper {
    gap: 0 24px;
  }
  .tiktok-catalog .wrapper .iframe-tiktok {
    width: calc(100% - 294px - 24px);
  }
  .tiktok-catalog .wrapper .catalag-wrap {
    width: 294px;
  }
  .tiktok-catalog .wrapper .catalag-wrap__text {
    padding: 28px 24px;
    padding-bottom: 0;
  }
  .tiktok-catalog .wrapper .catalag-wrap__text h3 {
    font-size: 28px;
  }
  .home.suges-prod .sugprod-slider {
    padding: 0 40px;
    margin: 0;
  }
  .home.suges-prod .sugprod-slider.rounded .list {
    padding: 0 14px;
  }
  .home.suges-prod .sugprod-slider .slick-arrow {
    width: 30px;
    background-size: 100%;
  }
  .home.suges-prod .sugprod-slider .slick-arrow.slick-prev {
    left: 0px;
  }
  .home.suges-prod .sugprod-slider .slick-arrow.slick-next {
    right: 0px;
  }
  .wrap-colection.koleksi .slider-koleksi {
    padding: 0 30px !important;
  }
  .wrap-colection.koleksi .slider-koleksi .slick-arrow {
    width: 30px;
    background-size: 100%;
  }
  .wrap-colection.koleksi .slider-koleksi .slick-arrow.slick-prev {
    left: 0px;
  }
  .wrap-colection.koleksi .slider-koleksi .slick-arrow.slick-next {
    right: 0px;
  }
  .wrap-colection.koleksi .slider-koleksi .list {
    padding: 15px 0 0;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box {
    padding: 20px 20px 4px;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box .btn-cart {
    position: relative;
    left: 0;
    font-size: 11px;
    margin-top: 20px;
  }
  .wrap-colection__block {
    margin-bottom: 20px;
  }
  .wrap-colection__block .title-block h3 {
    font-size: 20px;
  }
  .full-box {
    padding-bottom: 40px;
  }
  .full-box__text {
    width: 280px;
  }
  .full-box__text h3 {
    font-size: 20px;
  }
  .full-box__text p {
    font-size: 16px;
  }
}

@media all and (max-width: 1023px) {
  .wrap-colection.koleksi .slider-koleksi .list {
    padding: 0;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box {
    padding: 20px 16px;
    padding-bottom: 65px;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box .btn-cart {
    position: absolute;
    left: 12px;
    right: 12px;
  }
}

@media all and (max-width: 767px) {
  .tiktok-catalog {
    padding-bottom: 20px;
  }
  .tiktok-catalog .wrapper .iframe-tiktok {
    width: 100%;
    margin-bottom: 24px;
  }
  .tiktok-catalog .wrapper .iframe-tiktok iframe {
    height: 505px;
  }
  .tiktok-catalog .wrapper .catalag-wrap {
    width: 100%;
  }
  .tiktok-catalog .wrapper .catalag-wrap__text {
    padding: 28px 24px;
    padding-bottom: 0;
  }
  .tiktok-catalog .wrapper .catalag-wrap__text h3 {
    font-size: 24px;
  }
  .full-box__text h3 {
    font-size: 16px;
  }
  .full-box__text p {
    font-size: 13px;
  }
  .full-box figure img {
    min-height: 200px;
  }
  .wrap-colection.koleksi .slider-koleksi {
    padding: 0 16px !important;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box {
    padding: 16px 8px;
    padding-bottom: 65px;
  }
  .home.koleksi .slider-koleksi .slick-arrow {
    width: 24px !important;
  }
  .home.koleksi .slider-koleksi .slick-arrow.slick-prev {
    left: -8px !important;
  }
  .home.koleksi .slider-koleksi .slick-arrow.slick-next {
    right: -8px !important;
  }
  .home.suges-prod .sugprod-slider.rounded {
    padding: 12px 16px 0;
  }
  .home.suges-prod .sugprod-slider.rounded .list {
    padding: 0 8px;
  }
  .home.suges-prod .sugprod-slider.rounded .slick-arrow {
    width: 24px !important;
  }
  .home.suges-prod .sugprod-slider.rounded .slick-arrow.slick-prev {
    left: -8px !important;
  }
  .home.suges-prod .sugprod-slider.rounded .slick-arrow.slick-next {
    right: -8px !important;
  }
}

@media all and (max-width: 600px) {
  .tiktok-catalog .wrapper .iframe-tiktok iframe {
    height: 390px;
  }
  .tiktok-catalog .wrapper .catalag-wrap figure img {
    max-height: 200px;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box .btn-cart {
    font-size: 0;
    padding: 0 10px;
  }
  .wrap-colection.koleksi .slider-koleksi .list .box .btn-cart:before {
    left: 0;
    right: 0;
    margin: 9px auto;
    top: 0;
    width: 20px;
  }
  .wrap-colection.koleksi .slider-koleksi .descp p {
    font-size: 13px;
  }
}

@media all and (max-width: 415px) {
  .tiktok-catalog .wrapper .iframe-tiktok iframe {
    height: 390px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUyLmNzcyIsInNvdXJjZXMiOlsic3R5bGUyLnNjc3MiLCJzYXNzLWxpYi5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBIYXJsYW5cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbkBpbXBvcnQgXCJzYXNzLWxpYlwiO1xyXG5cclxuLyogc3RydWN0dXJlXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5zZWN0aW9uIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcbi53cmFwcGVyIHt3aWR0aDogMTM3MHB4O21hcmdpbjogMCBhdXRvO31cclxuLmFmdGVyX2NsZWFyOmFmdGVyLC53cmFwcGVyOmFmdGVyLHNlY3Rpb246YWZ0ZXJ7Y2xlYXI6Ym90aDtkaXNwbGF5OiBibG9jaztjb250ZW50OlwiIFwifVxyXG5cclxuLmJ0bi1ibHVle31cclxuLmJ0bi1jYXJ0e1xyXG4gICAgY29sb3I6ICNmZWE4MjE7IGJvcmRlcjogMXB4IHNvbGlkICNmZWE4MjE7IGxpbmUtaGVpZ2h0OiAzNXB4OyBmb250LXNpemU6IDExcHg7IHBhZGRpbmc6IDAgMjBweCAwIDQ1cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OiA2MDA7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICAgIGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IGxlZnQ6IDE1cHg7ICBtYXJnaW46IGF1dG8gMDsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9pYy1jYXJ0LXNwbHQucG5nKW5vLXJlcGVhdCB0b3A7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMTZweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJvcmRlclJhZGl1cygyMHB4KTtcclxuICAgICY6aG92ZXJ7XHJcbiAgICAgICAgIGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAjZmVhODIxOyBAaW5jbHVkZSB0cmFuc2l0aW9uKC4ycyBhbGwgZWFzZS1vdXQpO1xyXG4gICAgICAgICAmOmJlZm9yZXsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IEBpbmNsdWRlIHRyYW5zaXRpb24oLjRzIGFsbCBlYXNlLW91dCk7ICB9XHJcbiAgICB9XHJcbn1cclxuLmJ0bi1kb3dubG9hZHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICRjLW9yZzsgZm9udC13ZWlnaHQ6IDUwMDsgcGFkZGluZy1sZWZ0OiAzMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGxpbmUtaGVpZ2h0OiAyNXB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgICBjb250ZW50OicnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgYm90dG9tOiAwOyB3aWR0aDogMjNweDsgaGVpZ2h0OiAyMXB4OyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWRvd25sb2FkLnBuZyluby1yZXBlYXQgY2VudGVyO1xyXG4gICAgfVxyXG59XHJcblxyXG4uYnRuLWFycntcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiAkYy1vcmc7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgcGFkZGluZy1yaWdodDogMzBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjphZnRlcnsgY29udGVudDonJzsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9tYXRlcmlhbC9hcnItb3JnLXMucG5nKW5vLXJlcGVhdCBjZW50ZXI7IHdpZHRoOjE2cHg7IGhlaWdodDogMTRweDsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgdG9wOiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvIDA7IEBpbmNsdWRlIHRyYW5zaXRpb24oLjJzIGFsbCBlYXNlLW91dCk7XHJcbiAgICAgfVxyXG4gICAgICY6aG92ZXJ7XHJcbiAgICAgICAgIGNvbG9yOiAkYy1vcmc7XHJcbiAgICAgICAgICY6YWZ0ZXJ7IHJpZ2h0Oi01cHg7IEBpbmNsdWRlIHRyYW5zaXRpb24oLjJzIGFsbCBlYXNlLW91dCk7IH1cclxuICAgICB9XHJcbiAgICAgJi53aHR7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgJjphZnRlcntcclxuICAgICAgICAgICAgYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2Fyci13aHQtcy5wbmcpbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgfVxyXG59XHJcbi5idG4tZWRpdHtcclxuICAgIGZvbnQtc2l6ZToxNHB4O3Bvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1sZWZ0OiAyMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGNvbG9yOiAjNjg2ODY4OyBsaW5lLWhlaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICBjb250ZW50OicnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgYm90dG9tOiAwOyB3aWR0aDoxNnB4OyBoZWlnaHQ6IDE2cHg7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvaWMtZWRpdC5wbmcpbm8tcmVwZWF0IGNlbnRlcjtcclxuICAgICAgfVxyXG59XHJcbi5idG4tcm91bmRlZHtcclxuICAgICBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiNmZWE4MjE7IHBhZGRpbmc6IDAgNDBweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyBib3JkZXI6MXB4IHNvbGlkICNmZWE4MjE7IEBpbmNsdWRlIGJvcmRlclJhZGl1cygyMHB4KTsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1sZWZ0OiAxMDBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKC4ycyBhbGwgZWFzZS1vdXQpO1xyXG4gICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGNvbG9yOiAjZmVhODIxOyBAaW5jbHVkZSB0cmFuc2l0aW9uKC4ycyBhbGwgZWFzZS1vdXQpO1xyXG4gICAgICAgIH1cclxuICAgICYucG9wIHttYXJnaW46IC01cHggMCAwIDIwcHg7fVxyXG59XHJcbi5hZGQtYWRkcnN7XHJcbiAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICRjLW9yZzsgcGFkZGluZzogMCAyMHB4IDAgNDVweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyBib3JkZXI6MXB4IHNvbGlkICRjLW9yZzsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDIwcHgpOyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IEBpbmNsdWRlIHRyYW5zaXRpb24oLjJzIGFsbCBlYXNlLW91dCk7XHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6MThweDsgaGVpZ2h0OiAxOHB4OyBsZWZ0OiAyMHB4OyB0b3A6IDA7IGJvdHRvbTogMDsgbWFyZ2luOiBhdXRvIDA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvaWMtYWRkLnBuZyluby1yZXBlYXQgY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZDNhOTQxOyBjb2xvcjojZmZmOyBAaW5jbHVkZSB0cmFuc2l0aW9uKC4ycyBhbGwgZWFzZS1vdXQpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICNkM2E5NDE7XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG4uZmxleC1saXN0IHtkaXNwbGF5OiAtd2Via2l0LWJveDtkaXNwbGF5OiAtbW96LWJveDtkaXNwbGF5OiAtbXMtZmxleGJveDtkaXNwbGF5OiAtd2Via2l0LWZsZXg7ZGlzcGxheTogZmxleDstd2Via2l0LWZsZXgtZmxvdzogcm93IHdyYXA7fVxyXG5cclxuLyogaGVhZGVyXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5oZWFkZXIge1xyXG4gICAgLmJvdCB7XHJcbiAgICAgICAgLmRyb3BfY2FydCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7IHBvc2l0aW9uOiBmaXhlZDsgcmlnaHQ6IC00MjBweDsgdG9wOiAxNDVweDsgYm90dG9tOiAwO3BhZGRpbmc6IDIwcHg7IHdpZHRoOiA0MjBweDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBsZWZ0OiBhdXRvOyB6LWluZGV4OiA5OTtcclxuICAgICAgICAgICAgJi5lbXB0eXtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNDQ1cHg7XHJcbiAgICAgICAgICAgICAgICAubHNfZW1wdHl7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgICAgICAgICAgICAgICAubHNfY2FydHsgZGlzcGxheTogbm9uZTsgfVxyXG4gICAgICAgICAgICAgICAgLmJ0bl9hYnN7IGRpc3BsYXk6IG5vbmU7IH1cclxuICAgICAgICAgICAgICAgIC5jYXJ0X3RvdHsgZGlzcGxheTogbm9uZTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sc19jYXJ0IHtcclxuICAgICAgICAgICAgaGVpZ2h0OiA1NzBweDsgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgICAgICAgIC5scyB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjVweDsgbWFyZ2luLWJvdHRvbTogMjVweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge2NvbnRlbnQ6XCJcIjtkaXNwbGF5OiBibG9jazsgY2xlYXI6IGJvdGg7fVxyXG4gICAgICAgICAgICAgICAgLmltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDExMHB4O2JvcmRlcjogMXB4IHNvbGlkICNkZGQ7IGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7d2lkdGg6IDEwMCU7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmRlc2Mge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMzBweDsgcGFkZGluZy1yaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICBoNiB7Zm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNzAwOyBtYXJnaW4tYm90dG9tOiA4cHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIHAge2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDIwcHg7fVxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7dGV4dC1hbGlnbjogcmlnaHQ7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmRlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4OyByaWdodDogLTEwcHg7IHRvcDogLTJweDtcclxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyLCAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDNweDsgYmFja2dyb3VuZDogI2Q3ZDdkNzsgZGlzcGxheTogYmxvY2s7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTsgdG9wOiAxMnB4OyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7IHJpZ2h0OiAwOyBtYXJnaW46IGF1dG87IEBpbmNsdWRlIGJvcmRlclJhZGl1cygycHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7IEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTQ1ZGVnKSl9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxzX2VtcHR5e1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIGZpZ3VyZXtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7IGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGg2eyBmb250LXNpemU6IDE5cHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiAjMzMzOyBsaW5lLWhlaWdodDogMjJweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgIH1cclxuICAgICAgICAgICAgcHsgZm9udC1zaXplOjE2cHg7IGNvbG9yOiAjYTJhMmEyOyAgbGluZS1oZWlnaHQ6IDE5cHg7IH1cclxuICAgICAgICAgICAgLndyYXAtYWJze1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMjBweDsgbGVmdDogMjBweDsgYm90dG9tOiA1JTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYnRuLXJvdW5kZWR7IG1hcmdpbi1sZWZ0OiAwOyB3aWR0aDogMTAwJTsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FydF90b3Qge1xyXG4gICAgICAgICAgICB0YWJsZSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7dGV4dC1hbGlnbjogcmlnaHQ7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG5fYWJzIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAzMHB4OyByaWdodDogMzBweDsgYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICAuYnRuLXJvdW5kZWQge21hcmdpbi1sZWZ0OiAwOyB3aWR0aDogMTAwJTt0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgICAgICAgICBhLmJrIHtjb2xvcjogI2FkYWRhZDsgZGlzcGxheTogYmxvY2s7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogMjBweDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuLm92ZXJsYXktY2FydHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMDsgcmlnaHQ6IDA7IHRvcDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IHotaW5kZXg6IDU7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTsgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyogbWlkZGxlXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4ubmF2X2NhcnQge1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwOyByaWdodDogMDsgdG9wOiA3NXB4OyBiYWNrZ3JvdW5kOiAjZjZmNmY2O3otaW5kZXg6IDU7XHJcbiAgICB1bHtcclxuICAgICAgICBAZXh0ZW5kIC5mbGV4LWxpc3Q7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB3aWR0aDogMTAwJTtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBzdGVwLWNvdW50ZXI7Zm9udC1zaXplOiAxNHB4OyBjb2xvcjogI2I5YjliOTsgbGluZS1oZWlnaHQ6IDI0cHg7IG1pbi13aWR0aDogMjkwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMjJweCAwOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKHN0ZXAtY291bnRlcik7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgYm9yZGVyOiAxcHggc29saWQgI2I5YjliOTsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDUwJSk7IG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7fVxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGR7IGJvcmRlci1yaWdodDogMDsgfVxyXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTFlMWUxOyBjb2xvcjogIzMzMzsgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLm9re1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmV7ICBjb250ZW50OiAnJzsgYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2ljLW9rLnBuZyluby1yZXBlYXQgY2VudGVyOyBib3JkZXItY29sb3I6ICRjLW9yZzsgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAudm1vYmlsZXtkaXNwbGF5OiBub25lO31cclxufVxyXG4ubWlkZGxlIHtcclxuICAgICYuY2FydCB7cGFkZGluZy10b3A6IDE0NXB4O31cclxufVxyXG5cclxuLm1haW5fd3JhcCB7XHJcbiAgICBwYWRkaW5nLXRvcDogNjBweDtcclxuICAgIC5sZl93cmFwIHt3aWR0aDogNjEuNjclOyBmbG9hdDogbGVmdDt9XHJcbiAgICAucmhfd3JhcCB7d2lkdGg6IDI3JTsgbWluLXdpZHRoOiAzNTBweDsgZmxvYXQ6IHJpZ2h0O31cclxuICAgIC50aXR0bGUtc3ViIHttYXJnaW4tYm90dG9tOiAyMnB4O31cclxuICAgIC5ibG9jayB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgcGFkZGluZzogMTBweCAxNXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VmZWZlZjsgQGV4dGVuZCAuZmxleC1saXN0OyBAaW5jbHVkZSBib3hTaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgICAgICAgIGxhYmVsIHtmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzMzMzsgbGluZS1oZWlnaHQ6IDMwcHg7IHdpZHRoOiAxNTBweDsgZm9udC1zaXplOiAxNHB4O31cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtib3JkZXI6IG5vbmU7fVxyXG4gICAgICAgICAgICAuaW5wX2ZpZWxkIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvOyB3aWR0aDogNzAlO1xyXG4gICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0saW5wdXRbdHlwZT1cImVtYWlsXCJdLGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdCB7Zm9udC1zaXplOiAxNHB4OyBwYWRkaW5nOiA4cHggMTJweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBib3JkZXI6IG5vbmU7IHdpZHRoOiAxMDAlO31cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVye2NvbG9yOiAjOTE5MTkxOyBmb250LXN0eWxlOiBpdGFsaWM7ICB9XHJcbiAgICAgICAgICAgICAgICBzZWxlY3Qge3dpZHRoOiBhdXRvOyBwYWRkaW5nLXJpZ2h0OiAzMHB4OyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9hcnItZHduLnBuZycpIG5vLXJlcGVhdCA5NSUgY2VudGVyOyBtaW4td2lkdGg6IDEyMHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAub3B0e1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6MTRweDsgY29sb3I6ICM2ODY4Njg7IGZvbnQtd2VpZ2h0OiA1MDA7IHBhZGRpbmctbGVmdDogMjBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBsaW5lLWhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7ICB9XHJcbiAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPSdyYWRpbydde1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvaWMtcmFkaW8ucG5nKW5vLXJlcGVhdCBsZWZ0OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG8gMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNXB4OyBjdXJzb3I6IHBvaW50ZXI7IHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpjaGVja2Vke1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2ljLXJhZGlvLWNoay5wbmcpbm8tcmVwZWF0IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYudG90YWwge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzkzOTM5MztcclxuICAgICAgICAgICAgICAgIGxhYmVsIHtjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAgICAgICAgICAgICAuaW5wX2ZpZWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXTpkaXNhYmxlZCB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDVweCAxMHB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmJ0biB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA1MHB4OyBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIC5idG4tcm91bmRlZHtmbG9hdDogcmlnaHQ7IG1pbi13aWR0aDogMjAwcHg7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYubm9tYXJneyBtYXJnaW4tYm90dG9tOiAwOyB9XHJcbiAgICAgICAgJi5ub25leyBkaXNwbGF5OiBub25lOyB9XHJcbiAgICAgICAgICYubWFyZ2luMntcclxuICAgICAgICAgICAgbWFyZ2luOiAzNXB4IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJveCB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweCAyMHB4IDI1cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgIC5lZGl0X2FkZHJzIHtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjBweDsgcmlnaHQ6IDIwcHg7fVxyXG4gICAgICAgICYuZ3JleSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYubm9uZXsgZGlzcGxheTogbm9uZTsgfVxyXG4gICAgICAgICYuYm9yZGVye1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICNkOWQ5ZDk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYubWluaGVpZ2h0eyBtaW4taGVpZ2h0OiAxMDBweDsgfVxyXG5cclxuICAgIH1cclxuICAgIC5zaGRvdyB7QGluY2x1ZGUgYm94U2hhZG93KDAgMCAxMHB4IC0ycHggcmdiYSgwLDAsMCwwLjE1KSk7IEBpbmNsdWRlIGJvcmRlclJhZGl1cygzcHgpO31cclxuICAgIC50eHQge1xyXG4gICAgICAgIGg0IHtjb2xvcjogJGMtb3JnOyBmb250LXdlaWdodDogNzAwOyBtYXJnaW4tYm90dG9tOiAyMHB4OyBmb250LXNpemU6IDE2cHg7fVxyXG4gICAgICAgIGg2IHtmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjNTU1OyBtYXJnaW4tYm90dG9tOiA2cHg7fVxyXG4gICAgICAgIHAge21heC13aWR0aDogMzUwcHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IG1hcmdpbjogMDt9XHJcbiAgICB9XHJcbiAgICAuZWRpdF9hZGRycyB7Zm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICM2ODY4Njg7IGZvbnQtc2l6ZTogMTRweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAxNXB4IDE1cHggMTVweCA0MHB4OyBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxOyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1lZGl0LnBuZycpIG5vLXJlcGVhdCAgMThweCBjZW50ZXI7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1cHgpO31cclxuICAgIC5ib3hfcmgge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7IHBhZGRpbmc6IDMwcHggMjBweDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDVweCk7XHJcbiAgICAgICAgaDUge2ZvbnQtc2l6ZTogMTZweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6IDUwMDsgcGFkZGluZy1ib3R0b206IDEycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGVkZWRlOyBtYXJnaW4tYm90dG9tOiAxNXB4O31cclxuICAgICAgICB0YWJsZSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDE1cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZWRlZGU7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7dGV4dC1hbGlnbjogcmlnaHQ7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5TaGlwcGluZyB7XHJcbiAgICAgICAgICAgICAgICB0ZCB7Y29sb3I6ICM5MTkxOTE7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jbG9zZSB7d2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7fVxyXG4gICAgICAgICAgICBoNiB7dGV4dC1hbGlnbjogbGVmdDsgbWFyZ2luOiAxMHB4IDAgMjBweDsgZm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAgICAgICAgIGZvcm0ge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIGlucHV0IHt3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogI2ZmZjtAaW5jbHVkZSBib3JkZXJSYWRpdXMoNXB4KTsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBib3JkZXI6IG5vbmU7IGZvbnQtc2l6ZTogMTRweDsgcGFkZGluZy1yaWdodDogMTEwcHg7fVxyXG4gICAgICAgICAgICAgICAgYnV0dG9uIHtwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IGF1dG87IHRvcDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgYm9yZGVyOiBub25lO3BhZGRpbmc6IDAgMjBweDsgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMTNweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6IDYwMDsgYmFja2dyb3VuZDogJGMtb3JnOyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMCA0cHggNHB4IDApOyBjdXJzb3I6IHBvaW50ZXI7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRyOmxhc3QtY2hpbGQgdGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7Zm9udC1zaXplOiAxOHB4O31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYnRuLXJvdW5kZWR7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OiAwOyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmFkZHJlcy1yZWNpdntcclxuICAgICAgICBoNSB7Zm9udC1zaXplOiAxNnB4OyAgZm9udC13ZWlnaHQ6IDUwMDsgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxyXG4gICAgICAgIHB7IGZvbnQtc2l6ZToxNnB4OyBjb2xvcjogIzU1NTsgZm9udC13ZWlnaHQ6IDUwMDsgIH1cclxuICAgICAgICAub3JneyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiAkYy1vcmc7IGRpc3BsYXk6IGJsb2NrOyAgbWFyZ2luLWJvdHRvbTogMTVweDsgZm9udC13ZWlnaHQ6IDUwMDt9XHJcbiAgICAgICAgaHJ7IGNvbG9yOiNjY2M7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgICAgICAgLmJveC1ze1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGR7Ym9yZGVyOiBub25lO31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ibG9ja19hZGRycyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IEBpbmNsdWRlIGJveFNoYWRvdyg1cHggMHB4IDFweCAwcHggcmdiYSgwLDAsMCwwLjA1MCkpO1xyXG4gICAgLmNvbCB7XHJcbiAgICAgICAgcGFkZGluZzogMTVweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IEBpbmNsdWRlIGJveFNoYWRvdygwIDAgMTVweCAtMnB4IHJnYmEoMCwwLDAsMC4xKSk7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAuY2tfcmRpbyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTVweDtcclxuICAgICAgICAgICAgaW5wdXQge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtcmFkaW8ucG5nJykgbm8tcmVwZWF0O3BhZGRpbmc6IDA7IGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCB7YmFja2dyb3VuZDp1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9pYy1yYWRpby1jaGsucG5nJykgbm8tcmVwZWF0Ozt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnR4dF9hZGRycyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgICAgICAgaDYge2NvbG9yOiAkYy1vcmc7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDUwMDsgbWFyZ2luLWJvdHRvbTogMTVweDt9XHJcbiAgICAgICAgICAgIHAge21hcmdpbi1ib3R0b206IDA7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDI0cHg7IG1heC13aWR0aDogNDUlOyBjb2xvcjogIzU1NTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5lZGl0IHtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTVweDsgcmlnaHQ6IDM1cHg7IHBhZGRpbmctbGVmdDogMjJweDsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvaWMtZWRpdC5wbmcnKSBuby1yZXBlYXQgbGVmdCB0b3A7IGxpbmUtaGVpZ2h0OiAxOHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzU1NTt9XHJcbiAgICB9XHJcbiAgICArIC5ibG9rX2J0biB7bWFyZ2luLXRvcDogNDBweDt9XHJcbn1cclxuLmJsb2tfYnRuIHtcclxuICAgIC5idG4tcm91bmRlZCB7bWFyZ2luLWxlZnQ6IDA7IGxpbmUtaGVpZ2h0OiAzOHB4O31cclxuICAgICY6YWZ0ZXIge2NvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDt9XHJcbn1cclxuXHJcbi5mb3JtX2FkZHJzIHtcclxuICAgIC5yb3cge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkZGRkOyBtYXJnaW4tYm90dG9tOiAwOyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgLmNvbCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTJweDsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBib3JkZXItcmlnaHQ6IDFweCAgc29saWQgI2RkZGRkZDsgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7Ym9yZGVyLXJpZ2h0OiBub25lO31cclxuICAgICAgICAgICAgJjphZnRlciB7ZGlzcGxheTogYmxvY2s7IGNvbnRlbnQ6IFwiXCI7IGNsZWFyOiBib3RoO31cclxuICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzMzMztmbG9hdDogbGVmdDsgd2lkdGg6IDE1MHB4OyBsaW5lLWhlaWdodDogNTBweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge3RvcDogMDsgZGlzcGxheTogbm9uZTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmlucF9maWVsZCB7bWFyZ2luLWxlZnQ6IDE2MHB4O31cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0saW5wdXRbdHlwZT1cImVtYWlsXCJdLGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXHJcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgc2VsZWN0LCB0ZXh0YXJlYSB7IGJvcmRlcjogbm9uZTsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDE1cHggMTJweDsgaGVpZ2h0OiA1MHB4OyBmb250LXNpemU6IDE2cHg7fVxyXG4gICAgICAgICAgICAmLmNvbDUge3dpZHRoOiA1MCU7fVxyXG4gICAgICAgICAgICB0ZXh0YXJlYSB7aGVpZ2h0OiAxMDBweDsgcmVzaXplOiBub25lO31cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbTogbm9uZTt9XHJcbiAgICB9XHJcbiAgICAuYmxva19idG4ge21hcmdpbi10b3A6IDMwcHg7fVxyXG4gICAgLnNoZG93IHtAaW5jbHVkZSBib3hTaGFkb3coMCAwIDEycHggLTJweCByZ2JhKDAsMCwwLDAuMTUpKTsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDNweCk7fVxyXG4gICAgJi51bGFzIHtcclxuICAgICAgICAucm93IHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lOyBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAuY29sIHtcclxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLGlucHV0W3R5cGU9XCJlbWFpbFwiXSxpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4gICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLCBzZWxlY3QsIHRleHRhcmVhICB7Ym9yZGVyOiAxcHggc29saWQgI2RkZDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmJsb2tfYnRuIHttYXJnaW4tbGVmdDogMTcwcHg7fVxyXG4gICAgfVxyXG4gICAgJi5ib3JkZXJ7XHJcbiAgICAgICAgLnJvd3tcclxuICAgICAgICAgICAgLmNvbHtcclxuICAgICAgICAgICAgICAgIGxhYmVse1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDA7IGJvdHRvbTogMDsgd2lkdGg6IDFweDsgYmFja2dyb3VuZDogI2RkZDsgaGVpZ2h0OiA0MCU7IG1hcmdpbjogYXV0byAwOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuLyogLS0tLS0tICBwb3B1cCBzdHlsZSAgLS0tLS0tLSAqL1xyXG5cclxuLndyYXBfcG9wIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDsgaGVpZ2h0OiAxMDAlOyB0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjkpOyB6LWluZGV4OiA5OTk5OTk5OyBkaXNwbGF5OiBub25lOyBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgLnBvcF9pbm5lciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiB0YWJsZTsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcclxuICAgICAgICAub3ZlcmxheV9wb3Age3Bvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IHRvcDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87IHotaW5kZXg6IDc7fVxyXG4gICAgICAgIC5ib3hfcG9wIHtkaXNwbGF5OiB0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO31cclxuICAgICAgICAuY2xvc2Uge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IHJpZ2h0OiAxNXB4OyB0b3A6IDE1cHg7IHotaW5kZXg6IDEwO1xyXG4gICAgICAgICAgICAmOmFmdGVyLCAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OicnOyB3aWR0aDogMTdweDsgaGVpZ2h0OiAzcHg7IGJhY2tncm91bmQ6ICNkN2Q3ZDc7IGRpc3BsYXk6IGJsb2NrOyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7IHRvcDogMTJweDsgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDsgcmlnaHQ6IDA7IG1hcmdpbjogYXV0bzsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDJweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpiZWZvcmUgeyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC00NWRlZykpfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGVudF9wb3Age1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB3aWR0aDogOTAwcHg7IG1hcmdpbjogMTAlIGF1dG87IHBhZGRpbmc6IDMwcHggMjVweDsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDApOyBwb3NpdGlvbjogcmVsYXRpdmU7ei1pbmRleDogODtcclxuICAgICAgICAgICAgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYjaW5mby1naWZ0e1xyXG4gICAgICAgIC5wb3BfaW5uZXJ7XHJcbiAgICAgICAgICAgIC5jb250ZW50X3BvcHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA4MDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuZ2lmdC1wb3B7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgIGZpZ3VyZXtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAxMzVweDtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTM1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBjYWxjKDEwMCUgLSAxMzVweCk7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDEzNXB4KTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcclxuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcclxuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiNtZXRvZC1wYXltZW50LFxyXG4jbWV0b2QtcGF5bWVudDIsXHJcbiNtZXRvZC1jYyxcclxuI21ldG9kLWR0bCxcclxuI21ldG9kLXByZW1pdW0ge1xyXG4gICAgLnBvcF9pbm5lciAuY29udGVudF9wb3Age1xyXG4gICAgICAgIHdpZHRoOiA2MzVweDsgcGFkZGluZzogNDBweCAyNXB4OyBAaW5jbHVkZSBib3JkZXJSYWRpdXMoMTVweCk7IG1hcmdpbjogNSUgYXV0bztcclxuICAgICAgICAudG9wX3BvcCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgICAgICAgICAgbGFiZWwge2Rpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjNTU1OyBtYXJnaW4tYm90dG9tOiA3cHg7fVxyXG4gICAgICAgICAgICBoMyB7Zm9udC1zaXplOiAyOXB4OyBjb2xvcjogIzMzMzsgZm9udC13ZWlnaHQ6IDcwMDt9XHJcbiAgICAgICAgICAgIC5saW5rX2R0bCB7Zm9udC1zaXplOiAxNnB4OyBjb2xvcjogI0ZFQTgyMTsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMDsgYm90dG9tOiAwOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4OyBjb2xvcjogIzVhNWE1YTsgbGluZS1oZWlnaHQ6IDIycHg7IG1hcmdpbi1ib3R0b206IDE1cHg7IHBhZGRpbmctbGVmdDogMjVweDsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6XCJcIjsgbGVmdDogMDsgaGVpZ2h0OiA2cHg7IGJhY2tncm91bmQ6ICNCMThEM0U7IHdpZHRoOiA2cHg7IEBpbmNsdWRlIGJvcmRlclJhZGl1cyg1MCUpOyBwb3NpdGlvbjogYWJzb2x1dGU7IGRpc3BsYXk6IGJsb2NrOyB0b3A6IDhweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4jbWV0b2QtcGF5bWVudDIsXHJcbiNtZXRvZC1jYyB7XHJcbiAgICAucG9wX2lubmVyIC5jb250ZW50X3BvcCB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgLmNvbnRlbnQtcGF5bWVudCB7cG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nLWJvdHRvbTogMTMwcHg7fVxyXG4gICAgICAgIC5sb2dvLWNhcmQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICA+IGRpdiB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNzBweDsgbWFyZ2luOiAwIDVweDt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiNtZXRvZC1wcmVtaXVte1xyXG4gICAgLnBvcF9pbm5lciAuY29udGVudF9wb3B7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgcGFkZGluZzogNDBweCAyNXB4IDEwMHB4O1xyXG4gICAgfVxyXG4gICAgLndycC1idG57XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAubGlua19kdGwge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7IGNvbG9yOiAjRkVBODIxOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucGF5bWVudC1idG57XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNGMEYxRjI7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgICAgIHotaW5kZXg6IDg7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBidXR0b257XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYWJlbHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBoM3tcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmFicy1idG0ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAuYnRuLXJvdW5kZWQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgMCAxMHB4OyB3aWR0aDogYXV0bzsgYmFja2dyb3VuZDogI0IxOEQzRTsgQGluY2x1ZGUgYm9yZGVyUmFkaXVzKDZweCk7IGJvcmRlcjogbm9uZTtcclxuICAgICAgICAmOmhvdmVyIHtjb2xvcjogI2ZmZjt9XHJcbiAgICB9XHJcbiAgICBwIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjNWE1YTVhO1xyXG4gICAgICAgIGEge2NvbG9yOiAjMERBNDFGO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgfVxyXG59XHJcbiNtZXRvZC1kdGwge1xyXG4gICAgLmJveC1jYyB7bWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbn1cclxuLnN3aXRjaC1wcmVtaXVte1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0VEM0Q5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAzcHggMjBweCAtMTVweCAjMDAwO1xyXG4gICAgaDV7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOXB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIH1cclxuICAgIC50b2dnbGUtc3dpdGNoe1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgd2lkdGg6IDcwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIGlucHV0e1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc2xpZGVye1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xyXG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjRzO1xyXG4gICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzRweDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDVweDtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogM3B4O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IC40cztcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IzM2QzEzRTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XHJcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcclxuICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5ib3gtY2Mge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAzMHB4IDMwcHggMDsgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICAgIEBpbmNsdWRlIGJveFNoYWRvdygwIDFweCAxMHB4IC0ycHggcmdiYSgxNTIsMTUyLDE1MiwwLjQpKTtib3JkZXI6IDFweCBzb2xpZCAjREVERURFO0BpbmNsdWRlIGJvcmRlclJhZGl1cygxMHB4KTsgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLnJvdyB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZWRlZGU7IHBhZGRpbmctYm90dG9tOiAxNnB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgaDQge2ZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IHBhZGRpbmctcmlnaHQ6IDEwMHB4OyBmb250LXdlaWdodDogNTAwO31cclxuICAgICAgICAuYWJzIHtwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDA7fVxyXG4gICAgICAgIGxhYmVsIHtmb250LXNpemU6IDE2cHg7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAyMHB4O31cclxuICAgICAgICAubHMtcmFkaW8ge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZGVkZTsgcGFkZGluZy1ib3R0b206IDE2cHg7IG1hcmdpbi1ib3R0b206IDIwcHg7IEBleHRlbmQgLmFmdGVyX2NsZWFyO1xyXG4gICAgICAgICAgICAubGYge1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1sZWZ0OiAyOHB4OyBtYXgtd2lkdGg6IDcwJTtcclxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDE2cHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvY2staWpvLnBuZycpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjsgbGVmdDogMDsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICY6Y2hlY2tlZCB7YmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvY2staWpvMi5wbmcnKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDUge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IDMwMDsgbWFyZ2luLXRvcDogNXB4OyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxNnB4O31cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAucmgge1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgIGg0IHt0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtib3JkZXI6IG5vbmU7IG1hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgICAgICAgICAmLnByb2Qge1xyXG4gICAgICAgICAgICAgICAgLmxmIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaDUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtsaW5lLWhlaWdodDogMjJweDt9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnJoIHtcclxuICAgICAgICAgICAgICAgICAgICBoNCB7Zm9udC13ZWlnaHQ6IDYwMDt9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtib3JkZXI6IG5vbmU7IG1hcmdpbi1ib3R0b206IDVweDt9XHJcbiAgICB9XHJcbn1cclxuLnNjcmxsLXBvcHtcclxuICAgIG1heC1oZWlnaHQ6IDUwdmg7IG92ZXJmbG93OiBhdXRvOyBtaW4taGVpZ2h0OiAzNTBweDtcclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIHtvcGFjaXR5OiAxO31cclxuICAgIC5tQ1NCX2luc2lkZSA+IC5tQ1NCX2NvbnRhaW5lciB7bWFyZ2luLXJpZ2h0OiAyMHB4O31cclxuICAgIC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLCAubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLCAubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsIHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDt9XHJcbiAgICAubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLCAubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsIC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciB7YmFja2dyb3VuZDojOTQ5NDk0OyBtYXJnaW4tdG9wOiAyNHB4O31cclxuICAgIC5ibG9jayB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICBoNCB7Zm9udC1zaXplOiAxNHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4O31cclxuICAgICAgICAmOmxhc3QtY2hpbGQge21hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgfVxyXG4gICAgLmxpc3QtcGF5IHtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjREVERURFO0BpbmNsdWRlIGJvcmRlclJhZGl1cygxMHB4KTsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAwIDIwcHg7QGluY2x1ZGUgYm94U2hhZG93KDAgMXB4IDEwcHggLTJweCByZ2JhKDE1MiwxNTIsMTUyLDAuNCkpO1xyXG4gICAgICAgIC5pdGVtIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IEBpbmNsdWRlIGFmdGVyY2xlYXI7IHBhZGRpbmc6IDE3cHggMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTsgcG9zaXRpb246IHJlbGF0aXZlOyBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIGltZyB7ZGlzcGxheTpibG9jaztwYWRkaW5nLXJpZ2h0OiAzMHB4OyB3aWR0aDogNzdweDsgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTt6LWluZGV4OiA0O31cclxuICAgICAgICAgICAgaDYge2Rpc3BsYXk6IGJsb2NrOyBtYXJnaW4tbGVmdDogMTEwcHg7IGxpbmUtaGVpZ2h0OiAyNHB4O3Bvc2l0aW9uOiByZWxhdGl2ZTt6LWluZGV4OiA0O31cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7QGluY2x1ZGUgYm9yZGVyUmFkaXVzKDEwcHggMTBweCAwcHggMCk7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgJjpiZWZvcmUge0BpbmNsdWRlIGJvcmRlclJhZGl1cygwIDAgMTBweCAxMHB4KTt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpiZWZvcmUge2NvbnRlbnQ6IFwiXCI7IGxlZnQ6IC0yMHB4OyByaWdodDogLTIwcHg7IHRvcDogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAzOyBib3R0b206IDA7fVxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7YmFja2dyb3VuZDogI0VCRjNGRDt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5kaXNhYmxlZHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiNFMUUxRTE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuLmJveC1kZXQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAxMHB4IDMwcHg7XHJcbiAgICBAaW5jbHVkZSBib3hTaGFkb3coMCAxcHggMTBweCAtMnB4IHJnYmEoMTUyLDE1MiwxNTIsMC40KSk7Ym9yZGVyOiAxcHggc29saWQgI0RFREVERTtAaW5jbHVkZSBib3JkZXJSYWRpdXMoMTBweCk7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC5ieC1pbmZvIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7bWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICBoNCB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDtib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RlZGVkZTsgcGFkZGluZy1yaWdodDogMTAwcHg7IHBhZGRpbmctYm90dG9tOiAxNnB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyBmb250LXdlaWdodDogNTAwO31cclxuICAgICAgICAuYWJzIHtwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDA7fVxyXG4gICAgfVxyXG59XHJcblxyXG4jdWxhc2FuIHtcclxuICAgIC5wb3BfaW5uZXIgLmNvbnRlbnRfcG9wIHt3aWR0aDogNzYwcHg7fVxyXG59XHJcbiNyZWRlZW17XHJcbiAgICAucG9wX2lubmVyIC5jb250ZW50X3BvcHsgbWFyZ2luOiA1JSBhdXRvOyB9XHJcbn1cclxuI2xvZ2lue1xyXG4gICAgLnBvcF9pbm5lciAuY29udGVudF9wb3Age3dpZHRoOiA3NzBweDt9XHJcbiAgICAud3JhcC1idG57XHJcbiAgICAgICAgc3BhbnsgZm9udC1zaXplOjEycHg7IGNvbG9yOiAjMzMzMzMzOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6IDEwcHggMDsgZm9udC13ZWlnaHQ6IDUwMDsgfVxyXG4gICAgICAgIC5mYntcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzNiNTk5ODsgYm9yZGVyLWNvbG9yOiMzYjU5OTg7IG1hcmdpbi10b3A6IDBweDsgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OicnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwcHg7IHRvcDogMDsgYm90dG9tOiAwOyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWZiLXMucG5nKW5vLXJlcGVhdCB0b3A7IHdpZHRoOiA4cHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE4cHg7IG1hcmdpbjogYXV0byAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgICAgICBib3JyZGVyLWNvbG9yOiMzYjU5OTg7IGNvbG9yOiAjM2I1OTk4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLm5vdGUta3Vwb24ge1xyXG4gICAgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNTAwOyB0ZXh0LWFsaWduOiBsZWZ0OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogMTBweDsgbGluZS1oZWlnaHQ6IDE2cHg7XHJcbn1cclxuXHJcbi5zbGlkZXItaG9tZSB7XHJcbiAgJi5uZXctdmVyc2lvbiB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG4gICAgZmlndXJlIHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMTYwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogNjY2cHg7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDY2NnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgaW5zZXQ6IDA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgICAxODBkZWcsXHJcbiAgICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSxcclxuICAgICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMSkgMzAlLFxyXG4gICAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC4yNSkgNTAlLFxyXG4gICAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC40NSkgNzAlLFxyXG4gICAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC42MikgMTAwJVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDMwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2xpY2stZG90cyB7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICBib3R0b206IDE0cHg7XHJcbiAgICAgIGdhcDogMCAxMnB4O1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZmxleDogbm9uZTtcclxuICAgICAgICBoZWlnaHQ6IDEycHg7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLnNsaWNrLWFjdGl2ZSB7XHJcbiAgICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjI4RTNFO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB3aWR0aDogMTJweDtcclxuICAgICAgICAgIGhlaWdodDogMTJweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNFOUU5RTk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4udGlrdG9rLWNhdGFsb2cge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAwIDAgNDBweDtcclxuICAud3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDAgMzBweDtcclxuICAgIC5pZnJhbWUtdGlrdG9rIHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDM2MHB4IC0gMzBweCk7XHJcbiAgICAgIG1heC13aWR0aDogNzgwcHg7XHJcbiAgICAgIGlmcmFtZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiA0NzVweDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNhdGFsYWctd3JhcCB7XHJcbiAgICAgIHdpZHRoOiAzNjBweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgZmlndXJlIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICZfX3RleHQge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBwYWRkaW5nOiA0MHB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgaDMge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgIGNvbG9yOiAjMTExO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDExNSU7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICBjb2xvcjogIzA3MDcwNztcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICBnYXA6IDAgNnB4O1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIGdhcDogMCA4cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaG9tZS5zdWdlcy1wcm9kIHtcclxuICAuc3VncHJvZC1zbGlkZXIge1xyXG4gICAgJi5yb3VuZGVkIHtcclxuICAgICAgLmxpc3Qge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMThweDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgYXNwZWN0LXJhdGlvOiAxLzE7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnRpdHRsZS1zbGlkZSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIGZpZ3VyZSB7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3NSk7XHJcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5zbGljay1hcnJvdyB7XHJcbiAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgbGVmdDogLTYwcHg7XHJcbiAgICAgIH1cclxuICAgICAgJi5zbGljay1uZXh0IHtcclxuICAgICAgICByaWdodDogLTYwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53cmFwLWNvbGVjdGlvbiB7XHJcbiAgJi5rb2xla3NpIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAuc2xpZGVyLWtvbGVrc2kge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG4gICAgICAuc2xpY2stbGlzdCB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgfVxyXG4gICAgICAubGlzdCB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgLmJveHtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgwLDAsMCwwLjEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYm94e1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4IDI1cHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjVweDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgLmJ0bi1jYXJ0IHtcclxuICAgICAgICAgICAgYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICBsZWZ0OiAtNjBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi5zbGljay1uZXh0IHtcclxuICAgICAgICAgIHJpZ2h0OiAtNjBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgJl9fYmxvY2sge1xyXG4gICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgLnRpdGxlLWJsb2NrIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICBoMyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB9XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAjQjI4RTM1O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1vdXQ7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwuMjVzIGVhc2Utb3V0O1xyXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5taWRkbGUge1xyXG4gICYuaG9tZXBhZ2Uge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcbi5mdWxsLWJveCB7XHJcbiAgcGFkZGluZzogMCAwIDQwcHg7XHJcbiAgLndyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuICBmaWd1cmUge1xyXG4gICAgaW1nIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgJl9fdGV4dCB7XHJcbiAgICB3aWR0aDogMzc1cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHRvcDogNDUlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgaDN7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgY29sb3I6ICNENUEwMUQ7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNTAlO1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgICB9XHJcbiAgICBwIHtcclxuICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMTUwJTtcclxuICAgICAgY29sb3I6ICMxMTE7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAxMjgwcHgpIHtcclxuICAudGlrdG9rLWNhdGFsb2cge1xyXG4gICAgLndyYXBwZXIge1xyXG4gICAgICBnYXA6IDAgMjRweDtcclxuICAgICAgLmlmcmFtZS10aWt0b2sge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyOTRweCAtIDI0cHgpO1xyXG4gICAgICB9XHJcbiAgICAgIC5jYXRhbGFnLXdyYXAge1xyXG4gICAgICAgIHdpZHRoOiAyOTRweDtcclxuICAgICAgICAmX190ZXh0IHtcclxuICAgICAgICAgIHBhZGRpbmc6IDI4cHggMjRweDtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5ob21lLnN1Z2VzLXByb2Qge1xyXG4gICAgLnN1Z3Byb2Qtc2xpZGVyIHtcclxuICAgICAgcGFkZGluZzogMCA0MHB4O1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgICYucm91bmRlZCB7XHJcbiAgICAgICAgLmxpc3Qge1xyXG4gICAgICAgICAgcGFkZGluZzogMCAxNHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAuc2xpY2stYXJyb3cge1xyXG4gICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgICAmLnNsaWNrLXByZXYge1xyXG4gICAgICAgICAgbGVmdDogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgcmlnaHQ6IDBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLndyYXAtY29sZWN0aW9uIHtcclxuICAgJi5rb2xla3NpIHtcclxuICAgICAuc2xpZGVyLWtvbGVrc2kge1xyXG4gICAgICBwYWRkaW5nOiAwIDMwcHggIWltcG9ydGFudDtcclxuICAgICAgIC5zbGljay1hcnJvdyB7XHJcbiAgICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuICAgICAgICAgICYuc2xpY2stcHJldiB7XHJcbiAgICAgICAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICYuc2xpY2stbmV4dCB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cdFx0XHRcdC5saXN0IHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDE1cHggMCAwO1xyXG5cdFx0XHRcdFx0LmJveCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDIwcHggMjBweCA0cHg7XHJcblx0XHRcdFx0XHRcdC5idG4tY2FydCB7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxMXB4O1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcbiAgICAgIH1cclxuICAgfVxyXG4gICAmX19ibG9jayB7XHJcbiAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAudGl0bGUtYmxvY2sge1xyXG4gICAgICBoMyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICB9XHJcbiAgICAgfVxyXG4gICB9XHJcbiAgfVxyXG4gIC5mdWxsLWJveCB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuICAgICZfX3RleHQge1xyXG4gICAgICB3aWR0aDogMjgwcHg7XHJcbiAgICAgIGgzIHtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgICAgcCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xyXG4gIC53cmFwLWNvbGVjdGlvbiB7XHJcbiAgICAmLmtvbGVrc2kge1xyXG4gICAgICAuc2xpZGVyLWtvbGVrc2kge1xyXG4gICAgICAgIC5saXN0IHtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAuYm94IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMjBweCAxNnB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjVweDtcclxuICAgICAgICAgICAgLmJ0bi1jYXJ0IHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgbGVmdDogMTJweDtcclxuICAgICAgICAgICAgICByaWdodDogMTJweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gIC50aWt0b2stY2F0YWxvZyB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgLndyYXBwZXIge1xyXG4gICAgIC5pZnJhbWUtdGlrdG9rIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gICAgICAgIGlmcmFtZSB7XHJcbiAgICAgICAgICBoZWlnaHQ6IDUwNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAuY2F0YWxhZy13cmFwIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAmX190ZXh0IHtcclxuICAgICAgICAgIHBhZGRpbmc6IDI4cHggMjRweDtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5mdWxsLWJveHtcclxuICAgICZfX3RleHQge1xyXG4gICAgICBoMyB7IGZvbnQtc2l6ZTogMTZweDt9XHJcbiAgICAgIHAge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZmlndXJlIHtcclxuICAgICAgaW1nIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAud3JhcC1jb2xlY3Rpb24ge1xyXG4gICAgJi5rb2xla3NpIHtcclxuICAgICAgLnNsaWRlci1rb2xla3NpIHtcclxuICAgICAgICBwYWRkaW5nOiAwIDE2cHggIWltcG9ydGFudDtcclxuICAgICAgICAubGlzdCB7XHJcbiAgICAgICAgICAuYm94IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTZweCA4cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2NXB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAuaG9tZXtcclxuICAgICYua29sZWtzaSB7XHJcbiAgICAgIC5zbGlkZXIta29sZWtzaSB7XHJcbiAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAmLnNsaWNrLXByZXYge1xyXG4gICAgICAgICAgICBsZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLnNsaWNrLW5leHQge1xyXG4gICAgICAgICAgICByaWdodDogLThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5zdWdlcy1wcm9kIHtcclxuICAgICAgLnN1Z3Byb2Qtc2xpZGVyIHtcclxuICAgICAgICAmLnJvdW5kZWQge1xyXG4gICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4IDA7XHJcbiAgICAgICAgICAubGlzdCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLnNsaWNrLWFycm93IHtcclxuICAgICAgICAgICAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgJi5zbGljay1wcmV2IHtcclxuICAgICAgICAgICAgICBsZWZ0OiAtOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zbGljay1uZXh0IHtcclxuICAgICAgICAgICAgICByaWdodDogLThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gIC50aWt0b2stY2F0YWxvZyB7XHJcbiAgICAud3JhcHBlciB7XHJcbiAgICAgIC5pZnJhbWUtdGlrdG9rIHtcclxuICAgICAgICBpZnJhbWUge1xyXG4gICAgICAgICAgaGVpZ2h0OiAzOTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLmNhdGFsYWctd3JhcCB7XHJcbiAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAud3JhcC1jb2xlY3Rpb24ge1xyXG4gICAgJi5rb2xla3NpIHtcclxuICAgICAgLnNsaWRlci1rb2xla3NpIHtcclxuICAgICAgICAubGlzdCB7XHJcbiAgICAgICAgICAuYm94IHtcclxuICAgICAgICAgICAgLmJ0bi1jYXJ0IHtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogOXB4IGF1dG87XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmRlc2NwIHtcclxuICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0MTVweCkge1xyXG4gIC50aWt0b2stY2F0YWxvZyB7XHJcbiAgICAud3JhcHBlciB7XHJcbiAgICAgIC5pZnJhbWUtdGlrdG9rIHtcclxuICAgICAgICBpZnJhbWUge1xyXG4gICAgICAgICAgaGVpZ2h0OiAzOTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cdFxyXG4gICAgQ29tcGFueSAgICA6IFBUIFdlYiBBcmNoaXRlY3QgVGVjaG5vbG9neSAtIHdlYmFycS5jb21cclxuICAgIERvY3VtZW50ICAgOiBTdHlsZXNoZWV0XHJcbiAgICBBdXRob3IgICAgIDogRnJvbnRFbmQgVGVhbSAgXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLyogaW1wb3J0IGJvdXJib24gLSBodHRwOi8vYm91cmJvbi5pby9kb2NzICovXHJcbkBpbXBvcnQgXCJib3VyYm9uL2JvdXJib25cIjtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRhdHRyKXtcclxuICAgIHRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtby10cmFuc2l0aW9uOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gdHJhbnNmb3JtKCRhdHRyKXtcclxuICAgIHRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogJGF0dHI7XHJcbiAgICAtbXMtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zZm9ybTogJGF0dHI7XHJcbn1cclxuQG1peGluIGJvcmRlclJhZGl1cygkYXR0cil7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW1zLWJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLW8tYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbn1cclxuQG1peGluIGJveFNoYWRvdygkYXR0cil7XHJcbiAgICBib3gtc2hhZG93OiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1tcy1ib3gtc2hhZG93OiAkYXR0cjtcclxuICAgIC1vLWJveC1zaGFkb3c6ICRhdHRyXHJcbn1cclxuQG1peGluIGJveFNpemluZygkYXR0cil7XHJcbiAgICBib3gtc2l6aW5nOiAgJGF0dHI7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tcy1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1vLWJveC1zaXppbmc6ICRhdHRyXHJcbn1cclxuQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XHJcbiAgICA6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cclxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgYm94LXNpemluZzogJGF0dHI7XHJcbn1cclxuQG1peGluIGFmdGVyY2xlYXJ7XHJcbiAgICAmOmFmdGVyeyBjb250ZW50OicnOyBjbGVhcjogYm90aDsgZGlzcGxheTogYmxvY2s7IH1cclxufVxyXG5AbWl4aW4gdHJhbnNmb3Jtb3JpZ2luKCRhdHRyKXtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNmb3JtLW9yaWdpbjogJGF0dHI7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkYXR0cjtcclxufVxyXG5cclxuLyogY29sb3IgZ2xvYmFsXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4kYy1vcmc6I2IyOGUzNTsiLCIvLyBCb3VyYm9uIDQuMi43XHJcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXHJcbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxyXG4vLyBNSVQgTGljZW5zZVxyXG5cclxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcclxuXHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xyXG5cclxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XHJcblxyXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvY2FsY1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcclxuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcclxuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcclxuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcclxuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcclxuXHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcclxuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcclxuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcclxuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcclxuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xyXG5cclxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcclxuXHJcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xyXG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xcclxuXHJcbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XHJcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcclxuICAkbGlzdDogKCk7XHJcblxyXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcclxuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xyXG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XHJcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXHJcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xyXG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xyXG4gICAgICBAcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiB0cnVlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcclxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICBAaWYgbm90ICRpdGVtIHtcclxuICAgICAgQHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBmYWxzZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxyXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxyXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3NcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xyXG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcclxuXHJcbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG5cclxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcclxuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuXHJcbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcclxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxyXG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xyXG59XHJcbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXHJcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cclxuXHJcbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcclxuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcclxuICB9XHJcblxyXG4gICRiYXNlOiAkZW0tYmFzZTtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAkZGltZW5zaW9uOiAxMDtcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cclxuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcclxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtDb2xvcn1cclxuXHJcbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXHJcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkbmV3LXByb3BzOiAoKTtcclxuXHJcbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcclxuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRuZXctcHJvcHM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXHJcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XHJcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAkcHJvcDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xyXG4vLy8gICB9XHJcblxyXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcclxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xyXG4gIH1cclxufVxyXG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xyXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XHJcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcclxuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xyXG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xyXG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcclxuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xyXG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XHJcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XHJcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XHJcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcclxuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xyXG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XHJcbiRvY3RhdmU6ICAgICAgICAgICAyO1xyXG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xyXG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XHJcbiRtYWpvci10d2VsZnRoOiAgICAzO1xyXG4kZG91YmxlLW9jdGF2ZTogICAgNDtcclxuXHJcbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XHJcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xyXG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XHJcbiAgJHZhbHVlOiAkdjE7XHJcblxyXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxyXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xyXG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxyXG4gIH1cclxuICBAd2hpbGUgJHYyIDwgJHYxIHtcclxuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXHJcbiAgfVxyXG5cclxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxyXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcclxuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcclxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcclxuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgIH1cclxuXHJcbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xyXG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcclxuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XHJcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xyXG5cclxuICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xyXG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcclxuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fVxyXG5cclxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xyXG4gICRvdXRwdXQ6IG51bGw7XHJcblxyXG4gICRhOiBudGgoJHZhbHMsIDEpO1xyXG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xyXG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xyXG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XHJcblxyXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cclxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XHJcbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxyXG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cclxuXHJcbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxyXG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cclxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XHJcbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxyXG5cclxuICBAcmV0dXJuICRvdXRwdXQ7XHJcbn1cclxuXHJcbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXHJcbi8vLyAgIFByZWZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXHJcbi8vLyAgIFN1ZmZpeCB0byB1c2VcclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG5cclxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XHJcbiAgLy8gUHJvcGVydHkgTmFtZXNcclxuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG5cclxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcclxuXHJcbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XHJcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgI3skYWxsfTogJHZhbHM7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXHJcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcclxuXHJcbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgQHJldHVybiBmb250LXVybDtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gdXJsO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzLFxyXG4gICRmb250LXVybCkge1xyXG5cclxuICAkc3JjOiAoKTtcclxuXHJcbiAgJGZvcm1hdHMtbWFwOiAoXHJcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcclxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcclxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXHJcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxyXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXHJcbiAgKTtcclxuXHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xyXG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcclxuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xyXG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRzcmM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XHJcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XHJcbiAgJG9mZnNldDogbnVsbDtcclxuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXHJcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkb2Zmc2V0IHtcclxuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xyXG5cclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcclxuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xyXG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xyXG5cclxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xyXG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xyXG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XHJcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkc3BlYzogbnVsbDtcclxuICAkZGVncmVlOiBudWxsO1xyXG4gICRzaWRlOiBudWxsO1xyXG4gICRjb3JuZXI6IG51bGw7XHJcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xyXG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcclxuICBAaWYgKCRsZW5ndGggPiAxKSB7XHJcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxyXG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xyXG5cclxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcclxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XHJcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcclxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XHJcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xyXG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xyXG4gICAgICAkZGVncmVlOiAkcG9zO1xyXG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXHJcbiAgICAgICRzcGVjOiAkcG9zO1xyXG4gICAgfVxyXG4gIH1cclxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XHJcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcclxuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XHJcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxyXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xyXG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xyXG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR2YWwtMzogbnVsbDtcclxuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XHJcblxyXG4gIEBpZiAkaGFzLXZhbC0zIHtcclxuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XHJcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcclxuICB9XHJcblxyXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xyXG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xyXG5cclxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxyXG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXHJcbiAgQGVsc2Uge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcclxuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xyXG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcclxuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cclxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XHJcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcclxuICAgIH1cclxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XHJcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAkZzE6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XHJcblxyXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIGlmXHJcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xyXG5cclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XHJcbiAgICAgICAgICAgICRnMjogbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcclxuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxyXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xyXG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG5cclxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xyXG5cclxuICAvLyBBZGQgY29tbWFcclxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xyXG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xyXG5cclxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcclxuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcclxuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRncmFkaWVudHM7XHJcbn1cclxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXHJcblxyXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJHByZS1zcGVjOiBudWxsO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xyXG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xyXG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xyXG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XHJcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcclxuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR2ZW5kb3Ige1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xyXG4gIH1cclxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XHJcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcclxuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xyXG4gICAgICAkdmFsdWU6IG51bGw7XHJcbiAgICB9XHJcbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcclxuICAvLyBNYXRyaWNlc1xyXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcclxuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XHJcblxyXG4gIC8vIFJlc3VsdFxyXG4gICRyZXN1bHQ6IDA7XHJcbiAgJGRpdmlkZXI6IDA7XHJcbiAgJG1pbnVzOiBmYWxzZTtcclxuXHJcbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xyXG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XHJcblxyXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xyXG4gICAgICAkbWludXM6IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XHJcbiAgICAgICRkaXZpZGVyOiAxO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XHJcblxyXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XHJcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcclxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcclxuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcclxufVxyXG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cclxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcclxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xyXG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xyXG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xyXG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XHJcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXHJcbi8vIG5vdGF0aW9uLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcclxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcclxuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XHJcblxyXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XHJcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcclxuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcclxuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XHJcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxyXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XHJcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xyXG4gICRzcGVjLWltYWdlczogKCk7XHJcblxyXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcclxuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xyXG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xyXG5cclxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XHJcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XHJcbn1cclxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xyXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XHJcbiAgJHNwZWMtYm9yZGVyczogKCk7XHJcblxyXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xyXG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xyXG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcclxuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcclxuXHJcbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcclxuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcclxuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XHJcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG59XHJcblxyXG4vL0V4YW1wbGVzOlxyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xyXG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xyXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XHJcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XHJcbn1cclxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xyXG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcclxuICAvLyBub3JtYWwgfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xyXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcclxuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8fCBhbGxcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcclxuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XHJcbn1cclxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcblxyXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XHJcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XHJcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XHJcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcclxuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XHJcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNwbGF5LWJveCB7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXHJcbiAgZGlzcGxheTogYm94O1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xyXG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcclxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XHJcbi8vIHNpbmdsZXxtdWx0aXBsZVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxyXG59XHJcblxyXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cclxuXHJcbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxyXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxyXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxyXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcclxuLy8gZmxleCB8IGlubGluZS1mbGV4XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XHJcbiAgICAvLyAyMDA5XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gICAgZGlzcGxheTogYm94O1xyXG5cclxuICAgIC8vIDIwMTJcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XHJcblxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICB9IEBlbHNlIHtcclxuICAgIGRpc3BsYXk6ICR2YWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxyXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxyXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcclxuXHJcbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxyXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXHJcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxyXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gICRkaXJlY3Rpb246IG5vcm1hbDtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSByb3cge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXHJcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcclxuICAvLyBBbHQgdmFsdWVzXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXHJcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcclxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXHJcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcclxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcclxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcclxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcclxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXHJcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XHJcblxyXG4gIC8vIEFsdCB2YWx1ZXMuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuXHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XHJcbn1cclxuXHJcbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmFjZShcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkd2VpZ2h0OiBub3JtYWwsXHJcbiAgJHN0eWxlOiBub3JtYWwsXHJcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xyXG5cclxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xyXG5cclxuICBAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XHJcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcclxuXHJcbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxyXG4gICAgICAkZm9udC1mYW1pbHksXHJcbiAgICAgICRmaWxlLXBhdGgsXHJcbiAgICAgICRhc3NldC1waXBlbGluZSxcclxuICAgICAgJGZpbGUtZm9ybWF0cyxcclxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcclxuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcclxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XHJcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcclxuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XHJcblxyXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcclxuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xyXG4gIH1cclxuXHJcbiAgQGVsc2Uge1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcclxuICB9XHJcbn1cclxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XHJcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XHJcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XHJcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcclxuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcclxuICAkcG9zLXNwZWM6IG51bGw7XHJcbiAgJHBvcy1kZWdyZWU6IG51bGw7XHJcblxyXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxyXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcclxuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XHJcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xyXG4gICAgJHBvczogbnVsbDtcclxuICB9XHJcblxyXG4gIEBpZiAkcG9zIHtcclxuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcclxuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XHJcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xyXG4gIH1cclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xyXG5cclxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xyXG59XHJcbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPGxlbmd0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XHJcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xyXG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcclxuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xyXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xyXG5cclxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XHJcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcclxuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xyXG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XHJcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcclxuXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xyXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xyXG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcclxuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xyXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xyXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xyXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XHJcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XHJcbn1cclxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XHJcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcclxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXHJcbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcclxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XHJcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcclxuICAkd2Via2l0OiAoKTtcclxuICAkbW96OiAoKTtcclxuICAkc3BlYzogKCk7XHJcblxyXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxyXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcclxuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XHJcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MzogKCk7XHJcblxyXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcclxuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcclxuXHJcbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcclxuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XHJcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xyXG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xyXG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5YztcclxuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcclxuXHJcbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcclxuXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxyXG5cclxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcclxuXHJcbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGJ1dHRvbixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcclxuLy8vICAgYnV0dG9uOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxyXG5cclxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcclxuXHJcbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XHJcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xyXG5cclxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XHJcbi8vLyAgICAgY2xlYXI6IGJvdGg7XHJcbi8vLyAgICAgY29udGVudDogXCJcIjtcclxuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxyXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogJHdpZHRoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XHJcblxyXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XHJcblxyXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcclxuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXHJcblxyXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtaW5kZW50OiAxMDElO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gIEBpZiAkaGVpZ2h0IHtcclxuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYG1hcmdpbmBcclxuXHJcbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xyXG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXHJcblxyXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cclxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cclxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBsZWZ0OiAxMGVtO1xyXG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8vICAgICB0b3A6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcclxuXHJcbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcclxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xyXG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XHJcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcclxuXHJcbiAgJG9mZnNldHM6IChcclxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXHJcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxyXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcclxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcclxuICApO1xyXG5cclxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xyXG5cclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcclxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcclxuLy8vICAgVmFsdWUgdG8gdXNlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcclxuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXHJcblxyXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcclxuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XHJcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XHJcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlICB7XHJcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcclxufVxyXG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGhpZHBpIHtcclxuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcclxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cclxuLy8vXHJcbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiAyZW07XHJcbi8vLyAgICAgaGVpZ2h0OiAyZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IGF1dG87XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XHJcblxyXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcclxuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xyXG4gICRoZWlnaHQ6ICR3aWR0aDtcclxuXHJcbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XHJcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcclxuLy8vICAgdGV4dGFyZWEge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxyXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXHJcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxyXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxyXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcclxuXHJcbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcclxuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcclxuLy8vXHJcbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXHJcbi8vL1xyXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXHJcblxyXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xyXG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xyXG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xyXG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xyXG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xyXG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xyXG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xyXG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xyXG5cclxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcclxuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcclxuXHJcbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XHJcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XHJcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XHJcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XHJcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XHJcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xyXG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xyXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuXHJcbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xyXG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xyXG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxyXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xyXG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xyXG4gIHdvcmQtd3JhcDogJHdyYXA7XHJcblxyXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICB9IEBlbHNlIHtcclxuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXHJcblxyXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XHJcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICB9XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxyXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XHJcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29sb3JlZCBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaW1wbGUgQnV0dG9uXHJcbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2hpbnkgQnV0dG9uXHJcbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xyXG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcclxuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xyXG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcclxuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcclxuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcclxuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xyXG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUGlsbCBCdXR0b25cclxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcclxuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xyXG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxhdCBCdXR0b25cclxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3JkZXI6IDA7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGdyaWRcclxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcclxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGd1dHRlclxyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XHJcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xyXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Z0dBSWdHO0FDSmhHOzs7O2dHQUlnRztBQUVoRyw2Q0FBNkM7QUEyRDdDO2dHQUNnRztBRDNEaEc7Z0dBQ2dHO0FBQ2hHLEFBQUEsT0FBTyxDQUFDO0VBQUUsUUFBUSxFQUFFLFFBQVE7Q0FBSTs7QUFDaEMsQUFBQSxRQUFRLENBQUM7RUFBQyxLQUFLLEVBQUUsTUFBTTtFQUFDLE1BQU0sRUFBRSxNQUFNO0NBQUc7O0FBQ3pDLEFBQUEsWUFBWSxBQUFBLE1BQU0sRUF3aUJsQixPQUFPLENBR0gsSUFBSSxDQUtBLFNBQVMsQUFoakJMLE1BQU0sRUFBQyxRQUFRLEFBQUEsTUFBTSxFQUFDLE9BQU8sQUFBQSxNQUFNLENBQUE7RUFBQyxLQUFLLEVBQUMsSUFBSTtFQUFDLE9BQU8sRUFBRSxLQUFLO0VBQUMsT0FBTyxFQUFDLEdBQUc7Q0FBRTs7QUFHdkYsQUFBQSxTQUFTLENBQUE7RUFDTCxLQUFLLEVBQUUsT0FBTztFQUFFLE1BQU0sRUFBRSxpQkFBaUI7RUFBRSxXQUFXLEVBQUUsSUFBSTtFQUFFLFNBQVMsRUFBRSxJQUFJO0VBQUUsT0FBTyxFQUFFLGFBQWE7RUFBRSxPQUFPLEVBQUUsWUFBWTtFQUM1SCxjQUFjLEVBQUUsU0FBUztFQUFFLFdBQVcsRUFBRSxHQUFHO0VBQUUsUUFBUSxFQUFFLFFBQVE7RUNRL0QsYUFBYSxFREhTLElBQUk7RUNJMUIscUJBQXFCLEVESkMsSUFBSTtFQ0sxQixrQkFBa0IsRURMSSxJQUFJ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 */
