@charset "UTF-8";
/*=====MOBILE=====*/
.mobile-header {
  position: fixed;
  top: 0;
  width: 100%;
  height: 67px;
  line-height: 67px;
  z-index: 700;
  background-color: #fff;
  border-bottom: 1px solid #e1e1e1;
}

.mobile-header .logo-img {
  display: inline-block;
  width: 101px;
  height: 35px;
  margin-bottom: 3px;
  margin-left: 15px;
/*   background-image: url(/views/res/imgs/common/main_logo_big.jpg); */
  background-image: url(/views/res/imgs/common/main_logo.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  vertical-align: middle;
}

@media screen and (min-width: 414px) {
  .mobile-header .logo-img {
    background-image: url(/views/res/imgs/common/main_logo.jpg);
  }
}

/* 네비게이션 메뉴 버튼 */
.mobile-nav-menu {
  position: fixed;
  right: 0;
  top: 0;
  z-index: 800;
}

.mobile-nav-menu .menu-btn {
  position: absolute;
  right: 0;
  top: 0;
  padding: 24px 20px;
  background-color: transparent;
  cursor: pointer;
  -webkit-transition: right .5s;
  transition: right .5s;
}

.mobile-header .mobile-nav-menu .menu-btn span {
  display: block;
  width: 24px;
  height: 2px;
  margin-left: auto;
  margin-right: 0;
  margin-bottom: 6px;
  background-color: #000;
  -webkit-transition: transform .5s;
  transition: transform .5s;
}

.mobile-nav-menu .menu-btn span.two {
  transition: opacity .3s;
}

.mobile-nav-menu .menu-btn span:last-child {
  margin-bottom: 0;
}

.mobile-nav-menu .menu-btn.on .one {
  -webkit-transform: translateY(8px) rotateZ(135deg);
  transform: translateY(8px) rotateZ(135deg);
}

.mobile-nav-menu .menu-btn.on .two {
  opacity: 0;
}

.mobile-nav-menu .menu-btn.on .three {
  -webkit-transform: translateY(-8px) rotateZ(-135deg);
  transform: translateY(-8px) rotateZ(-135deg);
}

/* 네이게이션 컨텐츠 */
.mobile-nav-wrap {
  position: fixed;
  top: 0;
  right: 0;
  width: 250px;
  background-color: #fff;
  height: 100%;
  z-index: 700;
  overflow: auto;
  -webkit-transition: transform .5s;
  transition: transform .5s;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
}

.mobile-nav-wrap .nav-top-menu {
  padding: 26px 15px;
}

.mobile-nav-wrap .mobile-nav .aco {
  border-bottom: 1px solid #e3e3e3;
  font-size: 12px;
}

.mobile-nav-wrap .mobile-nav .aco a {
  height: 43px;
  line-height: 43px;
  padding-left: 20px;
}

.mobile-nav-wrap .mobile-nav .aco i {
  right: 20px;
  font-size: 20px;
}

.mobile-nav-wrap .mobile-nav .aco .submenu {
  display: none;
}

.mobile-nav-wrap .mobile-nav .aco .submenu li {
  background-color: #fafafa;
  border-top: 1px solid #ddd;
}

.mobile-nav-wrap .mobile-nav .aco.on i {
  transform: translate(0%, -50%) rotate(-180deg);
}

.mobile-nav-wrap .mobile-nav .aco.on .submenu {
  display: block;
}

.mobile-header.on .mobile-nav-wrap {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}

/* 네비게이션 뒤 배경 */
.mobile-header .mobileBg {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.4);
}

/*=====MOBILE end=====*/
/*=====PC=====*/
@media screen and (min-width: 992px) {
  .pc-header {
    position: relative;
    height: 96px;
    will-change: top;
    border-bottom: 1px solid #e1e1e1;
    z-index: 1040;
  }
  .pc-header .bottom-header {
    background-color: #fff;
    border-bottom: 1px solid #e1e1e1;
    -webkit-transition: all .7s;
    transition: all .7s;
  }
  .pc-header .bottom-header.fixed {
    position: fixed;
    top: -100px;
    width: 100%;
  }
  .pc-header .bottom-header.fixed-slideDown {
    top: 0;
  }
  .pc-header .logo {
    position: absolute;
    top: 50%;
    height:100%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
  }
  .pc-header .logo .logo-img {
    display: inline-block;
    vertical-align: middle;
    width: 138px;
    height: 48px;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(/views/res/imgs/common/main_logo.jpg);
  }
  .pc-header .navBg {
    position: absolute;
    left: 0;
    top: 100%;
    display: none;
    width: 100%;
    height: 202px;
    background-color: #fff;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    z-index: 400;
  }
  .pc-nav {
    font-size: 0;
    padding: 0 70px 0 140px;
  }
}

@media screen and (min-width: 992px) and (min-width: 1200px) {
  .pc-nav {
    padding: 0 70px 0;
  }
}

@media screen and (min-width: 992px) {
  .pc-nav .menu-list {
    position: relative;
    display: inline-block;
    padding: 0 26px;
  }
}

@media screen and (min-width: 992px) and (min-width: 1200px) {
  .pc-nav .menu-list {
    padding: 0 36px;
  }
}

@media screen and (min-width: 992px) {
  .pc-nav .menu-list > a {
    display: block;
    line-height: 92px;
    font-size: 18px;
    color: #111;
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    border-top: 3px solid transparent;
  }
  .pc-nav .menu-list:hover > a {
    border-top: 3px solid #b9c0c2;
  }
  .pc-nav .menu-list .sub-menu-list-wrap {
    position: absolute;
    left: 50%;
    top: 101%;
    display: none;
    width: 160px;
    border: 0;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    z-index: 999;
    border-top: 0;
  }
  .pc-nav .menu-list .sub-menu-list-wrap .sub-menu-list {
    padding: 14px 0;
    text-align: center;
    border-bottom: 0;
    background-color: #fff;
  }
  .pc-nav .menu-list .sub-menu-list-wrap .sub-menu-list:last-child {
    border-bottom: 0;
  }
  .pc-nav .menu-list .sub-menu-list-wrap a {
    font-size: 17px;
    font-weight: 400;
    color: #111;
    white-space: nowrap;
  }
  .pc-nav .menu-list .sub-menu-list-wrap a:hover {
    color: #829094;
  }
  .pc-nav .menu-list:first-child .sub-menu-list-wrap {
    z-index: 1000;
  }
  /* 네비게이션 컨텐츠 */
  /* 전체 메뉴 버튼 */
  .pc-nav-menu .full-menu-btn {
    width: 30px;
    margin-left: 40px;
    padding: 30px 0;
    /* height: 80px; */
    /* line-height: 80px; */
    cursor: pointer;
    -webkit-transition: right .5s;
    transition: right .5s;
  }
  .pc-nav-menu .full-menu-btn span {
    display: block;
    width: 24px;
    height: 2px;
    margin-left: auto;
    margin-right: 0;
    margin-bottom: 6px;
    background-color: #000;
    -webkit-transition: transform .5s;
    transition: transform .5s;
  }
  .pc-nav-menu .full-menu-btn span.two {
    transition: opacity .3s;
  }
  .pc-nav-menu .full-menu-btn span:last-child {
    margin-bottom: 0;
  }
  .pc-nav-menu .full-menu-btn.on .one {
    -webkit-transform: translateY(8px) rotateZ(135deg);
    transform: translateY(8px) rotateZ(135deg);
  }
  .pc-nav-menu .full-menu-btn.on .two {
    opacity: 0;
  }
  .pc-nav-menu .full-menu-btn.on .three {
    -webkit-transform: translateY(-8px) rotateZ(-135deg);
    transform: translateY(-8px) rotateZ(-135deg);
  }
  .full-manu-wrap {
    /* display:none; */
    padding: 40px 0;
    background-color: #fff;
  }
  .pc-nav .menu-list.on .sub-menu-list-wrap {
    border: 1px solid #e1e1e1;
    border-top: 0;
  }
  .pc-nav .menu-list.on .sub-menu-list-wrap .sub-menu-list {
    border-bottom: 1px solid #e1e1e1;
  }
  .pc-nav .menu-list.on .sub-menu-list-wrap .sub-menu-list:last-child {
    border-bottom: 0;
  }
  /*=====PC end=====*/

  /* 2023-04-13 */
  .pc-nav-menu {position: relative;}
  .pc-nav-menu .cert_link {display:inline-block; position: absolute; right:45px; top:30px; width:135px; padding-left: 20px; box-sizing: border-box; background:url(/views/res/imgs/common/cert_icon.png) left center / 14px 17px no-repeat;}

}


/* 2023-05-04 */
.loding {display:flex; position: fixed; left:0; top:0; z-index:9999; width:100%; height:100%; justify-content: center; align-items: center;}
.in_loding {padding:30px 30px 25px; background:rgba(255,255,255,0.6); border-radius:0.8rem;}

