.payment-service {
  padding-bottom: 0;
}

.payment-service.bg-symbol::before {
  content: '';
  top: 320px;
}

@media screen and (min-width: 768px) {
  .payment-service.bg-symbol::before {
    top: 380px;
  }
}

.payment-service .common-title-wrap {
  margin-bottom: 88px;
}

.payment-service .sub-article-01 {
  position: relative;
  overflow: hidden;
  padding-bottom: 75px;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-01 {
    padding-bottom: 95px;
  }
}

.payment-service .sub-article-02 {
  position: relative;
  padding: 70px 0 75px;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-02 {
    padding: 130px 0 135px;
  }
}

.payment-service .sub-article-02 .bg-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(/views/res/imgs/page/payment/service_bg_m.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50%;
  background-color: #f9f9f9;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-02 .bg-wrap {
    width: 95%;
    background-image: url(/views/res/imgs/page/payment/service_bg.jpg);
    background-position: 0;
  }
}

@media screen and (min-width: 1200px) {
  .payment-service .sub-article-02 .bg-wrap {
    width: 85%;
    min-width: 1140px;
  }
}

.payment-service .sub-article-02 .common-sub-title-wrap {
  margin-bottom: 29px;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-02 .common-sub-title-wrap {
    margin-bottom: 92px;
  }
}

.payment-service .sub-article-02 .step-list-wrap {
  display: flex;
  flex-wrap: wrap;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-02 .step-list-wrap {
    flex-wrap: nowrap;
  }
}

.payment-service .sub-article-02 .step-list {
  flex: 1 1 50%;
}

.payment-service .sub-article-02 .step-list:nth-last-child(n+3) {
  margin-bottom: 60px;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-02 .step-list {
    flex-basis: 25%;
  }
  .payment-service .sub-article-02 .step-list:nth-last-child(n+3) {
    margin-bottom: 0;
  }
}

.payment-service .sub-article-02 .step-list .step {
  line-height: 1.73;
  margin-bottom: 16px;
  font-family: "Lato", sans-serif;
  font-size: 15px;
  font-weight: 900;
  color: #666;
}

.payment-service .sub-article-02 .step-list .icon {
  margin-bottom: 12px;
}

.payment-service .sub-article-02 .step-list .icon .img {
  width: 60px;
}

.payment-service .sub-article-02 .step-list .title {
  line-height: 1.73;
  font-size: 15px;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-02 .step-list .title {
    line-height: 1.625;
    font-size: 16px;
  }
}

.payment-service .sub-article-03 {
  padding: 75px 0 80px;
}