.loding_dot {position: relative; display: flex; align-items: center;	justify-content: space-between;}
.in_dot,
.loding_dot::before,
.loding_dot::after {content:''; display: block; height:8px; width:8px; border-radius: 50%; transform: scale(0);background-color:#19191c;}
.loding_dot::before {margin-right:15px; animation: loding 1.3s ease-in-out infinite;}
.in_dot {animation: loding 1.3s ease-in-out calc(1.3s * 0.125) infinite both;}
.loding_dot::after {margin-left:15px; animation: loding 1.3s ease-in-out calc(1.3s * 0.25) infinite;}
@keyframes loding {
0%,	100% {transform: scale(0.4);}
50% {transform: scale(1.25);}
}



.leap-frog {
    --uib-size: 40px;
    --uib-speed: 2.5s;
    --uib-color: black;

    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: var(--uib-size);
    height: var(--uib-size);
  }

  .leap-frog__dot {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
  }

  .leap-frog__dot::before {
    content: '';
    display: block;
    height: calc(var(--uib-size) * 0.22);
    width: calc(var(--uib-size) * 0.22);
    border-radius: 50%;
    background-color: var(--uib-color);
    will-change: transform;
  }

  .leap-frog__dot:nth-child(1) {
    animation: leapFrog var(--uib-speed) ease infinite;
  }

  .leap-frog__dot:nth-child(2) {
    transform: translateX(calc(var(--uib-size) * 0.4));
    animation: leapFrog var(--uib-speed) ease calc(var(--uib-speed) / -1.5)
      infinite;
  }

  .leap-frog__dot:nth-child(3) {
    transform: translateX(calc(var(--uib-size) * 0.8)) rotate(0deg);
    animation: leapFrog var(--uib-speed) ease calc(var(--uib-speed) / -3)
      infinite;
  }

  @keyframes leapFrog {
    0% {
      transform: translateX(0) rotate(0deg);
    }

    33.333% {
      transform: translateX(0) rotate(180deg);
    }

    66.666% {
      transform: translateX(calc(var(--uib-size) * -0.4)) rotate(180deg);
    }

    99.999% {
      transform: translateX(calc(var(--uib-size) * -0.8)) rotate(180deg);
    }

    100% {
      transform: translateX(0) rotate(0deg);
    }
  }










/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0L25hdi9uYXY0L3N0eWxlLmNzcyIsInNvdXJjZXMiOlsibGF5b3V0L25hdi9uYXY0L3N0eWxlLnNjc3MiLCJyZXMvc2Nzcy9fX3ZhcmlhYmxlcy5zY3NzIiwicmVzL3Njc3MvX19taXhpbnMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fbWVkaWEtcXVlcnkuc2NzcyIsInJlcy9zY3NzL21peGlucy9fbWFwLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2NsZWFyLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2Zsb2F0LnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2hvdmVyLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3NjcmVlbnJlYWRlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19yZXNldC10ZXh0LnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3ByZWZpeGVyLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3RyaWFuZ2xlLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2J1dHRvbnMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fY2FyZHMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fcGFnaW5hdGlvbi5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19mb3Jtcy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL190YWJsZXMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fdGFiLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsInJlcy9zY3NzL21peGlucy9fYXJlYS5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ncmlkLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29yZSB2YXJpYWJsZXMgYW5kIG1peGluc1xyXG5AaW1wb3J0IFwicmVzL3Njc3MvX192YXJpYWJsZXMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwicmVzL3Njc3MvX19taXhpbnMuc2Nzc1wiO1xyXG5cclxuLyo9PT09PU1PQklMRT09PT09Ki9cclxuLm1vYmlsZS1oZWFkZXJ7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDowO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogNjdweDtcclxuICBsaW5lLWhlaWdodDogNjdweDtcclxuICB6LWluZGV4OiA3MDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UxZTFlMTtcclxuICAubG9nby1pbWcge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMXB4O1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xyXG4gICAgbWFyZ2luLWxlZnQ6MTVweDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL21haW5fbG9nb19iaWcuanBnKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxNHB4KSB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL21haW5fbG9nby5qcGcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4vKiDrhKTruYTqsozsnbTshZgg66mU64m0IOuyhO2KvCAqL1xyXG4ubW9iaWxlLW5hdi1tZW51IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHotaW5kZXg6IDgwMDtcclxuICAubWVudS1idG57XHJcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOjA7XHJcbiAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiByaWdodCAuNXM7XHJcbiAgICB0cmFuc2l0aW9uOiByaWdodCAuNXM7XHJcbiAgfVxyXG59XHJcbi5tb2JpbGUtaGVhZGVyIC5tb2JpbGUtbmF2LW1lbnUgLm1lbnUtYnRuIHNwYW57XHJcbiAgZGlzcGxheTpibG9jaztcclxuICB3aWR0aDogMjRweDtcclxuICBoZWlnaHQ6MnB4O1xyXG4gIG1hcmdpbi1sZWZ0OmF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OjA7XHJcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXM7XHJcbn1cclxuLm1vYmlsZS1uYXYtbWVudSAubWVudS1idG4ge1xyXG4gIHNwYW4udHdve1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XHJcbiAgfVxyXG4gIHNwYW46bGFzdC1jaGlsZHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcbi5tb2JpbGUtbmF2LW1lbnUgLm1lbnUtYnRuLm9uIHtcclxuICAub25le1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDEzNWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDEzNWRlZyk7XHJcbiAgfVxyXG4gIC50d297XHJcbiAgICBvcGFjaXR5OjBcclxuICB9XHJcbiAgLnRocmVle1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtMTM1ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGVaKC0xMzVkZWcpO1xyXG4gIH1cclxufSBcclxuXHJcbi8qIOuEpOydtOqyjOydtOyFmCDsu6jthZDsuKAgKi9cclxuJE5BTUVTUEFDRSA6IFwiLm1vYmlsZS1uYXYtd3JhcFwiO1xyXG4jeyROQU1FU1BBQ0V9IHtcclxuICAmIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDowO1xyXG4gICAgcmlnaHQ6MDtcclxuICAgIHdpZHRoOiAyNTBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB6LWluZGV4OiA3MDA7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cztcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXM7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgIC5uYXYtdG9wLW1lbnV7XHJcbiAgICAgIHBhZGRpbmc6IDI2cHggMTVweDtcclxuICAgIH1cclxuICAgIC5tb2JpbGUtbmF2IC5hY297XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTNlM2UzO1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGhlaWdodDogNDNweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogNDNweDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgICAgaXtcclxuICAgICAgICByaWdodDogMjBweDtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIH1cclxuICAgICAgLnN1Ym1lbnV7XHJcbiAgICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgICAgIGxpe1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcclxuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmLm9uIHsgLy9vbiDsnbzrlYxcclxuICAgICAgICBpe1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIC01MCUpIHJvdGF0ZSgtMTgwZGVnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN1Ym1lbnUge1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICB9IC8vICZcclxufVxyXG4ubW9iaWxlLWhlYWRlci5vbiAubW9iaWxlLW5hdi13cmFwe1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxufVxyXG5cclxuLyog64Sk67mE6rKM7J207IWYIOuSpCDrsLDqsr0gKi9cclxuLm1vYmlsZS1oZWFkZXIgLm1vYmlsZUJne1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDowO1xyXG4gIGJvdHRvbTowO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjQpO1xyXG59XHJcbi8qPT09PT1NT0JJTEUgZW5kPT09PT0qL1xyXG5cclxuLyo9PT09PVBDPT09PT0qL1xyXG5AaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obGcpe1xyXG4gICROQU1FU1BBQ0UgOiBcIi5wYy1oZWFkZXJcIjtcclxuICAjeyROQU1FU1BBQ0V9IHtcclxuICAgICZ7XHJcbiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xyXG4gICAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICAgIHdpbGwtY2hhbmdlOiB0b3A7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICB6LWluZGV4OiAxMDQwO1xyXG4gICAgICAuYm90dG9tLWhlYWRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UxZTFlMTtcclxuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuN3M7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC43cztcclxuICAgICAgICAgICYuZml4ZWQge1xyXG4gICAgICAgICAgICAvLyDtl6TrjZQgZml4XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgdG9wOiAtMTAwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJi5maXhlZC1zbGlkZURvd24ge1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLmxvZ297XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIC5sb2dvLWltZ3tcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICB3aWR0aDogMTM4cHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9tYWluX2xvZ28uanBnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLm5hdkJne1xyXG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6MDtcclxuICAgICAgICB0b3A6MTAwJTtcclxuICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgd2lkdGg6MTAwJTtcclxuICAgICAgICBoZWlnaHQ6MjAycHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZmZmO1xyXG4gICAgICAgIGJvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtcclxuICAgICAgICB6LWluZGV4OjQwMDtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH0gLy8mXHJcbiAgfSAvLyBuYW1lc3BhY2VcclxuICAkTkFNRVNQQUNFIDogXCIucGMtbmF2XCI7XHJcbiAgI3skTkFNRVNQQUNFfSB7XHJcbiAgICAmeyAgXHJcbiAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgcGFkZGluZzowIDcwcHggMCAxNDBweDtcclxuICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKHhsKXtcclxuICAgICAgICBwYWRkaW5nOjAgNzBweCAwO1xyXG4gICAgICB9XHJcbiAgICAgIC5tZW51LWxpc3R7XHJcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMCAyNnB4O1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbih4bCl7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwIDM2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYgPiBhIHtcclxuICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogNzdweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgIGNvbG9yOiAjMTExO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlciA+IGEge1xyXG4gICAgICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNiOWMwYzI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgIC8vIHBhZGRpbmctcmlnaHQ6MFxyXG4gICAgICAgIH1cclxuICAgICAgICAuc3ViLW1lbnUtbGlzdC13cmFwe1xyXG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OjUwJTtcclxuICAgICAgICAgIHRvcDoxMDElO1xyXG4gICAgICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgICAgICAgd2lkdGg6IDE2MHB4O1xyXG4gICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gICAgICAgICAgei1pbmRleDogOTk5O1xyXG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcclxuICAgICAgICAgIC8vIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xyXG4gICAgICAgICAgLnN1Yi1tZW51LWxpc3R7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYXtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICBjb2xvcjogIzExMTtcclxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IzgyOTA5NDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfS8vIG1lbnUtbGlzdFxyXG4gICAgICAubWVudS1saXN0OmZpcnN0LWNoaWxkIC5zdWItbWVudS1saXN0LXdyYXB7XHJcbiAgICAgICAgei1pbmRleDoxMDAwO1xyXG4gICAgICB9XHJcbiAgICB9IC8vICZcclxuICB9IC8vIG5hbWVzcGFjZVxyXG4gIC8qIOuEpOu5hOqyjOydtOyFmCDsu6jthZDsuKAgKi9cclxuXHJcbiAgLyog7KCE7LK0IOuplOuJtCDrsoTtirwgKi9cclxuICAucGMtbmF2LW1lbnUgLmZ1bGwtbWVudS1idG57XHJcbiAgICB3aWR0aDogMzBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgcGFkZGluZzogMzBweCAwO1xyXG4gICAgLyogaGVpZ2h0OiA4MHB4OyAqL1xyXG4gICAgLyogbGluZS1oZWlnaHQ6IDgwcHg7ICovXHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IHJpZ2h0IC41cztcclxuICAgIHRyYW5zaXRpb246IHJpZ2h0IC41cztcclxuICB9XHJcbiAgLnBjLW5hdi1tZW51IC5mdWxsLW1lbnUtYnRuIHNwYW57XHJcbiAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgd2lkdGg6IDI0cHg7XHJcbiAgICBoZWlnaHQ6MnB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6YXV0bztcclxuICAgIG1hcmdpbi1yaWdodDowO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cztcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXM7XHJcbiAgfVxyXG4gIC5wYy1uYXYtbWVudSAuZnVsbC1tZW51LWJ0biBzcGFuLnR3b3tcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xyXG4gIH1cclxuICAucGMtbmF2LW1lbnUgLmZ1bGwtbWVudS1idG4gc3BhbjpsYXN0LWNoaWxke1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbiAgLnBjLW5hdi1tZW51IC5mdWxsLW1lbnUtYnRuLm9uIC5vbmV7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooMTM1ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZVooMTM1ZGVnKTtcclxuICB9XHJcbiAgLnBjLW5hdi1tZW51IC5mdWxsLW1lbnUtYnRuLm9uIC50d297XHJcbiAgICBvcGFjaXR5OjBcclxuICB9XHJcbiAgLnBjLW5hdi1tZW51IC5mdWxsLW1lbnUtYnRuLm9uIC50aHJlZXtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooLTEzNWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtMTM1ZGVnKTtcclxuICB9XHJcbiAgLmZ1bGwtbWFudS13cmFwIHtcclxuICAgIC8qIGRpc3BsYXk6bm9uZTsgKi9cclxuICAgIHBhZGRpbmc6NDBweCAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojZmZmO1xyXG4gIH1cclxuICBcclxuICAucGMtbmF2IC5tZW51LWxpc3Qub24gLnN1Yi1tZW51LWxpc3Qtd3JhcCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgYm9yZGVyLXRvcDogMDtcclxuICAgIC5zdWItbWVudS1saXN0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qPT09PT1QQyBlbmQ9PT09PSovXHJcbn0iLCIvLy8vL2RlZmF1bHQvLy8vL1xyXG4vL2NvbG9yXHJcbiRnX3doaXRlOiAjZmZmICFkZWZhdWx0O1xyXG4kZ19ibGFjazogIzAwMCAhZGVmYXVsdDtcclxuJGdfcmVkOiAjZmYwMDAwO1xyXG5cclxuJGdfcG9pbnQtZm9udC1jb2xvcjogIzgyOTA5NDtcclxuJGdfcG9pbnQtdGhlbWUtY29sb3I6ICNiOWMwYzI7XHJcbiRnX2NvbG9yOiMxMTE7XHJcblxyXG4vL2ZvbnRcclxuLy8tZm9udC1mYW1pbHlcclxuJGdfZm9udC1mYW1pbHk6IChcclxuICBzeXN0ZW06ICcgXCLrp5HsnYAg6rOg65SVXCIsIFwiTWFsZ3VuIEdvdGhpY1wiLCBcIuyVoO2UjCBTRCDsgrDrj4zqs6DrlJUgTmVvXCIsIFwiQXBwbGUgU0QgR290aGljIE5lb1wiLCBzYW5zLXNlcmlmICcsXHJcbiAgbm90bzogJ1wiTm90byBTYW5zIEtSXCIsIHNhbnMtc2VyaWYnLFxyXG4gIG5vYmVsOicgXCJOb2JlbFwiLCBzYW5zLXNlcmlmICcsXHJcbiAgLy8gcm9ib3RvOicgXCJSb2JvdG9cIiwgc2Fucy1zZXJpZiAnLFxyXG4gIGRvdHVtOiAnXCJEb3R1bVwiLCBzYW5zLXNlcmlmJyxcclxuKTtcclxuJGZvbnQtc3lzdGVtOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIHN5c3RlbSl9O1xyXG4kZm9udC1ub3RvOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIG5vdG8pfTtcclxuJGZvbnQtbm9iZWw6ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgbm9iZWwpfTtcclxuLy8gJGZvbnQtcm9ib3RvOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIHJvYm90byl9O1xyXG4kZm9udC1kb3R1bTogI3ttYXAtZ2V0KCRnX2ZvbnQtZmFtaWx5LCBkb3R1bSl9O1xyXG5cclxuLy8tZm9udC1zaXplXHJcbiRnX2ZvbnQtc2l6ZTooXHJcbiAgeHM6IDEwcHgsXHJcbiAgc206IDEycHgsXHJcbiAgbWQ6IDE1cHgsXHJcbiAgbGc6IDE4cHgsXHJcbiAgeGw6IDI0cHgsXHJcbik7XHJcblxyXG4vLy1mb250LXdlaWdodFxyXG4kZ19mb250LXdlaWdodHM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCA2MDAsIDcwMCwgODAwLCA5MDA7XHJcblxyXG4vLy1sZXR0ZXItc3BhY2luZ1xyXG5cclxuLy8vLy9tZWRpYS8vLy8vXHJcbiRnX21lZGlhLWJyZWFrcG9pbnRzOiAoXHJcbiAgeHM6IDAsXHJcbiAgc206IDU0NHB4LFxyXG4gIG1kOiA3NjhweCxcclxuICBsZzogOTkycHgsXHJcbiAgeGw6IDEyMDBweCxcclxuICB4eGw6IDE2MDBweCxcclxuKTtcclxuXHJcbi8vLy8vbGF5b3V0Ly8vLy9cclxuLy9hcmVhXHJcbiRnX21heC13aWR0aDogMTE0MHB4O1xyXG4kZ19hcmVhLWd1dHRlci13aWR0aDogMTVweDtcclxuXHJcbi8vZ3JpZFxyXG4kZ19ncmlkLWNvbHVtbnM6IDEyO1xyXG4kZ19ncmlkLWd1dHRlci13aWR0aDogMSU7XHJcblxyXG4kZ19kZWZhdWx0LWFyZWE6IChcclxuICBtYXgtd2lkdGg6ICRnX21heC13aWR0aCxcclxuICBndXR0ZXItd2lkdGg6ICRnX2FyZWEtZ3V0dGVyLXdpZHRoLFxyXG4gIHdpZHRoOiAxMDAlXHJcbik7XHJcbiRnX2Z1bGwtYXJlYTogKFxyXG4gIC8vIG1heC13aWR0aDogMTc1MHB4LFxyXG4gIGd1dHRlci13aWR0aDogNDBweCxcclxuICB3aWR0aDogMTAwJVxyXG4pO1xyXG4kZ19ub2d1dHRlci1hcmVhOiAoXHJcbiAgbWF4LXdpZHRoOiAkZ19tYXgtd2lkdGhcclxuKTtcclxuXHJcbi8vZ3JpZFxyXG4kZ19ncmlkLWNvbC1pbmZvOiAoXHJcbiAgZ3JpZC1jb2wtY250OiAxMixcclxuICBncmlkLWNvbC1uYW1lOiBudWxsXHJcbik7XHJcbiRncmlkLWNvbDUtaW5mbzogKFxyXG4gIGdyaWQtY29sLWNudDogNSxcclxuICBncmlkLWNvbC1uYW1lOiBmaXZlLVxyXG4pO1xyXG5cclxuLy8vLy9VVElMSVRJRVMvLy8vL1xyXG4vL2NsZWFyXHJcblxyXG4vL3NwYWNpbmdcclxuJHNwYWNlcnM6KFxyXG4gIDA6IDAsXHJcbiAgNTogNXB4LFxyXG4gIDEwOiAxMHB4LFxyXG4gIDE1OiAxNXB4LFxyXG4gIDIwOiAyMHB4LFxyXG4gIDI1OiAyNXB4LFxyXG4gIDMwOiAzMHB4LFxyXG4gIDM1OiAzNXB4LFxyXG4gIDQwOiA0MHB4LFxyXG4gIDQ1OiA0NXB4LFxyXG4gIDUwOiA1MHB4LFxyXG4gIDU1OiA1NXB4LFxyXG4gIDYwOiA2MHB4LFxyXG4gIDcwOiA3MHB4LFxyXG4gIDgwOiA4MHB4LFxyXG4gIDkwOiA5MHB4LFxyXG4gIDEwMDogMTAwcHhcclxuKTtcclxuXHJcbi8vLy8vQ09NUE9ORU5UUy8vLy8vXHJcbi8vY2FyZFxyXG4kZ19jYXJkLXdyYXA6IChcclxuICBkZWZhdWx0OiAoXHJcbiAgICB3cmFwOiAoXHJcbiAgICAgIHBhZGRpbmc6IDAgMzBweCxcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweCxcclxuICAgICAgYm9yZGVyLXN0eWxlOiAoIGJvcmRlcjogXCIxcHggc29saWQgI2U3ZTllZVwiICksXHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweFxyXG4gICAgKSxcclxuICAgIGhlYWRlcjogKFxyXG4gICAgICBwYWRkaW5nOiAyNXB4IDAsXHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXHJcbiAgICAgIGJvcmRlci1zdHlsZTogKCBib3JkZXItYm90dG9tOiBcIjFweCBzb2xpZCAjZTdlOWVlXCIgKSxcclxuICAgICAgZm9udC1zaXplOiAxNnB4XHJcbiAgICApLFxyXG4gICAgYm9keTogKFxyXG4gICAgICBwYWRkaW5nOiAzMHB4IDAsXHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZcclxuICAgICksXHJcbiAgICBmb290ZXI6IChcclxuICAgICAgcGFkZGluZzogMjVweCAwLFxyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxyXG4gICAgICBib3JkZXItc3R5bGU6ICggYm9yZGVyLXRvcDogXCIxcHggc29saWQgI2U3ZTllZVwiIClcclxuICAgIClcclxuICApXHJcbik7XHJcbi8vX2Zvcm0td2FycFxyXG4kZ19mb3JtLXdyYXA6IChcclxuICBkZWZhdWx0X3ZhbHVlOiAoXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLFxyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSxcclxuICApLFxyXG4gIHRhYmxlIDogKFxyXG4gICAgbWVkaWE6IChcclxuICAgICAgeHM6IChcclxuICAgICAgICBmb3JtLXdyYXA6ICgvLy5mb3JtLXdhcnAtdGFibGUgLmZvcm0td3JhcFxyXG4gICAgICAgICAgZGlzcGxheTogdGFibGUsXHJcbiAgICAgICAgICB3aWR0aDogMTAwJSxcclxuICAgICAgICAgIGJvcmRlci10b3A6IFwiMXB4IHNvbGlkICNlZWVcIixcclxuICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQsXHJcbiAgICAgICAgICBcIiZcIiA6IChcclxuICAgICAgICAgICAgXCI6bGFzdC1jaGlsZFwiIDogKFxyXG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IFwiMXB4IHNvbGlkICNlZWVcIlxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKSxcclxuICAgICAgICBmb3JtLXRpdGxlOiAoLy8uZm9ybS13YXJwLXRhYmxlIC5mb3JtLXRpdGxlXHJcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsLFxyXG4gICAgICAgICAgd2lkdGg6IDExNXB4LFxyXG4gICAgICAgICAgcGFkZGluZzogXCIxNXB4IDEwcHhcIixcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4ZjgsXHJcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlLFxyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4LFxyXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW0sXHJcbiAgICAgICAgICBjb2xvcjojMDAwLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgZm9ybS1ib2R5OiAoLy8uZm9ybS13YXJwLXRhYmxlIC5mb3JtLWJvZHlcclxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwsXHJcbiAgICAgICAgICBwYWRkaW5nOiBcIjEwcHggMTVweFwiLFxyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSxcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCxcclxuICAgICAgICApLFxyXG4gICAgICAgIGZvcm0tdGV4dDooLy8uZm9ybS13YXJwLXRhYmxlIC5mb3JtLXRleHRcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrLFxyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSxcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweCxcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIG1kOiAoXHJcbiAgICAgICAgZm9ybS10aXRsZTogKFxyXG4gICAgICAgICAgd2lkdGg6IDE5MHB4LFxyXG4gICAgICAgICAgcGFkZGluZzogXCIyMHB4IDIwcHhcIixcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweCxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICApLFxyXG4gIG1hdGVyaWFsIDogKFxyXG4gICAgbWVkaWE6IChcclxuICAgICAgeHM6IChcclxuICAgICAgICBmb3JtLXdyYXA6IChcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrLFxyXG4gICAgICAgICAgd2lkdGg6IDEwMCUsXHJcbiAgICAgICAgICBcIiZcIiA6IChcclxuICAgICAgICAgICAgXCI6YWZ0ZXJcIiA6IChcclxuICAgICAgICAgICAgICBjb250ZW50OiBcIicnXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2ssXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCUsXHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxcHgsXHJcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogXCJ0cmFuc2Zvcm0gLjVzLCBiYWNrZ3JvdW5kLWNvbG9yIC41c1wiLFxyXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApLFxyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzMsXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIFwiOmhvdmVyOmFmdGVyXCIgOiAoXHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkLFxyXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBcIi5hY3RpdmU6YWZ0ZXJcIiA6IChcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICApLFxyXG4gICAgICAgIGZvcm0tdGl0bGU6IChcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrLFxyXG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4LFxyXG4gICAgICAgICksXHJcbiAgICAgICAgZm9ybS1ib2R5OiAoXHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayxcclxuICAgICAgICApXHJcbiAgICAgICksXHJcbiAgICApLFxyXG4gICksXHJcbiAgbm8tbWVkaWEtdGVzdCA6IChcclxuICAgIHhzIDooXHJcbiAgICAgIGZvcm0td3JhcDogKFxyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrLFxyXG4gICAgICAgIHdpZHRoOiAxMDAlLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICApLFxyXG4pO1xyXG4vL19pbnB1dFxyXG4kZ19maWVsZC1zdHlsZTogKFxyXG4gIHN0eWxlMTogKC8v6rSA66as7J6QXHJcbiAgICBib3JkZXItc3R5bGU6IChib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDZkOCksXHJcbiAgICBpbnB1dC1oZWlnaHQ6IGF1dG8sXHJcbiAgICBpbnB1dC1wYWRkaW5nOiAwIDAgNXB4IDAsXHJcbiAgICBpbnB1dC1iZzogdHJhbnNwYXJlbnQsXHJcbiAgICBwbGFjZWhvbGRlci1jb2xvcjogI2NjY2ZkNixcclxuICApLFxyXG4gIHN0eWxlMjogKC8v7ZqM7JuQ6rCA7J6FLCDtmozsm5DsoJXrs7Qg7IiY7KCVIO2PvFxyXG4gICAgbWF4LXdpZHRoOiAyOTBweCxcclxuICAgIGJvcmRlci1zdHlsZTogKGJvcmRlcjogMXB4IHNvbGlkICNlMWUxZTEpLFxyXG4gICAgaW5wdXQtaGVpZ2h0OiA0MHB4LFxyXG4gICAgaW5wdXQtcGFkZGluZzogMCAxMHB4LFxyXG4gICAgcGxhY2Vob2xkZXItY29sb3I6ICM1NTUsXHJcbiAgICBmb250LXNpemU6IDEzcHgsXHJcbiAgICBmb250LWNvbG9yOiAjNTU1LFxyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW0sXHJcbiAgKSxcclxuICBzdHlsZTM6ICgvL+uhnOq3uOyduCwg7ZqM7JuQ6rCA7J6FIO2UjOuhnOyasCAvL+yImOygleyZhOujjFxyXG4gICAgYm9yZGVyLXN0eWxlOiAoYm9yZGVyOiAxcHggc29saWQgI2RkZCksXHJcbiAgICBpbnB1dC1oZWlnaHQ6IDUwcHgsXHJcbiAgICBpbnB1dC1wYWRkaW5nOiAwIDEwcHgsXHJcbiAgICBpbnB1dC1iZzogdHJhbnNwYXJlbnQsXHJcbiAgICBwbGFjZWhvbGRlci1jb2xvcjogIzkwOTA5MCxcclxuICAgIGZvbnQtc2l6ZTogMTJweCxcclxuICAgIGZvbnQtY29sb3I6ICMzMzMsXHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtLFxyXG4gICksXHJcbiAgc3R5bGU0OiAoLy/sg4Htkogg7IOB7IS4XHJcbiAgICBib3JkZXItc3R5bGU6IChib3JkZXI6IDFweCBzb2xpZCAjZDJkMmQyKSxcclxuICAgIGlucHV0LWhlaWdodDogNDJweCxcclxuICAgIGlucHV0LXBhZGRpbmc6IDAgMTVweCxcclxuICAgIGlucHV0LWJnOiAjZmZmLFxyXG4gICAgcGxhY2Vob2xkZXItY29sb3I6ICM5MDkwOTAsXHJcbiAgICBmb250LXNpemU6IDEzcHgsXHJcbiAgICBmb250LWNvbG9yOiAjNmU2ZDZkLFxyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA4ZW0sXHJcbiAgKVxyXG4pO1xyXG5cclxuLy9fdGV4dGFyZWFcclxuJGdfdGV4dC1hcmVhLXN0eWxlOiAoXHJcbiAgc3R5bGUxOiAoXHJcbiAgICB0ZXh0LWFyZWEtaGVpZ2h0OiAxNTBweCxcclxuICAgIHRleHQtYXJlYS1wYWRkaW5nOiA1cHgsXHJcbiAgKSxcclxuICBzdHlsZTI6IChcclxuICAgIHRleHQtYXJlYS1oZWlnaHQ6IDIzMHB4LFxyXG4gICAgdGV4dC1hcmVhLXBhZGRpbmc6IDEwcHgsXHJcbiAgKSxcclxuICBzdHlsZTM6IChcclxuICAgIHRleHQtYXJlYS1oZWlnaHQ6IDE1MHB4LFxyXG4gICAgdGV4dC1hcmVhLXBhZGRpbmc6IDVweCxcclxuICApLFxyXG4gIFxyXG4pO1xyXG5cclxuLy9fc2VsZWN0XHJcbiRnX3NlbGVjdC1zdHlsZTogKFxyXG4gIHN0eWxlMTogKFxyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTAwcHggYm90dG9tIDUwJSxcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9jb21tb24vYnRuX3NlbGVjdF9hcnJvd19zdDAxLnBuZyksXHJcbiAgKSxcclxuICBzdHlsZTI6ICggLy8gKO2ajOybkOqwgOyehSztmozsm5DsoJXrs7QpIOyXsOudveyymFxyXG4gICAgcGFkZGluZzogMCAzNXB4IDAgMTBweCxcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwcHggYm90dG9tIDUwJSxcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL2J0bl9zZWxlY3RfYXJyb3dfc3QwMS5wbmcpLFxyXG4gICAgLy9vcHRpb24gOiAoIGNvbG9yOiMyMjIgKSAvL+yEnOu4jCDtgbTrnpjsiqQg7IOd7ISxXHJcbiAgKSxcclxuICBzdHlsZTM6IChcclxuICAgIG92ZXJmbG93OiBoaWRkZW4sXHJcbiAgKSxcclxuICBzdHlsZTQ6ICgvL+yDge2SiCDsg4HshLhcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlLFxyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC92aWV3cy9yZXMvaW1ncy9jb21tb24vaW1nX3NlbGVjdF9zdHlsZTEucG5nKSxcclxuICAgIC8vb3B0aW9uIDogKCBjb2xvcjojMjIyICkgLy/shJzruIwg7YG0656Y7IqkIOyDneyEsVxyXG4gIClcclxuKTtcclxuLy9fY2hlY2stYm94XHJcbiRnX2NoZWNrLWJveC1pbWc6IChcclxuICBpbWctMSA6IChcclxuICAgIHdpZHRoOiAzMHB4LFxyXG4gICAgaGVpZ2h0OiAzMHB4LFxyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHgsXHJcbiAgICBib3gtaW1nOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDNfb2ZmLnBuZyksXHJcbiAgICBib3gtaW1nLW9uOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDNfb24ucG5nKSxcclxuICAgIGZvbnQtc2l6ZTogMTVweCxcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtXHJcbiAgKSxcclxuICBpbWctMiA6IChcclxuICAgIHdpZHRoOiAzMnB4LFxyXG4gICAgaGVpZ2h0OiAzMnB4LFxyXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHgsXHJcbiAgICBib3gtaW1nOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDFfb2ZmLnBuZyksXHJcbiAgICBib3gtaW1nLW9uOiB1cmwoL3ZpZXdzL3Jlcy9pbWdzL3BhZ2UvaW1nX2NoZWNrYm94MDFfb24ucG5nKSxcclxuICAgIGZvbnQtc2l6ZTogMTRweFxyXG4gICksXHJcbiAgaW1nLTMgOiAoXHJcbiAgICB3aWR0aDogMjBweCxcclxuICAgIGhlaWdodDogMjBweCxcclxuICAgIGJveC1pbWc6IHVybCgvdmlld3MvcmVzL2ltZ3MvcGFnZS9pbWdfY2hlY2tib3gwMl9vZmYucG5nKSxcclxuICAgIGJveC1pbWctb246IHVybCgvdmlld3MvcmVzL2ltZ3MvcGFnZS9pbWdfY2hlY2tib3gwMl9vbi5wbmcpLFxyXG4gICAgZm9udC1zaXplOiAxNHB4XHJcbiAgKVxyXG4pO1xyXG4kZ19jaGVjay1ib3gtdGFnOiAoXHJcbiAgdGFnLTEgOiAoIC8vIOyVhOydtOuUlOyggOyepSAvLyDslb3qtIDrj5nsnZggLy8g6rKw7KCc7IiY64uoIC8v67Cw7Iah7KeAIOyEoO2DnSAvLyDrsLDshqHsp4Dsl60g7ISg7YOdXHJcbiAgICB3aWR0aDogMTJweCxcclxuICAgIGhlaWdodDogMTJweCxcclxuICAgIG1hcmdpbi1yaWdodDogMTBweCxcclxuICAgIGJveC1tYXJnaW4tcmlnaHQgOiA1cHgsXHJcbiAgICBib3gtb3V0bGluZTogMXB4IHNvbGlkICNkZGQsXHJcbiAgICBjaGVja2VkLWNvbG9yOiAjNTU1LFxyXG4gICAgZm9udC1zaXplOiAxMXB4XHJcbiAgKSxcclxuICB0YWctMiA6IChcclxuICAgIHdpZHRoOiAyMHB4LFxyXG4gICAgaGVpZ2h0OiAyMHB4LFxyXG4gICAgYm94LW1hcmdpbi1yaWdodDogNXB4LFxyXG4gICAgYm94LW91dGxpbmU6IDFweCBzb2xpZCAjMzMzLFxyXG4gICAgY2hlY2tlZC13aWR0aDogMTJweCxcclxuICAgIGNoZWNrZWQtaGVpZ2h0OiAxMnB4LFxyXG4gICAgY2hlY2tlZC1jb2xvcjogIzMzMyxcclxuICAgIGZvbnQtc2l6ZTogMTRweFxyXG4gICksXHJcbiAgdGFnLTMgOiAoXHJcbiAgICB3aWR0aDogMjBweCxcclxuICAgIGhlaWdodDogMjBweCxcclxuICAgIGJveC1yYWRpdXM6NTAlLFxyXG4gICAgYm94LW1hcmdpbi1yaWdodDogMTBweCxcclxuICAgIGJveC1vdXRsaW5lOiAxcHggc29saWQgI2UxZTFlMSxcclxuICAgIGNoZWNrZWQtd2lkdGg6IDEwcHgsXHJcbiAgICBjaGVja2VkLWhlaWdodDogMTBweCxcclxuICAgIGNoZWNrZWQtY29sb3I6ICM4ZDlhOWUsXHJcbiAgICBmb250LXNpemU6IDE0cHhcclxuICApXHJcbik7XHJcblxyXG4vL190YWJsZVxyXG4kZ19ycC10YWJsZTogKFxyXG4gIHN0eWxlMTogKFxyXG4gICAgbWVkaWE6IChcclxuICAgICAgeHM6IChcclxuICAgICAgICBycC10YWJsZTogKFxyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMThweCxcclxuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTdlOWVlXHJcbiAgICAgICAgKSxcclxuICAgICAgICBycC10aGVhZDogKFxyXG4gICAgICAgICAgZGlzcGxheTogbm9uZVxyXG4gICAgICAgICksXHJcbiAgICAgICAgcnAtdGg6IChcclxuXHJcbiAgICAgICAgKSxcclxuICAgICAgICBycC10cjogKFxyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2ssXHJcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDVweCxcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTdlOWVlLFxyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNXMsXHJcbiAgICAgICAgICBcIiZcIiA6IChcclxuICAgICAgICAgICAgXCI6aG92ZXJcIiA6IChcclxuICAgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3LFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBcIi5pcy1ub3RpY2VcIiA6IChcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3LFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBcIi5ub25lLWhvdmVyOmhvdmVyXCIgOiAoXHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZixcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBcclxuICAgICAgICApLFxyXG4gICAgICAgIHJwLXRkOiAoXHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2ssXHJcbiAgICAgICAgICBwYWRkaW5nOiA1cHgsXHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweCxcclxuICAgICAgICAgIGNvbG9yOiAjOTk5LFxyXG4gICAgICAgICAgXCImXCIgOiAoXHJcbiAgICAgICAgICAgIFwiLnRkLWJsb2NrXCIgOiAoXHJcbiAgICAgICAgICAgICAgZGlzcGxheSA6IGJsb2NrXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIClcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICBtZDogKFxyXG4gICAgICAgIHJwLXRhYmxlOiAoXHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4LFxyXG4gICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMzMzMsXHJcbiAgICAgICAgKSxcclxuICAgICAgICBycC10aGVhZDogKFxyXG4gICAgICAgICAgZGlzcGxheTogdGFibGUsXHJcbiAgICAgICAgICB3aWR0aDogMTAwJSxcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTdlOWVlLFxyXG4gICAgICAgICAgcGFkZGluZzogMCAyMHB4LFxyXG4gICAgICAgICksXHJcbiAgICAgICAgcnAtdGg6IChcclxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwsXHJcbiAgICAgICAgICBwYWRkaW5nOiAyMnB4IDVweCxcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYsXHJcbiAgICAgICAgICBmb250LXNpemU6IDE1cHgsXHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbSxcclxuICAgICAgICAgIGNvbG9yOiAjMDAwLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgcnAtdHI6IChcclxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLFxyXG4gICAgICAgICAgd2lkdGg6IDEwMCUsXHJcbiAgICAgICAgICBwYWRkaW5nOiAwIDIwcHgsXHJcbiAgICAgICAgKSxcclxuICAgICAgICBycC10ZDogKFxyXG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCxcclxuICAgICAgICAgIHdpZHRoOiAxMDAlLFxyXG4gICAgICAgICAgcGFkZGluZzogMjBweCA1cHgsXHJcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlLFxyXG4gICAgICAgICAgZm9udC1zaXplOjE0cHgsXHJcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwLFxyXG4gICAgICAgICAgY29sb3I6IzU1NSxcclxuICAgICAgICAgIFwiJlwiIDogKFxyXG4gICAgICAgICAgICBcIi50ZC1ibG9ja1wiIDogKFxyXG4gICAgICAgICAgICAgIGRpc3BsYXkgOiB0YWJsZS1jZWxsXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIClcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICApLFxyXG4gIClcclxuKTtcclxuXHJcbi8vX2J1dHRvblxyXG4kZ19idG4tc2l6ZTogKFxyXG4gIGRlZmF1bHRfdmFsdWU6ICgpLCAvL+y2lOqwgOyLnCBiYXNlL19idXR0b25zLnNjc3Mg7IiY7KCV7JqU66edXHJcbiAgeHM6ICggLy/rsLDshqHsobDtmows7ZuE6riw7J6R7ISxXHJcbiAgICB3aWR0aDogNTBweCxcclxuICAgIGhlaWdodDogMzVweCxcclxuICAgIGxpbmUtaGVpZ2h0OiAzNXB4LFxyXG4gICAgZm9udC1zaXplOiAxMnB4LFxyXG4gICksXHJcbiAgc206ICggLy/qsozsi5ztjJAg67KE7Yq8LCBwb3B1cFxyXG4gICAgd2lkdGg6IDExOHB4LFxyXG4gICAgaGVpZ2h0OiA1MHB4LFxyXG4gICAgbGluZS1oZWlnaHQ6IDUwcHgsXHJcbiAgICBmb250LXNpemU6IDE0cHgsXHJcbiAgICBtZWRpYTogKFxyXG4gICAgICBzbTogKFxyXG4gICAgICAgIGhlaWdodDogNDBweCxcclxuICAgICAgICBsaW5lLWhlaWdodDogNDBweCxcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICksXHJcbiAgbWQ6ICggLy/smrDtjrjrsojtmLjssL7quLAsIO2ajOybkO2DiO2HtFxyXG4gICAgd2lkdGg6IDEwMHB4LFxyXG4gICAgaGVpZ2h0OiAzNXB4LFxyXG4gICAgbGluZS1oZWlnaHQ6IDM1cHgsXHJcbiAgICBmb250LXNpemU6IDE0cHgsXHJcbiAgKSxcclxuICBsZzogKCAvL+yepeuwlOq1rOuLiCwg7ZqM7JuQ6rCA7J6FLCDrp4jsnbTtjpjsnbTsp4BcclxuICAgIHdpZHRoOjI2NXB4LFxyXG4gICAgaGVpZ2h0OiA0MHB4LFxyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHgsXHJcbiAgICBmb250LXNpemU6IDE1cHgsXHJcbiAgKSxcclxuICB4bDogKCAvL+uhnOq3uOyduCwg67mE67CA67KI7Zi4IOywvuq4sCDtlIzroZzsmrBcclxuICAgIHdpZHRoOiAyMDBweCxcclxuICAgIGhlaWdodDogNTVweCxcclxuICAgIGxpbmUtaGVpZ2h0OiA1MHB4LFxyXG4gICAgZm9udC1zaXplOiAxNXB4LFxyXG4gICAgbWVkaWE6IChcclxuICAgICAgbWQ6IChcclxuICAgICAgICBoZWlnaHQ6IDYwcHgsXHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHgsXHJcbiAgICAgIClcclxuICAgIClcclxuICApLFxyXG4gIHByb21vdGlvbjogKFxyXG4gICAgd2lkdGg6IDIwMHB4LFxyXG4gICAgaGVpZ2h0OiA1NXB4LFxyXG4gICAgbGluZS1oZWlnaHQ6IDU1cHgsXHJcbiAgICBmb250LXNpemU6IDE1cHgsXHJcbiAgKSxcclxuICBmdWxsOihcclxuICAgIHdpZHRoOiAxMDAlLFxyXG4gICksXHJcbik7XHJcblxyXG4kZ19idG4tZ3JvdXAgOiAoIC8vIOuyhO2KvCDsiqTtg4Dsnbwg7ISk7KCV7ZWY6riwXHJcbiAgcG9pbnQgOiAgKCAvLyBkZWZhdWx0XHJcbiAgICB0aGVtZS1jb2xvcjogIzExMSxcclxuICAgIGZvbnQtY29sb3I6ICNmZmYsXHJcbiAgICAvLyBib3JkZXIgOiAxcHggc29saWQgIzIwN2ViZCxcclxuICAgIC8vIGJvcmRlci1yYWRpdXM6NXB4LFxyXG5cclxuICAgIGhvdmVyLXRoZW1lLWNvbG9yOiMxMTEsXHJcbiAgICBob3Zlci1jb2xvcjogI2ZmZixcclxuICAgIC8vIGhvdmVyLWJvcmRlciA6IDFweCBzb2xpZCAjMDAwLFxyXG5cclxuICAgIGRpc2FibGVkLWdyb3VwIDooIC8vIOq4sOuzuOyggeycvOuhnCBvcGFjaXR5Oi42NSwg7Luk7Iqk7YWA7J2AIOyVhOuemOyXkCDqsJIg67OA6rK9XHJcbiAgICAgIGRpbS10aGVtZS1jb2xvcjojMTExLFxyXG4gICAgICBkaW0tY29sb3I6ICMxMTEsXHJcbiAgICAgIGRpbS1vcGFjaXR5IDogLjUsXHJcbiAgICApLFxyXG4gICksXHJcbiAgc3ViLXBvaW50IDooXHJcbiAgICB0aGVtZS1jb2xvcjojMTQ3NTNmLFxyXG4gICAgZm9udC1jb2xvcjogI2ZmZixcclxuICApLFxyXG4gIHN0eWxlMSA6ICAoIC8v66Gc6re47J24XHJcbiAgICB0aGVtZS1jb2xvcjogI2FhYSxcclxuICAgIGZvbnQtY29sb3I6ICNmZmYsXHJcbiAgKSxcclxuICBzdHlsZTIgOiAoIC8vIO2ajOybkOqwgOyehSwg67mE67CA67KI7Zi4IOyVhOydtOuUlOywvuq4sCxcclxuICAgIGZvbnQtY29sb3I6ICMwMDAsXHJcbiAgICB0aGVtZS1jb2xvcjogI2YyZjJmMixcclxuICAgIGJvcmRlcjoxcHggc29saWQgI2RkZCxcclxuICAgIGhvdmVyLXRoZW1lLWNvbG9yOiNmMmYyZjIsXHJcbiAgKSxcclxuICBzdHlsZTMgOiAoIC8vIOyjvOusuCDst6jshowg67KE7Yq8LCDso7zrrLgg66as7Iqk7Yq4IOqygOyDiSDrsoTtirxcclxuICAgIGZvbnQtY29sb3I6ICNmZmYsXHJcbiAgICB0aGVtZS1jb2xvcjogIzU1NSxcclxuICApLFxyXG4gIG91dGxpbmUtc3R5bGUxIDogICggLy8g7KO866y47IOB7IS467O06riwLCBjdXN0b20yXHJcbiAgICBmb250LWNvbG9yOiAjMTExLFxyXG4gICAgdGhlbWUtY29sb3I6IHRyYW5zcGFyZW50LFxyXG4gICAgYm9yZGVyIDogMXB4IHNvbGlkICNkZGQsXHJcbiAgICBob3Zlci1ib3JkZXIgOiAxcHggc29saWQgI2RkZCxcclxuICApLFxyXG4gIG91dGxpbmUtc3R5bGUyIDogICggLy8g7ZSE66Gc66qo7IWYXHJcbiAgICBmb250LWNvbG9yOiAjMTExLFxyXG4gICAgdGhlbWUtY29sb3I6IHRyYW5zcGFyZW50LFxyXG4gICAgYm9yZGVyIDogMXB4IHNvbGlkICMxMTEsXHJcbiAgICBob3Zlci1ib3JkZXIgOiAxcHggc29saWQgIzExMSxcclxuICApLFxyXG4pO1xyXG5cclxuLy9fcGFnaW5hdGlvbiAo66qF7LmtIDogYSDtg5zqt7ggcGFnZS1saW5rIOuhnCjsiqTtg4DsnbwpICAvIHBhZ2UtaXRlbSDsnbQg6rCB7J6Q7J2YIHdyYXAgKOqwhOqyqeyhsOyglSkvIOyghOyytOulvCAucGFnaW5hdGlvbuydtCDqsJDsi7jqs6Ag7J6I7J2MKVxyXG4kZ19wYWdlLWl0ZW0tZ3JvdXAgOiAoXHJcbiAgLy8gZGVmYXVsdFxyXG4gIHdpZHRoOjUwcHgsXHJcbiAgaGVpZ2h0OjUwcHgsXHJcblxyXG4gIC8vcGFkZGluZzoyMHB4LFxyXG4gIG1hcmdpbjowIC0xcHgsXHJcbiAgdGhlbWUtY29sb3I6ICNmZmYsXHJcbiAgYm9yZGVyIDogMXB4IHNvbGlkICNkZGQsXHJcbiAgLy9ib3JkZXItcmFkaXVzOiAzcHgsXHJcbiAgLy9ib3JkZXItcmFkaXVzLWYtbDogM3B4LCAvLyDssqvrsojsp7gg66eI7KeA66eJIOuyhO2KvCDsvZTrhIggcmFkaXVzXHJcbiAgLy9ib3JkZXItcmlnaHQgOiBub25lLCAvLyDrsoTtirzsnbQg67aZ7Ja07J6I64qUIOqyveyasFxyXG4gIC8vYm9yZGVyLXN0eWxlOiAoIC8vIGxhc3QtY2hpbGTsl5Ag7KCB7Jqp65CoXHJcbiAgLy9cdGJvcmRlci1yaWdodCA6IFwiMXB4IHNvbGlkICNlMWUxZTFcIixcclxuICAvLyksXHJcblxyXG4gIGZvbnQtc2l6ZToxNnB4LFxyXG4gIGZvbnQtd2VpZ2h0OjQwMCxcclxuICBsZXR0ZXItc3BhY2luZzotMC4wNWVtLFxyXG4gIGZvbnQtY29sb3I6Izc3NyxcclxuXHJcbiAgLy8gaG92ZXJcclxuICBob3Zlci10aGVtZS1jb2xvcjojZmZmLFxyXG4gIC8vIGhvdmVyLWJvcmRlci1jb2xvciA6ICNkZGQsXHJcbiAgaG92ZXItY29sb3I6ICMwMDAsXHJcblxyXG4gIC8vIGFjdGl2ZVxyXG4gIGFjdGl2ZS10aGVtZTojZjJmMmYyLFxyXG4gIGFjdGl2ZS1jb2xvcjojMDAwLFxyXG4gIGFjdGl2ZS1zdHlsZTogKCAvLyDsu6TsiqTthYDsmqlcclxuICAgIC8vYm9yZGVyLWJvdHRvbTpcIjJweCBzb2xpZCAjMDIzODhiXCIsXHJcbiAgICAvL2ZvbnQtd2VpZ2h0OmJvbGQsXHJcbiAgKSxcclxuXHJcbiAgLy8gZGlzYWJsZWRcclxuICBkaW0tb3BhY2l0eSA6IC41LFxyXG4gIC8vZGlzYWJsZWQtc3R5bGU6ICggLy8g7Luk7Iqk7YWA7JqpXHJcbiAgLy9cdC8v67KE7Yq87JeQ7ISc64qUIG1hcC1oYXMta2V56rCS7J2EIOydtOyaqe2VtOyEnCDtgqTqsJLsnbQg7J6H7Jy866m0IOunteydmCDtgqTqsJLqs7wg67Ko66WY66GcIOy2nOugpVxyXG4gIC8vXHQvL+2OmOydtOyngOuEpOydtOyFmOyXkOyEnOuKlCDtgqTqsJLsnbQg7J6I7Jy866m0IOyViOyXkCDrgrTsmqkg6re464yA66GcIOy2nOugpS4uXHJcbiAgLy9cdC8v6rKw6rO8IOqwkuydgCDqsJnsnLzrgpggbWl4aW7rsKnrspXsnbQg64uk66W064ukIO2YhOyerFxyXG4gIC8vXHRiYWNrZ3JvdW5kLWNvbG9yOiMxMTEsXHJcbiAgLy9cdGNvbG9yOiAjMTExLFxyXG4gIC8vXHRib3JkZXItYm90dG9tOlwiMnB4IHNvbGlkICMwMjM4OGJcIixcclxuICAvLyksXHJcbiAgYXJyb3ctZ3JvdXAgOiAoXHJcbiAgICBzdGFydCA6ICggLy/su6TsiqTthYBcclxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlIDp1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9wYWdpbmF0aW9uX2Fycm93X3N0YXJ0LnBuZyksXHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyLFxyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQsXHJcbiAgICApLFxyXG4gICAgcHJldiA6IChcclxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlIDp1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9wYWdpbmF0aW9uX2Fycm93X3ByZXYucG5nKSxcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIsXHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCxcclxuICAgICksXHJcbiAgICBuZXh0IDogKFxyXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXHJcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2UgOnVybCgvdmlld3MvcmVzL2ltZ3MvY29tbW9uL3BhZ2luYXRpb25fYXJyb3dfbmV4dC5wbmcpLFxyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcixcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0LFxyXG4gICAgKSxcclxuICAgIGVuZCA6IChcclxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlIDp1cmwoL3ZpZXdzL3Jlcy9pbWdzL2NvbW1vbi9wYWdpbmF0aW9uX2Fycm93X2VuZC5wbmcpLFxyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcixcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0LFxyXG4gICAgKSxcclxuICApLFxyXG4pO1xyXG5cclxuLy9fdG9vbHRpcFxyXG4kZ190b29sdGlwLWdyb3VwIDogKCAvLyAudG9vbHRpcCA+IC50b29sdGlwLWlubmVyXHJcbiAgdG9wIDogLTQwcHgsXHJcbiAgcGFkZGluZzogM3B4IDhweCxcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAsXHJcbiAgYm9yZGVyLXJhZGl1czozcHgsXHJcbiAgZm9udC1zaXplOjEzcHgsXHJcbiAgbGV0dGVyLXNwYWNpbmc6LTAuMDVlbSxcclxuICBjb2xvcjojZmZmLFxyXG4gIHRleHQtYWxpZ246Y2VudGVyLFxyXG4gIHRyYW5zaXRpb24tdGltZSA6IC41cyxcclxuICBvcGFjaXR5OjAsIC8vbm9ybWFsXHJcbiAgc2hvdy1vcGFjaXR5Oi45LCAvLzpob3ZlcuydvOuVjFxyXG4gIGFycm93LWdyb3VwIDogKCAvLyDtiLTtjIHqvKzrpqxcclxuICAvLyAgbGVmdCA6IDAsXHJcbiAgLy8gIHJpZ2h0IDogMCxcclxuICAgIGNlbnRlcjogNTAlLFxyXG4gICAgYXJyb3ctd2lkdGg6NXB4IDVweCAwLFxyXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMCxcclxuICApLFxyXG4pO1xyXG5cclxuLy9fdGFiXHJcbiRnX3RhYi1ncm91cCA6ICggLy8gLnRhYi13cmFwID4gLnRhYi1saXN0Lm9uXHJcbiAgLy8g7JWE656Y7JeQIOqzte2Gteu2gOu2hCBzdWItY2xhc3Npbmcg6riw7KSA7Jy866GcIOyViOyXkOyEnCDsg4Hsho3rsJvripTqsbjroZwg64KY64ig7KeA64qUIOydtOyKiOyytO2BrFxyXG4gIGZsb2F0OmxlZnQsXHJcbiAgZGlzcGxheTppbmxpbmUtYmxvY2ssXHJcbiAgd2lkdGg6NTAlLFxyXG4gIHBhZGRpbmc6MThweCxcclxuICB0aGVtZS1jb2xvcjogI2ZmZixcclxuICBib3JkZXI6MXB4IHNvbGlkICNlMWUxZTEsXHJcbiAgZm9udC1jb2xvcjogIzg4OCxcclxuICBmb250LXdlaWdodDozMDAsXHJcbiAgZm9udC1zaXplOjE2cHgsXHJcbiAgdGV4dC1hbGlnbjpjZW50ZXIsXHJcbiAgbGV0dGVyLXNwYWNpbmc6LTAuMDNlbSxcclxuXHJcbiAgc3ViLWNsYXNzaW5nIDogKCAvLyDsnoXroKXtlZjripTrjbDroZxcclxuICAgIHN0eWxlIDogKCAvLyDrhKTrqqjtg61cclxuICAgICAgbWFyZ2luOjVweCxcclxuICAgICAgYm9yZGVyOjFweCBzb2xpZCAjMDAwLFxyXG4gICAgKSxcclxuICAgIHN0eWxlMSA6ICggLy8g7J2866Cs7YOtXHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxLFxyXG4gICAgKSxcclxuICApLFxyXG5cclxuICBhY3RpdmUgOiAoIC8vIOyeheugpe2VmOuKlOuNsOuhnFxyXG4gICAgYm9yZGVyLWNvbG9yOiAkZ19jb2xvcixcclxuICAgIGJhY2tncm91bmQtY29sb3I6JGdfY29sb3IsXHJcbiAgICBjb2xvcjojZmZmLFxyXG4gICAgZm9udC13ZWlnaHQ6NDAwLFxyXG4gICksXHJcblxyXG4gIC8v66+465SU7Ja07L+866asXHJcbiAgbWVkaWE6IChcclxuICAgIG1kOiAoIC8vIOyeheugpe2VmOuKlOuNsOuhnFxyXG4gICAgICAvL2Rpc3BsYXk6YmxvY2ssXHJcbiAgICAgIHdpZHRoOjI1JSxcclxuICAgICAgZm9udC1zaXplOjE1cHgsXHJcbiAgICAgIGxldHRlci1zcGFjaW5nOi0wLjAyZW0sXHJcbiAgICApXHJcbiAgKVxyXG4pO1xyXG4vL19zZWFyY2hiYXJcclxuXHJcbi8vXyBjYXJkXHJcblxyXG4iLCIvLyBUb2dnbGVzXHJcbi8vXHJcbi8vIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBnbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBjZXJ0YWluIHRoZW1lIGZlYXR1cmVzLlxyXG5cclxuQGltcG9ydCBcIm1peGlucy9fbWVkaWEtcXVlcnlcIjtcclxuQGltcG9ydCBcIm1peGlucy9fbWFwXCI7XHJcblxyXG4vLyBVdGlsaXRpZXNcclxuLy9AaW1wb3J0IFwibWl4aW5zL2JyZWFrcG9pbnRzXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2NsZWFyXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2Zsb2F0XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2hvdmVyXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9pbWFnZVwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvYmFkZ2VcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19zY3JlZW5yZWFkZXJcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3NpemVcIjtcclxuQGltcG9ydCBcIm1peGlucy9fcmVzZXQtdGV4dFwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19wcmVmaXhlclwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvdGV4dC1lbXBoYXNpc1wiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvdGV4dC1oaWRlXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LXRydW5jYXRlXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90cmFuc2Zvcm1zXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy92aXNpYmlsaXR5XCI7XHJcblxyXG4vLyAvLyBDb21wb25lbnRzXHJcbi8vQGltcG9ydCBcIm1peGlucy9hbGVydFwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL190cmlhbmdsZVwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19idXR0b25zXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvY2FyZHNcIjtcclxuQGltcG9ydCBcIm1peGlucy9fcGFnaW5hdGlvblwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvbGlzdHNcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL2xpc3QtZ3JvdXBcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL25hdi1kaXZpZGVyXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2Zvcm1zXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvdGFibGVzXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90YWJsZS1yb3dcIjtcclxuQGltcG9ydCBcIm1peGlucy9fdGFiXCI7XHJcblxyXG4vLyAvLyBTa2luc1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvYmFja2dyb3VuZC12YXJpYW50XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2JvcmRlci1yYWRpdXNcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL2dyYWRpZW50c1wiO1xyXG5cclxuLy8gLy8gTGF5b3V0XHJcbi8vIEBpbXBvcnQgXCJtaXhpbnMvbmF2YmFyLWFsaWduXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9ncmlkLWZyYW1ld29ya1wiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19hcmVhXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2dyaWRcIjtcclxuIiwiLy8gbWVkaWEtcXVlcnktbWluIOuvueyKpOyduFxyXG4vLyBb66ek6rCc67OA7IiYXVxyXG4vLyAkYnJlYWtwb2ludCDquLDrs7jqsJI6IOyXhuydjFxyXG4vLyAkYnJlYWtwb2ludCDsl5Ag6rCA7Jqp6rCA64ql7ZWcIOqwklxyXG4vLyAoMSkgJG1lZGlhLWJyZWFrcG9pbnRzIOydmCDtgqQg6rCSICh4cywgc20sIG1kLCBsZywgeGwgKeykkSDtlZjrgphcclxuLy8gKDIpIOqzoOyglSBweOqwklxyXG4vLyAkYnJlYWtwb2ludCDsoITri6zrkJwg6rCS7JeQIOuUsOudvOyEnCBAbWVkaWEobWluLXdpZHRoOiBcIuunpOqwnOuzgOyImOyXkCDtlbTri7ntlZjripQg6rCSXCIpIOyFi+2Mhe2VtOykjeuLiOuLpC5cclxuLy8gJGJyZWFrcG9pbnQg6rCS7J2EIO2UveyFgOuhnCDrhKPripTri6TrqbQg7ZW064u5IO2UveyFgOqwkuydmCDrr7jrlJTslrTsv7zrpqzrpbwg66eM65Ok7Ja0IOykjeuLiOuLpC5cclxuLy8gZXgpIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihsZykgeyBAY29udGVudCB9XHJcbi8vIGV4KSBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oNTAwcHgpIHsgQGNvbnRlbnQgfVxyXG5AbWl4aW4gbWVkaWEtcXVlcnktbWluKCAkYnJlYWtwb2ludCApIHtcclxuICBAaWYgbWFwX2hhc19rZXkoICRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCApe1xyXG4gICAgQGlmICAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xyXG4gICAgICBAY29udGVudFxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXBfZ2V0KCRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuICAgICAgICBAY29udGVudFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmIHVuaXQoJGJyZWFrcG9pbnQpID09IFwicHhcIiB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludCl7ICBAY29udGVudCAgfVxyXG4gIH1cclxufVxyXG5AbWl4aW4gbWVkaWEtcXVlcnktbWF4KCAkYnJlYWtwb2ludCApIHtcclxuICBAaWYgbWFwX2hhc19rZXkoICRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCApe1xyXG4gICAgQGlmICAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xyXG4gICAgICBAY29udGVudFxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBtYXBfZ2V0KCRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuICAgICAgICBAY29udGVudFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmIHVuaXQoJGJyZWFrcG9pbnQpID09IFwicHhcIiB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludCl7ICBAY29udGVudCAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIG1lZGlhLXF1ZXJ5LW1pbi12YWwg7ZWo7IiYXHJcbi8vIOyghOyXreuzgOyImCAkbWVkaWEtYnJlYWtwb2ludHMgbWFw7J2YIHZhbHVl66W8IOuwmO2ZmO2VtCDspI3ri4jri6QuXHJcbi8vIOyjvOuhnCBlYWNoIOusuOqzvCDqsJnsnYAgbG9vcCDrrLjsl5DshJwg7Zmc7Jqp65Cp64uI64ukLlxyXG4vLyBleClcclxuLy8gQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwX2tleXMoJG1lZGlhLWJyZWFrcG9pbnRzKSB7XHJcbi8vICAgJHBvaW50OiBtZWRpYS1xdWVyeS1taW4tdmFsKCRicmVha3BvaW50KTtcclxuLy8gICBAbWVkaWEgKCBtaW4td2lkdGg6ICN7JHBvaW50fSApe1xyXG4vLyAgICAgLiN7JGJyZWFrcG9pbnR9LWYtbCB7IEBpbmNsdWRlIGZsb2F0LWxlZnQgfVxyXG4vLyAgICAgLiN7JGJyZWFrcG9pbnR9LWYtciB7IEBpbmNsdWRlIGZsb2F0LXJpZ2h0IH1cclxuLy8gICAgIC4jeyRicmVha3BvaW50fS1mLW4geyBAaW5jbHVkZSBmbG9hdC1ub25lIH1cclxuLy8gICB9XHJcbi8vIH1cclxuQGZ1bmN0aW9uIG1lZGlhLXF1ZXJ5LW1pbi12YWwoICRicmVha3BvaW50ICl7XHJcbiAgQHJldHVybiBtYXBfZ2V0KCRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiQGZ1bmN0aW9uIG1hcC1zZXQoJG1hcCwgJGtleSwgJHZhbHVlKSB7XHJcbiAgJG5ldzogKCRrZXk6ICR2YWx1ZSk7XHJcbiAgQHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XHJcbn1cclxuXHJcblxyXG4vL3ByZWZpeCDsoJzqsbBcclxuLy/tg5zqt7jsnbTrpoQsIOyGjeyEsSwg7JWE7J2065SUIOuTsSAg7IWA66CJ7YSwIOqwgOuKpeuPhOuhnVxyXG5AZnVuY3Rpb24gbWFrZU1hcFRvQ29kZXMoJG1hcCwgJHByZWZpeDogXCJcIiwgJHNlbGY6IGZhbHNlKSB7XHJcbiAgJGNvZGVzIDogKCk7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkbWFwIHtcclxuICAgIEBpZiAoIHR5cGUtb2YoJHZhbCkgPT0gbWFwICkge1xyXG5cclxuICAgICAgQGlmICgka2V5ID09IFwiJlwiKSB7XHJcbiAgICAgICAgJG1ha2U6IG1ha2VNYXBUb0NvZGVzKCR2YWwsIFwiXCIsIHRydWUpO1xyXG4gICAgICAgICRjb2RlczogbWFwLW1lcmdlKCRjb2RlcywgJG1ha2UpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkc2VsZWN0b3I6IFwiLiN7JHByZWZpeH0jeyRrZXl9XCI7XHJcblxyXG4gICAgICAgIEBpZiAoJHNlbGYpIHtcclxuICAgICAgICAgICRzZWxlY3RvciA6IFwiJiN7JHByZWZpeH0jeyRrZXl9XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICRtYWtlOiBtYWtlTWFwVG9Db2RlcygkdmFsLCAkcHJlZml4KTtcclxuICAgICAgICAkY29kZXM6IG1hcC1zZXQoJGNvZGVzLCAkc2VsZWN0b3IsICRtYWtlKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkY29kZXM6IG1hcC1zZXQoJGNvZGVzLCAka2V5LCAkdmFsKTtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkY29kZXM7XHJcbn07XHJcblxyXG5cclxuQG1peGluIHByaW50Q29kZXMoJG1hcCkge1xyXG5cclxuICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xyXG4gICBcclxuICAgIEBpZiAoIHR5cGUtb2YoJHZhbCkgPT0gbWFwICkge1xyXG4gICAgICAjeyRrZXl9IHtcclxuICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCR2YWwpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgI3ska2V5fSA6ICN7JHZhbH07XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbn1cclxuXHJcbi8vIGlzTWFwIO2VqOyImFxyXG4vLyAje2tleX0gOiAje3ZhbHVlfeydmCDtmJXtg5zrpbwg66as7YS07ZW07KO864qUIO2VqOyImFxyXG4vLyBpc01hcCgkdmFsLCAka2V5KTtcclxuLy8gaXNNYXAg7ZWo7IiY7JeQ7IScIOyduOyekOuhnCDrhJjslrTsmKggJyR2YWwn7JeQIO2VoOuLueuQnCDqsJLsnbQgbWFw7J20652866m0IGlzbWFw7ZWo7IiY66W8IOyerOq3gO2YuOy2nCDtlZzri6QuXHJcbi8vIOyYiOyZuOyggeycvOuhnCDtgqTqsJLsnbQgXCJfXCIg652866m0IGlzUHNldWRv66W8IO2YuOy2nO2VnOuLpC5cclxuLy8g7LWc7KKF7KCB7Jy866GcICN7a2V5fSA6ICN7dmFsdWV97J2YIOqwkuydhCDrpqzthLTtlZjrj4TroZ0g66eM65Og64ukLlxyXG5cclxuLy9pc1BzZXVkbyDtlajsiJhcclxuLy/qsIDsg4Eg7ISg7YOd7J6Q66W8IOunjOuTpOyWtCDrpqzthLTtlbTso7zripQg7ZWo7IiYXHJcbi8vXHJcblxyXG5cclxuLy9AZnVuY3Rpb24gaXNNYXAgKCR2YWwsICRrZXkpIHtcclxuLy8gICRyZXN1bHQgOiAoKTtcclxuLy9cclxuLy8gIEBpZiAodHlwZS1vZigkdmFsKSA9PSBtYXApIHtcclxuLy8gICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4vLyAgICAgIEBpZiAodHlwZS1vZigkdmFsMikgPT0gbWFwIGFuZCAka2V5ID09IG51bGwpIHtcclxuLy8gICAgICAgICRtYXAgOiBpc01hcCgkdmFsMiwgJGtleTIpO1xyXG4vLyAgICAgICAgJG1hcGtleSA6IG1hcC1rZXlzKCRtYXApO1xyXG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkbWFwa2V5LCBtYXAtZ2V0KCRtYXAsICN7JG1hcGtleX0pKTtcclxuLy8gICAgICB9IEBlbHNlIGlmICh0eXBlLW9mKCR2YWwyKSA9PSBtYXAgYW5kICRrZXkgPT0gXCJfXCIpe1xyXG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAka2V5MiwgaXNNYXAoJHZhbDIsICRrZXkyKSk7XHJcbi8vICAgICAgfSBAZWxzZSB7XHJcbi8vICAgICAgICAkcmVzdWx0OiBtYXAtc2V0KCRyZXN1bHQsICRrZXkyLCAkdmFsMik7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICB9IEBlbHNlIHtcclxuLy8gICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkdmFsLCAka2V5KTtcclxuLy8gIH1cclxuLy9cclxuLy8gIEByZXR1cm4gJHJlc3VsdDtcclxuLy99O1xyXG5cclxuXHJcbi8vQGZ1bmN0aW9uIGlzUHNldWRvICgka2V5LCAkdmFsKSB7XHJcbi8vICAkcmVzdWx0OiBudWxsO1xyXG4vLyAgQGlmICgka2V5ID09IFwiX1wiKSB7XHJcbi8vICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcclxuLy8gICAgICAkcmVzdWx0OiBpc01hcCgka2V5MiwgJHZhbDIpO1xyXG4vLyAgICAgIEByZXR1cm4gaXNNYXAoJGtleTIsICR2YWwyKTtcclxuLy8gICAgfVxyXG4vLyAgfSBAZWxzZSAge1xyXG4vLyAgICAkcmVzdWx0OiBpc01hcCgka2V5LCAkdmFsKTtcclxuLy8gICAgQHJldHVybiAkcmVzdWx0O1xyXG4vLyAgfVxyXG4vL307XHJcblxyXG5cclxuIiwiQG1peGluIGNsZWFyKCkge1xyXG4gICY6OmFmdGVyIHtcclxuICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgIGNsZWFyOiBib3RoO1xyXG4gICB9XHJcbn1cclxuXHJcblxyXG5cclxuIiwiQG1peGluIGZsb2F0LWxlZnQge1xyXG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbn1cclxuQG1peGluIGZsb2F0LXJpZ2h0IHtcclxuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcclxufVxyXG5AbWl4aW4gZmxvYXQtbm9uZSB7XHJcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG4iLCJAbWl4aW4gaG92ZXItb257XHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUsICYub257IEBjb250ZW50OyB9XHJcbn1cclxuXHJcbkBtaXhpbiBob3ZlcntcclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7IEBjb250ZW50OyB9XHJcbn1cclxuXHJcbi8vXHJcbi8vQG1peGluIGhvdmVyIHtcclxuLy8gICY6aG92ZXIgeyBAY29udGVudDsgfVxyXG4vL31cclxuLy9cclxuLy9AbWl4aW4gaG92ZXItZm9jdXMge1xyXG4vLyAgJjpob3ZlcixcclxuLy8gICY6Zm9jdXMge1xyXG4vLyAgICBAY29udGVudDtcclxuLy8gIH1cclxuLy99XHJcbi8vXHJcbi8vQG1peGluIHBsYWluLWhvdmVyLWZvY3VzIHtcclxuLy8gICYsXHJcbi8vICAmOmhvdmVyLFxyXG4vLyAgJjpmb2N1cyB7XHJcbi8vICAgIEBjb250ZW50O1xyXG4vLyAgfVxyXG4vL31cclxuLy9cclxuLy9AbWl4aW4gaG92ZXItZm9jdXMtYWN0aXZlIHtcclxuLy8gICY6aG92ZXIsXHJcbi8vICAmOmZvY3VzLFxyXG4vLyAgJjphY3RpdmUge1xyXG4vLyAgICBAY29udGVudDtcclxuLy8gIH1cclxuLy99IiwiLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXHJcbi8vIFNlZTogaHR0cDovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50L1xyXG4vLyBTZWU6IGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xyXG5AbWl4aW4gc3Itb25seSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxcHg7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcbkBtaXhpbiB0ZXh0LWhpZGUge1xyXG4gIGZvbnQ6IDAvMCBhICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuIiwiQG1peGluIHJlc2V0LXRleHQge1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZSBvciB3b3JkLXdyYXAuXHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgbGluZS1icmVhazogYXV0bztcclxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxyXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcclxuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcclxufVxyXG4iLCIvLyAvKiBwcmVmaXggKi9cclxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXM6KCkpe1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVze1xyXG4gICAgI3snLScrJHByZWZpeCsnLScrJHByb3BlcnR5fTokdmFsdWU7XHJcbiAgfVxyXG4gICN7JHByb3BlcnR5fSA6ICR2YWx1ZTtcclxufVxyXG5cclxuICAvLyBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHJvdGF0ZSg0NWRlZyksIHdlYmtpdCBtcyk7IG9yIChcIndlYmtpdFwiLCBcIm1velwiKVxyXG5cclxuIC8vY3NzXHJcbiAgLy8gLnNlbGVjdG9yIHtcclxuICAvLyAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC8vICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAvLyAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAvLyB9XHJcblxyXG4iLCJAbWl4aW4gdHJpYW5nbGUoJGRpcmVjdGlvbiwkd2lkdGgsJGhlaWdodCwkd2lkdGhTaXplLCRoZWlnaHRTaXplLCRjb2xvcikge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAkd2lkdGg7XHJcbiAgICB3aWR0aDogJGhlaWdodDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBAaWYgJHdpZHRoID09IDAge1xyXG4gICAgICAgIEBpZiAkd2lkdGggPT0gMCBhbmQgJGhlaWdodCA9PSAwIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAoJHdpZHRoU2l6ZSAvIDIpICRoZWlnaHRTaXplO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInVwLXJpZ2h0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwICR3aWR0aFNpemUgJHdpZHRoU2l6ZSAwO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodFNpemUgLyAyKSAwICgkaGVpZ2h0U2l6ZSAvIDIpICR3aWR0aFNpemU7XHJcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1yaWdodFwiIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAwICR3aWR0aFNpemUgJHdpZHRoU2l6ZTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0U2l6ZSAoJHdpZHRoU2l6ZSAvIDIpIDA7XHJcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1sZWZ0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGhTaXplIDAgMCAkd2lkdGhTaXplO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6ICgkaGVpZ2h0U2l6ZSAvIDIpICR3aWR0aFNpemUgKCRoZWlnaHRTaXplIC8gMikgMDtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1sZWZ0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGhTaXplICR3aWR0aFNpemUgMCAwO1xyXG4gICAgICAgIH1cclxuICAgIH1AZWxzZSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkY29sb3IgJGNvbG9yIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogMCAkd2lkdGhTaXplICRoZWlnaHRTaXplIDA7XHJcbiAgICAgICAgQGlmICRkaXJlY3Rpb24gPT0gXCJ1cFwiIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1yaWdodFwiIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7XHJcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1yaWdodFwiIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duLWxlZnRcIiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1sZWZ0XCIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8gLmVsZW1lbnQge1xyXG4vLyAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbi8vICAgICAmOjpiZWZvcmUge1xyXG4vLyAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKFwidXAtbGVmdFwiLCAwLDAsMTBweCwxMHB4LCAjYjI1YzljKTtcclxuLy8gICAgIH1cclxuLy8gfVxyXG4vLyAuZWxlbWVudDIge1xyXG4vLyAgICAgbGVmdDoyMHB4O1xyXG4vLyAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbi8vICAgICAmOjpiZWZvcmUge1xyXG4vLyAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKFwidXAtbGVmdFwiLCA4cHgsOHB4LDJweCwycHgsICNiMjVjOWMpO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG4vLyBjc3NcclxuLy8gLmVsZW1lbnQyIHtcclxuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4vLyAgICAgaGVpZ2h0OiA4cHg7XHJcbi8vICAgICB3aWR0aDogOHB4O1xyXG4vLyAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjYjI1YzljICNiMjVjOWMgdHJhbnNwYXJlbnQ7XHJcbi8vICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xyXG4vLyAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuLy8gfVxyXG4iLCIvLyBCdXR0b24gdmFyaWFudHNcclxuLy8g67KE7Yq8IOyCrOydtOymiOuzhCDsg53shLFcclxuQG1peGluIGJ1dHRvbi1zaXplLXB4KCRidG4tc2l6ZSA6ICRnX2J0bi1zaXplKSB7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGJ0bi1zaXplKXtcclxuICAgIEBpZiAoJGtleSA9PSBkZWZhdWx0X3ZhbHVlKSB7XHJcbiAgICAgICVkZWZhdWx0X3ZhbHVlIHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLmJ0bi0jeyRrZXl9IHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICBAaWYgKCRrZXkyID09IG1lZGlhKSB7XHJcbiAgICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XHJcbiAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gQGVsc2V7XHJcbiAgICAgICAgICAgIEBpZiAoIHR5cGUtb2YoJHZhbDIpID09IG1hcCApIHsgLy8gb25lIGRlcHRoIGNsYXNzIOyViOyXkCDstpTqsIAgY2xhc3Mg7IOd7ISxXHJcbiAgICAgICAgICAgICAgLiN7JGtleTJ9IHtcclxuICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBAZWxzZSB7IC8vIG9uZSBkZXB0aCBjbGFzcyDrsoTtirxcclxuICAgICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidG4tZGlzYWJsZWQoKSB7XHJcbiAgJi5kaXNhYmxlZCB7XHJcbiAgICBAY29udGVudDtcclxuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDrsoTtirwg7Iqk7YOA7J28IOyEpOygle2VtOyjvOq4sFxyXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRidG4tZ3JvdXAgOiAkZ19idG4tZ3JvdXApe1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJ0bi1ncm91cCB7XHJcbiAgICAuYnRuLSN7JGtleX0sXHJcbiAgICAuYnRuLSN7JGtleX06dmlzaXRlZCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbCwgdGhlbWUtY29sb3IpO1xyXG4gICAgICBjb2xvcjogbWFwLWdldCgkdmFsLCBmb250LWNvbG9yKTtcclxuICAgICAgYm9yZGVyOiBtYXAtZ2V0KCR2YWwsIGJvcmRlcik7XHJcbiAgICAgIGJvcmRlci1yYWRpdXMgOiBtYXAtZ2V0KCR2YWwsIGJvcmRlci1yYWRpdXMpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgaG92ZXItb24ge1xyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBob3Zlci10aGVtZS1jb2xvcikge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJHZhbCwgaG92ZXItdGhlbWUtY29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOmRhcmtlbiggbWFwLWdldCgkdmFsLCB0aGVtZS1jb2xvciksIDE1JSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBob3Zlci1jb2xvcikge1xyXG4gICAgICAgICAgY29sb3I6bWFwLWdldCgkdmFsLCBob3Zlci1jb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIGNvbG9yOm1hcC1nZXQoJHZhbCwgZm9udC1jb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJvcmRlcjogbWFwLWdldCgkdmFsLCBob3Zlci1ib3JkZXIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBidG4tZGlzYWJsZWQge1xyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBkaXNhYmxlZC1ncm91cCkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldChtYXAtZ2V0KCR2YWwsIGRpc2FibGVkLWdyb3VwKSxkaW0tdGhlbWUtY29sb3IpO1xyXG4gICAgICAgICAgY29sb3I6IG1hcC1nZXQobWFwLWdldCgkdmFsLCBkaXNhYmxlZC1ncm91cCksIGRpbS1jb2xvcik7XHJcbiAgICAgICAgICBvcGFjaXR5OiBtYXAtZ2V0KG1hcC1nZXQoJHZhbCwgZGlzYWJsZWQtZ3JvdXApLCBkaW0tb3BhY2l0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIG9wYWNpdHk6LjY1O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gbWFrZS1jYXJkLXNldCgkY2FyZC1pbmZvKSB7XHJcbiAgJWNhcmQtd3JhcHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICBAZWFjaCAka2V5LCAkdmFsIGluICRjYXJkLWluZm8ge1xyXG4gICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4gICAgICBAaWYgJGtleTIgPT0gXCJ3cmFwXCIge1xyXG4gICAgICAgIC5jYXJkLSN7JGtleTJ9LSN7JGtleX0ge1xyXG4gICAgICAgICAgQGV4dGVuZCAlY2FyZC13cmFwO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkdmFsMiwgbWFyZ2luLWJvdHRvbSk7XHJcbiAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCR2YWwyLCBwYWRkaW5nKTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICBtYXAtZ2V0KCR2YWwyLCBib3JkZXItc3R5bGUpIHtcclxuICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogbWFwLWdldCgkdmFsMiwgYm9yZGVyLXJhZGl1cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRrZXkyID09IFwiaGVhZGVyXCIge1xyXG4gICAgICAgIC5jYXJkLXdyYXAtI3ska2V5fXtcclxuICAgICAgICAgIC5jYXJkLSN7JGtleTJ9IHtcclxuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkdmFsMiwgcGFkZGluZyk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xyXG4gICAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gIG1hcC1nZXQoJHZhbDIsIGJvcmRlci1zdHlsZSkge1xyXG4gICAgICAgICAgICAgICN7JGtleTN9OiAjeyR2YWwzfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHZhbDIsIGZvbnQtc2l6ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAuY2FyZC13cmFwLSN7JGtleX17XHJcbiAgICAgICAgICAuY2FyZC0jeyRrZXkyfSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbDIsIHBhZGRpbmcpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCR2YWwyLCBiYWNrZ3JvdW5kLWNvbG9yKTtcclxuICAgICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICBtYXAtZ2V0KCR2YWwyLCBib3JkZXItc3R5bGUpIHtcclxuICAgICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLy8g64ukIOuCmOuIhOqzoCDtlZjrgpjroZwg7ZWp7LmY64qU6rKMIOyii+yngCDslYrsnYTquYw/Pz8/Pz8/XHJcbi8vIOyDgeyGjeydmCDqs4TrhZDsnYQg7KCB7Jqp7ZW07JW8IO2VmOuKlOqwgD8/XHJcbi8vIOyDgeyGjeydhCDsoIHsmqntlZjrqbQg7L2U65Oc6rCAIOyhsOq4iCDrs7XsnqHtlbTsp4jrk69cclxuLy8g7JWE7JiIIHdyYXAsIGhlYWRlciwgYm9keSwgZm9vdGVyIOuCmOuIhOuKlOuNmOyngCwg7KeA6riI7LKY65+8IOyymOumrO2VmOuKlOqyjCDrgpjsnYTrk69cclxuIiwiLy8gUGFnaW5hdGlvblxyXG5AbWl4aW4gcGFnaW5hdGlvbi1saW5rcygkcGFnZS1pdGVtKXtcclxuICB3aWR0aDptYXAtZ2V0KCRwYWdlLWl0ZW0sIHdpZHRoKTtcclxuICBoZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBoZWlnaHQpO1xyXG4gIGxpbmUtaGVpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgaGVpZ2h0KTsgLy8gaGVpZ2h06rCS6rO8IOuPmeydvFxyXG5cclxuICAvL3BhZGRpbmc6bWFwLWdldCgkcGFnZS1pdGVtLCBwYWRkaW5nKTsgLT4g7IKt7KCc7JiI7KCVIOuztOulmC4uXHJcbiAgbWFyZ2luOm1hcC1nZXQoJHBhZ2UtaXRlbSwgbWFyZ2luKTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkcGFnZS1pdGVtLCB0aGVtZS1jb2xvcik7XHJcbiAgYm9yZGVyOiBtYXAtZ2V0KCRwYWdlLWl0ZW0sIGJvcmRlcik7XHJcbiAgYm9yZGVyLXJpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgYm9yZGVyLXJpZ2h0KTtcclxuXHJcbiAgYm9yZGVyLXJhZGl1czptYXAtZ2V0KCRwYWdlLWl0ZW0sIGJvcmRlci1yYWRpdXMpO1xyXG4gIGZvbnQtc2l6ZTptYXAtZ2V0KCRwYWdlLWl0ZW0sIGZvbnQtc2l6ZSk7XHJcbiAgZm9udC13ZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBmb250LXdlaWdodCk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6bWFwLWdldCgkcGFnZS1pdGVtLCBsZXR0ZXItc3BhY2luZyk7XHJcbiAgY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLCBmb250LWNvbG9yKTtcclxuXHJcbiAgQGluY2x1ZGUgaG92ZXIge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRwYWdlLWl0ZW0sIGhvdmVyLXRoZW1lLWNvbG9yKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLGhvdmVyLXRoZW1lLWNvbG9yKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjpkYXJrZW4oIG1hcC1nZXQoJHBhZ2UtaXRlbSwgdGhlbWUtY29sb3IpLCAxNSUpO1xyXG4gICAgfVxyXG4gICAgY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLCBob3Zlci1jb2xvcik7XHJcbiAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHBhZ2UtaXRlbSwgaG92ZXItYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG59XHJcbi8vIOyVoe2LsOu4jCDrkKDsi5xcclxuQG1peGluIHBhZ2luYXRpb24tYWN0aXZlKCRwYWdlLWFjdGl2ZS1pdGVtKXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJHBhZ2UtYWN0aXZlLWl0ZW0sIGFjdGl2ZS10aGVtZSk7XHJcbiAgY29sb3I6bWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSxhY3RpdmUtY29sb3IpO1xyXG4gIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAobWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSxhY3RpdmUtc3R5bGUpKXtcclxuICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcclxuICB9XHJcbn1cclxuLy8g65SkIOuQoOyLnFxyXG5AbWl4aW4gcGFnaW5hdGlvbi1kaXNhYmxlZCgkcGFnZS1kaXNhYmxlZC1pdGVtKXtcclxuICBvcGFjaXR5Om1hcC1nZXQoJHBhZ2UtZGlzYWJsZWQtaXRlbSwgZGltLW9wYWNpdHkpO1xyXG4gIHBvaW50ZXItZXZlbnRzOm5vbmU7XHJcbiAgQGVhY2ggJGtleTIsICR2YWwyIGluIChtYXAtZ2V0KCRwYWdlLWRpc2FibGVkLWl0ZW0sZGlzYWJsZWQtc3R5bGUpKXtcclxuICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcclxuICB9XHJcbn1cclxuXHJcbi8vIOyymOydjCDsnbTsoIQg64uk7J2MIOuBnSBhcnJvdyDqtIDroKgg7Luk7Iqk7YWAXHJcbkBtaXhpbiBwYWdpbmF0aW9uLWFycm93cygkcGFnZS1hcnJvdy1zdHlsZSkge1xyXG4gIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkcGFnZS1hcnJvdy1zdHlsZSB7XHJcbiAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgfVxyXG59IiwiQG1peGluIG1ha2UtZm9ybS13cmFwKCAkZm9ybS13cmFwLWluZm8gOiAkZ19mb3JtLXdyYXAgKSB7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGZvcm0td3JhcC1pbmZvKXtcclxuICAgIEBpZiAoJGtleSA9PSBkZWZhdWx0X3ZhbHVlKSB7XHJcbiAgICAgICVkZWZhdWx0X3ZhbHVlIHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLmZvcm0td3JhcC0jeyRrZXl9IHtcclxuICAgICAgICBAaWYgKG1hcC1oYXMta2V5KCRmb3JtLXdyYXAtaW5mbywgZGVmYXVsdF92YWx1ZSkpIHtcclxuICAgICAgICAgIEBleHRlbmQgJWRlZmF1bHRfdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAobWFwLWhhcy1rZXkoJHZhbCwgbWVkaWEpKSB7XHJcbiAgICAgICAgICAkbWVkaWE6IG1hcF9nZXQoJHZhbCwgbWVkaWEpO1xyXG4gICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICRtZWRpYSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mikge1xyXG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwge1xyXG4gICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCRrZXkzKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gLyrthY3siqTtirgg67CV7IqkKi9cclxuQG1peGluIG1ha2UtZmllbGQtZGVmYXVsdCgpIHtcclxuICAlZmllbGQtYmFzZSB7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkZ19maWVsZC1zdHlsZSkge1xyXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwidGVsXCJdLFxyXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4gICAgLmZpZWxkLSN7JGtleX0gc2VsZWN0LFxyXG4gICAgLmZpZWxkLSN7JGtleX0gdGV4dGFyZWF7XHJcbiAgICAgIEBleHRlbmQgJWZpZWxkLWJhc2U7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IG1hcC1nZXQoJHZhbCwgbWF4LXdpZHRoKTtcclxuICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIGlucHV0LWhlaWdodCk7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHZhbCwgbWFyZ2luLWJvdHRvbSk7XHJcbiAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbCwgaW5wdXQtcGFkZGluZyk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbCwgaW5wdXQtYmcpO1xyXG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gbWFwLWdldCgkdmFsLCBib3JkZXItc3R5bGUpIHtcclxuICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgIH1cclxuICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCR2YWwsIGZvbnQtc2l6ZSk7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtYXAtZ2V0KCR2YWwsIGxldHRlci1zcGFjaW5nKTtcclxuICAgICAgY29sb3I6IG1hcC1nZXQoJHZhbCwgZm9udC1jb2xvcik7XHJcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBmb2N1cy1zdHlsZSkge1xyXG4gICAgICAgICRmb2N1cy1zdHlsZTogbWFwLWdldCgkdmFsLCBmb2N1cy1zdHlsZSk7XHJcbiAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICRmb2N1cy1zdHlsZSB7XHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgI3ska2V5M30gOiAjeyR2YWwzfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICAgIC5maWVsZC0jeyRrZXl9IHRleHRhcmVhe1xyXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJHZhbCwgcGxhY2Vob2xkZXItY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogbWFwLWdldCgkdmFsLCBwbGFjZWhvbGRlci1jb2xvcik7XHJcbiAgICAgIH1cclxuICAgICAgJjo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogbWFwLWdldCgkdmFsLCBwbGFjZWhvbGRlci1jb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmllbGQtI3ska2V5fS5uby11bmRlcmxpbmUge1xyXG4gICAgICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1ha2UtdGV4dC1hcmVhKCRrZXkpO1xyXG4gICAgQGluY2x1ZGUgbWFrZS1zZWxlY3Rib3goJGtleSk7XHJcblxyXG4gIH1cclxufVxyXG5AbWl4aW4gbWFrZS10ZXh0LWFyZWEoJHN0eWxlKSB7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGdfdGV4dC1hcmVhLXN0eWxlKSB7XHJcbiAgICBAaWYgKCRzdHlsZSA9PSAka2V5KSB7XHJcbiAgICAgIC5maWVsZC0jeyRzdHlsZX0gdGV4dGFyZWF7XHJcbiAgICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIHRleHQtYXJlYS1oZWlnaHQpO1xyXG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbCwgdGV4dC1hcmVhLXBhZGRpbmcpO1xyXG4gICAgICAgIHJlc2l6ZTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gLyrshYDroIntirgg67CV7IqkKi9cclxuQG1peGluIG1ha2Utc2VsZWN0Ym94KCRzdHlsZSkge1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRnX3NlbGVjdC1zdHlsZSkge1xyXG4gICAgQGlmICgkc3R5bGUgPT0gJGtleSkge1xyXG4gICAgICAuZmllbGQtI3skc3R5bGV9IHNlbGVjdHtcclxuICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBpbml0aWFsO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyAvKuydtOuvuOyngCDssrTtgawgJiDrnbzrlJTsmKQqL1xyXG5AbWl4aW4gbWFrZS1jaGVja2JveC1pbWcoICRjaGVjay1ib3gtaW5mbzogJGdfY2hlY2stYm94LWltZyApIHtcclxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkY2hlY2stYm94LWluZm8pIHtcclxuICAgIC5ja2J4LSN7JGtleX17XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIG1hcmdpbi1yaWdodCk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgLmN1c3RvbS1jaGVja2VkIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogbWFwLWdldCgkdmFsLCB3aWR0aCk7XHJcbiAgICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIGhlaWdodCk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIGJveC1tYXJnaW4tcmlnaHQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG1hcC1nZXQoJHZhbCwgYm94LWltZyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIC50ZXh0IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCR2YWwsIGZvbnQtc2l6ZSk7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG1hcC1nZXQoJHZhbCwgbGV0dGVyLXNwYWNpbmcpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICZbdHlwZT1yYWRpb106Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCxcclxuICAgICAgICAmW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbWFwLWdldCgkdmFsLCBib3gtaW1nLW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgIH1cclxuICAgICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgY29sb3I6ICNlZWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLy8gLyrtg5zqt7gg7LK07YGsJiDrnbzrlJTsmKQqL1xyXG5AbWl4aW4gbWFrZS1jaGVja2JveC10YWcoICRjaGVjay1ib3gtaW5mbzogJGdfY2hlY2stYm94LXRhZyApIHtcclxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkY2hlY2stYm94LWluZm8pIHtcclxuICAgIC8v67OA7IiYXHJcbiAgICAkd2lkdGg6IG1hcC1nZXQoJHZhbCwgd2lkdGgpO1xyXG4gICAgJGhlaWdodDogbWFwLWdldCgkdmFsLCBoZWlnaHQpO1xyXG4gICAgJGJveC1tYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAkY2hlY2std2lkdGg6ICR3aWR0aCAvIDI7XHJcbiAgICAkY2hlY2staGVpZ2h0OiAkaGVpZ2h0IC8gMjtcclxuXHJcbiAgICAvL+2VtOuLueqwkuydtCDsnojripTsp4Ag7LK07YGsXHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJHZhbCwgYm94LW1hcmdpbi1yaWdodCkge1xyXG4gICAgICAkYm94LW1hcmdpbi1yaWdodDogbWFwLWdldCgkdmFsLCBib3gtbWFyZ2luLXJpZ2h0KVxyXG4gICAgfVxyXG4gICAgQGlmIG1hcC1oYXMta2V5KCR2YWwsIGNoZWNrZWQtd2lkdGgpIHtcclxuICAgICAgJGNoZWNrLXdpZHRoOiBtYXAtZ2V0KCR2YWwsIGNoZWNrZWQtd2lkdGgpXHJcbiAgICB9XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJHZhbCwgY2hlY2tlZC1oZWlnaHQpIHtcclxuICAgICAgJGNoZWNrLWhlaWdodDogbWFwLWdldCgkdmFsLCBjaGVja2VkLWhlaWdodClcclxuICAgIH1cclxuICAgIC5ja2J4LSN7JGtleX17XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIG1hcmdpbi1yaWdodCk7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgbWluLXdpZHRoOiAkd2lkdGg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbCwgYm94LWJnKTtcclxuICAgICAgICBib3JkZXI6IG1hcC1nZXQoJHZhbCwgYm94LW91dGxpbmUpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHZhbCwgYm94LXJhZGl1cyk7XHJcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC01MCUpLCB3ZWJraXQpO1xyXG4gICAgICB9XHJcbiAgICAgID4gKiB7XHJcbiAgICAgICAgLy8gdmVydGljYWwtYWxpZ246IHRleHQtdG9wOyDqsozsi5ztjJAg6riA7JOw6riwIOu5hOuwgOq4gOyXkOyEnCDquajsoLjshJwg7Jqw7ISgIOyjvOyEneyymOumrFxyXG4gICAgICB9XHJcbiAgICAgIC50ZXh0IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCR2YWwsIGZvbnQtc2l6ZSkgO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJveC1tYXJnaW4tcmlnaHQgKyAkd2lkdGg7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkLFxyXG4gICAgICAgICZbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgIGxlZnQ6ICgkd2lkdGggLSAkY2hlY2std2lkdGgpIC8gMiA7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgd2lkdGg6ICRjaGVjay13aWR0aDtcclxuICAgICAgICAgIGhlaWdodDogJGNoZWNrLWhlaWdodDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbCwgY2hlY2tlZC1jb2xvcik7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiBtYXAtZ2V0KCR2YWwsIGJveC1yYWRpdXMpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC01MCUpLCB3ZWJraXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgICAmLmRpc2FibGVke1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIGNvbG9yOiAjZWVlO1xyXG4gICAgICAgIGxhYmVsOmJlZm9yZXtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogI2VlZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJi5jaXJjbGU6YmVmb3JlIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIH1cclxuICAgICAgJi5jaXJjbGUgaW5wdXQge1xyXG4gICAgICAgICZbdHlwZT1yYWRpb106Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCxcclxuICAgICAgICAmW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQge1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIi8vcnAtdGFibGVcclxuQG1peGluIG1ha2UtcnAtdGFibGUoJHJwLXRhYmxlLWluZm8pIHtcclxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkcnAtdGFibGUtaW5mbyl7XHJcbiAgICBAaWYgKCRrZXkgPT0gZGVmYXVsdF92YWx1ZSkge1xyXG4gICAgICAlZGVmYXVsdF92YWx1ZSB7XHJcbiAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4gICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIC5ycC10YWJsZS0jeyRrZXl9IHtcclxuICAgICAgICBAaWYgKG1hcC1oYXMta2V5KCR2YWwsIG1lZGlhKSkge1xyXG4gICAgICAgICAgJG1lZGlhOiBtYXBfZ2V0KCR2YWwsIG1lZGlhKTtcclxuICAgICAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkbWVkaWEge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTIpIHtcclxuICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwyKTtcclxuICAgICAgICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCRjb2Rlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsIHtcclxuICAgICAgICAgICAgJGNvZGVzOiBtYWtlTWFwVG9Db2Rlcygka2V5Myk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iLCIvLy8qIHRhYiAqL1xyXG5AbWl4aW4gdGFiLWl0ZW1zKCR0YWItZ3JvdXApIHtcclxuICAgIC50YWItd3JhcCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbiAgICAgICAgJiAudGFiLWxpc3Qge1xyXG4gICAgICAgICAgICBmbG9hdDptYXAtZ2V0KCR0YWItZ3JvdXAsIGZsb2F0KTtcclxuICAgICAgICAgICAgZGlzcGxheTptYXAtZ2V0KCR0YWItZ3JvdXAsIGRpc3BsYXkpO1xyXG4gICAgICAgICAgICB3aWR0aDogbWFwLWdldCgkdGFiLWdyb3VwLCB3aWR0aCk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHRhYi1ncm91cCwgcGFkZGluZyk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6bWFwLWdldCgkdGFiLWdyb3VwLCB0aGVtZS1jb2xvcik7XHJcbiAgICAgICAgICAgIGJvcmRlcjptYXAtZ2V0KCR0YWItZ3JvdXAsIGJvcmRlcik7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTptYXAtZ2V0KCR0YWItZ3JvdXAsIGZvbnQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0Om1hcC1nZXQoJHRhYi1ncm91cCwgZm9udC13ZWlnaHQpO1xyXG4gICAgICAgICAgICBjb2xvcjptYXAtZ2V0KCR0YWItZ3JvdXAsIGZvbnQtY29sb3IpO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOm1hcC1nZXQoJHRhYi1ncm91cCwgdGV4dC1hbGlnbik7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOm1hcC1nZXQoJHRhYi1ncm91cCwgbGV0dGVyLXNwYWNpbmcpO1xyXG5cclxuICAgICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCR0YWItZ3JvdXAsIG1lZGlhKSB7XHJcbiAgICAgICAgICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gbWFwX2dldCgkdGFiLWdyb3VwLCBtZWRpYSkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbDJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVhY2ggJGtleSwgJHZhbHVlIGluIChtYXAtZ2V0KCR0YWItZ3JvdXAsIHN1Yi1jbGFzc2luZykpe1xyXG4gICAgICAgICAgICAmLiN7JGtleX0gLnRhYi1saXN0e1xyXG4gICAgICAgICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWx1ZXtcclxuICAgICAgICAgICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYgLnRhYi1saXN0Lm9uIHtcclxuICAgICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluIChtYXAtZ2V0KCR0YWItZ3JvdXAsYWN0aXZlKSl7XHJcbiAgICAgICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRnX3RhYi1ncm91cCxmbG9hdCl7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSIsIi8vIFNpbmdsZSBzaWRlIGJvcmRlci1yYWRpdXNcclxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcclxuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1cykge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXMpIHtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuIiwiLy8gbWFrZS1hcmVhIOuvueyKpOyduFxyXG4vLyDquLDrs7jqsJLsnbQgbnVsbOuhnCDshYvtjIXrkJjslrQg7J6I64qUIOyalOyGjOuKlCDsnbjsnpDqsIAg7KCE64us65CY7KeAIOyViuydhCDsi5wg7Lu07YyM7J28IOuQmOyngCDslYrsirXri4jri6QuXHJcbi8vIFvrp6TqsJzrs4DsiJhdXHJcbi8vICRtYXgtd2lkdGgg6riw67O46rCSOiBudWxsXHJcbi8vICRndXR0ZXItd2lkdGgg6riw67O46rCSOiBudWxsXHJcbi8vICR3aWR0aCDquLDrs7jqsJI6IDEwMCVcclxuLy8gZXgpIEBpbmNsdWRlIG1ha2UtYXJlYSggJG1heC13aWR0aDogJG1heC13aWR0aCwgJGd1dHRlci13aWR0aDogJGFyZWEtZ3V0dGVyLXdpZHRoICk7XHJcbi8vIGV4KSBAaW5jbHVkZSBtYWtlLWFyZWEoICR3aWR0aDogMTYwMHB4ICk7XHJcbi8vQG1peGluIG1ha2UtYXJlYSggJG1heC13aWR0aDogbnVsbCwgJGd1dHRlci13aWR0aDogbnVsbCwgJHdpZHRoOiAxMDAlICkge1xyXG4vLyAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyAgd2lkdGg6ICR3aWR0aDtcclxuLy8gIG1heC13aWR0aDogJG1heC13aWR0aDtcclxuLy8gIG1hcmdpbi1yaWdodDogYXV0bztcclxuLy8gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4vLyAgcGFkZGluZy1yaWdodDogJGd1dHRlci13aWR0aDtcclxuLy8gIHBhZGRpbmctbGVmdDogJGd1dHRlci13aWR0aDtcclxuLy99XHJcblxyXG5AbWl4aW4gbWFrZS1hcmVhKCAkYXJlYS1pbmZvOiAkZ19kZWZhdWx0LWFyZWEgKSB7XHJcbiAgJHdpZHRoOiAxMDAlO1xyXG4gIEBpZiAgbWFwLWhhcy1rZXkoJGFyZWEtaW5mbywgd2lkdGgpIHtcclxuICAgICR3aWR0aCA6IG1hcC1nZXQoJGFyZWEtaW5mbywgd2lkdGgpXHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkd2lkdGggOiAxMDAlXHJcbiAgfVxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIG1heC13aWR0aDogbWFwLWdldCgkYXJlYS1pbmZvLCBtYXgtd2lkdGgpO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCRhcmVhLWluZm8sIGd1dHRlci13aWR0aCk7XHJcbiAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCRhcmVhLWluZm8sIGd1dHRlci13aWR0aCk7XHJcbn1cclxuXHJcbiIsIi8vIG1ha2Utcm93IOuvueyKpOyduFxyXG4vLyBb66ek6rCc67OA7IiYXVxyXG4vLyAkZ3JpZC1ndXR0ZXIg6riw67O46rCSOiAkZ3JpZC1ndXR0ZXItd2lkdGhcclxuLy8gJGdyaWQtZ3V0dGVyIOyghOuLrOuQnCDqsJLsl5Ag65Sw65287IScIG1hcmdpbi1yaWdodCwgbWFyZ2luLWxlZnQg6rCS7J2EIOyFi+2Mhe2VtCDspI3ri4jri6QuXHJcbi8vIGV4KSBAaW5jbHVkZSBtYWtlLXJvdyggJGdyaWQtZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpO1xyXG5AbWl4aW4gbWFrZS1yb3coICRncmlkLWd1dHRlciA6ICRncmlkLWd1dHRlci13aWR0aCkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1yaWdodDogLSRncmlkLWd1dHRlcjtcclxuICBtYXJnaW4tbGVmdDogLSRncmlkLWd1dHRlcjtcclxuICBAaW5jbHVkZSBjbGVhcigpO1xyXG59XHJcblxyXG4vLyBtYWtlLWNvbC1zZXQg66+57Iqk7J24XHJcbi8vIFvrp6TqsJzrs4DsiJhdXHJcbi8vICRncmlkLWNvbC1jbnQg6riw67O46rCSOiAkZ3JpZC1jb2x1bW5zXHJcbi8vICRncmlkLWNvbC1jbnQg7KCE64us65CcIOqwkuydmCDqsJzsiJjrp4ztgoHsnZggY29sLHB1bGwscHVzaCxvZmZzZXQg65Ox7J2EIOunjOuTpOyWtOykjeuLiOuLpC5cclxuLy8gZXgpIEBpbmNsdWRlIG1ha2UtY29sLXNldCgpO1xyXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1jb2wtc2V0KCRncmlkLWNvbC1jbnQ6IDUpO1xyXG5AbWl4aW4gbWFrZS1jb2wtc2V0KCAkZ3JpZC1jb2wtaW5mbzogJGdfZ3JpZC1jb2wtaW5mbyApIHtcclxuICAkZ3JpZC1jb2wtbmFtZTogbnVsbDtcclxuICBAaWYgIG1hcC1oYXMta2V5KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1uYW1lKSB7XHJcbiAgICAkZ3JpZC1jb2wtbmFtZSA6IG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLW5hbWUpXHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkZ3JpZC1jb2wtbmFtZSA6IG51bGxcclxuICB9XHJcbiAgICBAaW5jbHVkZSBtYWtlLWNvbCggbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtY250KSwgJGdyaWQtY29sLW5hbWUgKTtcclxuICBAaW5jbHVkZSBtYWtlLXB1bGwoIG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLWNudCksICRncmlkLWNvbC1uYW1lICk7XHJcbiAgQGluY2x1ZGUgbWFrZS1wdXNoKCBtYXAtZ2V0KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1jbnQpLCAkZ3JpZC1jb2wtbmFtZSApO1xyXG4gIEBpbmNsdWRlIG1ha2Utb2Zmc2V0KCBtYXAtZ2V0KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1jbnQpLCAkZ3JpZC1jb2wtbmFtZSApO1xyXG59XHJcblxyXG5cclxuQG1peGluIG1ha2UtY29sKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XHJcbiAgICAgIC4jeyRjb2wtbmFtZX1jb2wge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgICAuI3skY29sLW5hbWV9Y29sLWF1dG8ge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICB9O1xyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skaX0ge1xyXG4gICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogI3skcG9pbnR9KSB7XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skYnJlYWtwb2ludH0tYXV0byB7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9O1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgICAuI3skY29sLW5hbWV9Y29sLSN7JGJyZWFrcG9pbnR9LSN7JGl9IHtcclxuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtYWtlLXB1bGwoICRncmlkLWNvbC1jbnQ6ICRncmlkLWNvbC1jbnQsICRjb2wtbmFtZTogJGNvbC1uYW1lICkge1xyXG4gIEBlYWNoICRicmVha3BvaW50LCAkcG9pbnQgaW4gJGdfbWVkaWEtYnJlYWtwb2ludHMge1xyXG4gICAgQGlmICRicmVha3BvaW50ID09IHhzIHtcclxuICAgICAgLiN7JGNvbC1uYW1lfXB1bGwtMCB7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAuI3skY29sLW5hbWV9cHVsbC0jeyRpfSB7XHJcbiAgICAgICAgICByaWdodDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcclxuICAgICAgICAuI3skY29sLW5hbWV9cHVsbC0jeyRicmVha3BvaW50fS0wIHtcclxuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xyXG4gICAgICAgICAgLiN7JGNvbC1uYW1lfXB1bGwtI3skYnJlYWtwb2ludH0tI3skaX0ge1xyXG4gICAgICAgICAgICByaWdodDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2UtcHVzaCggJGdyaWQtY29sLWNudDogJGdyaWQtY29sLWNudCwgJGNvbC1uYW1lOiAkY29sLW5hbWUgKSB7XHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICAuI3skY29sLW5hbWV9cHVzaC0wIHtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICB9XHJcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfXB1c2gtI3skaX0ge1xyXG4gICAgICAgICAgbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcclxuICAgICAgICAuI3skY29sLW5hbWV9cHVzaC0jeyRicmVha3BvaW50fS0wIHtcclxuICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgICAuI3skY29sLW5hbWV9cHVzaC0jeyRicmVha3BvaW50fS0jeyRpfSB7XHJcbiAgICAgICAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtYWtlLW9mZnNldCggJGdyaWQtY29sLWNudDogJGdyaWQtY29sdW1ucywgJGNvbC1uYW1lOiAkY29sLW5hbWUgKSB7XHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XHJcbiAgICAkcG9pbnQ6IG1lZGlhLXF1ZXJ5LW1pbi12YWwoJGJyZWFrcG9pbnQpO1xyXG4gICAgQGlmICRicmVha3BvaW50ID09IHhzIHtcclxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IC0gMSB7XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfW9mZnNldC0jeyRpfSB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQgLSAxIHtcclxuICAgICAgICAgIC4jeyRjb2wtbmFtZX1vZmZzZXQtI3skYnJlYWtwb2ludH0tI3skaX0ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQSxvQkFBb0I7QUFDcEIsQUFBQSxjQUFjLENBQUE7RUFDWixRQUFRLEVBQUUsS0FBSztFQUNmLEdBQUcsRUFBQyxDQUFDO0VBQ0wsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE9BQU8sRUFBRSxHQUFHO0VBQ1osZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixhQUFhLEVBQUUsaUJBQWlCO0NBZ0JqQzs7QUF4QkQsQUFTRSxjQVRZLENBU1osU0FBUyxDQUFDO0VBQ1IsT0FBTyxFQUFFLFlBQVk7RUFDckIsS0FBSyxFQUFFLEtBQUs7RUFDWixNQUFNLEVBQUUsSUFBSTtFQUNaLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFdBQVcsRUFBQyxJQUFJO0VBQ2hCLGdCQUFnQixFQUFFLDZDQUE2QztFQUMvRCxpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLGVBQWUsRUFBRSxLQUFLO0VBQ3RCLG1CQUFtQixFQUFFLE1BQU07RUFDM0IsY0FBYyxFQUFFLE1BQU07Q0FJdkI7O0FBSEMsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQXBCdkMsQUFTRSxjQVRZLENBU1osU0FBUyxDQUFDO0lBWU4sZ0JBQWdCLEVBQUUseUNBQXlD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 */