@media screen and (min-width: 768px) {
  .payment-service .sub-article-03 {
    padding: 95px 0 100px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0L3BhZ2UvcGF5bWVudC9zZXJ2aWNlLmNzcyIsInNvdXJjZXMiOlsibGF5b3V0L3BhZ2UvcGF5bWVudC9zZXJ2aWNlLnNjc3MiLCJyZXMvc2Nzcy9fX3ZhcmlhYmxlcy5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCJyZXMvc2Nzcy92YXJpYWJsZXNfY29tcG9uZW50cy9fY2FyZHMuc2NzcyIsInJlcy9zY3NzL3ZhcmlhYmxlc19jb21wb25lbnRzL190YWJsZS5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX3RhYi5zY3NzIiwicmVzL3Njc3MvdmFyaWFibGVzX2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsInJlcy9zY3NzL19fbWl4aW5zLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX21lZGlhLXF1ZXJ5LnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX21hcC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19jbGVhci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19mbG9hdC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ob3Zlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19zY3JlZW5yZWFkZXIuc2NzcyIsInJlcy9zY3NzL21peGlucy9fcmVzZXQtdGV4dC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19wcmVmaXhlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2FyZWEuc2NzcyIsInJlcy9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL190cmlhbmdsZS5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19idXR0b25zLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2NhcmRzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3BhZ2luYXRpb24uc2NzcyIsInJlcy9zY3NzL21peGlucy9fZm9ybXMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fdGFibGVzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3RhYi5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgXCJyZXMvc2Nzcy9fX3ZhcmlhYmxlcy5zY3NzXCI7XG5AaW1wb3J0IFwicmVzL3Njc3MvX19taXhpbnMuc2Nzc1wiO1xuXG4vLyDsoITssrQg7JiB7JetXG4ucGF5bWVudC1zZXJ2aWNlIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgJi5iZy1zeW1ib2wge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHRvcDogMzIwcHg7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obWQpIHtcbiAgICAgICAgdG9wOjM4MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIOuplOyduO2DgOydtO2LgCDsmIHsl61cbiAgLmNvbW1vbi10aXRsZS13cmFwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4OHB4O1xuICB9XG5cbiAgLy8gMS4g7KCE7J6Q6rKw7KCc64yA7ZaJ7ISc67mE7IqkIFdJWlpQQVlcbiAgLnN1Yi1hcnRpY2xlLTAxIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLWJvdHRvbTo3NXB4O1xuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCl7XG4gICAgICBwYWRkaW5nLWJvdHRvbTo5NXB4O1xuICAgIH1cbiAgfVxuICAvLyAyLiDsoITsnpDqsrDsoJzrjIDtlonshJzruYTsiqQgV0laWlBBWVxuICAuc3ViLWFydGljbGUtMDIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOjcwcHggMCA3NXB4O1xuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCkge1xuICAgICAgcGFkZGluZzogMTMwcHggMCAxMzVweDtcbiAgICB9XG4gICAgLmJnLXdyYXB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6MDtcbiAgICAgIGxlZnQ6MDtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvcGFnZS9wYXltZW50L3NlcnZpY2VfYmdfbS5qcGcpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obWQpIHtcbiAgICAgICAgd2lkdGg6OTUlO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvcGF5bWVudC9zZXJ2aWNlX2JnLmpwZyk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDA7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oeGwpe1xuICAgICAgICB3aWR0aDo4NSU7XG4gICAgICAgIG1pbi13aWR0aDoxMTQwcHg7IFxuICAgICAgfVxuICAgIH1cbiAgICAuY29tbW9uLXN1Yi10aXRsZS13cmFwe1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjlweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA5MnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuc3RlcC1saXN0LXdyYXB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKG1kKXtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICB9XG4gICAgfVxuICAgIC5zdGVwLWxpc3R7XG4gICAgICBmbGV4OiAxIDEgNTAlO1xuICAgICAgJjpudGgtbGFzdC1jaGlsZChuKzMpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCkge1xuICAgICAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQobiszKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnN0ZXB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjczO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtbGF0bztcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgIH1cbiAgICAgIC5pY29ue1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICAuaW1ne1xuICAgICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudGl0bGV7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjczO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihtZCkge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gMy4g7ISc67mE7IqkIO2dkOumhOuPhFxuICAuc3ViLWFydGljbGUtMDMge1xuICAgIHBhZGRpbmc6IDc1cHggMCA4MHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKG1kKSB7XG4gICAgICBwYWRkaW5nOiA5NXB4IDAgMTAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvLy8vL2RlZmF1bHQvLy8vL1xuLy9jb2xvclxuJGdfd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XG4kZ19ibGFjazogIzAwMCAhZGVmYXVsdDtcbiRnX3JlZDogI2NkMjAwMDtcblxuJGdfcG9pbnQtZm9udC1jb2xvcjogIzAwYWVlZjtcbiRnX3BvaW50LWZvbnQtY29sb3IyOiAjMWI0NThlO1xuJGdfcG9pbnQtdGhlbWUtY29sb3I6ICMwMGFlZWY7XG4kZ19wb2ludC10aGVtZS1jb2xvcjI6ICMxYjQ1OGU7XG4kZ19ib3JkZXItY29sb3IgOiAjZGRkO1xuXG4vL2ZvbnRcbi8vLWZvbnQtZmFtaWx5XG4kZ19mb250LWZhbWlseTogKFxuICBzeXN0ZW06ICcgXCLrp5HsnYAg6rOg65SVXCIsIFwiTWFsZ3VuIEdvdGhpY1wiLCBcIuyVoO2UjCBTRCDsgrDrj4zqs6DrlJUgTmVvXCIsIFwiQXBwbGUgU0QgR290aGljIE5lb1wiLCBzYW5zLXNlcmlmICcsXG4gIG5vdG86ICdcIk5vdG8gU2FucyBLUlwiLCBzYW5zLXNlcmlmJyxcbiAgbGF0byA6ICdcIkxhdG9cIiwgc2Fucy1zZXJpZicsXG4gIGRvdHVtOiAnXCJEb3R1bVwiLCBzYW5zLXNlcmlmJyxcbik7XG5cbiRmb250LXN5c3RlbTogI3ttYXAtZ2V0KCRnX2ZvbnQtZmFtaWx5LCBzeXN0ZW0pfTtcbiRmb250LW5vdG86ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgbm90byl9O1xuJGZvbnQtbGF0bzogI3ttYXAtZ2V0KCRnX2ZvbnQtZmFtaWx5LCBsYXRvKX07IC8vMTAwKFQpLDMwMChMKSw0MDAoUiksNzAwKEIpLDkwMChCKVxuJGZvbnQtZG90dW06ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgZG90dW0pfTtcblxuLy8tZGVmYXVsdCBmb250IOyEpOyglVxuJGZvbnQtMzAwIDogJGZvbnQtbm90bztcbiRmb250LTQwMCA6ICRmb250LW5vdG87XG4kZm9udC01MDAgOiAkZm9udC1ub3RvO1xuJGZvbnQtNzAwIDogJGZvbnQtbm90bztcbiRmb250LTgwMCA6ICRmb250LW5vdG87XG5cbi8vLWZvbnQtc2l6ZVxuJGdfZm9udC1zaXplOihcbiAgeHM6IDEwcHgsXG4gIHNtOiAxMnB4LFxuICBtZDogMTVweCxcbiAgbGc6IDE4cHgsXG4gIHhsOiAyNHB4LFxuKTtcblxuLy8tZm9udC13ZWlnaHRcbiRnX2ZvbnQtd2VpZ2h0czogMTAwLCAyMDAsIDMwMCwgNDAwLCA1MDAsIDYwMCwgNzAwLCA4MDAsIDkwMDtcblxuLy8tbGV0dGVyLXNwYWNpbmdcblxuLy8vLy9tZWRpYS8vLy8vXG4kZ19tZWRpYS1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgc206IDU0NHB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiA5OTJweCxcbiAgeGw6IDEyMDBweFxuKTtcblxuLy8vLy9sYXlvdXQvLy8vL1xuLy9hcmVhXG4kZ19tYXgtd2lkdGg6IDExNDBweDtcbiRnX2FyZWEtZ3V0dGVyLXdpZHRoOiAyMHB4O1xuXG4vL2dyaWRcbiRnX2dyaWQtY29sdW1uczogMTI7XG4kZ19ncmlkLWd1dHRlci13aWR0aDogMSU7XG5cbiRnX2RlZmF1bHQtYXJlYTogKFxuICBtYXgtd2lkdGg6ICRnX21heC13aWR0aCxcbiAgZ3V0dGVyLXdpZHRoOiAkZ19hcmVhLWd1dHRlci13aWR0aCxcbiAgd2lkdGg6IDEwMCVcbik7XG4kZ19mdWxsLWFyZWE6IChcbiAgbWF4LXdpZHRoOiAxNzUwcHgsXG4gIGd1dHRlci13aWR0aDogJGdfYXJlYS1ndXR0ZXItd2lkdGgsXG4gIHdpZHRoOiAxMDAlXG4pO1xuJGdfbm9ndXR0ZXItYXJlYTogKFxuICBtYXgtd2lkdGg6ICRnX21heC13aWR0aFxuKTtcblxuLy9ncmlkXG4kZ19ncmlkLWNvbC1pbmZvOiAoXG4gIGdyaWQtY29sLWNudDogMTIsXG4gIGdyaWQtY29sLW5hbWU6IG51bGxcbik7XG4kZ3JpZC1jb2w1LWluZm86IChcbiAgZ3JpZC1jb2wtY250OiA1LFxuICBncmlkLWNvbC1uYW1lOiBmaXZlLVxuKTtcblxuLy8vLy9VVElMSVRJRVMvLy8vL1xuLy9jbGVhclxuXG4vL3NwYWNpbmdcbiRzcGFjZXJzOihcbiAgMDogMCxcbiAgNTogNXB4LFxuICAxMDogMTBweCxcbiAgMTU6IDE1cHgsXG4gIDIwOiAyMHB4LFxuICAyNTogMjVweCxcbiAgMzA6IDMwcHgsXG4gIDQwOiA0MHB4LFxuICA1MDogNTBweCxcbiAgNjA6IDYwcHgsXG4gIDcwOiA3MHB4LFxuICA4MDogODBweCxcbiAgOTA6IDkwcHgsXG4gIDEwMDogMTAwcHgsXG4gIDEyMDogMTIwcHgsXG4pO1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xuXG4vLy8vL0NPTVBPTkVOVFMvLy8vL1xuQGltcG9ydCBcInZhcmlhYmxlc19jb21wb25lbnRzL19idXR0b25cIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNfY29tcG9uZW50cy9fZm9ybXNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNfY29tcG9uZW50cy9fY2FyZHNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNfY29tcG9uZW50cy9fdGFibGVcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNfY29tcG9uZW50cy9fdGFiXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzX2NvbXBvbmVudHMvX3BhZ2luYXRpb25cIjtcbi8vIEBpbXBvcnQgXCJ2YXJpYWJsZXNfY29tcG9uZW50cy9fdG9vbHRpcFwiOyAvLyDsgqzsmqntlZjsp4Ag7JWK64qUIOu2gOu2hOydgCDso7zshJ0gKCBiYXNlLnNjc3Mg7JeQ64+EIOyjvOyEnSApXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vXG4iLCIvLyBfYnV0dG9uXG4kZ19idG4tc2l6ZTogKHhzOiAoIC8vIOuwsOyGoeyhsO2ajCztm4TquLDsnpHshLFcbiAgICB3aWR0aDogNTBweCxcbiAgICBoZWlnaHQ6IDM3cHgsXG4gICAgbGluZS1oZWlnaHQ6IDM3cHgsXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgIGZvbnQtc2l6ZTogMTJweCxcbiAgKSxcbiAgc206ICggLy8g7ZqM7JuQ6rCA7J6FLCDrp4jsnbTtjpjsnbTsp4AsIOqyjOyLnO2MkCwgcG9wdXAgYnRuIOq0gOugqCDrsoTtirxcbiAgICB3aWR0aDogOTBweCxcbiAgICBoZWlnaHQ6IDM3cHgsXG4gICAgbGluZS1oZWlnaHQ6IDM3cHgsXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgIGZvbnQtc2l6ZTogMTJweCxcbiAgKSxcbiAgbWQ6ICggLy/snbzrsJgg7Y6Y7J207KeAXG4gICAgd2lkdGg6IDIxMHB4LFxuICAgIGhlaWdodDogNTVweCxcbiAgICBsaW5lLWhlaWdodDogNTVweCxcbiAgICBmb250LXNpemU6IDE1cHgsXG4gICksXG4gIGxnOiAoIC8v7J6l67CU6rWs64uIXG4gICAgd2lkdGg6MjY1cHgsXG4gICAgaGVpZ2h0OiA0MHB4LFxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4LFxuICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgICBmb250LXdlaWdodDo1MDAsXG4gICksXG4gIHhsOiAoIC8v66Gc6re47J24LCDtmozsm5DqsIDsnoUsIOyVhOydtOuUlCbruYTrsIDrsojtmLgg7LC+6riwIO2UjOuhnOyasFxuICAgIGhlaWdodDogNTBweCxcbiAgICBsaW5lLWhlaWdodDogNTBweCxcbiAgICBmb250LXNpemU6IDE1cHgsXG4gICAgZm9udC13ZWlnaHQ6NTAwLFxuICAgIG1lZGlhOiAobWQ6IChoZWlnaHQ6IDU1cHgsXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NXB4LFxuICAgICAgKSkpLFxuICBmdWxsLXNtIDogKCAvLyDqsozsi5ztjJDsl5DshJwg7IKs7JqpXG4gICAgd2lkdGg6MTAwJSxcbiAgICBoZWlnaHQ6IDQycHgsXG4gICAgbGluZS1oZWlnaHQ6IDQycHgsXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgIGZvbnQtc2l6ZTogMTJweCxcbiAgICBtZWRpYSA6IChtZCA6ICh3aWR0aDogOTBweCxcbiAgICAgICAgaGVpZ2h0OiAzN3B4LFxuICAgICAgICBsaW5lLWhlaWdodDogMzdweCxcbiAgICAgICksXG4gICAgKSksXG4gIGZ1bGwtbWQ6ICggLy/snbzrsJgg7Y6Y7J207KeAXG4gICAgd2lkdGg6IDEwMCUsXG4gICAgbWF4LXdpZHRoOiAyMTBweCxcbiAgICBoZWlnaHQ6IDU1cHgsXG4gICAgbGluZS1oZWlnaHQ6IDU1cHgsXG4gICAgZm9udC1zaXplOiAxNXB4LFxuICApLFxuICBwb3B1cDogKCAvL3BvcHVwIOuyhO2KvFxuICAgIG1heC13aWR0aDoyMTBweCxcbiAgICBsaW5lLWhlaWdodDogNTVweCxcbiAgICBoZWlnaHQ6IDU1cHgsXG4gICksXG4gIGZ1bGw6KHdpZHRoOiAxMDAlLFxuICApLFxuKTtcblxuJGdfYnRuLWdyb3VwIDogKCAvLyDrsoTtirwg7Iqk7YOA7J28IOyEpOygle2VmOq4sFxuICBwb2ludCA6ICggLy8gZGVmYXVsdFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRnX3BvaW50LXRoZW1lLWNvbG9yMixcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50LFxuICAgIGhvdmVyIDogKGJhY2tncm91bmQtY29sb3I6IzBiMmQ2NyxcbiAgICApKSxcbiAgc3ViLXBvaW50IDooYmFja2dyb3VuZC1jb2xvcjokZ19wb2ludC10aGVtZS1jb2xvcixcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50LFxuICAgIGhvdmVyIDogKGJhY2tncm91bmQtY29sb3I6IzA3OTBkMCxcbiAgICApKSxcbiAgc3R5bGUyIDogKCAvLyDtmozsm5DqsIDsnoUsIOyVhOydtOuUlCbruYTrsIDrsojtmLgg7LC+6riwXG4gICAgYm9yZGVyOjFweCBzb2xpZCAjY2NjLFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjAsXG4gICAgY29sb3I6ICM1NTUsXG4gICksXG4gIHN0eWxlMyA6ICggLy8g7KO866y47Leo7IaMLCDso7zrrLjrpqzsiqTtirjqsoDsg4lcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1LFxuICAgIGNvbG9yOiAjZmZmLFxuICApLFxuICBvdXRsaW5lLXN0eWxlMSA6ICggLy8g66Gc6re47J24LCDso7zrrLjsg4HshLjrs7TquLAsIGN1c3RvbTJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkLFxuICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZixcbiAgICBjb2xvcjojNTU1ICFpbXBvcnRhbnQsXG4gICAgaG92ZXIgOiAoYmFja2dyb3VuZC1jb2xvcjojZjJmMmYyLFxuICAgICkpLFxuICBvdXRsaW5lLXN0eWxlMiA6ICggLy8g6riA7JOw6riwXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzIyMixcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYsXG4gICAgY29sb3I6IzIyMixcbiAgKSxcbiAgb3V0bGluZS1zdHlsZTM6IChib3JkZXI6IDFweCBzb2xpZCAjZmZmLFxuICAgIGNvbG9yIDojZmZmLFxuICAgIGhvdmVyOiAoYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICAgKSksXG4pOyIsIi8vIF9mb3JtXG4kZ19mb3JtLXdyYXA6ICh0YWJsZSA6ICggLy8uZm9ybS13cmFwLXRhYmxlICjtmozsm5DqsIDsnoUm7KCV67O0LCDso7zrrLjqsrDsoJwm64K07JetKVxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgZm9ybS13cmFwOiAoIC8vLmZvcm0td3JhcC1mbGV4IC5mb3JtLXdyYXBcbiAgICAgIGRpc3BsYXk6IGZsZXgsXG4gICAgKSxcbiAgICBmb3JtLXRpdGxlOiAoIC8vLmZvcm0td3JhcC1mbGV4IC5mb3JtLXRpdGxlXG4gICAgICBkaXNwbGF5OiBmbGV4LFxuICAgICAgZmxleC1ncm93OiAwLFxuICAgICAgZmxleC1zaHJpbms6IDEsXG4gICAgICBmbGV4LWJhc2lzOiA5MHB4LFxuICAgICAgbWluLXdpZHRoOiA5MHB4LFxuICAgICAgbGluZS1oZWlnaHQ6MS41LFxuICAgICAgcGFkZGluZzogMTlweCAxMHB4LFxuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWRvdHVtLFxuICAgICAgZm9udC1zaXplOiAxMnB4LFxuICAgICAgbWVkaWE6IChzbTogKGZsZXgtYmFzaXM6IDEwMCUsXG4gICAgICAgICAgbWF4LXdpZHRoOjE1MHB4LFxuICAgICAgICAgIHBhZGRpbmc6IDIwcHggMjBweCxcbiAgICAgICAgKSxcbiAgICAgICAgbWQ6IChtYXgtd2lkdGg6MjAzcHgsXG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4LFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICAgIGZvcm0tYm9keTogKCAvLy5mb3JtLXdyYXAtZmxleCAuZm9ybS1ib2R5XG4gICAgICBmbGV4LWdyb3c6IDAsXG4gICAgICBmbGV4LXNocmluazogMSxcbiAgICAgIGZsZXgtYmFzaXM6IDQwM3B4LFxuICAgICAgbGluZS1oZWlnaHQ6MS41LFxuICAgICAgcGFkZGluZzogXCIxMHB4XCIsXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZG90dW0sXG4gICAgICBmb250LXNpemU6IDEycHgsXG4gICAgKSxcbiAgKSxcbiAgc3R5bGUxIDogKCAvLy5mb3JtLXdyYXAtc3R5bGUxICjsgqzsl4XshKTrqoXtmowg7Yyd7JeFIOyCrOyaqSAvIHByZXNlbnRhdGlvbl9pbnNlcnQucGhwKVxuICAgIG1hcmdpbi1ib3R0b206IC0yNHB4LFxuICAgIGZvcm0td3JhcDogKCAvLy5mb3JtLXdyYXAtZmxleCAuZm9ybS13cmFwXG4gICAgICBtYXJnaW4tYm90dG9tOiAyNHB4LFxuICAgICksXG4gICAgZm9ybS10aXRsZTogKCAvLy5mb3JtLXdyYXAtZmxleCAuZm9ybS10aXRsZVxuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4LFxuICAgICAgZm9udC1zaXplOiAxNXB4LFxuICAgICAgY29sb3I6ICM1NTUsXG4gICAgKSxcbiAgICBmb3JtLWJvZHk6ICggLy8uZm9ybS13cmFwLWZsZXggLmZvcm0tYm9keVxuICAgICAgZm9udC1zaXplOiAxNXB4LFxuICAgICksXG4gICksXG4pO1xuLy9faW5wdXRcbiRnX2ZpZWxkLXN0eWxlOiAoIC8vKCBmb3Jt7JeQ7IScIOqwmeydtCAnaW5wdXQsc2VsZWN0LHRleHRhcmVhJyBzdHlsZeydtCDtlajqu5gg7IKs7Jqp7IucIClcbiAgc3R5bGUxOiAoIC8v6rSA66as7J6QXG4gICAgaW5wdXRfZGVmYXVsdCA6ICggLy8uZmllbGQtc3R5bGUxIGlucHV0IC4uXG4gICAgICBoZWlnaHQ6YXV0byxcbiAgICAgIHBhZGRpbmc6IDAgMCA1cHggMCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQsXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDZkOCxcbiAgICAgIGZvY3VzLXN0eWxlIDogKGJvcmRlcjoxcHggc29saWQgJGdfcG9pbnQtdGhlbWUtY29sb3IsXG4gICAgICApLFxuICAgICAgcGxhY2Vob2xkZXItc3R5bGUgOiAoY29sb3I6ICNjY2NmZDYsXG4gICAgICApLFxuICAgICksXG4gICAgc2VsZWN0IDogKCAvLy5maWVsZC1zdHlsZTEgc2VsZWN0IC4uXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMDBweCBib3R0b20gNTAlLFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9jb21tb24vYnRuX3NlbGVjdF9hcnJvd19zdDAxLnN2ZyksXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHggN3B4LFxuICAgICksXG4gICAgdGV4dGFyZWEgOiAoIC8vLmZpZWxkLXN0eWxlMSB0ZXh0YXJlYSAuLlxuICAgICAgaGVpZ2h0OjE1MHB4LFxuICAgICAgcGFkZGluZyA6IDVweCxcbiAgICAgIGJvcmRlcjoxcHggc29saWQgI2RkZCxcbiAgICApLFxuICApLFxuICBzdHlsZTI6ICggLy/tmozsm5DqsIDsnoUsIO2ajOybkOygleuztCwg7KO866y46rKw7KCcLCDso7zrrLjtmZXsnbgg7Y+8XG4gICAgaW5wdXRfZGVmYXVsdCA6IChmbGV4LWdyb3c6IDEsXG4gICAgICBmbGV4LXNocmluazogMCxcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUsXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ19ib3JkZXItY29sb3IsXG4gICAgICBoZWlnaHQ6IDM3cHgsXG4gICAgICBwYWRkaW5nOiAwIDEwcHgsXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZG90dW0sXG4gICAgICBmb250LXNpemU6IDEycHgsXG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtLFxuICAgICAgcGxhY2Vob2xkZXItc3R5bGUgOiAoY29sb3I6ICNhYWEsXG4gICAgICApLFxuICAgICksXG4gICAgc2VsZWN0IDogKCAvLyAo7ZqM7JuQ6rCA7J6FLO2ajOybkOygleuztCkg7Jew65297LKYXG4gICAgICBwYWRkaW5nOiAwIDIwcHggMCAxMHB4LFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgNXB4IGJvdHRvbSA1MCUsXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9idG5fc2VsZWN0X2Fycm93X3N0MDIuc3ZnKSxcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTBweCA3cHgsXG4gICAgICBtZWRpYToobWQ6KHBhZGRpbmc6IDAgMzVweCAwIDEwcHgsXG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTBweCBib3R0b20gNTAlLFxuICAgICAgICApKSksXG4gICAgdGV4dGFyZWEgOiAobWF4LXdpZHRoOmluaXRpYWwsXG4gICAgICBoZWlnaHQ6MTAwcHgsXG4gICAgICBwYWRkaW5nIDogMTBweCxcbiAgICApKSxcbiAgc3R5bGUzOiAoIC8v66Gc6re47J24LCDtmozsm5DqsIDsnoUg7ZSM66Gc7JqwIC8v7IiY7KCV7JmE66OMXG4gICAgaW5wdXRfZGVmYXVsdCA6IChib3JkZXI6IDFweCBzb2xpZCAjZGRkLFxuICAgICAgaGVpZ2h0OiA1MHB4LFxuICAgICAgcGFkZGluZzogMCAxMHB4LFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZG90dW0sXG4gICAgICBmb250LXNpemU6IDEycHgsXG4gICAgICBwbGFjZWhvbGRlci1zdHlsZSA6IChjb2xvcjogI2FhYSxcbiAgICAgICksXG4gICAgICBtZWRpYTogKG1kOiAoaGVpZ2h0OjU1cHgsXG4gICAgICAgICkpKSxcbiAgICBzZWxlY3QgOiAob3ZlcmZsb3c6IGhpZGRlbixcbiAgICApKSxcbiAgc3R5bGU0OiAoIC8vKOyCrOyXheyEpOuqhe2ajCDtjJ3sl4Ug7IKs7JqpIC8gcHJlc2VudGF0aW9uX2luc2VydC5waHApXG4gICAgaW5wdXRfZGVmYXVsdCA6IChib3JkZXI6IDFweCBzb2xpZCAkZ19ib3JkZXItY29sb3IsXG4gICAgICBoZWlnaHQ6IDUwcHgsXG4gICAgICBwYWRkaW5nOjE1cHggMTBweCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50LFxuICAgICAgZm9udC1zaXplOiAxNHB4LFxuICAgICAgcGxhY2Vob2xkZXItc3R5bGUgOiAoY29sb3I6ICNhYWEsXG4gICAgICAgIGZvbnQtd2VpZ2h0OjMwMCxcbiAgICAgICksXG4gICAgICBtZWRpYTogKG1kOiAoZm9udC1zaXplOiAxNXB4LFxuICAgICAgICAgIHBhZGRpbmc6MTVweCxcbiAgICAgICAgKSkpLFxuICAgIHNlbGVjdCA6IChwYWRkaW5nLXJpZ2h0OiAzMHB4LFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMjBweCBjZW50ZXIsXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9jb21tb25fYXJyb3dfaWNvbl9kb3duLnN2ZyksXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHggN3B4LFxuICAgICksXG4gICkpO1xuXG4vL190ZXh0YXJlYVxuJGdfdGV4dC1hcmVhLXN0eWxlOiAoIC8vKCDtjpjsnbTsp4Dsl5DshJwg7IKs7Jqp7IucIClcbiAgc3R5bGUxOiAoIC8vLnRleHRhcmVhLXN0eWxlMSB0ZXh0YXJlYSB7fVxuICAgIC8vIOyCrOyaqeyLnCBjc3Mg7LaU6rCAXG4gICksXG4pO1xuXG4vL19zZWxlY3RcbiRnX3NlbGVjdC1zdHlsZTogKCAvLy5zZWxlY3Qtc3R5bGUxIHNlbGVjdCB7fSAoIO2OmOydtOyngOyXkOyEnCDsgqzsmqnsi5wgKVxuICBzdHlsZTE6ICggLy8g7IOB7ZKIIOumrOyKpO2KuCwg7IOB7IS4LCDrp4jsnbTtjpjsnbTsp4AgXG4gICAgd2lkdGg6IDEwMCUsXG4gICAgaGVpZ2h0OiA1MHB4LFxuICAgIGxpbmUtaGVpZ2h0OiA0N3B4LFxuICAgIHBhZGRpbmc6IDAgMTBweCxcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ19ib3JkZXItY29sb3IsXG4gICAgZm9udC1zaXplOiAxNXB4LFxuICAgIGNvbG9yOiAjNTU1LFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDkyJSA1MCUsXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9jb21tb24vY29tbW9uX2Fycm93X2ljb25fZG93bi5zdmcpLFxuICAgIGJhY2tncm91bmQtc2l6ZTogaW5pdGlhbCxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYsXG4gICAgbWVkaWE6IChzbTogKHBhZGRpbmc6IDAgMTVweCxcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTAlIDUwJSxcbiAgICAgICkpKSxcbiAgc3R5bGUyOiAoIC8vIOqyjOyLnO2MkCDquIDsk7DquLAgKOqyjOyLnOusvCDtg4DsnoUpXG4gICAgd2lkdGg6IDEyMHB4LFxuICAgIGhlaWdodDogMzdweCxcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ19ib3JkZXItY29sb3IsXG4gICAgcGFkZGluZzogMCAxMHB4LFxuICAgIGZvbnQtc2l6ZTogMTJweCxcbiAgICBjb2xvcjogIzIyMixcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5MCUgNTAlLFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL2NvbW1vbl9hcnJvd19pY29uX2Rvd24uc3ZnKSxcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGluaXRpYWwsXG4gICksXG4pO1xuXG4vL19jaGVjay1ib3hcbiRnX2NoZWNrLWJveC1pbWc6IChpbWctMSA6IChkaXNwbGF5OmZsZXgsXG4gICAgYWxpZ24taXRlbXMgOiBmbGV4LXN0YXJ0LFxuICAgIG1hcmdpbi1yaWdodDogMTVweCxcbiAgICBjb2xvcjojNjY2LFxuICAgIGNoZWNrYm94LXN0eWxlIDogKGRpc3BsYXk6IGlubGluZS1ibG9jayxcbiAgICAgIHdpZHRoOiAyMnB4LFxuICAgICAgbWluLXdpZHRoOiAyMnB4LFxuICAgICAgaGVpZ2h0OiAyMnB4LFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDJfb2ZmLnN2ZyksXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlLFxuICAgICksXG4gICAgY2hlY2tlZC1zdHlsZSA6IChiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDJfb24uc3ZnKSxcbiAgICApLFxuICAgIHRleHQtc3R5bGUgOiAoZGlzcGxheTogZmxleCxcbiAgICAgIGZsZXgtd3JhcDogd3JhcCxcbiAgICAgIGxpbmUtaGVpZ2h0OjEuNSxcbiAgICAgIHBhZGRpbmctbGVmdDo3cHgsXG4gICAgICBmb250LXNpemU6IDE0cHgsXG4gICAgICBjaGVjayA6IChjb2xvcjojZmY4ZTJhLFxuICAgICAgKSxcbiAgICApLFxuICApLFxuICBpbWctMiA6IChkaXNwbGF5OmlubGluZS1ibG9jayxcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHgsXG4gICAgY2hlY2tib3gtc3R5bGUgOiAoZGlzcGxheTogaW5saW5lLWJsb2NrLFxuICAgICAgd2lkdGg6IDMycHgsXG4gICAgICBoZWlnaHQ6IDMycHgsXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgvdmlld3MvcmVzL2ltZ3MvcGFnZS9pbWdfY2hlY2tib3gwMV9vZmYucG5nKSxcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUsXG4gICAgKSxcbiAgICBjaGVja2VkLXN0eWxlIDogKGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvcGFnZS9pbWdfY2hlY2tib3gwMV9vbi5wbmcpLFxuICAgICksXG4gICAgdGV4dC1zdHlsZSA6IChkaXNwbGF5OiBpbmxpbmUtYmxvY2ssXG4gICAgICBwYWRkaW5nLWxlZnQ6NHB4LFxuICAgICAgZm9udC1zaXplOiAxNHB4LFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSxcbiAgICApLFxuICApLFxuKTtcbiRnX2NoZWNrLWJveC10YWc6ICh0YWctMSA6ICggLy8g7JWE7J2065SU7KCA7J6lIC8vIOyVveq0gOuPmeydmCAvLyDqsrDsoJzsiJjri6ggLy/rsLDshqHsp4Ag7ISg7YOdIC8vIOuwsOyGoeyngOyXrSDshKDtg51cbiAgICBwb3NpdGlvbjogcmVsYXRpdmUsXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrLFxuICAgIG1hcmdpbi1yaWdodDozMHB4LCAvL3NlbGZcbiAgICBjaGVja2JveC1zdHlsZSA6ICggLy8gJjpiZWZvcmVcbiAgICAgIHRvcDo5cHgsXG4gICAgICB3aWR0aDogMjJweCxcbiAgICAgIGhlaWdodDogMjJweCxcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2MsXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxuICAgICksXG4gICAgY2hlY2tlZC1zdHlsZSA6ICggLy8uY3VzdG9tLWNoZWNrZWRcbiAgICAgIGxlZnQ6MCxcbiAgICAgIHRvcDo5cHgsXG4gICAgICB3aWR0aDogMjJweCxcbiAgICAgIGhlaWdodDogMjJweCxcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRnX3BvaW50LXRoZW1lLWNvbG9yMixcbiAgICApLFxuICAgIHRleHQtc3R5bGUgOiAoIC8vLnRleHRcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSxcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayxcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLFxuICAgICAgcGFkZGluZy1sZWZ0OiAzMXB4LCAvLyDrsJXsiqTtgazquLAgKyDrsJXsiqTsmYAg7YWN7Iqk7Yq4IOyCrOydtOydmCDqsITqsqlcbiAgICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgICAgIGNvbG9yOiAjMDAwLFxuICAgICksXG4gICksXG4gIHRhZy0yIDogKHBvc2l0aW9uOiByZWxhdGl2ZSxcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2ssXG4gICAgbWFyZ2luLXJpZ2h0OjE1cHgsIC8vc2VsZlxuICAgIGNoZWNrYm94LXN0eWxlIDogKCAvLyAmOmJlZm9yZVxuICAgICAgd2lkdGg6IDE3cHgsXG4gICAgICBoZWlnaHQ6IDE3cHgsXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkLFxuICAgICksXG4gICAgY2hlY2tlZC1zdHlsZSA6ICggLy8uY3VzdG9tLWNoZWNrZWRcbiAgICAgIC8vIHdpZHRoOjlweCxcbiAgICAgIC8vIGhlaWdodDogOXB4LFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NSxcbiAgICApLFxuICAgIHRleHQtc3R5bGUgOiAoIC8vLnRleHRcbiAgICAgIHBhZGRpbmctbGVmdDogMjVweCwgLy8g67CV7Iqk7YGs6riwICsg67CV7Iqk7JmAIO2FjeyKpO2KuCDsgqzsnbTsnZgg6rCE6rKpXG4gICAgICBmb250LXNpemU6IDE0cHgsXG4gICAgKSxcbiAgKSk7IiwiLy8gX2NhcmRcbiRnX2NhcmQtd3JhcDogKFxuICBkZWZhdWx0OiAoXG4gICAgd3JhcDogKFxuICAgICAgcGFkZGluZzogMCAzMHB4LFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHgsXG4gICAgICBib3JkZXItc3R5bGU6ICggYm9yZGVyOiBcIjFweCBzb2xpZCAjZTdlOWVlXCIgKSxcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweFxuICAgICksXG4gICAgaGVhZGVyOiAoXG4gICAgICBwYWRkaW5nOiAyNXB4IDAsXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxuICAgICAgYm9yZGVyLXN0eWxlOiAoIGJvcmRlci1ib3R0b206IFwiMXB4IHNvbGlkICNlN2U5ZWVcIiApLFxuICAgICAgZm9udC1zaXplOiAxNnB4XG4gICAgKSxcbiAgICBib2R5OiAoXG4gICAgICBwYWRkaW5nOiAzMHB4IDAsXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmXG4gICAgKSxcbiAgICBmb290ZXI6IChcbiAgICAgIHBhZGRpbmc6IDI1cHggMCxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXG4gICAgICBib3JkZXItc3R5bGU6ICggYm9yZGVyLXRvcDogXCIxcHggc29saWQgI2U3ZTllZVwiIClcbiAgICApXG4gIClcbik7XG4iLCIvLyBfdGFibGVcbiRnX3JwLXRhYmxlOiAoXG4gIHN0eWxlMTogKFxuICAgIGZvbnQtZmFtaWx5OiRmb250LWRvdHVtLFxuICAgIGNvbG9yOiMyMjIsXG4gICAgcnAtdGFibGU6IChcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMjIyXG4gICAgKSxcbiAgICBycC10aGVhZDogKFxuICAgICAgZGlzcGxheTogbm9uZSxcbiAgICAgIG1lZGlhOiAoXG4gICAgICAgIG1kOiAoXG4gICAgICAgICAgZGlzcGxheTogdGFibGUsXG4gICAgICAgICAgd2lkdGg6IDEwMCUsXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQsXG4gICAgICAgICAgcGFkZGluZzogMCAyMHB4LFxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gICAgcnAtdGg6IChcbiAgICAgIG1lZGlhOiAoXG4gICAgICAgIG1kOiAoXG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCxcbiAgICAgICAgICBwYWRkaW5nOiAxOHB4IDVweCxcbiAgICAgICAgICBmb250LXNpemU6IDEycHgsXG4gICAgICAgICAgY29sb3I6ICM4ODgsXG4gICAgICAgICksXG4gICAgICApXG4gICAgKSxcbiAgICBycC10cjogKFxuICAgICAgZGlzcGxheTogYmxvY2ssXG4gICAgICBwYWRkaW5nOiA5cHggNXB4LFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQsXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC41cyxcbiAgICAgIC8vIFwiJlwiIDogKFxuICAgICAgLy8gICBcIjpob3ZlclwiIDogKFxuICAgICAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEsXG4gICAgICAgIC8vICksXG4gICAgICAgIC8vIFwiLm5vbmUtaG92ZXI6aG92ZXJcIiA6IChcbiAgICAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxuICAgICAgICAvLyApLFxuICAgICAgLy8gKSxcbiAgICAgIG1lZGlhOiAoXG4gICAgICAgIG1kOiAoXG4gICAgICAgICAgZGlzcGxheTogdGFibGUsXG4gICAgICAgICAgd2lkdGg6IDEwMCUsXG4gICAgICAgICAgcGFkZGluZzogMCAyMHB4LFxuICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQsXG4gICAgICAgICksXG4gICAgICApXG4gICAgKSxcbiAgICBycC10ZDogKFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrLFxuICAgICAgcGFkZGluZzogNXB4LFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICAgICBmb250LXNpemU6IDExcHgsXG4gICAgICBcIiZcIiA6IChcbiAgICAgICAgXCIudGQtYmxvY2tcIiA6IChcbiAgICAgICAgICBkaXNwbGF5IDogYmxvY2tcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIG1lZGlhOiAoXG4gICAgICAgIG1kOiAoXG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCxcbiAgICAgICAgICB3aWR0aDogMTAwJSxcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4IDVweCxcbiAgICAgICAgICBmb250LXNpemU6IDEycHgsXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSxcbiAgICAgICAgICBcIiZcIiA6IChcbiAgICAgICAgICAgIFwiLnRkLWJsb2NrXCIgOiAoXG4gICAgICAgICAgICAgIGRpc3BsYXkgOiB0YWJsZS1jZWxsXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gIClcbik7XG4iLCIvLyBfdGFiXG4kZ190YWItZ3JvdXAgOiAoIC8vIC50YWItd3JhcCA+IC50YWItbGlzdFxuICB0YWItd3JhcC1kZWZhdWx0IDogKCBcbiAgICBkaXNwbGF5OiBibG9jayxcbiAgICBtYXJnaW4tYm90dG9tOjYwcHgsXG4gICAgZm9udC1zaXplOiAwLFxuICAgIGNvbG9yOiAjMDAwLFxuICAgIHRleHQtYWxpZ246Y2VudGVyLFxuICApLFxuICBib3gtc3R5bGUgOiAoIFxuICAgIHRhYi1saXN0IDogKCBcbiAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrLFxuICAgICAgd2lkdGg6MTQwcHgsXG4gICAgICBwYWRkaW5nOjEzcHggMTBweCxcbiAgICAgIGJvcmRlcjoxcHggc29saWQgI2JiYixcbiAgICAgIGJvcmRlci1yaWdodDogMCxcbiAgICAgIGZvbnQtc2l6ZTogMTVweCxcbiAgICAgIGNvbG9yOiAjNzc3Nzc3LFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcbiAgICAgIGN1cnNvcjpwb2ludGVyLFxuICAgICAgYWN0aXZlIDogKCAvLy50YWItbGlzdC5hY3RpdmVcbiAgICAgICAgYm9yZGVyLWNvbG9yOiRnX3BvaW50LWZvbnQtY29sb3IyLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ19wb2ludC10aGVtZS1jb2xvcjIsXG4gICAgICAgIGNvbG9yOiAkZ193aGl0ZSxcbiAgICAgICksXG4gICAgICBcIiZcIiA6IChcbiAgICAgICAgXCI6bGFzdC1jaGlsZFwiIDogKFxuICAgICAgICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgI2JiYixcbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICksXG4pO1xuIiwiXG4vLyBfcGFnaW5hdGlvbiBcbiRnX3BhZ2UtaXRlbS1ncm91cCA6ICggLy8gKOuqhey5rSA6IGEg7YOc6re4IHBhZ2UtbGluayDroZwo7Iqk7YOA7J28KSAgLyBwYWdlLWl0ZW0g7J20IOqwgeyekOydmCB3cmFwICjqsITqsqnsobDsoJUpLyDsoITssrTrpbwgLnBhZ2luYXRpb27snbQg6rCQ7Iu46rOgIOyeiOydjClcbiAgLy8gZGVmYXVsdFxuICAvLyB3aWR0aDoyMHB4LFxuICBoZWlnaHQ6MjBweCxcblxuICAvL3BhZGRpbmc6MjBweCxcbiAgLy8gbWFyZ2luOjAgLTFweCxcbiAgLy8gdGhlbWUtY29sb3I6ICNmZmYsXG4gIC8vIGJvcmRlciA6IDFweCBzb2xpZCAjMjIyLFxuICAvL2JvcmRlci1yYWRpdXM6IDNweCxcbiAgLy9ib3JkZXItcmFkaXVzLWYtbDogM3B4LCAvLyDssqvrsojsp7gg66eI7KeA66eJIOuyhO2KvCDsvZTrhIggcmFkaXVzXG4gIC8vYm9yZGVyLXJpZ2h0IDogbm9uZSwgLy8g67KE7Yq87J20IOu2meyWtOyeiOuKlCDqsr3smrBcbiAgLy9ib3JkZXItc3R5bGU6ICggLy8gbGFzdC1jaGlsZOyXkCDsoIHsmqnrkKhcbiAgLy9cdGJvcmRlci1yaWdodCA6IFwiMXB4IHNvbGlkICNlMWUxZTFcIixcbiAgLy8pLFxuXG4gIGZvbnQtc2l6ZToxM3B4LFxuICBmb250LXdlaWdodDo0MDAsXG4gIC8vIGxldHRlci1zcGFjaW5nOi0wLjA1ZW0sXG4gIGZvbnQtY29sb3I6I2FhYSxcbiAgZm9udC1mYW1pbHk6JGZvbnQtbGF0byxcbiAgLy8gaG92ZXJcbiAgaG92ZXItdGhlbWUtY29sb3I6I2ZmZixcbiAgLy8gaG92ZXItYm9yZGVyLWNvbG9yIDogI2RkZCxcbiAgaG92ZXItY29sb3I6IzAwMCxcblxuICAvLyBhY3RpdmVcbiAgLy8gYWN0aXZlLXRoZW1lOiNmMmYyZjIsXG4gIGFjdGl2ZS1jb2xvcjojMDAwLFxuICBhY3RpdmUtc3R5bGU6ICggLy8g7Luk7Iqk7YWA7JqpXG4gICAgLyogYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnX3BvaW50LXRoZW1lLWNvbG9yLCAqL1xuICAgIGZvbnQtd2VpZ2h0OmJvbGQsXG4gICksXG5cbiAgLy8gZGlzYWJsZWRcbiAgZGltLW9wYWNpdHkgOiAuNSxcbiAgLy9kaXNhYmxlZC1zdHlsZTogKCAvLyDsu6TsiqTthYDsmqlcbiAgLy9cdC8v67KE7Yq87JeQ7ISc64qUIG1hcC1oYXMta2V56rCS7J2EIOydtOyaqe2VtOyEnCDtgqTqsJLsnbQg7J6H7Jy866m0IOunteydmCDtgqTqsJLqs7wg67Ko66WY66GcIOy2nOugpVxuICAvL1x0Ly/tjpjsnbTsp4DrhKTsnbTshZjsl5DshJzripQg7YKk6rCS7J20IOyeiOycvOuptCDslYjsl5Ag64K07JqpIOq3uOuMgOuhnCDstpzroKUuLlxuICAvL1x0Ly/qsrDqs7wg6rCS7J2AIOqwmeycvOuCmCBtaXhpbuuwqeuyleydtCDri6TrpbTri6Qg7ZiE7J6sXG4gIC8vXHRiYWNrZ3JvdW5kLWNvbG9yOiMxMTEsXG4gIC8vXHRjb2xvcjogIzExMSxcbiAgLy9cdGJvcmRlci1ib3R0b206XCIycHggc29saWQgIzAyMzg4YlwiLFxuICAvLyksXG4gIGFycm93LWdyb3VwIDogKFxuICAgIHN0YXJ0IDogKCAvL+y7pOyKpO2FgFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJhY2tncm91bmQtaW1hZ2UgOnVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL2NvbW1vbl9hcnJvd19pY29uX3N0YXJ0LnN2ZyksXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcixcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCxcbiAgICApLFxuICAgIHByZXYgOiAoXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgYmFja2dyb3VuZC1pbWFnZSA6dXJsKC92aWV3cy9yZXMvaW1ncy9ib2FyZC9wYWdpbmF0aW9uX3ByZXZfaWNvbi5wbmcpLFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIsXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQsXG4gICAgKSxcbiAgICBuZXh0IDogKFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJhY2tncm91bmQtaW1hZ2UgOnVybCgvdmlld3MvcmVzL2ltZ3MvYm9hcmQvcGFnaW5hdGlvbl9uZXh0X2ljb24ucG5nKSxcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyLFxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0LFxuICAgICksXG4gICAgZW5kIDogKFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJhY2tncm91bmQtaW1hZ2UgOnVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL2NvbW1vbl9hcnJvd19pY29uX2VuZC5zdmcpLFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIsXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQsXG4gICAgKSxcbiAgKSxcbik7XG4iLCIvLyBUb2dnbGVzXG4vL1xuLy8gVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIGNlcnRhaW4gdGhlbWUgZmVhdHVyZXMuXG5cbkBpbXBvcnQgXCJtaXhpbnMvX21lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwibWl4aW5zL19tYXBcIjtcblxuLy8gVXRpbGl0aWVzXG4vL0BpbXBvcnQgXCJtaXhpbnMvYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2NsZWFyXCI7XG5AaW1wb3J0IFwibWl4aW5zL19mbG9hdFwiO1xuQGltcG9ydCBcIm1peGlucy9faG92ZXJcIjtcbi8vQGltcG9ydCBcIm1peGlucy9pbWFnZVwiO1xuLy9AaW1wb3J0IFwibWl4aW5zL2JhZGdlXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvcmVzaXplXCI7XG5AaW1wb3J0IFwibWl4aW5zL19zY3JlZW5yZWFkZXJcIjtcbi8vQGltcG9ydCBcIm1peGlucy9zaXplXCI7XG5AaW1wb3J0IFwibWl4aW5zL19yZXNldC10ZXh0XCI7XG5AaW1wb3J0IFwibWl4aW5zL19wcmVmaXhlclwiO1xuLy9AaW1wb3J0IFwibWl4aW5zL3RleHQtZW1waGFzaXNcIjtcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LWhpZGVcIjtcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LXRydW5jYXRlXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvdHJhbnNmb3Jtc1wiO1xuLy9AaW1wb3J0IFwibWl4aW5zL3Zpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2JvcmRlci1yYWRpdXNcIjtcblxuLy8gLy8gTGF5b3V0XG4vLyBAaW1wb3J0IFwibWl4aW5zL25hdmJhci1hbGlnblwiO1xuLy9AaW1wb3J0IFwibWl4aW5zL2dyaWQtZnJhbWV3b3JrXCI7XG5AaW1wb3J0IFwibWl4aW5zL19hcmVhXCI7XG5AaW1wb3J0IFwibWl4aW5zL19ncmlkXCI7XG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vL1xuXG5cbi8vIC8vIENvbXBvbmVudHNcbi8vQGltcG9ydCBcIm1peGlucy9hbGVydFwiO1xuQGltcG9ydCBcIm1peGlucy9fdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2FyZHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvX3BhZ2luYXRpb25cIjtcbi8vQGltcG9ydCBcIm1peGlucy9saXN0c1wiO1xuLy9AaW1wb3J0IFwibWl4aW5zL2xpc3QtZ3JvdXBcIjtcbi8vQGltcG9ydCBcIm1peGlucy9uYXYtZGl2aWRlclwiO1xuQGltcG9ydCBcIm1peGlucy9fZm9ybXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdGFibGVzXCI7XG4vL0BpbXBvcnQgXCJtaXhpbnMvdGFibGUtcm93XCI7XG5AaW1wb3J0IFwibWl4aW5zL190YWJcIjtcblxuIiwiLy8gbWVkaWEtcXVlcnktbWluIOuvueyKpOyduFxuLy8gW+unpOqwnOuzgOyImF1cbi8vICRicmVha3BvaW50IOq4sOuzuOqwkjog7JeG7J2MXG4vLyAkYnJlYWtwb2ludCDsl5Ag6rCA7Jqp6rCA64ql7ZWcIOqwklxuLy8gKDEpICRtZWRpYS1icmVha3BvaW50cyDsnZgg7YKkIOqwkiAoeHMsIHNtLCBtZCwgbGcsIHhsICnspJEg7ZWY64KYXG4vLyAoMikg6rOg7KCVIHB46rCSXG4vLyAkYnJlYWtwb2ludCDsoITri6zrkJwg6rCS7JeQIOuUsOudvOyEnCBAbWVkaWEobWluLXdpZHRoOiBcIuunpOqwnOuzgOyImOyXkCDtlbTri7ntlZjripQg6rCSXCIpIOyFi+2Mhe2VtOykjeuLiOuLpC5cbi8vICRicmVha3BvaW50IOqwkuydhCDtlL3shYDroZwg64Sj64qU64uk66m0IO2VtOuLuSDtlL3shYDqsJLsnZgg66+465SU7Ja07L+866as66W8IOunjOuTpOyWtCDspI3ri4jri6QuXG4vLyBleCkgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKGxnKSB7IEBjb250ZW50IH1cbi8vIGV4KSBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oNTAwcHgpIHsgQGNvbnRlbnQgfVxuQG1peGluIG1lZGlhLXF1ZXJ5LW1pbiggJGJyZWFrcG9pbnQgKSB7XG4gIEBpZiBtYXBfaGFzX2tleSggJGdfbWVkaWEtYnJlYWtwb2ludHMsICRicmVha3BvaW50ICl7XG4gICAgQGlmICAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XG4gICAgICAgIEBjb250ZW50XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIHVuaXQoJGJyZWFrcG9pbnQpID09IFwicHhcIiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQpeyAgQGNvbnRlbnQgIH1cbiAgfVxufVxuQG1peGluIG1lZGlhLXF1ZXJ5LW1heCggJGJyZWFrcG9pbnQgKSB7XG4gIEBpZiBtYXBfaGFzX2tleSggJGdfbWVkaWEtYnJlYWtwb2ludHMsICRicmVha3BvaW50ICl7XG4gICAgQGlmICAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XG4gICAgICAgIEBjb250ZW50XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIHVuaXQoJGJyZWFrcG9pbnQpID09IFwicHhcIiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQpeyAgQGNvbnRlbnQgIH1cbiAgfVxufVxuXG5cbi8vIG1lZGlhLXF1ZXJ5LW1pbi12YWwg7ZWo7IiYXG4vLyDsoITsl63rs4DsiJggJG1lZGlhLWJyZWFrcG9pbnRzIG1hcOydmCB2YWx1ZeulvCDrsJjtmZjtlbQg7KSN64uI64ukLlxuLy8g7KO866GcIGVhY2gg66y46rO8IOqwmeydgCBsb29wIOusuOyXkOyEnCDtmZzsmqnrkKnri4jri6QuXG4vLyBleClcbi8vIEBlYWNoICRicmVha3BvaW50IGluIG1hcF9rZXlzKCRtZWRpYS1icmVha3BvaW50cykge1xuLy8gICAkcG9pbnQ6IG1lZGlhLXF1ZXJ5LW1pbi12YWwoJGJyZWFrcG9pbnQpO1xuLy8gICBAbWVkaWEgKCBtaW4td2lkdGg6ICN7JHBvaW50fSApe1xuLy8gICAgIC4jeyRicmVha3BvaW50fS1mLWwgeyBAaW5jbHVkZSBmbG9hdC1sZWZ0IH1cbi8vICAgICAuI3skYnJlYWtwb2ludH0tZi1yIHsgQGluY2x1ZGUgZmxvYXQtcmlnaHQgfVxuLy8gICAgIC4jeyRicmVha3BvaW50fS1mLW4geyBAaW5jbHVkZSBmbG9hdC1ub25lIH1cbi8vICAgfVxuLy8gfVxuQGZ1bmN0aW9uIG1lZGlhLXF1ZXJ5LW1pbi12YWwoICRicmVha3BvaW50ICl7XG4gIEByZXR1cm4gbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpO1xufVxuXG5cblxuXG5cblxuIiwiQGZ1bmN0aW9uIG1hcC1zZXQoJG1hcCwgJGtleSwgJHZhbHVlKSB7XG4gICRuZXc6ICgka2V5OiAkdmFsdWUpO1xuICBAcmV0dXJuIG1hcC1tZXJnZSgkbWFwLCAkbmV3KTtcbn1cblxuXG4vL3ByZWZpeCDsoJzqsbBcbi8v7YOc6re47J2066aELCDsho3shLEsIOyVhOydtOuUlCDrk7EgIOyFgOugie2EsCDqsIDriqXrj4TroZ1cbkBmdW5jdGlvbiBtYWtlTWFwVG9Db2RlcygkbWFwLCAkcHJlZml4OiBcIlwiLCAkc2VsZjogZmFsc2UpIHtcbiAgJGNvZGVzIDogKCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJG1hcCB7XG4gICAgQGlmICggdHlwZS1vZigkdmFsKSA9PSBtYXAgKSB7XG5cbiAgICAgIEBpZiAoJGtleSA9PSBcIiZcIikge1xuICAgICAgICAkbWFrZTogbWFrZU1hcFRvQ29kZXMoJHZhbCwgXCJcIiwgdHJ1ZSk7XG4gICAgICAgICRjb2RlczogbWFwLW1lcmdlKCRjb2RlcywgJG1ha2UpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzZWxlY3RvcjogXCIuI3skcHJlZml4fSN7JGtleX1cIjtcblxuICAgICAgICBAaWYgKCRzZWxmKSB7XG4gICAgICAgICAgJHNlbGVjdG9yIDogXCImI3skcHJlZml4fSN7JGtleX1cIjtcbiAgICAgICAgfVxuICAgICAgICAkbWFrZTogbWFrZU1hcFRvQ29kZXMoJHZhbCwgJHByZWZpeCk7XG4gICAgICAgICRjb2RlczogbWFwLXNldCgkY29kZXMsICRzZWxlY3RvciwgJG1ha2UpO1xuICAgICAgfVxuICAgICAgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkY29kZXM6IG1hcC1zZXQoJGNvZGVzLCAka2V5LCAkdmFsKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkY29kZXM7XG59O1xuXG5cbkBtaXhpbiBwcmludENvZGVzKCRtYXApIHtcblxuICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xuICAgXG4gICAgQGlmICggdHlwZS1vZigkdmFsKSA9PSBtYXAgKSB7XG4gICAgICAjeyRrZXl9IHtcbiAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkdmFsKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JGtleX0gOiAjeyR2YWx9O1xuICAgIH1cbiAgICBcbiAgfVxufVxuXG4vLyBpc01hcCDtlajsiJhcbi8vICN7a2V5fSA6ICN7dmFsdWV97J2YIO2Yle2DnOulvCDrpqzthLTtlbTso7zripQg7ZWo7IiYXG4vLyBpc01hcCgkdmFsLCAka2V5KTtcbi8vIGlzTWFwIO2VqOyImOyXkOyEnCDsnbjsnpDroZwg64SY7Ja07JioICckdmFsJ+yXkCDtlaDri7nrkJwg6rCS7J20IG1hcOydtOudvOuptCBpc21hcO2VqOyImOulvCDsnqzqt4DtmLjstpwg7ZWc64ukLlxuLy8g7JiI7Jm47KCB7Jy866GcIO2CpOqwkuydtCBcIl9cIiDrnbzrqbQgaXNQc2V1ZG/rpbwg7Zi47Lac7ZWc64ukLlxuLy8g7LWc7KKF7KCB7Jy866GcICN7a2V5fSA6ICN7dmFsdWV97J2YIOqwkuydhCDrpqzthLTtlZjrj4TroZ0g66eM65Og64ukLlxuXG4vL2lzUHNldWRvIO2VqOyImFxuLy/qsIDsg4Eg7ISg7YOd7J6Q66W8IOunjOuTpOyWtCDrpqzthLTtlbTso7zripQg7ZWo7IiYXG4vL1xuXG5cbi8vQGZ1bmN0aW9uIGlzTWFwICgkdmFsLCAka2V5KSB7XG4vLyAgJHJlc3VsdCA6ICgpO1xuLy9cbi8vICBAaWYgKHR5cGUtb2YoJHZhbCkgPT0gbWFwKSB7XG4vLyAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XG4vLyAgICAgIEBpZiAodHlwZS1vZigkdmFsMikgPT0gbWFwIGFuZCAka2V5ID09IG51bGwpIHtcbi8vICAgICAgICAkbWFwIDogaXNNYXAoJHZhbDIsICRrZXkyKTtcbi8vICAgICAgICAkbWFwa2V5IDogbWFwLWtleXMoJG1hcCk7XG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkbWFwa2V5LCBtYXAtZ2V0KCRtYXAsICN7JG1hcGtleX0pKTtcbi8vICAgICAgfSBAZWxzZSBpZiAodHlwZS1vZigkdmFsMikgPT0gbWFwIGFuZCAka2V5ID09IFwiX1wiKXtcbi8vICAgICAgICAkcmVzdWx0OiBtYXAtc2V0KCRyZXN1bHQsICRrZXkyLCBpc01hcCgkdmFsMiwgJGtleTIpKTtcbi8vICAgICAgfSBAZWxzZSB7XG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAka2V5MiwgJHZhbDIpO1xuLy8gICAgICB9XG4vLyAgICB9XG4vLyAgfSBAZWxzZSB7XG4vLyAgICAkcmVzdWx0OiBtYXAtc2V0KCRyZXN1bHQsICR2YWwsICRrZXkpO1xuLy8gIH1cbi8vXG4vLyAgQHJldHVybiAkcmVzdWx0O1xuLy99O1xuXG5cbi8vQGZ1bmN0aW9uIGlzUHNldWRvICgka2V5LCAkdmFsKSB7XG4vLyAgJHJlc3VsdDogbnVsbDtcbi8vICBAaWYgKCRrZXkgPT0gXCJfXCIpIHtcbi8vICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcbi8vICAgICAgJHJlc3VsdDogaXNNYXAoJGtleTIsICR2YWwyKTtcbi8vICAgICAgQHJldHVybiBpc01hcCgka2V5MiwgJHZhbDIpO1xuLy8gICAgfVxuLy8gIH0gQGVsc2UgIHtcbi8vICAgICRyZXN1bHQ6IGlzTWFwKCRrZXksICR2YWwpO1xuLy8gICAgQHJldHVybiAkcmVzdWx0O1xuLy8gIH1cbi8vfTtcblxuXG4iLCJAbWl4aW4gY2xlYXIoKSB7XG4gICY6OmFmdGVyIHtcbiAgICAgY29udGVudDogXCJcIjtcbiAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgIGNsZWFyOiBib3RoO1xuICAgfVxufVxuXG5cblxuIiwiQG1peGluIGZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuQG1peGluIGZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG5AbWl4aW4gZmxvYXQtbm9uZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCJAbWl4aW4gaG92ZXItb257XG4gICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlLCAmLm9ueyBAY29udGVudDsgfVxufVxuXG5AbWl4aW4gaG92ZXJ7XG4gICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHsgQGNvbnRlbnQ7IH1cbn1cbiIsIi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxuLy8gU2VlOiBodHRwOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvXG4vLyBTZWU6IGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIHNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cbkBtaXhpbiB0ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4iLCJAbWl4aW4gcmVzZXQtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgLy8gV2UgZGVsaWJlcmF0ZWx5IGRvIE5PVCByZXNldCBmb250LXNpemUgb3Igd29yZC13cmFwLlxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEZhbGxiYWNrIGZvciB3aGVyZSBgc3RhcnRgIGlzIG5vdCBzdXBwb3J0ZWRcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xufVxuIiwiLy8gLyogcHJlZml4ICovXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlczooKSl7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVze1xuICAgICN7Jy0nKyRwcmVmaXgrJy0nKyRwcm9wZXJ0eX06JHZhbHVlO1xuICB9XG4gICN7JHByb3BlcnR5fSA6ICR2YWx1ZTtcbn1cblxuICAvLyBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHJvdGF0ZSg0NWRlZyksIHdlYmtpdCBtcyk7IG9yIChcIndlYmtpdFwiLCBcIm1velwiKVxuXG4gLy9jc3NcbiAgLy8gLnNlbGVjdG9yIHtcbiAgLy8gICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLy8gICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAvLyAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLy8gfVxuXG4iLCIvLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbiIsIi8vIG1ha2UtYXJlYSDrr7nsiqTsnbhcbi8vIOq4sOuzuOqwkuydtCBudWxs66GcIOyFi+2MheuQmOyWtCDsnojripQg7JqU7IaM64qUIOyduOyekOqwgCDsoITri6zrkJjsp4Ag7JWK7J2EIOyLnCDsu7TtjIzsnbwg65CY7KeAIOyViuyKteuLiOuLpC5cbi8vIFvrp6TqsJzrs4DsiJhdXG4vLyAkbWF4LXdpZHRoIOq4sOuzuOqwkjogbnVsbFxuLy8gJGd1dHRlci13aWR0aCDquLDrs7jqsJI6IG51bGxcbi8vICR3aWR0aCDquLDrs7jqsJI6IDEwMCVcbi8vIGV4KSBAaW5jbHVkZSBtYWtlLWFyZWEoICRtYXgtd2lkdGg6ICRtYXgtd2lkdGgsICRndXR0ZXItd2lkdGg6ICRhcmVhLWd1dHRlci13aWR0aCApO1xuLy8gZXgpIEBpbmNsdWRlIG1ha2UtYXJlYSggJHdpZHRoOiAxNjAwcHggKTtcbi8vQG1peGluIG1ha2UtYXJlYSggJG1heC13aWR0aDogbnVsbCwgJGd1dHRlci13aWR0aDogbnVsbCwgJHdpZHRoOiAxMDAlICkge1xuLy8gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICB3aWR0aDogJHdpZHRoO1xuLy8gIG1heC13aWR0aDogJG1heC13aWR0aDtcbi8vICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLyAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyAgcGFkZGluZy1yaWdodDogJGd1dHRlci13aWR0aDtcbi8vICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXItd2lkdGg7XG4vL31cblxuQG1peGluIG1ha2UtYXJlYSggJGFyZWEtaW5mbzogJGdfZGVmYXVsdC1hcmVhICkge1xuICAkd2lkdGg6IDEwMCU7XG4gIEBpZiAgbWFwLWhhcy1rZXkoJGFyZWEtaW5mbywgd2lkdGgpIHtcbiAgICAkd2lkdGggOiBtYXAtZ2V0KCRhcmVhLWluZm8sIHdpZHRoKVxuICB9IEBlbHNlIHtcbiAgICAkd2lkdGggOiAxMDAlXG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJHdpZHRoO1xuICBtYXgtd2lkdGg6IG1hcC1nZXQoJGFyZWEtaW5mbywgbWF4LXdpZHRoKTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkYXJlYS1pbmZvLCBndXR0ZXItd2lkdGgpO1xuICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJGFyZWEtaW5mbywgZ3V0dGVyLXdpZHRoKTtcbn1cblxuIiwiLy8gbWFrZS1yb3cg66+57Iqk7J24XG4vLyBb66ek6rCc67OA7IiYXVxuLy8gJGdyaWQtZ3V0dGVyIOq4sOuzuOqwkjogJGdyaWQtZ3V0dGVyLXdpZHRoXG4vLyAkZ3JpZC1ndXR0ZXIg7KCE64us65CcIOqwkuyXkCDrlLDrnbzshJwgbWFyZ2luLXJpZ2h0LCBtYXJnaW4tbGVmdCDqsJLsnYQg7IWL7YyF7ZW0IOykjeuLiOuLpC5cbi8vIGV4KSBAaW5jbHVkZSBtYWtlLXJvdyggJGdyaWQtZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpO1xuQG1peGluIG1ha2Utcm93KCAkZ3JpZC1ndXR0ZXIgOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogLSRncmlkLWd1dHRlcjtcbiAgbWFyZ2luLWxlZnQ6IC0kZ3JpZC1ndXR0ZXI7XG4gIEBpbmNsdWRlIGNsZWFyKCk7XG59XG5cbi8vIG1ha2UtY29sLXNldCDrr7nsiqTsnbhcbi8vIFvrp6TqsJzrs4DsiJhdXG4vLyAkZ3JpZC1jb2wtY250IOq4sOuzuOqwkjogJGdyaWQtY29sdW1uc1xuLy8gJGdyaWQtY29sLWNudCDsoITri6zrkJwg6rCS7J2YIOqwnOyImOunjO2CgeydmCBjb2wscHVsbCxwdXNoLG9mZnNldCDrk7HsnYQg66eM65Ok7Ja07KSN64uI64ukLlxuLy8gZXgpIEBpbmNsdWRlIG1ha2UtY29sLXNldCgpO1xuLy8gZXgpIEBpbmNsdWRlIG1ha2UtY29sLXNldCgkZ3JpZC1jb2wtY250OiA1KTtcbkBtaXhpbiBtYWtlLWNvbC1zZXQoICRncmlkLWNvbC1pbmZvOiAkZ19ncmlkLWNvbC1pbmZvICkge1xuICAkZ3JpZC1jb2wtbmFtZTogbnVsbDtcbiAgQGlmICBtYXAtaGFzLWtleSgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtbmFtZSkge1xuICAgICRncmlkLWNvbC1uYW1lIDogbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtbmFtZSlcbiAgfSBAZWxzZSB7XG4gICAgJGdyaWQtY29sLW5hbWUgOiBudWxsXG4gIH1cbiAgICBAaW5jbHVkZSBtYWtlLWNvbCggbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtY250KSwgJGdyaWQtY29sLW5hbWUgKTtcbiAgQGluY2x1ZGUgbWFrZS1wdWxsKCBtYXAtZ2V0KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1jbnQpLCAkZ3JpZC1jb2wtbmFtZSApO1xuICBAaW5jbHVkZSBtYWtlLXB1c2goIG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLWNudCksICRncmlkLWNvbC1uYW1lICk7XG4gIEBpbmNsdWRlIG1ha2Utb2Zmc2V0KCBtYXAtZ2V0KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1jbnQpLCAkZ3JpZC1jb2wtbmFtZSApO1xufVxuXG5cbkBtaXhpbiBtYWtlLWNvbCggJGdyaWQtY29sLWNudDogJGdyaWQtY29sLWNudCwgJGNvbC1uYW1lOiAkY29sLW5hbWUgKSB7XG4gIEBlYWNoICRicmVha3BvaW50LCAkcG9pbnQgaW4gJGdfbWVkaWEtYnJlYWtwb2ludHMge1xuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XG4gICAgICAuI3skY29sLW5hbWV9Y29sIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgLiN7JGNvbC1uYW1lfWNvbC1hdXRvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9O1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRpfSB7XG4gICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xuICAgICAgICAuI3skY29sLW5hbWV9Y29sLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRicmVha3BvaW50fS1hdXRvIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfTtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcbiAgICAgICAgICAuI3skY29sLW5hbWV9Y29sLSN7JGJyZWFrcG9pbnR9LSN7JGl9IHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYWtlLXB1bGwoICRncmlkLWNvbC1jbnQ6ICRncmlkLWNvbC1jbnQsICRjb2wtbmFtZTogJGNvbC1uYW1lICkge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xuICAgICAgLiN7JGNvbC1uYW1lfXB1bGwtMCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfXB1bGwtI3skaX0ge1xuICAgICAgICAgIHJpZ2h0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfXB1bGwtI3skYnJlYWtwb2ludH0tMCB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcbiAgICAgICAgICAuI3skY29sLW5hbWV9cHVsbC0jeyRicmVha3BvaW50fS0jeyRpfSB7XG4gICAgICAgICAgICByaWdodDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1wdXNoKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XG4gICAgQGlmICRicmVha3BvaW50ID09IHhzIHtcbiAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLTAge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfXB1c2gtI3skaX0ge1xuICAgICAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xuICAgICAgICAuI3skY29sLW5hbWV9cHVzaC0jeyRicmVha3BvaW50fS0wIHtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XG4gICAgICAgICAgLiN7JGNvbC1uYW1lfXB1c2gtI3skYnJlYWtwb2ludH0tI3skaX0ge1xuICAgICAgICAgICAgbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1vZmZzZXQoICRncmlkLWNvbC1jbnQ6ICRncmlkLWNvbHVtbnMsICRjb2wtbmFtZTogJGNvbC1uYW1lICkge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcbiAgICAkcG9pbnQ6IG1lZGlhLXF1ZXJ5LW1pbi12YWwoJGJyZWFrcG9pbnQpO1xuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQgLSAxIHtcbiAgICAgICAgLiN7JGNvbC1uYW1lfW9mZnNldC0jeyRpfSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQgLSAxIHtcbiAgICAgICAgICAuI3skY29sLW5hbWV9b2Zmc2V0LSN7JGJyZWFrcG9pbnR9LSN7JGl9IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIHRyaWFuZ2xlKOKWtiksIGFycm93KD4pIOyCrOyaqeuylVxuLy8gLSDrsKntlqUgOiB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHRcbi8vICh0cmlhbmdsZSjilrYp7J2AIHRvcC1sZWZ0L3JpZ2h0LCBib3R0b20tbGVmdC9yaWdodCDrsKntlqXrj4Qg6rCA64qlKVxuLy8gQGluY2x1ZGUgdHJpYW5nbGUoXCLsgrzqsIHtmJXrsKntlqVcIiwg6rCA66GccHgsIOyEuOuhnHB4LCAj7Lus65+sKTtcbi8vIEBpbmNsdWRlIGFycm93KFwi7ZmU7IK07ZGc67Cp7ZalXCIsIOqwgOuhnHB4LCDshLjroZxweCwg7ISg6rW16riwLCAj7Lus65+sKTtcbi8vIOywuOqzoCB1cmwgOiBodHRwOi8vYXBwcy5la3kuaGsvY3NzLXRyaWFuZ2xlLWdlbmVyYXRvci9cblxuLy8g7IK86rCB7ZiVIOKWtlxuQG1peGluIHRyaWFuZ2xlKCRkaXJlY3Rpb24sICR3aWR0aFNpemUsICRoZWlnaHRTaXplLCAkY29sb3IpIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIEBpZiAkZGlyZWN0aW9uPT1cInRvcFwiIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogMCAoJHdpZHRoU2l6ZSAvIDIpICRoZWlnaHRTaXplO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ0b3AtcmlnaHRcIiB7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogMCAkd2lkdGhTaXplICRoZWlnaHRTaXplIDA7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogKCRoZWlnaHRTaXplIC8gMikgMCAoJGhlaWdodFNpemUgLyAyKSAkd2lkdGhTaXplO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b20tcmlnaHRcIiB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMCAkd2lkdGhTaXplICR3aWR0aFNpemU7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImJvdHRvbVwiIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGhlaWdodFNpemUgKCR3aWR0aFNpemUgLyAyKSAwO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b20tbGVmdFwiIHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICR3aWR0aFNpemUgMCAwICR3aWR0aFNpemU7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogKCRoZWlnaHRTaXplIC8gMikgJHdpZHRoU2l6ZSAoJGhlaWdodFNpemUgLyAyKSAwO1xuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ0b3AtbGVmdFwiIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoU2l6ZSAkd2lkdGhTaXplIDAgMDtcbiAgfVxufVxuLy8g7ZmU7IK07ZGcID5cbkBtaXhpbiBhcnJvdygkZGlyZWN0aW9uLCAkd2lkdGgsICRoZWlnaHQsICRib3JkZXIsICRjb2xvcikge1xuICBjb250ZW50OlwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGZsb29yKCR3aWR0aCAvIDEuNDE0KTtcbiAgaGVpZ2h0OiBmbG9vcigkaGVpZ2h0Kigkd2lkdGgvJGhlaWdodCkgLyAxLjQxNCk7XG4gIGJvcmRlci10b3A6ICRib3JkZXIgc29saWQgJGNvbG9yO1xuICBib3JkZXItcmlnaHQ6ICRib3JkZXIgc29saWQgJGNvbG9yO1xuICBAaWYgJGRpcmVjdGlvbiA9PSBcInRvcFwiIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCJ7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbj09XCJsZWZ0XCIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImJvdHRvbVwiIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gIH1cbn1cblxuLy/soIHsmqkg7ZuELCBtYXJnaW7snbTrgpggdHJhc25mb3Jt7Jy866GcIOychOy5mCDsobDsoIguIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vLyDrsoTtirwg7IKs7J207KaI67OEIOyDneyEsVxuQG1peGluIGJ1dHRvbi1zaXplLXB4KCRidG4tc2l6ZSA6ICRnX2J0bi1zaXplKSB7XG4gIC8vIEJhc2Ugc3R5bGVzXG4gICVidG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGxpbmVhcixib3JkZXIgLjNzIGxpbmVhcjtcbiAgfVxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkYnRuLXNpemUpe1xuICAgIC5idG4tI3ska2V5fSB7XG4gICAgICBAZXh0ZW5kICVidG47XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XG4gICAgICAgIEBpZiAoJGtleTIgPT0gbWVkaWEpIHtcbiAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gJHZhbDIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDMpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IEBlbHNle1xuICAgICAgICAgIEBpZiAoIHR5cGUtb2YoJHZhbDIpID09IG1hcCApIHsgLy8gb25lIGRlcHRoIGNsYXNzIOyViOyXkCDstpTqsIAgY2xhc3Mg7IOd7ISxXG4gICAgICAgICAgICAuI3ska2V5Mn0ge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwyKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gQGVsc2UgeyAvLyBvbmUgZGVwdGggY2xhc3Mg67KE7Yq8XG4gICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidG4tZGlzYWJsZWQoKSB7XG4gICYuZGlzYWJsZWQge1xuICAgIEBjb250ZW50O1xuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIH1cbn1cblxuLy8g67KE7Yq8IOyKpO2DgOydvCDshKTsoJXtlbTso7zquLBcbkBtaXhpbiBidXR0b24tc3R5bGUoJGJ0bi1ncm91cCA6ICRnX2J0bi1ncm91cCl7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJ0bi1ncm91cCB7XG4gICAgLmJ0bi0jeyRrZXl9LFxuICAgIC5idG4tI3ska2V5fTp2aXNpdGVke1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgICBAaWYgKCRrZXkyID09IG1lZGlhKSB7IC8vIG1lZGlhXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mykge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfUBlbHNlIGlmKCRrZXkyID09IGhvdmVyKXsgLy8gaG92ZXJcbiAgICAgICAgICBAaW5jbHVkZSBob3Zlci1vbiB7XG4gICAgICAgICAgICBAZWFjaCAka2V5NCwgJHZhbDQgaW4gJHZhbDIge1xuICAgICAgICAgICAgICAvLyBAaWYoJGtleTQgIT0gYmFja2dyb3VuZC1jb2xvcil7IC8vIGJhY2tncm91bmQtY29sb3Ig7J207Jm47J2YIOuCmOuouOyngCDstpzroKVcbiAgICAgICAgICAgICAgICAjeyRrZXk0fTogI3skdmFsNH07XG4gICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEBpZihtYXBfaGFzX2tleShtYXAtZ2V0KCR2YWwsaG92ZXIpLGJhY2tncm91bmQtY29sb3IpKXsgLy9ob3ZlciBtYXDsl5AgYmFja2dyb3VuZC1jb2xvciDqsJLsnbQg7J6I7Jy866m0IOq3uOqyg+ydhCDstpzroKVcbiAgICAgICAgICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkdmFsMixiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIC8vIEBlbHNlIGlmKG1hcF9oYXNfa2V5KCR2YWwsYmFja2dyb3VuZC1jb2xvcikpeyAvL+yXhuycvOuptCDquLDrs7gg7ISk7KCV6rCS7JeQIGRhcmtlbuycvOuhnCDsoIHsmqlcbiAgICAgICAgICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjpkYXJrZW4obWFwLWdldCgkdmFsLGJhY2tncm91bmQtY29sb3IpLCAxNSUpO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgIH1cbiAgICAgICAgfUBlbHNlIGlmKCRrZXkyID09IGRpc2FibGVkKXsgLy8gZGlzYWJsZWRcbiAgICAgICAgICBAaW5jbHVkZSBidG4tZGlzYWJsZWQge1xuICAgICAgICAgICAgQGlmICggdHlwZS1vZigkdmFsMikgPT0gbWFwICkge1xuICAgICAgICAgICAgICBAZWFjaCAka2V5NSwgJHZhbDUgaW4gJHZhbDIge1xuICAgICAgICAgICAgICAgICN7JGtleTV9OiAjeyR2YWw1fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfUBlbHNle1xuICAgICAgICAgIEBpZiAoIHR5cGUtb2YoJHZhbDIpID09IG1hcCApIHsgLy8gb25lIGRlcHRoIGNsYXNzIOyViOyXkCDstpTqsIAgY2xhc3Mg7IOd7ISxXG4gICAgICAgICAgICAuI3ska2V5Mn0ge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwyKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gQGVsc2UgeyAvLyBvbmUgZGVwdGggY2xhc3Mg7L2U65OcIOy2nOugpVxuICAgICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCJAbWl4aW4gbWFrZS1jYXJkLXNldCgkY2FyZC1pbmZvKSB7XG4gICVjYXJkLXdyYXB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGNhcmQtaW5mbyB7XG4gICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgQGlmICRrZXkyID09IFwid3JhcFwiIHtcbiAgICAgICAgLmNhcmQtI3ska2V5Mn0tI3ska2V5fSB7XG4gICAgICAgICAgQGV4dGVuZCAlY2FyZC13cmFwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHZhbDIsIG1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbDIsIHBhZGRpbmcpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAgbWFwLWdldCgkdmFsMiwgYm9yZGVyLXN0eWxlKSB7XG4gICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XG4gICAgICAgICAgfVxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHZhbDIsIGJvcmRlci1yYWRpdXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAka2V5MiA9PSBcImhlYWRlclwiIHtcbiAgICAgICAgLmNhcmQtd3JhcC0jeyRrZXl9e1xuICAgICAgICAgIC5jYXJkLSN7JGtleTJ9IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbDIsIHBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkdmFsMiwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gIG1hcC1nZXQoJHZhbDIsIGJvcmRlci1zdHlsZSkge1xuICAgICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHZhbDIsIGZvbnQtc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLmNhcmQtd3JhcC0jeyRrZXl9e1xuICAgICAgICAgIC5jYXJkLSN7JGtleTJ9IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbDIsIHBhZGRpbmcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkdmFsMiwgYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gIG1hcC1nZXQoJHZhbDIsIGJvcmRlci1zdHlsZSkge1xuICAgICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vLyDri6Qg64KY64iE6rOgIO2VmOuCmOuhnCDtlansuZjripTqsowg7KKL7KeAIOyViuydhOq5jD8/Pz8/Pz9cbi8vIOyDgeyGjeydmCDqs4TrhZDsnYQg7KCB7Jqp7ZW07JW8IO2VmOuKlOqwgD8/XG4vLyDsg4Hsho3snYQg7KCB7Jqp7ZWY66m0IOy9lOuTnOqwgCDsobDquIgg67O17J6h7ZW07KeI65OvXG4vLyDslYTsmIggd3JhcCwgaGVhZGVyLCBib2R5LCBmb290ZXIg64KY64iE64qU642Y7KeALCDsp4DquIjsspjrn7wg7LKY66as7ZWY64qU6rKMIOuCmOydhOuTr1xuIiwiLy8gUGFnaW5hdGlvblxuQG1peGluIHBhZ2luYXRpb24tbGlua3MoJHBhZ2UtaXRlbSl7XG4gIHdpZHRoOm1hcC1nZXQoJHBhZ2UtaXRlbSwgd2lkdGgpO1xuICBoZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBoZWlnaHQpO1xuICBsaW5lLWhlaWdodDptYXAtZ2V0KCRwYWdlLWl0ZW0sIGhlaWdodCk7IC8vIGhlaWdodOqwkuqzvCDrj5nsnbxcblxuICAvL3BhZGRpbmc6bWFwLWdldCgkcGFnZS1pdGVtLCBwYWRkaW5nKTsgLT4g7IKt7KCc7JiI7KCVIOuztOulmC4uXG4gIG1hcmdpbjptYXAtZ2V0KCRwYWdlLWl0ZW0sIG1hcmdpbik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkcGFnZS1pdGVtLCB0aGVtZS1jb2xvcik7XG4gIGJvcmRlcjogbWFwLWdldCgkcGFnZS1pdGVtLCBib3JkZXIpO1xuICBib3JkZXItcmlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBib3JkZXItcmlnaHQpO1xuXG4gIGJvcmRlci1yYWRpdXM6bWFwLWdldCgkcGFnZS1pdGVtLCBib3JkZXItcmFkaXVzKTtcbiAgZm9udC1zaXplOm1hcC1nZXQoJHBhZ2UtaXRlbSwgZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBmb250LXdlaWdodCk7XG4gIGZvbnQtZmFtaWx5Om1hcC1nZXQoJHBhZ2UtaXRlbSwgZm9udC1mYW1pbHkpO1xuICBsZXR0ZXItc3BhY2luZzptYXAtZ2V0KCRwYWdlLWl0ZW0sIGxldHRlci1zcGFjaW5nKTtcbiAgY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLCBmb250LWNvbG9yKTtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRwYWdlLWl0ZW0sIGhvdmVyLXRoZW1lLWNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJHBhZ2UtaXRlbSxob3Zlci10aGVtZS1jb2xvcik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ZGFya2VuKCBtYXAtZ2V0KCRwYWdlLWl0ZW0sIHRoZW1lLWNvbG9yKSwgMTUlKTtcbiAgICB9XG4gICAgY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLCBob3Zlci1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRwYWdlLWl0ZW0sIGhvdmVyLWJvcmRlci1jb2xvcik7XG4gIH1cblxufVxuLy8g7JWh7Yuw67iMIOuQoOyLnFxuQG1peGluIHBhZ2luYXRpb24tYWN0aXZlKCRwYWdlLWFjdGl2ZS1pdGVtKXtcbiAgYmFja2dyb3VuZC1jb2xvcjptYXAtZ2V0KCRwYWdlLWFjdGl2ZS1pdGVtLCBhY3RpdmUtdGhlbWUpO1xuICBjb2xvcjptYXAtZ2V0KCRwYWdlLWFjdGl2ZS1pdGVtLGFjdGl2ZS1jb2xvcik7XG4gIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAobWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSxhY3RpdmUtc3R5bGUpKXtcbiAgICAjeyRrZXkyfTogI3skdmFsMn07XG4gIH1cbn1cbi8vIOuUpCDrkKDsi5xcbkBtaXhpbiBwYWdpbmF0aW9uLWRpc2FibGVkKCRwYWdlLWRpc2FibGVkLWl0ZW0pe1xuICBvcGFjaXR5Om1hcC1nZXQoJHBhZ2UtZGlzYWJsZWQtaXRlbSwgZGltLW9wYWNpdHkpO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gKG1hcC1nZXQoJHBhZ2UtZGlzYWJsZWQtaXRlbSxkaXNhYmxlZC1zdHlsZSkpe1xuICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcbiAgfVxufVxuXG4vLyDsspjsnYwg7J207KCEIOuLpOydjCDrgZ0gYXJyb3cg6rSA66CoIOy7pOyKpO2FgFxuQG1peGluIHBhZ2luYXRpb24tYXJyb3dzKCRwYWdlLWFycm93LXN0eWxlKSB7XG4gIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkcGFnZS1hcnJvdy1zdHlsZSB7XG4gICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xuICB9XG59IiwiQG1peGluIG1ha2UtZm9ybS13cmFwKCAkZm9ybS13cmFwLWluZm8gOiAkZ19mb3JtLXdyYXAgKSB7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRmb3JtLXdyYXAtaW5mbyl7XG4gICAgLmZvcm0td3JhcC0jeyRrZXl9IHtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcbiAgICAgICAgQGlmKHR5cGUtb2YoJHZhbDIpICE9IG1hcCkge1xuICAgICAgICAgICN7JGtleTJ9IDogI3skdmFsMn07XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgLiN7JGtleTJ9IHtcbiAgICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICAgIEBpZih0eXBlLW9mKCR2YWwzKSAhPSBtYXApIHsgLy9jYXNjYWRpbmfsnLzroZwg66i87KCAIOy2nOugpVxuICAgICAgICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xuICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpZigka2V5MyA9PSBtZWRpYSl7XG4gICAgICAgICAgICAgICAgICBAZWFjaCAka2V5NCwgJHZhbDQgaW4gJHZhbDMge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWw0KTtcbiAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9QGVsc2UgaWYoJGtleTMgPT0gXCImXCIpIHtcbiAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDMsIFwiXCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgICAuI3ska2V5M30ge1xuICAgICAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCRrZXkzKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAvKu2FjeyKpO2KuCDrsJXsiqQqL1xuQG1peGluIG1ha2UtZmllbGQtZGVmYXVsdCgpIHtcbiAgJWZpZWxkLWJhc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGdfZmllbGQtc3R5bGUpIHtcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cInRlbFwiXSxcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gICAgLmZpZWxkLSN7JGtleX0gc2VsZWN0LFxuICAgIC5maWVsZC0jeyRrZXl9IHRleHRhcmVhe1xuICAgICAgQGV4dGVuZCAlZmllbGQtYmFzZTtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAoJHZhbCkge1xuICAgICAgICBAaWYoICRrZXkyID09IFwiaW5wdXRfZGVmYXVsdFwiKSB7XG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICgkdmFsMikge1xuICAgICAgICAgICAgQGlmKCB0eXBlLW9mKCR2YWwzKSAhPSBtYXApIHtcbiAgICAgICAgICAgICAgI3ska2V5M30gOiAjeyR2YWwzfTtcbiAgICAgICAgICAgIH1AZWxzZSBpZigka2V5MyA9PSAnZm9jdXMtc3R5bGUnKXtcbiAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICAgICN7JGtleTR9IDogI3skdmFsNH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9QGVsc2UgaWYoJGtleTMgPT0gJ3BsYWNlaG9sZGVyLXN0eWxlJyl7XG4gICAgICAgICAgICAgICY6OnBsYWNlaG9sZGVye1xuICAgICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgICAjeyRrZXk0fSA6ICN7JHZhbDR9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICAgICN7JGtleTR9IDogI3skdmFsNH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICY6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICAgICN7JGtleTR9IDogI3skdmFsNH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9QGVsc2UgaWYgKCRrZXkzID09ICdtZWRpYScpIHtcbiAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTQpIHtcbiAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDQpO1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuZmllbGQtI3ska2V5fSBzZWxlY3R7XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gKCR2YWwpIHtcbiAgICAgICAgQGlmKCAka2V5MiA9PSBcInNlbGVjdFwiKSB7XG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgIEBpZiAoJGtleTMgPT0gbWVkaWEpIHtcbiAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTQpIHtcbiAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDQpO1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgI3ska2V5M30gOiAjeyR2YWwzfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5maWVsZC0jeyRrZXl9IHRleHRhcmVhe1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICgkdmFsKSB7XG4gICAgICAgIEBpZiggJGtleTIgPT0gXCJ0ZXh0YXJlYVwiKSB7XG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgIEBpZiAoJGtleTMgPT0gJ21lZGlhJykge1xuICAgICAgICAgICAgICBAZWFjaCAka2V5NCwgJHZhbDQgaW4gJHZhbDMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5NCkge1xuICAgICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsNCk7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICAjeyRrZXkzfSA6ICN7JHZhbDN9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmZpZWxkLSN7JGtleX0ubm8tdW5kZXJsaW5lIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyAvKnRleHRhcmVhKi9cbkBtaXhpbiBtYWtlLXRleHQtYXJlYSgpIHtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGdfdGV4dC1hcmVhLXN0eWxlKSB7XG4gICAgLnRleHRhcmVhLSN7JGtleX0gdGV4dGFyZWF7XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XG4gICAgICAgIEBpZigka2V5MiA9PSBtZWRpYSkge1xuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTMpIHtcbiAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMyk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgI3ska2V5Mn0gOiAjeyR2YWwyfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyAvKuyFgOugie2KuCDrsJXsiqQqL1xuQG1peGluIG1ha2Utc2VsZWN0Ym94KCkge1xuICBAZWFjaCAka2V5LCAkdmFsIGluICgkZ19zZWxlY3Qtc3R5bGUpIHtcbiAgICAuc2VsZWN0LSN7JGtleX0gc2VsZWN0e1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgICBAaWYoIHR5cGUtb2YoJHZhbDIpICE9IG1hcCl7XG4gICAgICAgICAgI3ska2V5Mn0gOiAjeyR2YWwyfTtcbiAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gJHZhbDIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDMpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgfVxuICB9XG59XG5cbi8vIC8q7J2066+47KeAIOyytO2BrCAmIOudvOuUlOyYpCovXG5AbWl4aW4gbWFrZS1jaGVja2JveC1pbWcoICRjaGVjay1ib3gtaW5mbzogJGdfY2hlY2stYm94LWltZyApIHtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGNoZWNrLWJveC1pbmZvKSB7XG4gICAgLmNrYngtI3ska2V5fXtcbiAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAoJHZhbCkge1xuICAgICAgICBAaWYodHlwZS1vZigkdmFsMikgIT0gbWFwKSB7XG4gICAgICAgICAgI3ska2V5Mn0gOiAjeyR2YWwyfTtcbiAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICBAaWYoJGtleTIgPT0gY2hlY2tib3gtc3R5bGUpIHtcbiAgICAgICAgICAgLmN1c3RvbS1jaGVja2VkIHtcbiAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMik7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgfUBlbHNlIGlmKCRrZXkyID09IGNoZWNrZWQtc3R5bGUpe1xuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAmW3R5cGU9cmFkaW9dOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQsXG4gICAgICAgICAgICAgICZbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMik7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfUBlbHNlIGlmKCRrZXkyID09IHRleHQtc3R5bGUpe1xuICAgICAgICAgICAgLnRleHQge1xuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwyKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBjb2xvcjogI2VlZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8vIC8q7YOc6re4IOyytO2BrCYg652865SU7JikKi9cbkBtaXhpbiBtYWtlLWNoZWNrYm94LXRhZyggJGNoZWNrLWJveC1pbmZvOiAkZ19jaGVjay1ib3gtdGFnICkge1xuICBAZWFjaCAka2V5LCAkdmFsIGluICgkY2hlY2stYm94LWluZm8pIHtcbiAgICAvLyDrs4DsiJgg7ISg7Ja4XG4gICAgJHdpZHRoIDogZmFsc2U7XG4gICAgJGhlaWdodCA6IGZhbHNlO1xuICAgIC5ja2J4LSN7JGtleX17XG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gKCR2YWwpIHtcbiAgICAgICAgQGlmKHR5cGUtb2YoJHZhbDIpICE9IG1hcCkge1xuICAgICAgICAgICN7JGtleTJ9IDogI3skdmFsMn07XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgQGlmKCRrZXkyID09IGNoZWNrYm94LXN0eWxlKSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XG4gICAgICAgICAgICAgICAgQGlmICgka2V5MyA9PSB3aWR0aCl7XG4gICAgICAgICAgICAgICAgICAkd2lkdGg6ICR2YWwzO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDotKHJvdW5kKCR2YWwzIC8gMikpO1xuICAgICAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC01MCUpLCB3ZWJraXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKCRrZXkzID09IGhlaWdodCl7XG4gICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkdmFsMztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9QGVsc2UgaWYoJGtleTIgPT0gY2hlY2tlZC1zdHlsZSkge1xuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAmW3R5cGU9cmFkaW9dOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQsXG4gICAgICAgICAgICAgICZbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJvdW5kKCgkd2lkdGggLSAoJHdpZHRoIC8gMikpIC8gMik7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCR2YWwyLCB3aWR0aCkgPT0gZmFsc2UgYW5kICR3aWR0aCl7IFxuICAgICAgICAgICAgICAgICAgLy8gY2hlY2tlZCBtYXDsl5Agd2lkdGjqsIAg7J6I64qU7KeAIOyytO2BrCDsl4bsnLzrqbQgY2hlY2tib3ggbWFwIOydmCDrsJjsgqzsnbTspojroZwg6rCA7KC47Ji0XG4gICAgICAgICAgICAgICAgICAkdmFsMiA6IG1hcC1zZXQoJHZhbDIsd2lkdGgscm91bmQoJHdpZHRoIC8gMikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYobWFwLWhhcy1rZXkoJHZhbDIsIGhlaWdodCkgPT0gZmFsc2UgYW5kICRoZWlnaHQpeyBcbiAgICAgICAgICAgICAgICAgIC8vIGNoZWNrZWQgbWFw7JeQIGhlaWdodCDsnojripTsp4Ag7LK07YGsIOyXhuycvOuptCBjaGVja2JveCBtYXAg7J2YIOuwmOyCrOydtOymiOuhnCDqsIDsoLjsmLRcbiAgICAgICAgICAgICAgICAgICR2YWwyIDogbWFwLXNldCgkdmFsMixoZWlnaHQscm91bmQoJGhlaWdodCAvIDIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwyIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoJGtleTQgPT0gd2lkdGgpe1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOi0ocm91bmQoJHZhbDQgLyAyKSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNTAlKSwgd2Via2l0KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICN7JGtleTR9OiAjeyR2YWw0fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9QGVsc2UgaWYoJGtleTIgPT0gdGV4dC1zdHlsZSl7XG4gICAgICAgICAgICAudGV4dCB7XG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAmLmRpc2FibGVke1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6ICNlZWU7XG4gICAgICAgIGxhYmVsOmJlZm9yZXtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICNlZWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuY2lyY2xlOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cbiAgICAgICYuY2lyY2xlIGlucHV0IHtcbiAgICAgICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkLFxuICAgICAgICAmW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbWluLXdpZHRoOiAkd2lkdGg7XG4gICAgICBtaW4taGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy9ycC10YWJsZVxuQG1peGluIG1ha2UtcnAtdGFibGUoJHJwLXRhYmxlLWluZm8gOiAkZ19ycC10YWJsZSkge1xuICBAZWFjaCAka2V5LCAkdmFsIGluICgkcnAtdGFibGUtaW5mbyl7XG4gICAgLnJwLXRhYmxlLSN7JGtleX0ge1xuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xuICAgICAgICBAaWYodHlwZS1vZigkdmFsMikgIT0gbWFwKSB7XG4gICAgICAgICAgI3ska2V5Mn0gOiAjeyR2YWwyfTtcbiAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAuI3ska2V5Mn0ge1xuICAgICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcbiAgICAgICAgICAgICAgQGlmKHR5cGUtb2YoJHZhbDMpICE9IG1hcCkgeyAvL2Nhc2NhZGluZ+ycvOuhnCDrqLzsoIAg7Lac66ClXG4gICAgICAgICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XG4gICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgQGlmKCRrZXkzID09IG1lZGlhKXtcbiAgICAgICAgICAgICAgICAgIEBlYWNoICRrZXk0LCAkdmFsNCBpbiAkdmFsMyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5NCkge1xuICAgICAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDQpO1xuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1AZWxzZSBpZigka2V5MyA9PSBcIiZcIikge1xuICAgICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsMywgXCJcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIC4jeyRrZXkzfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJHZhbDMpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbiIsIi8vLyogdGFiICovXG5AbWl4aW4gdGFiLWl0ZW1zKCR0YWItZ3JvdXAgOiAkZ190YWItZ3JvdXApIHtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJHRhYi1ncm91cCl7XG4gICAgQGlmKCRrZXkgPT0gdGFiLXdyYXAtZGVmYXVsdCl7XG4gICAgICAudGFiLXdyYXAge1xuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XG4gICAgICAgICAgQGlmKCRrZXkyID09IG1lZGlhKXtcbiAgICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mykge1xuICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDMpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfUBlbHNlIHtcbiAgICAgIC50YWItd3JhcC4jeyRrZXl9IHtcbiAgICAgICAgQGVhY2ggJGtleTQsICR2YWw0IGluICR2YWwge1xuICAgICAgICAgIEBpZih0eXBlLW9mKCR2YWw0KSAhPSBtYXAgKSB7IC8vY2FzY2FkaW5n7Jy866GcIOuovOyggCDstpzroKVcbiAgICAgICAgICAgICN7JGtleTR9OiAjeyR2YWw0fTtcbiAgICAgICAgICB9QGVsc2UgeyAvL21lZGlhLCBhY3RpdmUsIHN1YkNsYXNzXG4gICAgICAgICAgICAuI3ska2V5NH0ge1xuICAgICAgICAgICAgICBAZWFjaCAka2V5NSwgJHZhbDUgaW4gJHZhbDQge1xuICAgICAgICAgICAgICAgIEBpZih0eXBlLW9mKCR2YWw1KSAhPSBtYXApIHsgLy9jYXNjYWRpbmfsnLzroZwg66i87KCAIOy2nOugpVxuICAgICAgICAgICAgICAgICAgI3ska2V5NX06ICN7JHZhbDV9O1xuICAgICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgICBAaWYoJGtleTUgPT0gbWVkaWEpe1xuICAgICAgICAgICAgICAgICAgICBAZWFjaCAka2V5NiwgJHZhbDYgaW4gJHZhbDUge1xuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Nikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsNik7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9QGVsc2UgaWYgKCRrZXk1ID09IGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkdmFsNSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZigka2V5NSA9PSBcIiZcIikge1xuICAgICAgICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDUsIFwiXCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcbiAgICAgICAgICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAuI3ska2V5NX0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2RlcygkdmFsNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLGNBQWMsRUFBRSxDQUFDO0NBK0dsQjs7QUFoSEQsQUFJSSxnQkFKWSxBQUdiLFVBQVUsQUFDUixRQUFRLENBQUM7RUFDUixPQUFPLEVBQUUsRUFBRTtFQUNYLEdBQUcsRUFBRSxLQUFLO0NBSVg7O0FTQ0MsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFVFh6QyxBQUlJLGdCQUpZLEFBR2IsVUFBVSxBQUNSLFFBQVEsQ0FBQztJQUlOLEdBQUcsRUFBQyxLQUFLO0dBRVo7OztBQVZMLEFBY0UsZ0JBZGMsQ0FjZCxrQkFBa0IsQ0FBQztFQUNqQixh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 */
