/*  */
.itinerary-title {
  font-weight: bold;
  font-size: 32px;
}
@media (max-width: 1439.8px) {
  .itinerary-title {
    font-size: calc(23px + (32 - 23) * (100vw - 575.8px) / (1439.8 - 575.8));
  }
}
@media (max-width: 575.8px) {
  .itinerary-title {
    font-size: 23px;
  }
}

.itinerary {
  background-color: #fff;
  padding: 1.5rem 2rem 2rem;
}
@media screen and (max-width: 575.8px) {
  .itinerary {
    padding-left: 24px;
    padding-right: 24px;
    padding-top: 0;
    margin-top: 0;
    margin-bottom: 0;
    padding-bottom: 0;
  }
}

.itinerary-title {
  text-align: left;
}
@media screen and (max-width: 575.8px) {
  .itinerary-title {
    display: none;
  }
}

.itinerary .portImage {
  display: block;
  width: 100%;
}

.itinerary__carrouselWrap .cursorInitial {
  cursor: initial;
}
@media screen and (max-width: 575.8px) {
  .itinerary__carrouselWrap {
    position: relative;
  }
  .itinerary__carrouselWrap .carousel-control-next, .itinerary__carrouselWrap .carousel-control-prev {
    top: calc(50% - 50px);
    bottom: auto;
  }
}

@media screen and (max-width: 575.8px) {
  .shipItinerary__photo img {
    max-width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__photo {
    height: 200px;
  }
  .itinerary__photo img {
    max-width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__title, div .itinerary__title {
    text-transform: uppercase;
    font-weight: 900;
  }
}
@media screen and (max-width: 575.8px) {
  .itinerary__title, div .itinerary__title {
    font-size: 21px;
  }
}
@media screen and (max-width: 359.8px) {
  .itinerary__title, div .itinerary__title {
    font-size: 21px;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__contentTitle {
    padding-bottom: 16px;
    border-bottom: 1px solid #d3d3d3;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__contentOut {
    padding: 18px 0;
    border-bottom: 1px solid #d3d3d3;
  }
}

.itinerary__portContentDescription {
  margin-top: 0.5rem;
  max-height: 3.5rem;
}
.itinerary__portContentDescription.open {
  max-height: none;
}
@media screen and (max-width: 575.8px) {
  .itinerary__portContentDescription {
    margin-top: 24px;
    max-height: none;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__carousel {
    margin-left: calc((100% - 100vw) / 2);
    margin-right: calc((100% - 100vw) / 2);
    width: 100vw;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__cardContent {
    padding: 10px 18px;
  }
}

.itinerary__day {
  font-weight: bold;
}
@media screen and (max-width: 575.8px) {
  .itinerary__day {
    font-size: 16.33px;
  }
}
@media screen and (max-width: 359.8px) {
  .itinerary__day {
    font-size: 16.33px;
  }
}

@media screen and (max-width: 575.8px) {
  .itinerary__item {
    display: block;
    position: initial;
    float: none;
    width: 100%;
    margin-right: 0;
    left: auto;
    backface-visibility: initial;
  }
}

.carousel-control-prev i,
.carousel-control-next i {
  background-color: #fff;
  border-radius: 25px;
  border: 1px solid #32a3ed;
  font-size: 25px;
  color: #3f3f3f;
  /* padding: 0.5rem 0.5rem 0.5rem 0.5rem; */
  height: 39.5px;
  width: 39.5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.carousel-control-prev i:hover,
.carousel-control-next i:hover {
  color: #3f3f3f;
}

.carousel-control-prev::after,
.carousel-control-next::after {
  content: none !important;
}

.itinerary .see-more a,
.view-map a {
  text-decoration: none;
  font-weight: bold;
}

.itinerary .see-more,
.itinerary-type {
  text-align: left;
}

.itinerary .view-map,
.itinerary-departure {
  text-align: right;
}

.carousel-control-prev,
.carousel-control-next {
  margin-top: 82px !important;
}

.carousel-control-prev {
  margin-left: 8px !important;
}

.carousel-control-next {
  margin-right: 22px !important;
}

.info-view-more {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  max-height: 3.25rem;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media screen and (max-width: 575.8px) {
  .info-view-more {
    overflow: visible;
    max-height: none;
  }
}

.info-view-more.expanded {
  max-height: none;
  -webkit-line-clamp: unset;
}

@media screen and (max-width: 575.8px) {
  .itinerary__contentSeeMore {
    display: none;
  }
}

.see-more a,
.view-map a {
  text-decoration: none;
  font-weight: bold;
}

.table-itinerary {
  padding-left: 65px;
}
@media screen and (max-width: 991.8px) {
  .table-itinerary {
    padding-left: 0;
  }
}
@media screen and (max-width: 767.8px) {
  .table-itinerary {
    padding-left: 0;
  }
}

@media screen and (max-width: 767.8px) {
  .carousel-control-prev,
  .carousel-control-next {
    margin-top: 41px !important;
  }
}
.techsheet {
  padding: 0 4px;
}
.techsheet__list {
  font-weight: normal;
}
@media screen and (max-width: 575.8px) {
  .techsheet__list {
    font-size: 15.17px;
  }
}
@media screen and (max-width: 359.8px) {
  .techsheet__list {
    font-size: 15.17px;
  }
}

.techsheet__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #d3d3d3;
  padding: 20px 0;
  word-wrap: break-word;
}
.techsheet__label {
  flex: 1;
}
.techsheet__value {
  padding-right: 5px;
  max-width: 50%;
  text-align: end;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxpdGllcy9fY29sb3JzLnNjc3MiLCJ1dGlsaXRpZXMvX3BsYWNlaG9sZGVyLnNjc3MiLCJ1dGlsaXRpZXMvX3Jlc3BvbnNpdmUuc2NzcyIsImNoZWNrb3V0L3NoaXBfaXRpbmVyYXJ5LmNzcyIsImNoZWNrb3V0L3NoaXBfaXRpbmVyYXJ5LnNjc3MiLCJ1dGlsaXRpZXMvX2NtaXhpbnMuc2NzcyIsInV0aWxpdGllcy9fbWl4aW5zLWNsYXNzZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ0EsS0FBQTtBQ3hCQTtFQUNFLGlCQUFBO0VDK1RJLGVBdkJVO0FDblRoQjtBRCtVSTtFRHJVSjtJQ3NVTSx3RUF0QmM7RUN0VGxCO0FBQ0Y7QUQ4VUk7RUR6VUo7SUMwVU0sZUFoQ1U7RUMzU2Q7QUFDRjs7QUNaQTtFQUNFLHNCQUFBO0VBQ0EseUJBQUE7QURlRjtBRXdFRTtFRHpGRjtJQUtJLGtCQUFBO0lBQ0EsbUJBQUE7SUFDQSxjQUFBO0lBQ0EsYUFBQTtJQUNBLGdCQUFBO0lBQ0EsaUJBQUE7RURnQkY7QUFDRjs7QUNkQTtFQUNFLGdCQUFBO0FEaUJGO0FFMERFO0VENUVGO0lBTUksYUFBQTtFRGdCRjtBQUNGOztBQ2RBO0VBQ0UsY0FBQTtFQUNBLFdBQUE7QURpQkY7O0FDYkU7RUFDRSxlQUFBO0FEZ0JKO0FFNENFO0VEOURGO0lBS0ksa0JBQUE7RURpQkY7RUNmRTtJQUVFLHFCQUFBO0lBQ0EsWUFBQTtFRGdCSjtBQUNGOztBRW1DRTtFQzdCQTtJQUNFLGVBQUE7SUFDQSxZQUFBO0lBQ0Esb0JBQUE7T0FBQSxpQkFBQTtFSEZGO0FBQ0Y7O0FFMkJFO0VEeENGO0lBRUksYUFBQTtFRGdCRjtFR1BBO0lBQ0UsZUFBQTtJQUNBLFlBQUE7SUFDQSxvQkFBQTtPQUFBLGlCQUFBO0VIU0Y7QUFDRjs7QUVnQkU7RUQvQkE7SUFPSSx5QkFBQTtJQUNBLGdCQUFBO0VEYUo7QUFDRjtBRWlCTTtFRHZDSjtJQ2dEVSxlQURRO0VGckJsQjtBQUNGO0FFWU07RUR2Q0o7SUNnRFUsZUFEUTtFRmhCbEI7QUFDRjs7QUVERTtFRGxCRjtJQUVJLG9CQUFBO0lBQ0EsZ0NBQUE7RURzQkY7QUFDRjs7QUVSRTtFRFpGO0lBRUksZUFBQTtJQUNBLGdDQUFBO0VEdUJGO0FBQ0Y7O0FDcEJBO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtBRHVCRjtBQ3JCRTtFQUNFLGdCQUFBO0FEdUJKO0FFdkJFO0VETEY7SUFTSSxnQkFBQTtJQUNBLGdCQUFBO0VEdUJGO0FBQ0Y7O0FFN0JFO0VEUUY7SUV2RUUscUNBQUE7SUFDQSxzQ0FBQTtJQUNBLFlBQUE7RUhpR0E7QUFDRjs7QUVyQ0U7RURhRjtJQUVJLGtCQUFBO0VEMkJGO0FBQ0Y7O0FDeEJBO0VBQ0UsaUJBQUE7QUQyQkY7QUV2Q007RURXTjtJQ0ZZLGtCQURRO0VGbUNsQjtBQUNGO0FFNUNNO0VEV047SUNGWSxrQkFEUTtFRndDbEI7QUFDRjs7QUV6REU7RUQ2QkY7SUFFSSxjQUFBO0lBQ0EsaUJBQUE7SUFDQSxXQUFBO0lBQ0EsV0FBQTtJQUNBLGVBQUE7SUFDQSxVQUFBO0lBQ0EsNEJBQUE7RUQrQkY7QUFDRjs7QUM1QkE7O0VBRUUsc0JBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7RUFDQSwwQ0FBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7QUQrQkY7O0FDN0JBOztFQUVFLGNBQUE7QURnQ0Y7O0FDOUJBOztFQUVFLHdCQUFBO0FEaUNGOztBQy9CQTs7RUFFRSxxQkFBQTtFQUNBLGlCQUFBO0FEa0NGOztBQ2hDQTs7RUFFRSxnQkFBQTtBRG1DRjs7QUNqQ0E7O0VBRUUsaUJBQUE7QURvQ0Y7O0FDbENBOztFQUVFLDJCQUFBO0FEcUNGOztBQ2xDQTtFQUNFLDJCQUFBO0FEcUNGOztBQ25DQTtFQUNFLDZCQUFBO0FEc0NGOztBQ25DQTtFQUNFLG9CQUFBO0VBQ0EsNEJBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FEc0NGO0FFdklFO0VEd0ZGO0lBWUksaUJBQUE7SUFDQSxnQkFBQTtFRHVDRjtBQUNGOztBQ3JDQTtFQUNFLGdCQUFBO0VBQ0EseUJBQUE7QUR3Q0Y7O0FFbEpFO0VENkdGO0lBRUksYUFBQTtFRHdDRjtBQUNGOztBQ3RDQTs7RUFFRSxxQkFBQTtFQUNBLGlCQUFBO0FEeUNGOztBQ3ZDQTtFQUNFLGtCQUFBO0FEMENGO0FFdExFO0VEMklGO0lBSUksZUFBQTtFRDJDRjtBQUNGO0FFM0xFO0VEMklGO0lBUUksZUFBQTtFRDRDRjtBQUNGOztBRWhNRTtFRHVKQTs7SUFFRSwyQkFBQTtFRDZDRjtBQUNGO0FDdENBO0VBQ0UsY0FBQTtBRHdDRjtBQ3BDQTtFQUNFLG1CQUFBO0FEc0NGO0FFakxNO0VEMElOO0lDaklZLGtCQURRO0VGNktsQjtBQUNGO0FFdExNO0VEMElOO0lDaklZLGtCQURRO0VGa0xsQjtBQUNGOztBQ3hDQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLDhCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7QUQyQ0Y7QUN0Q0E7RUFDRSxPQUFBO0FEd0NGO0FDcENBO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtBRHNDRiIsImZpbGUiOiJjaGVja291dC9zaGlwX2l0aW5lcmFyeS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZnVuY3Rpb24gY29sb3IoJGNvbG9yKSB7XHJcbi8vICAgQHJldHVybiB2YXIoLS1icy0jeyRjb2xvcn0pO1xyXG4vLyB9XHJcblxyXG4vLyAkdmlvbGV0LWNvbG9yOiAjNWYyNDllICFkZWZhdWx0O1xyXG5cclxuJGNvbG9yLWFkdmFudGFnZXM6ICNlOWY3ZTg7XHJcbiRjb2xvci1zdWNjZXNzOiAjMmJiMDE5O1xyXG4kY29sb3ItZ3JlZW4tbGlnaHQ6ICM1NmM3NDc7XHJcbiRjb2xvci1zdWNjZXNzLWxpZ2h0OiAjZTlmN2U4O1xyXG4kY29sb3Itc2t5LWxpZ2h0OiAjN2FiYmU3O1xyXG4kY29sb3Itc2t5OiAjMzJhM2VkO1xyXG4kdGV4dC1jb2xvcjogIzAwMDAwMDtcclxuJGNvbG9yLXRleHQ6ICMwMDAwMDA7XHJcbiRjb2xvci1ncmF5OiAjZDRkNGQ0O1xyXG4kY29sb3Itc2lsdmVyOiAjZjBmMGYwO1xyXG4kY29sb3ItbGlnaHQ6ICNmMmYyZjI7XHJcbiRjb2xvci13aGl0ZTogI2ZmZmZmZjtcclxuXHJcbiR3aGl0ZTogd2hpdGU7XHJcbiRibGFjazogYmxhY2s7XHJcbiRzdWNjZXNzOiAkY29sb3Itc3VjY2VzcztcclxuXHJcbi8vLyAgQ29sb3JzIEZvbnRzXHJcbiR0ZXh0LWNvbG9yOiBibGFjaztcclxuJHRleHQtbGlnaHQ6IHdoaXRlO1xyXG5cclxuLy8vIENvbG9ycyBCYWNrZ3JvdW5kc1xyXG4kYmctbGlnaHQ6IHdoaXRlO1xyXG4kYmctd2hpdGU6IHdoaXRlO1xyXG4kYmctZ3JheSA6IGdyYXk7XHJcbiRiZy1zaWx2ZXIgOiAjZjBmMGYwO1xyXG4kYmctc3VjY2VzcyA6ICMyYmIwMTk7XHJcblxyXG4vLy8gQm9yZGVyXHJcbiRib3JkZXItZ3JheSA6IGdyYXk7XHJcbiRib3JkZXItZ3JlZW46ICM1NmM3NDc7XHJcblxyXG4vKiAgKi9cclxuJGNvbG9yLWdyZWVuLWxpc3Q6ICMyYmIwMTk7XHJcbiRjb2xvci1ncmVlbi1saXN0LWxpZ2h0OiAjZTlmN2U4O1xyXG4kYm9yZGVyLWNvbG9yLWdyYXk6ICNkM2QzZDM7XHJcbiRiZy1jb2xvci1ncmF5OiAjZDNkM2QzO1xyXG4kY29sb3Itc2t5LWxpZ2h0OiAjZWNmOGZmOyIsIiVmaWx0ZXIge1xyXG4gICRwYWRkaW5nLWJvcmRlcjogMTBweDtcclxuXHJcbiAgJl9fbGFiZWwge1xyXG4gICAgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeSk7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiA0cHggMCAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuJXRpdGxlLWNhcmQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cclxuICBAaW5jbHVkZSByZXNwb25zaXZlKGZvbnQtc2l6ZSwgMzIsIDIzKTtcclxufVxyXG5cclxuJXN1YnRpdGxlIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0bGluZS1oZWlnaHQ6IDI4LjhweDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSgoZm9udC1zaXplOiAoMTZweCkpKTtcclxufVxyXG4iLCJAdXNlIFwic2FzczptYXBcIjtcclxuQHVzZSAnc2FzczptZXRhJztcclxuQHVzZSAnc2FzczptYXRoJztcclxuQHVzZSAnc2FzczpzdHJpbmcnO1xyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxcXFxcclxuLy8gUmVzcG9uc2l2ZSBWYXJpYWJsZXMgZm9yIHJlc3BvbnNpdmUgbWl4aW5zXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcXFxcXHJcblxyXG4vL0ZvciBtaXhpbiBSZXNwb25zaXZlXHJcbiRwaG9uZS1yZXNwb25zaXZlOiAkc207XHJcbiR0YWJsZXQtcmVzcG9uc2l2ZTogJGxnO1xyXG4kZGVza3RvcC1yZXNwb25zaXZlOiAkeHhsO1xyXG5cclxuLy9Gb3IgTWVkaWEgUXVlcnkgYmxvY2tcclxuJGRkOiAwLjAyOyAvL2RpZmVyZW5jZVxyXG4kcGhvbmUtc21hbGw6ICgkeHMgLSAkZGQpICsgcHg7XHJcbiRwaG9uZTogKCRzbSAtICRkZCkgKyBweDtcclxuJHBob25lLWxhcmdlOiAoJG1kIC0gJGRkKSArIHB4O1xyXG4kdGFibGV0LXNtYWxsOiA3OTBweDtcclxuJHRhYmxldDogKCRsZyAtICRkZCkgKyBweDtcclxuJGRlc2t0b3Atc21hbGw6IDEwOTBweDtcclxuJGRlc2t0b3A6ICgkeGwgLSAkZGQpICsgcHg7XHJcbiRkZXNrdG9wLW1lZGl1bTogKCR4eGwgLSAkZGQpICsgcHg7XHJcbiRkZXNrdG9wLWxhcmdlOiAxNjUwcHg7XHJcbiRkZXNrdG9wLXgtbGFyZ2U6IDE5NTBweDtcclxuXHJcbiRwaG9uZS1kZWZhdWx0OiAkcGhvbmUtc21hbGw7IC8vZGVmYXVsdFxyXG4kdGFibGV0LWRlZmF1bHQ6ICR0YWJsZXQ7XHJcbiRkZXNrdG9wLWRlZmF1bHQ6ICRkZXNrdG9wLW1lZGl1bTsgLy9kZWZhdWx0XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXFxcXFxyXG4vLyBSZXNwb25zaXZlIE1peGluc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gXFxcXFxyXG5cclxuLy8vIFZhcjogIFByb3AgZm9yIGZyYW1ld29yayBjc3MgLS0tLS0tLS0tLS0tLS0tLS0tXFxcXFxyXG4kcHJvcGVydHktYWxsOiAoXHJcbiAgaXRlbXMtY2VudGVyOiBhbGlnbi1pdGVtcyxcclxuICBtaW4tdy1hdXRvOiBtaW4td2lkdGgsXHJcbiAgZmxleC0xOiBmbGV4LFxyXG4gIGZsZXgtaW5pdGlhbDogZmxleCxcclxuICBmbGV4LWNvbDogZmxleC1kaXJlY3Rpb24sXHJcbiAgZmxleC13cmFwOiBmbGV4LXdyYXAsXHJcbiAgbXItMDogbWFyZ2luLXJpZ2h0LFxyXG4gIG1sLTA6IG1hcmdpbi1sZWZ0LFxyXG4pO1xyXG5cclxuJHByb3BlcnR5LXZhbHVlLWFsbDogKFxyXG4gIGl0ZW1zLWNlbnRlcjogY2VudGVyLFxyXG4gIG1pbi13LWF1dG86IGF1dG8sXHJcbiAgZmxleC0xOiAxIDEgMCUsXHJcbiAgZmxleC1pbml0aWFsOiAwIDEgYXV0byxcclxuICBmbGV4LWNvbDogY29sdW1uLFxyXG4gIGZsZXgtd3JhcDogd3JhcCxcclxuICBtci0wOiAwLFxyXG4gIG1sLTA6IDAsXHJcbik7XHJcblxyXG4vLy8gVmFyOiAgUHJvcCBmb3IgcmVzcG9uc2l2ZSBnbG9iYWwgLS0tLS0tLS0tLS0tLS0tLS0tXFxcXFxyXG4kcHJvcGVydHktbWFwOiAoXHJcbiAgZno6IGZvbnQtc2l6ZSxcclxuICBsaDogbGluZS1oZWlnaHQsXHJcbiAgbTogbWFyZ2luLFxyXG4gIG10OiBtYXJnaW4tdG9wLFxyXG4gIG1yOiBtYXJnaW4tcmlnaHQsXHJcbiAgbWI6IG1hcmdpbi1ib3R0b20sXHJcbiAgbWw6IG1hcmdpbi1sZWZ0LFxyXG4gIHA6IHBhZGRpbmcsXHJcbiAgcHQ6IHBhZGRpbmctdG9wLFxyXG4gIHByOiBwYWRkaW5nLXJpZ2h0LFxyXG4gIHBiOiBwYWRkaW5nLWJvdHRvbSxcclxuICBwbDogcGFkZGluZy1sZWZ0LFxyXG4gIHQ6IHRvcCxcclxuICBsOiBsZWZ0LFxyXG4gIGI6IGJvdHRvbSxcclxuICByOiByaWdodCxcclxuICB3OiB3aWR0aCxcclxuICBtdzogbWF4LXdpZHRoLFxyXG4gIG14dzogbWF4LXdpZHRoLFxyXG4gIG1heHc6IG1heC13aWR0aCxcclxuICBtbnc6IG1pbi13aWR0aCxcclxuICBtaW53OiBtaW4td2lkdGgsXHJcbiAgaDogaGVpZ2h0LFxyXG4gIG1oOiBtaW4taGVpZ2h0LFxyXG4gIG1uaDogbWluLWhlaWdodCxcclxuICBtaW5oOiBtaW4taGVpZ2h0LFxyXG4gIG14aDogbWF4LWhlaWdodCxcclxuICBtYXhoOiBtYXgtaGVpZ2h0LFxyXG4gIGJ6OiBiYWNrZ3JvdW5kLXNpemUsXHJcbik7XHJcblxyXG4vLy8gU2NoZW1hXHJcbi8vLyBjYWxjKCAjeyRtaW4tcHh9ICsgKCN7JG1heH0gLSAjeyRtaW59KSAqICgoMTAwdncgLSAjeyR3LW1pbi1weH0pIC8gKCN7JHctbWF4fSAtICN7JHctbWlufSkpKTtcclxuLy8vIGNhbGMoIDE2cHggKyAoMjEgLSAxNikgKiAoKDEwMHZ3IC0gMzYwcHgpIC8gKDE0NDAgLSAzNjApKSk7XHJcblxyXG4vLy8gRnVuY3Rpb24gUmVzcG9uc2l2ZSAtLS0tLS0tLS0tLS0tLS1cXFxcXHJcbi8vLyBIb3cgdXNlOiBwYWRkaW5nLWxlZnQ6IHJlc3BvbnNpdmUoJHBsLW1heCwgJHBsLW1pbiwgJHctbWF4LCAkdy1taW4pIDtcclxuQGZ1bmN0aW9uIHJlc3BvbnNpdmUoXHJcbiAgJG1heCxcclxuICAkbWluOiBcIlwiLFxyXG4gICR3LW1heDogJGRlc2t0b3AtcmVzcG9uc2l2ZSxcclxuICAkdy1taW46ICRwaG9uZS1yZXNwb25zaXZlXHJcbikge1xyXG4gIEBpZiAoJG1pbiA9PSBcIlwiIG9yICRtYXggPT0kbWluKSB7XHJcbiAgICBAcmV0dXJuICRtYXggKyBweDtcclxuICB9XHJcblxyXG4gICRtaW4tcHg6ICRtaW4gKyBweDtcclxuICAkdy1taW4tcHg6ICR3LW1pbiArIHB4O1xyXG4gICRyZXN1bHQ6IGNhbGMoXHJcbiAgICAjeyRtaW4tcHh9ICsgKCN7JG1heH0gLSAjeyRtaW59KSAqICgoMTAwdncgLSAjeyR3LW1pbi1weH0pIC9cclxuICAgICAgICAgICgjeyR3LW1heH0gLSAjeyR3LW1pbn0pKVxyXG4gICk7XHJcbiAgQHJldHVybiAkcmVzdWx0O1xyXG59XHJcbkBmdW5jdGlvbiBzdHJpcC11bml0cygkbnVtYmVyKSB7XHJcbiAgQHJldHVybiBtYXRoLmRpdigkbnVtYmVyLCAoJG51bWJlciAqIDAgKyAxKSk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZXNwb25zaXZlVW5pdGxlc3MoXHJcbiAgJG1heCxcclxuICAkbWluOiBcIlwiLFxyXG4gICR3LW1heDogJGRlc2t0b3AtcmVzcG9uc2l2ZSxcclxuICAkdy1taW46ICRwaG9uZS1yZXNwb25zaXZlXHJcbikge1xyXG5cclxuICAkbWF4dW5sZXNzOiBpZihtYXRoLmlzLXVuaXRsZXNzKCRtYXgpLCAkbWF4LCBzdHJpcC11bml0cygkbWF4KSk7XHJcbiAgJG1pbnVubGVzczogaWYobWF0aC5pcy11bml0bGVzcygkbWluKSwgJG1pbiwgc3RyaXAtdW5pdHMoJG1pbikpO1xyXG5cclxuICBAaWYgKCRtaW51bmxlc3MgPT0gXCJcIiBvciAkbWF4dW5sZXNzID09ICRtaW51bmxlc3MpIHtcclxuICAgIEByZXR1cm4gJG1heHVubGVzcyArIHB4O1xyXG4gIH1cclxuXHJcbiAgJG1pbi1weDogJG1pbnVubGVzcyArIHB4O1xyXG4gICR3LW1pbi1weDogJHctbWluICsgcHg7XHJcbiAgJHJlc3VsdDogY2FsYyhcclxuICAgICN7JG1pbi1weH0gKyAoI3skbWF4dW5sZXNzfSAtICN7JG1pbnVubGVzc30pICogKCgxMDB2dyAtICN7JHctbWluLXB4fSkgL1xyXG4gICAgICAgICAgKCN7JHctbWF4fSAtICN7JHctbWlufSkpXHJcbiAgKTtcclxuICBAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLyBNaXhpbnMgUmVzcG9uc2l2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXFxcXHJcblxyXG4vL0hvdyB0byB1c2U6ICAgQGluY2x1ZGUgIGZvbnQtcmVzcG9uc2l2ZSgyNiwgMjApIG9yIGZvbnQtcmVzcG9uc2l2ZSgyNiwgMjAsIDE0NDAsIDM2MClcclxuLy8gZm9udC1zaXplOiBjYWxjKDE2cHggKyAoMjYgLSAxNikgKiAoKDEwMHZ3IC0gMzAwcHgpIC8gKDE2MDAgLSAzMDApKSkgO1xyXG5AbWl4aW4gZm9udC1yZXNwb25zaXZlKFxyXG4gICRmLW1heCxcclxuICAkZi1taW46ICRmb250LXNpemUtc21hbGwsXHJcbiAgJHctbWF4OiAkZGVza3RvcC1yZXNwb25zaXZlLFxyXG4gICR3LW1pbjogJHBob25lLXJlc3BvbnNpdmVcclxuKSB7XHJcbiAgJGYtbWluLXB4OiAkZi1taW4gKyBweDtcclxuICAkdy1taW4tcHg6ICR3LW1pbiArIHB4O1xyXG4gICRmb250LXNpemU6ICRmLW1heCArIHB4O1xyXG4gICRkZXNrdG9wLXB4OiAkZGVza3RvcC1yZXNwb25zaXZlICogMXB4O1xyXG4gICRwaG9uZS1weDogJHBob25lLXJlc3BvbnNpdmUgKiAxcHg7XHJcblxyXG4gICRyZXN1bHQtY2FsYzogcmVzcG9uc2l2ZSgkZi1tYXgsICRmLW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG5cclxuICBmb250LXNpemU6ICRmb250LXNpemU7XHJcblxyXG4gIEBpZiAoJHctbWF4ID09JGRlc2t0b3AtcmVzcG9uc2l2ZSBhbmQgJHctbWluID09JHBob25lLXJlc3BvbnNpdmUpIHtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZGVza3RvcC1weCkge1xyXG4gICAgICAmIHtcclxuICAgICAgICBmb250LXNpemU6ICRyZXN1bHQtY2FsYztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkcGhvbmUtcHgpIHtcclxuICAgICAgJiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRmLW1pbi1weH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIGZvbnQtc2l6ZTogJHJlc3VsdC1jYWxjO1xyXG5cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkdy1taW4tcHgpIHtcclxuICAgICAgJiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAjeyRmLW1pbi1weH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEhvdyB0byB1c2U6ICAgQGluY2x1ZGUgcihmb250LXNpemUsIDYwLCAzOSwgMTQ0MCwgMzc1KSBvciAgQGluY2x1ZGUgIHJlc3BvbnNpdmUoZnosIDYwLCAzOSwgMTQ0MCwgMzc1KSBvciAgQGluY2x1ZGUgIHJlc3BvbnNpdmUoZnosIDYwcHgsIDM5cHgsIDE0NDAsIDM3NSwgZmFsc2UpXHJcbi8vIEBpbmNsdWRlIHJlc3BvbnNpdmUoaCwgNjYuMTEsIDMwKTtcclxuQG1peGluIHIoXHJcbiAgJGF0dHI6IFwiXCIsXHJcbiAgJHZhbHVlLW1pbjogXCJcIixcclxuICAkdmFsdWUtbWF4OiBcIlwiLFxyXG4gICR3LW1pbjogJHBob25lLXJlc3BvbnNpdmUsXHJcbiAgJHctbWF4OiAkZGVza3RvcC1yZXNwb25zaXZlLFxyXG4gICRvbmx5LW1lZC1xdWVyeTogZmFsc2VcclxuKSB7XHJcbiAgQGlmICR3LW1pbiA9PSBcIlwiIHtcclxuICAgICR3LW1pbjogJHBob25lLXJlc3BvbnNpdmU7XHJcbiAgfVxyXG5cclxuICBAaWYgJHctbWF4ID09IFwiXCIge1xyXG4gICAgJHctbWF4OiAkZGVza3RvcC1yZXNwb25zaXZlO1xyXG4gIH1cclxuXHJcbiAgQGlmICR2YWx1ZS1tYXggPT0gXCJcIiB7XHJcbiAgICAkc2l6ZS1tYXg6ICR2YWx1ZS1taW47XHJcbiAgfVxyXG5cclxuICAvL2NvbmRpdGlvbmFsIGlmIGF0dHJpYnV0ZXMgZXhpc3QgcHhcclxuICBAaWYgc3RyaW5nLmluZGV4KCN7JHZhbHVlLW1pbn0sIFwicHhcIikgIT1udWxsIHtcclxuICAgICRzaXplLW1pbjogc3RyaW5nLnNsaWNlKCN7JHNpemUtbWlufSwgMSwgc3RyaW5nLmluZGV4KCN7JHNpemUtbWlufSwgXCJweFwiKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHN0cmluZy5pbmRleCgjeyR2YWx1ZS1tYXh9LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkc2l6ZS1tYXg6IHN0cmluZy5zbGljZSgjeyRzaXplLW1heH0sIDEsIHN0cmluZy5pbmRleCgjeyRzaXplLW1heH0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gIEBpZiBzdHJpbmcuaW5kZXgoI3skdy1taW59LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkdy1taW46IHN0cmluZy5zbGljZSgjeyR3LW1pbn0sIDEsIHN0cmluZy5pbmRleCgjeyR3LW1pbn0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gIEBpZiBzdHJpbmcuaW5kZXgoI3skdy1tYXh9LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkdy1tYXg6IHN0cmluZy5zbGljZSgjeyR3LW1heH0sIDEsIHN0cmluZy5pbmRleCgjeyR3LW1heH0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gICRzaXplLW1heC1weDogJHZhbHVlLW1heCArIHB4O1xyXG4gICRzaXplLW1pbi1weDogJHZhbHVlLW1pbiArIHB4O1xyXG4gICR3LW1heC1weDogJHctbWF4ICsgcHg7XHJcbiAgJHctbWluLXB4OiAkdy1taW4gKyBweDtcclxuXHJcbiAgJHJlc3BvbnNpdmUtY2FsYzogY2FsYyhcclxuICAgICN7JHNpemUtbWluLXB4fSArICgjeyR2YWx1ZS1tYXh9IC0gI3skdmFsdWUtbWlufSkgKiAoKDEwMHZ3IC0gI3skdy1taW4tcHh9KSAvXHJcbiAgICAgICAgICAoI3skdy1tYXh9IC0gI3skdy1taW59KSlcclxuICApO1xyXG5cclxuICAkcHJvcGVydHk6IFwiXCI7XHJcblxyXG4gIEBpZiAobWFwLmhhcy1rZXkoJHByb3BlcnR5LW1hcCwgJGF0dHIpKSB7XHJcbiAgICAkcHJvcGVydHk6IG1hcC5nZXQoJHByb3BlcnR5LW1hcCwgJGF0dHIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHByb3BlcnR5OiAkYXR0cjtcclxuICB9XHJcblxyXG4gIEBpZiAobm90ICRvbmx5LW1lZC1xdWVyeSkge1xyXG4gICAgLy9pbXByZXNzIGF0dHJpYnV0ZSB5b3VyIHN0eWxlcyBjc3NcclxuICAgICN7JHByb3BlcnR5fTogJHNpemUtbWluLXB4O1xyXG4gIH1cclxuXHJcbiAgQGlmICgkc2l6ZS1taW4tcHggIT0gJHNpemUtbWF4LXB4KSB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogI3skdy1taW4tcHh9KSB7XHJcbiAgICAgICN7JHByb3BlcnR5fTogJHJlc3BvbnNpdmUtY2FsYztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogI3skdy1tYXgtcHh9KSB7XHJcbiAgICAgICN7JHByb3BlcnR5fTogI3skc2l6ZS1tYXgtcHh9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gSG93IHRvIHVzZTogICBAaW5jbHVkZSByKGZvbnQtc2l6ZSwgNjAsIDM5LCAxNDQwLCAzNzUpIG9yICBAaW5jbHVkZSAgcmVzcG9uc2l2ZShmeiwgNjAsIDM5LCAxNDQwLCAzNzUpIG9yICBAaW5jbHVkZSAgcmVzcG9uc2l2ZShmeiwgNjBweCwgMzlweCwgMTQ0MCwgMzc1LCBmYWxzZSlcclxuLy8gQGluY2x1ZGUgcmVzcG9uc2l2ZShoLCA2Ni4xMSwgMzApO1xyXG5AbWl4aW4gcmkoXHJcbiAgJGF0dHI6IFwiXCIsXHJcbiAgJHZhbHVlLW1heDogXCJcIixcclxuICAkdmFsdWUtbWluOiBcIlwiLFxyXG4gICR3LW1heDogJGRlc2t0b3AtcmVzcG9uc2l2ZSxcclxuICAkdy1taW46ICRwaG9uZS1yZXNwb25zaXZlXHJcbikge1xyXG4gIEBpbmNsdWRlIHIoXHJcbiAgICAkYXR0cixcclxuICAgICR2YWx1ZS1taW4sXHJcbiAgICAkdmFsdWUtbWF4LFxyXG4gICAgJHctbWluLFxyXG4gICAgJHctbWF4LFxyXG4gIClcclxufVxyXG5cclxuLy8gSG93IHRvIHVzZTogICBAaW5jbHVkZSByZXNwb25zaXZlKGZvbnQtc2l6ZSwgNjAsIDM5LCAxNDQwLCAzNzUpIG9yICBAaW5jbHVkZSAgcmVzcG9uc2l2ZShmeiwgNjAsIDM5LCAxNDQwLCAzNzUpIG9yICBAaW5jbHVkZSAgcmVzcG9uc2l2ZShmeiwgNjBweCwgMzlweCwgMTQ0MCwgMzc1LCBmYWxzZSlcclxuLy8gQGluY2x1ZGUgcmVzcG9uc2l2ZShoLCA2Ni4xMSwgMzApO1xyXG5AbWl4aW4gcmVzcG9uc2l2ZShcclxuICAkYXR0cjogXCJcIixcclxuICAkdmFsdWUtbWF4OiBcIlwiLFxyXG4gICR2YWx1ZS1taW46IFwiXCIsXHJcbiAgJHctbWF4OiAkZGVza3RvcC1yZXNwb25zaXZlLFxyXG4gICR3LW1pbjogJHBob25lLXJlc3BvbnNpdmUsXHJcbiAgJG9ubHktbWVkLXF1ZXJ5OiBmYWxzZVxyXG4pIHtcclxuICBAaWYgJHctbWF4ID09IFwiXCIge1xyXG4gICAgJHctbWF4OiAkZGVza3RvcC1yZXNwb25zaXZlO1xyXG4gIH1cclxuXHJcbiAgQGlmICR2YWx1ZS1taW4gPT0gXCJcIiB7XHJcbiAgICAkc2l6ZS1taW46ICR2YWx1ZS1tYXg7XHJcbiAgfVxyXG5cclxuICAvL2NvbmRpdGlvbmFsIGlmIGF0dHJpYnV0ZXMgZXhpc3QgcHhcclxuICBAaWYgc3RyaW5nLmluZGV4KCN7JHZhbHVlLW1heH0sIFwicHhcIikgIT1udWxsIHtcclxuICAgICRzaXplLW1heDogc3RyaW5nLnNsaWNlKCN7JHNpemUtbWF4fSwgMSwgc3RyaW5nLmluZGV4KCN7JHNpemUtbWF4fSwgXCJweFwiKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHN0cmluZy5pbmRleCgjeyR2YWx1ZS1taW59LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkc2l6ZS1taW46IHN0cmluZy5zbGljZSgjeyRzaXplLW1pbn0sIDEsIHN0cmluZy5pbmRleCgjeyRzaXplLW1pbn0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gIEBpZiBzdHJpbmcuaW5kZXgoI3skdy1tYXh9LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkdy1tYXg6IHN0cmluZy5zbGljZSgjeyR3LW1heH0sIDEsIHN0cmluZy5pbmRleCgjeyR3LW1heH0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gIEBpZiBzdHJpbmcuaW5kZXgoI3skdy1taW59LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkdy1taW46IHN0cmluZy5zbGljZSgjeyR3LW1pbn0sIDEsIHN0cmluZy5pbmRleCgjeyR3LW1pbn0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gICRzaXplLW1heC1weDogJHZhbHVlLW1heCArIHB4O1xyXG4gICRzaXplLW1pbi1weDogJHZhbHVlLW1pbiArIHB4O1xyXG4gICR3LW1heC1weDogJHctbWF4ICsgcHg7XHJcbiAgJHctbWluLXB4OiAkdy1taW4gKyBweDtcclxuICAkZGVza3RvcC1weDogJGRlc2t0b3AtcmVzcG9uc2l2ZSAqIDFweDtcclxuICAkcGhvbmUtcHg6ICRwaG9uZS1yZXNwb25zaXZlICogMXB4O1xyXG5cclxuICAkcmVzcG9uc2l2ZS1jYWxjOiBjYWxjKFxyXG4gICAgI3skc2l6ZS1taW4tcHh9ICsgKCN7JHZhbHVlLW1heH0gLSAjeyR2YWx1ZS1taW59KSAqICgoMTAwdncgLSAjeyR3LW1pbi1weH0pIC9cclxuICAgICAgICAgICgjeyR3LW1heH0gLSAjeyR3LW1pbn0pKVxyXG4gICk7XHJcblxyXG4gICRwcm9wZXJ0eTogXCJcIjtcclxuXHJcbiAgQGlmIChtYXAuaGFzLWtleSgkcHJvcGVydHktbWFwLCAkYXR0cikpIHtcclxuICAgICRwcm9wZXJ0eTogbWFwLmdldCgkcHJvcGVydHktbWFwLCAkYXR0cik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkcHJvcGVydHk6ICRhdHRyO1xyXG4gIH1cclxuXHJcbiAgQGlmIChub3QgJG9ubHktbWVkLXF1ZXJ5KSB7XHJcbiAgICAvLyAmIHtcclxuICAgICAgLy9pbXByZXNzIGF0dHJpYnV0ZSB5b3VyIHN0eWxlcyBjc3NcclxuICAgICAgI3skcHJvcGVydHl9OiAkc2l6ZS1tYXgtcHg7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBAaWYgKCRzaXplLW1heC1weCAhPSRzaXplLW1pbi1weCkge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JHctbWF4LXB4fSkge1xyXG4gICAgICAjeyRwcm9wZXJ0eX06ICRyZXNwb25zaXZlLWNhbGM7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JHctbWluLXB4fSkge1xyXG4gICAgICAjeyRwcm9wZXJ0eX06ICRzaXplLW1pbi1weDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE9ubHkgUmVzcG9uc2l2ZSBNZWRpYSBxdWVyeSBpbmxpbmVcclxuLy9Ib3cgdG8gdXNlOiAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbXEoZnosIDYwLCAzOSwgMTQ0MCkgd2hlcmVcclxuLy8gYXR0cjogQXRyaWJ1dG8gZGUgbGEgcHJvcGllZGFkXHJcbi8vIHNpemUtbWF4OiBWYWxvciBtYXhpbW8gZGUgbGEgcXVlcnkgaW5pY2lhbFxyXG4vLyBzaXplLW1pbjogVmFsb3IgbWluaW1vIGRlIGxhIHF1ZXJ5IGluaWNpYWxcclxuLy8gdy1tYXg6IFBhbnRhbGxhIG1heGltYSB5IE1lZGlhIHF1ZXJ5IHBvciBkZWZlY3RvXHJcbi8vIHctbWluOiBQYW50YWxsYSBtaW5pbWFcclxuLy8gdHdvLW1xOiBTaSBzZSByZXF1aWVyZSBwYXJhIGxhIGludGVycnVwY2lvbiBkZSBsYSBzZWd1bmRhIG1lZGlhIHF1ZXJ5XHJcbkBtaXhpbiByZXNwb25zaXZlLW1xKFxyXG4gICRhdHRyOiBcIlwiLFxyXG4gICR2YWx1ZS1tYXg6IFwiXCIsXHJcbiAgJHZhbHVlLW1pbjogXCJcIixcclxuICAkdy1tYXg6ICRkZXNrdG9wLXJlc3BvbnNpdmUsXHJcbiAgJHctbWluOiAkcGhvbmUtcmVzcG9uc2l2ZSxcclxuICAkdHdvLW1xOiBmYWxzZVxyXG4pIHtcclxuICBAaWYgJHZhbHVlLW1pbiA9PSBcIlwiIHtcclxuICAgICRzaXplLW1pbjogJHZhbHVlLW1heDtcclxuICB9XHJcblxyXG4gIC8vY29uZGl0aW9uYWwgaWYgYXR0cmlidXRlcyBleGlzdCBweFxyXG4gIEBpZiBzdHJpbmcuaW5kZXgoI3skdmFsdWUtbWF4fSwgXCJweFwiKSAhPW51bGwge1xyXG4gICAgJHNpemUtbWF4OiBzdHJpbmcuc2xpY2UoI3skc2l6ZS1tYXh9LCAxLCBzdHJpbmcuaW5kZXgoI3skc2l6ZS1tYXh9LCBcInB4XCIpIC0gMSk7XHJcbiAgfVxyXG5cclxuICBAaWYgc3RyaW5nLmluZGV4KCN7JHZhbHVlLW1pbn0sIFwicHhcIikgIT1udWxsIHtcclxuICAgICRzaXplLW1pbjogc3RyaW5nLnNsaWNlKCN7JHNpemUtbWlufSwgMSwgc3RyaW5nLmluZGV4KCN7JHNpemUtbWlufSwgXCJweFwiKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHN0cmluZy5pbmRleCgjeyR3LW1heH0sIFwicHhcIikgIT1udWxsIHtcclxuICAgICR3LW1heDogc3RyaW5nLnNsaWNlKCN7JHctbWF4fSwgMSwgc3RyaW5nLmluZGV4KCN7JHctbWF4fSwgXCJweFwiKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHN0cmluZy5pbmRleCgjeyR3LW1pbn0sIFwicHhcIikgIT1udWxsIHtcclxuICAgICR3LW1pbjogc3RyaW5nLnNsaWNlKCN7JHctbWlufSwgMSwgc3RyaW5nLmluZGV4KCN7JHctbWlufSwgXCJweFwiKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgJHNpemUtbWF4LXB4OiAkdmFsdWUtbWF4ICsgcHg7XHJcbiAgJHNpemUtbWluLXB4OiAkdmFsdWUtbWluICsgcHg7XHJcbiAgJHctbWF4LXB4OiAkdy1tYXggKyBweDtcclxuICAkdy1taW4tcHg6ICR3LW1pbiArIHB4O1xyXG4gICRkZXNrdG9wLXB4OiAkZGVza3RvcC1yZXNwb25zaXZlICogMXB4O1xyXG4gICRwaG9uZS1weDogJHBob25lLXJlc3BvbnNpdmUgKiAxcHg7XHJcblxyXG4gICRyZXNwb25zaXZlLWNhbGM6IGNhbGMoXHJcbiAgICAjeyRzaXplLW1pbi1weH0gKyAoI3skdmFsdWUtbWF4fSAtICN7JHZhbHVlLW1pbn0pICogKCgxMDB2dyAtICN7JHctbWluLXB4fSkgL1xyXG4gICAgICAgICAgKCN7JHctbWF4fSAtICN7JHctbWlufSkpXHJcbiAgKTtcclxuXHJcbiAgJHByb3BlcnR5OiBcIlwiO1xyXG5cclxuICBAaWYgKG1hcC5oYXMta2V5KCRwcm9wZXJ0eS1tYXAsICRhdHRyKSkge1xyXG4gICAgJHByb3BlcnR5OiBtYXAuZ2V0KCRwcm9wZXJ0eS1tYXAsICRhdHRyKTtcclxuICB9IEBlbHNlIHtcclxuICAgICRwcm9wZXJ0eTogJGF0dHI7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1heC13aWR0aDogI3skdy1tYXgtcHh9KSB7XHJcbiAgICAjeyRwcm9wZXJ0eX06ICRyZXNwb25zaXZlLWNhbGM7XHJcbiAgfVxyXG5cclxuICBAaWYgKCR0d28tbXEpIHtcclxuICAgIEBpZiAoJHNpemUtbWF4LXB4ICE9JHNpemUtbWluLXB4KSB7XHJcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyR3LW1pbi1weH0pIHtcclxuICAgICAgICAjeyRwcm9wZXJ0eX06ICN7JHNpemUtbWluLXB4fTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gT25seSBSZXNwb25zaXZlIE1lZGlhIHF1ZXJ5IGlubGluZVxyXG4vLyBIb3cgdG8gdXNlOiAgIEBpbmNsdWRlIG1xMihmeiwgNjAsIDE0NDApXHJcbkBtaXhpbiBtcWkoJGF0dHI6IFwiXCIsICRzY3JlZW46ICRkZXNrdG9wLXJlc3BvbnNpdmUpIHtcclxuICBAaWYgc3RyaW5nLmluZGV4KCN7JHNjcmVlbn0sIFwicHhcIikgIT1udWxsIHtcclxuICAgICRzY3JlZW46IHN0cmluZy5zbGljZSgjeyRzY3JlZW59LCAxLCBzdHJpbmcuaW5kZXgoI3skc2NyZWVufSwgXCJweFwiKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgJHByb3BlcnR5OiBcIlwiO1xyXG4gICR2YWx1ZTogXCJcIjtcclxuXHJcbiAgQGlmIChtYXAuaGFzLWtleSgkcHJvcGVydHktYWxsLCAkYXR0cikpIHtcclxuICAgICRwcm9wZXJ0eTogbWFwLmdldCgkcHJvcGVydHktYWxsLCAkYXR0cik7XHJcbiAgICAkdmFsdWU6IG1hcC5nZXQoJHByb3BlcnR5LXZhbHVlLWFsbCwgJGF0dHIpO1xyXG5cclxuICAgICRzY3JlZW4tcHg6ICRzY3JlZW4gKyBweDtcclxuXHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogI3skc2NyZWVuLXB4fSkge1xyXG4gICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE9ubHkgUmVzcG9uc2l2ZSBNZWRpYSBxdWVyeSBpbmxpbmVcclxuLy8gSG93IHRvIHVzZTogICBAaW5jbHVkZSBtcShmeiwgNjAsIDE0NDApXHJcbkBtaXhpbiBtcSgkYXR0cjogXCJcIiwgJHZhbHVlOiBcIlwiLCAkc2NyZWVuOiAkZGVza3RvcC1yZXNwb25zaXZlKSB7XHJcbiAgQGlmIHN0cmluZy5pbmRleCgjeyRzY3JlZW59LCBcInB4XCIpICE9bnVsbCB7XHJcbiAgICAkc2NyZWVuOiBzdHJpbmcuc2xpY2UoI3skc2NyZWVufSwgMSwgc3RyaW5nLmluZGV4KCN7JHNjcmVlbn0sIFwicHhcIikgLSAxKTtcclxuICB9XHJcblxyXG4gICRwcm9wZXJ0eTogXCJcIjtcclxuXHJcbiAgQGlmIChtYXAuaGFzLWtleSgkcHJvcGVydHktbWFwLCAkYXR0cikpIHtcclxuICAgICRwcm9wZXJ0eTogbWFwLmdldCgkcHJvcGVydHktbWFwLCAkYXR0cik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkcHJvcGVydHk6ICRhdHRyO1xyXG4gIH1cclxuXHJcbiAgJHNpemUtcHg6IFwiXCI7XHJcblxyXG4gIEBpZiAobWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgJHNpemUtcHg6ICN7JHZhbHVlfTtcclxuICB9IEBlbHNlIHtcclxuICAgICRweDogc3RyaW5nLmluZGV4KCN7JHZhbHVlfSwgXCJweFwiKTtcclxuICAgICRlbTogc3RyaW5nLmluZGV4KCN7JHZhbHVlfSwgXCJlbVwiKTtcclxuICAgICRyZW06IHN0cmluZy5pbmRleCgjeyR2YWx1ZX0sIFwicmVtXCIpO1xyXG4gICAgJHBlcmNlbnQ6IHN0cmluZy5pbmRleCgjeyR2YWx1ZX0sIFwiJVwiKTtcclxuXHJcbiAgICBAaWYgKCRlbSBvciAkcmVtIG9yICRwZXJjZW50IG9yICRweCkge1xyXG4gICAgICAkc2l6ZS1weDogI3skdmFsdWV9O1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRzaXplLXB4OiAkdmFsdWUgKyBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICRzY3JlZW4tcHg6ICRzY3JlZW4gKyBweDtcclxuXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JHNjcmVlbi1weH0pIHtcclxuICAgICN7JHByb3BlcnR5fTogJHNpemUtcHg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gcC1yZXNwb25zaXZlKFxyXG4gICRwdC1tYXg6IFwiXCIsXHJcbiAgJHB0LW1pbjogXCJcIixcclxuICAkcHItbWF4OiBcIlwiLFxyXG4gICRwci1taW46IFwiXCIsXHJcbiAgJHBiLW1heDogXCJcIixcclxuICAkcGItbWluOiBcIlwiLFxyXG4gICRwbC1tYXg6IFwiXCIsXHJcbiAgJHBsLW1pbjogXCJcIixcclxuICAkdy1tYXg6ICRkZXNrdG9wLXJlc3BvbnNpdmUsXHJcbiAgJHctbWluOiAkcGhvbmUtcmVzcG9uc2l2ZVxyXG4pIHtcclxuICBAaWYgJHB0LW1heCAhPSBcIlwiIGFuZCAkcHQtbWluICE9IFwiXCIge1xyXG4gICAgcGFkZGluZy10b3A6IHJlc3BvbnNpdmUoJHB0LW1heCwgJHB0LW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG5cclxuICAgIEBpZiAkcHItbWF4ICE9IFwiXCIgYW5kICRwci1taW4gIT0gXCJcIiB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHJlc3BvbnNpdmUoJHByLW1heCwgJHByLW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG5cclxuICAgICAgQGlmICRwYi1tYXggIT0gXCJcIiBhbmQgJHBiLW1pbiAhPSBcIlwiIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVzcG9uc2l2ZSgkcGItbWF4LCAkcGItbWluLCAkdy1tYXgsICR3LW1pbik7XHJcblxyXG4gICAgICAgIEBpZiAkcGwtbWF4ICE9IFwiXCIgYW5kICRwbC1taW4gIT0gXCJcIiB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlc3BvbnNpdmUoJHBsLW1heCwgJHBsLW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiByZXNwb25zaXZlKCRwci1tYXgsICRwci1taW4sICR3LW1heCwgJHctbWluKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZXNwb25zaXZlKCRwdC1tYXgsICRwdC1taW4sICR3LW1heCwgJHctbWluKTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlc3BvbnNpdmUoJHByLW1heCwgJHByLW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgcGFkZGluZy1yaWdodDogcmVzcG9uc2l2ZSgkcHQtbWF4LCAkcHQtbWluLCAkdy1tYXgsICR3LW1pbik7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZXNwb25zaXZlKCRwdC1tYXgsICRwdC1taW4sICR3LW1heCwgJHctbWluKTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiByZXNwb25zaXZlKCRwdC1tYXgsICRwdC1taW4sICR3LW1heCwgJHctbWluKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtLXJlc3BvbnNpdmUoXHJcbiAgJG10LW1heDogXCJcIixcclxuICAkbXQtbWluOiBcIlwiLFxyXG4gICRtci1tYXg6IFwiXCIsXHJcbiAgJG1yLW1pbjogXCJcIixcclxuICAkbWItbWF4OiBcIlwiLFxyXG4gICRtYi1taW46IFwiXCIsXHJcbiAgJG1sLW1heDogXCJcIixcclxuICAkbWwtbWluOiBcIlwiLFxyXG4gICR3LW1heDogJGRlc2t0b3AtcmVzcG9uc2l2ZSxcclxuICAkdy1taW46ICRwaG9uZS1yZXNwb25zaXZlXHJcbikge1xyXG4gIEBpZiAkbXQtbWF4ICE9IFwiXCIgYW5kICRtdC1taW4gIT0gXCJcIiB7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlKG10LCAkbXQtbWF4LCAkbXQtbWluLCAkdy1tYXgsICR3LW1pbik7XHJcblxyXG4gICAgQGlmICRtci1tYXggIT0gXCJcIiBhbmQgJG1yLW1pbiAhPSBcIlwiIHtcclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZShtciwgJG1yLW1heCwgJG1yLW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG5cclxuICAgICAgQGlmICRtYi1tYXggIT0gXCJcIiBhbmQgJG1iLW1pbiAhPSBcIlwiIHtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlKG1iLCAkbWItbWF4LCAkbWItbWluLCAkdy1tYXgsICR3LW1pbik7XHJcblxyXG4gICAgICAgIEBpZiAkbWwtbWF4ICE9IFwiXCIgYW5kICRtbC1taW4gIT0gXCJcIiB7XHJcbiAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlKG1sLCAkbWwtbWF4LCAkbWwtbWluLCAkdy1tYXgsICR3LW1pbik7XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlKG1sLCAkbXItbWF4LCAkbXItbWluLCAkdy1tYXgsICR3LW1pbik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlKG1iLCAkbXQtbWF4LCAkbXQtbWluLCAkdy1tYXgsICR3LW1pbik7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZShtbCwgJG1yLW1heCwgJG1yLW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZShtciwgJG10LW1heCwgJG10LW1pbiwgJHctbWF4LCAkdy1taW4pO1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlKG1iLCAkbXQtbWF4LCAkbXQtbWluLCAkdy1tYXgsICR3LW1pbik7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUobWwsICRtdC1tYXgsICRtdC1taW4sICR3LW1heCwgJHctbWluKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyogICovXG4uaXRpbmVyYXJ5LXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMzJweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNDM5LjhweCkge1xuICAuaXRpbmVyYXJ5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IGNhbGMoMjNweCArICgzMiAtIDIzKSAqICgxMDB2dyAtIDU3NS44cHgpIC8gKDE0MzkuOCAtIDU3NS44KSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOHB4KSB7XG4gIC5pdGluZXJhcnktdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjNweDtcbiAgfVxufVxuXG4uaXRpbmVyYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMS41cmVtIDJyZW0gMnJlbTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NS44cHgpIHtcbiAgLml0aW5lcmFyeSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi5pdGluZXJhcnktdGl0bGUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAuaXRpbmVyYXJ5LXRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5pdGluZXJhcnkgLnBvcnRJbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLml0aW5lcmFyeV9fY2Fycm91c2VsV3JhcCAuY3Vyc29ySW5pdGlhbCB7XG4gIGN1cnNvcjogaW5pdGlhbDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NS44cHgpIHtcbiAgLml0aW5lcmFyeV9fY2Fycm91c2VsV3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5pdGluZXJhcnlfX2NhcnJvdXNlbFdyYXAgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCwgLml0aW5lcmFyeV9fY2Fycm91c2VsV3JhcCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNTBweCk7XG4gICAgYm90dG9tOiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NS44cHgpIHtcbiAgLnNoaXBJdGluZXJhcnlfX3Bob3RvIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzUuOHB4KSB7XG4gIC5pdGluZXJhcnlfX3Bob3RvIHtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICB9XG4gIC5pdGluZXJhcnlfX3Bob3RvIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzUuOHB4KSB7XG4gIC5pdGluZXJhcnlfX3RpdGxlLCBkaXYgLml0aW5lcmFyeV9fdGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAuaXRpbmVyYXJ5X190aXRsZSwgZGl2IC5pdGluZXJhcnlfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM1OS44cHgpIHtcbiAgLml0aW5lcmFyeV9fdGl0bGUsIGRpdiAuaXRpbmVyYXJ5X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NS44cHgpIHtcbiAgLml0aW5lcmFyeV9fY29udGVudFRpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QzZDNkMztcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzUuOHB4KSB7XG4gIC5pdGluZXJhcnlfX2NvbnRlbnRPdXQge1xuICAgIHBhZGRpbmc6IDE4cHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QzZDNkMztcbiAgfVxufVxuXG4uaXRpbmVyYXJ5X19wb3J0Q29udGVudERlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBtYXgtaGVpZ2h0OiAzLjVyZW07XG59XG4uaXRpbmVyYXJ5X19wb3J0Q29udGVudERlc2NyaXB0aW9uLm9wZW4ge1xuICBtYXgtaGVpZ2h0OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAuaXRpbmVyYXJ5X19wb3J0Q29udGVudERlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAuaXRpbmVyYXJ5X19jYXJvdXNlbCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMCUgLSAxMDB2dykgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMCUgLSAxMDB2dykgLyAyKTtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAuaXRpbmVyYXJ5X19jYXJkQ29udGVudCB7XG4gICAgcGFkZGluZzogMTBweCAxOHB4O1xuICB9XG59XG5cbi5pdGluZXJhcnlfX2RheSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAuaXRpbmVyYXJ5X19kYXkge1xuICAgIGZvbnQtc2l6ZTogMTYuMzNweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzU5LjhweCkge1xuICAuaXRpbmVyYXJ5X19kYXkge1xuICAgIGZvbnQtc2l6ZTogMTYuMzNweDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzUuOHB4KSB7XG4gIC5pdGluZXJhcnlfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGluaXRpYWw7XG4gIH1cbn1cblxuLmNhcm91c2VsLWNvbnRyb2wtcHJldiBpLFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCBpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMyYTNlZDtcbiAgZm9udC1zaXplOiAyNXB4O1xuICBjb2xvcjogIzNmM2YzZjtcbiAgLyogcGFkZGluZzogMC41cmVtIDAuNXJlbSAwLjVyZW0gMC41cmVtOyAqL1xuICBoZWlnaHQ6IDM5LjVweDtcbiAgd2lkdGg6IDM5LjVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLXByZXYgaTpob3Zlcixcbi5jYXJvdXNlbC1jb250cm9sLW5leHQgaTpob3ZlciB7XG4gIGNvbG9yOiAjM2YzZjNmO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2OjphZnRlcixcbi5jYXJvdXNlbC1jb250cm9sLW5leHQ6OmFmdGVyIHtcbiAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaXRpbmVyYXJ5IC5zZWUtbW9yZSBhLFxuLnZpZXctbWFwIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uaXRpbmVyYXJ5IC5zZWUtbW9yZSxcbi5pdGluZXJhcnktdHlwZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5pdGluZXJhcnkgLnZpZXctbWFwLFxuLml0aW5lcmFyeS1kZXBhcnR1cmUge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wtcHJldixcbi5jYXJvdXNlbC1jb250cm9sLW5leHQge1xuICBtYXJnaW4tdG9wOiA4MnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLXByZXYge1xuICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLW5leHQge1xuICBtYXJnaW4tcmlnaHQ6IDIycHggIWltcG9ydGFudDtcbn1cblxuLmluZm8tdmlldy1tb3JlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC1oZWlnaHQ6IDMuMjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NS44cHgpIHtcbiAgLmluZm8tdmlldy1tb3JlIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICB9XG59XG5cbi5pbmZvLXZpZXctbW9yZS5leHBhbmRlZCB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogdW5zZXQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NS44cHgpIHtcbiAgLml0aW5lcmFyeV9fY29udGVudFNlZU1vcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNlZS1tb3JlIGEsXG4udmlldy1tYXAgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi50YWJsZS1pdGluZXJhcnkge1xuICBwYWRkaW5nLWxlZnQ6IDY1cHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTEuOHB4KSB7XG4gIC50YWJsZS1pdGluZXJhcnkge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3LjhweCkge1xuICAudGFibGUtaXRpbmVyYXJ5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3LjhweCkge1xuICAuY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxuICAuY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgICBtYXJnaW4tdG9wOiA0MXB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi50ZWNoc2hlZXQge1xuICBwYWRkaW5nOiAwIDRweDtcbn1cbi50ZWNoc2hlZXRfX2xpc3Qge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1LjhweCkge1xuICAudGVjaHNoZWV0X19saXN0IHtcbiAgICBmb250LXNpemU6IDE1LjE3cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM1OS44cHgpIHtcbiAgLnRlY2hzaGVldF9fbGlzdCB7XG4gICAgZm9udC1zaXplOiAxNS4xN3B4O1xuICB9XG59XG5cbi50ZWNoc2hlZXRfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDNkM2QzO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi50ZWNoc2hlZXRfX2xhYmVsIHtcbiAgZmxleDogMTtcbn1cbi50ZWNoc2hlZXRfX3ZhbHVlIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgdGV4dC1hbGlnbjogZW5kO1xufSIsIkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvaW5kZXhcIjtcclxuXHJcbi5pdGluZXJhcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgcGFkZGluZzogMS41cmVtIDJyZW0gMnJlbTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG4uaXRpbmVyYXJ5LXRpdGxlIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICBAZXh0ZW5kICV0aXRsZS1jYXJkO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYVBob25lIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcbi5pdGluZXJhcnkgLnBvcnRJbWFnZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5pdGluZXJhcnlfX2NhcnJvdXNlbFdyYXAge1xyXG4gICYgLmN1cnNvckluaXRpYWx7XHJcbiAgICBjdXJzb3I6IGluaXRpYWw7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1lZGlhUGhvbmUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICYgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCxcclxuICAgICYgLmNhcm91c2VsLWNvbnRyb2wtcHJldiB7XHJcbiAgICAgIHRvcDogY2FsYyg1MCUgLSA1MHB4KTtcclxuICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNoaXBJdGluZXJhcnlfX3Bob3RvIHtcclxuICBAaW5jbHVkZSBtZWRpYVBob25lIHtcclxuICAgIC8vIGhlaWdodDogMzE1cHg7XHJcblxyXG4gICAgQGluY2x1ZGUgaW1hZ2UtZnVsbC1jb250ZW50O1xyXG4gIH1cclxufVxyXG4uaXRpbmVyYXJ5X19waG90byB7XHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSB7XHJcbiAgICBoZWlnaHQ6IDIwMHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGltYWdlLWZ1bGwtY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi5pdGluZXJhcnlfX3RpdGxlIHtcclxuICAmLFxyXG4gIGRpdiAmIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhUGhvbmUoXHJcbiAgICAgIChcclxuICAgICAgICBmb250LXNpemU6IDIxcHgsXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLml0aW5lcmFyeV9fY29udGVudFRpdGxlIHtcclxuICBAaW5jbHVkZSBtZWRpYVBob25lKCkge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvci1ncmF5O1xyXG4gIH1cclxufVxyXG4uaXRpbmVyYXJ5X19jb250ZW50T3V0IHtcclxuICBAaW5jbHVkZSBtZWRpYVBob25lKCkge1xyXG4gICAgcGFkZGluZzogMThweCAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3ItZ3JheTtcclxuICB9XHJcbn1cclxuXHJcbi5pdGluZXJhcnlfX3BvcnRDb250ZW50RGVzY3JpcHRpb24ge1xyXG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcclxuICBtYXgtaGVpZ2h0OiAzLjVyZW07XHJcblxyXG4gICYub3BlbntcclxuICAgIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYVBob25lIHtcclxuICAgIG1hcmdpbi10b3A6IDI0cHg7XHJcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xyXG4gIH1cclxufVxyXG4uaXRpbmVyYXJ5X19jYXJvdXNlbCB7XHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSB7XHJcbiAgICBAaW5jbHVkZSB3aWR0aC1leHBhbmRlZDtcclxuICB9XHJcbn1cclxuLml0aW5lcmFyeV9fY2FyZENvbnRlbnQge1xyXG4gIEBpbmNsdWRlIG1lZGlhUGhvbmUge1xyXG4gICAgcGFkZGluZzogMTBweCAxOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLml0aW5lcmFyeV9fZGF5IHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBAaW5jbHVkZSBtZWRpYVBob25lKFxyXG4gICAgKFxyXG4gICAgICBmb250LXNpemU6IDE2LjMzcHgsXHJcbiAgICApXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcblxyXG4uaXRpbmVyYXJ5X19pdGVtIHtcclxuICBAaW5jbHVkZSBtZWRpYVBob25lIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGluaXRpYWw7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGluaXRpYWw7XHJcbiAgfVxyXG59XHJcblxyXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2IGksXHJcbi5jYXJvdXNlbC1jb250cm9sLW5leHQgaSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiAyNXB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1za3k7XHJcbiAgZm9udC1zaXplOiAyNXB4O1xyXG4gIGNvbG9yOiAjM2YzZjNmO1xyXG4gIC8qIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gMC41cmVtIDAuNXJlbTsgKi9cclxuICBoZWlnaHQ6IDM5LjVweDtcclxuICB3aWR0aDogMzkuNXB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2IGk6aG92ZXIsXHJcbi5jYXJvdXNlbC1jb250cm9sLW5leHQgaTpob3ZlciB7XHJcbiAgY29sb3I6ICMzZjNmM2Y7XHJcbn1cclxuLmNhcm91c2VsLWNvbnRyb2wtcHJldjo6YWZ0ZXIsXHJcbi5jYXJvdXNlbC1jb250cm9sLW5leHQ6OmFmdGVyIHtcclxuICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuLml0aW5lcmFyeSAuc2VlLW1vcmUgYSxcclxuLnZpZXctbWFwIGEge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG4uaXRpbmVyYXJ5IC5zZWUtbW9yZSxcclxuLml0aW5lcmFyeS10eXBlIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcbi5pdGluZXJhcnkgLnZpZXctbWFwLFxyXG4uaXRpbmVyYXJ5LWRlcGFydHVyZSB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuLmNhcm91c2VsLWNvbnRyb2wtcHJldixcclxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XHJcbiAgbWFyZ2luLXRvcDogODJweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcclxuICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5pbmZvLXZpZXctbW9yZSB7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICBtYXgtaGVpZ2h0OiAzLjI1cmVtO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhUGhvbmUge1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xyXG4gIH1cclxufVxyXG4uaW5mby12aWV3LW1vcmUuZXhwYW5kZWQge1xyXG4gIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiB1bnNldDtcclxufVxyXG5cclxuLml0aW5lcmFyeV9fY29udGVudFNlZU1vcmUge1xyXG4gIEBpbmNsdWRlIG1lZGlhUGhvbmUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuLnNlZS1tb3JlIGEsXHJcbi52aWV3LW1hcCBhIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuLnRhYmxlLWl0aW5lcmFyeSB7XHJcbiAgcGFkZGluZy1sZWZ0OiA2NXB4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbGcpIHtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCRtZCkge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIH1cclxufVxyXG5AaW5jbHVkZSBtZWRpYSgkbWQpIHtcclxuICAuY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxyXG4gIC5jYXJvdXNlbC1jb250cm9sLW5leHQge1xyXG4gICAgbWFyZ2luLXRvcDogNDFweCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLnRlY2hzaGVldF9fY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBtZWRpYVBob25lIHtcclxuICB9XHJcbn1cclxuLnRlY2hzaGVldCB7XHJcbiAgcGFkZGluZzogMCA0cHg7XHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSB7XHJcbiAgfVxyXG59XHJcbi50ZWNoc2hlZXRfX2xpc3Qge1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZShcclxuICAgIChcclxuICAgICAgZm9udC1zaXplOiAxNS4xN3B4LFxyXG4gICAgKVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4udGVjaHNoZWV0X19pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yLWdyYXk7XHJcbiAgcGFkZGluZzogMjBweCAwO1xyXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSB7XHJcbiAgfVxyXG59XHJcbi50ZWNoc2hlZXRfX2xhYmVsIHtcclxuICBmbGV4OiAxO1xyXG4gIEBpbmNsdWRlIG1lZGlhUGhvbmUge1xyXG4gIH1cclxufVxyXG4udGVjaHNoZWV0X192YWx1ZSB7XHJcbiAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gIG1heC13aWR0aDogNTAlO1xyXG4gIHRleHQtYWxpZ246IGVuZDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWFQaG9uZSB7XHJcbiAgfVxyXG59XHJcbiIsIkB1c2UgXCJzYXNzOmxpc3RcIjtcclxuQHVzZSBcInNhc3M6bWV0YVwiO1xyXG5cclxuLy8vIEV2ZW50IHdyYXBwZXJcclxuLy8vIEBhdXRob3IgU21hcnRJbkNvZGUgJGJnLXVybCxcclxuXHJcbi8vLyBEZWZpbmUgY29sb3IgYW5kIGhlaWdodCBvZiBib3gtZWxlbWVudHNcclxuLy8vYmFuY2tncm91bmQgY29sb3IgYW5kIGhlaWdodFxyXG5AbWl4aW4gYmdjKCRtaW4taGVpZ2h0LCAkYmctY29sb3I6IHRyYW5zcGFyZW50KSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWNvbG9yO1xyXG4gIG1pbi1oZWlnaHQ6ICRtaW4taGVpZ2h0O1xyXG59XHJcblxyXG4vLy9iYW5ja2dyb3VuZCBpbWFnZSBhbmQgaGVpZ2h0XHJcbkBtaXhpbiBiZ2koJGJnLWltYWdlLCAkbWluLWhlaWdodCwgJGJnLXBvc2l0aW9uOiBjZW50ZXIsICRiZy1yZXBlYXQ6IG5vLXJlcGVhdCwgJGJzaXplOiBjb3Zlcikge1xyXG4gICRiZy1pbWFnZTogXCIuLi9pbWFnZXMvXCIgKyAkYmctaW1hZ2U7XHJcbiAgYmFja2dyb3VuZDogdXJsKCRiZy1pbWFnZSkgJGJnLXJlcGVhdCAkYmctcG9zaXRpb247XHJcbiAgYmFja2dyb3VuZC1zaXplOiAkYnNpemU7XHJcbiAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbn1cclxuXHJcbi8vL2JhbmNrZ3JvdW5kIGltYWdlIGFuZCBoZWlnaHRcclxuQG1peGluIGJnaW8oJGJnLWltYWdlLCAkYmctcG9zaXRpb246IGNlbnRlciwgJGJnLXJlcGVhdDogbm8tcmVwZWF0LCAkYnNpemU6IGNvdmVyKSB7XHJcbiAgJGJnLWltYWdlOiBcIi4uL2ltYWdlcy9cIiArICRiZy1pbWFnZTtcclxuICBiYWNrZ3JvdW5kOiB1cmwoJGJnLWltYWdlKSAkYmctcmVwZWF0ICRiZy1wb3NpdGlvbjtcclxuICBiYWNrZ3JvdW5kLXNpemU6ICRic2l6ZTtcclxufVxyXG5cclxuLy8vIERlZmluZSBwYXJhbXMgQ29udGFpbmVyIHdpZHRoIGFuZCBwYWRkaW5nXHJcbkBtaXhpbiBjb250YWluZXIoJG1heC13aWR0aCwgJHBhZC1sZWZ0LCAkcGFkLXJpZ2h0OiAkcGFkLWxlZnQsICRib3gtczogY29udGVudC1ib3gpIHtcclxuICBib3gtc2l6aW5nOiAkYm94LXM7XHJcbiAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xyXG4gIHBhZGRpbmctbGVmdDogJHBhZC1sZWZ0O1xyXG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQtcmlnaHQ7XHJcbn1cclxuXHJcbi8vL2ZvbnRzIGVsZW1lbnRzXHJcbkBtaXhpbiBmb250cyhcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZvbnQtc2l6ZTogbWVkaXVtLFxyXG4gICRmb250LWNvbG9yOiBibGFjayxcclxuICAkZm9udC13ZWlnaHQ6IG5vcm1hbCxcclxuICAkZm9udC1zdHlsZTogbm9ybWFsLFxyXG4gIC8vICRsaW5lLWhlaWdodDogbm9ybWFsXHJcbikge1xyXG4gIGNvbG9yOiAkZm9udC1jb2xvcjtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XHJcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG4gIGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xyXG4gIC8vIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XHJcbn1cclxuXHJcbi8vL2RlZmluZSBmbGV4IGNlbnRlclxyXG5AbWl4aW4gZmxleGNlbigkYWxpZ246IGNlbnRlciwgJGp1c3RpZnk6IGNlbnRlcikge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6ICRhbGlnbjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5O1xyXG59XHJcblxyXG4vLy9kZWZpbmUgYWJzb2x1dGUgY2VudGVyXHJcbkBtaXhpbiBhYnNjZW4oJHRvcDogNTAlLCAkcmlnaHQ6IDUwJSwgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICB0b3A6ICR0b3A7XHJcbiAgcmlnaHQ6ICRyaWdodDtcclxuICBib3R0b206ICRib3R0b207XHJcbiAgbGVmdDogJGxlZnQ7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHJpZ2h0LCAtJHRvcCk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG5AbWl4aW4gbWVkaWEoJGJyZWFrcG9pbnQpIHtcclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRicmVha3BvaW50ICsgJ3B4J30pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1lZGlhU20ge1xyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtICsgJ3B4J30pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1lZGlhRGVza3RvcCB7XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3soJHNtICsgMC4yKSArICdweCd9KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZWRpYVBob25lKCRwcm9wZXJ0aWVzOiBudWxsKSB7XHJcbiAgJGJyZWFrcG9pbnRzOiAoJHNtLXB4LCAkeHMtcHgpO1xyXG5cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbS1weH0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgQGlmICRwcm9wZXJ0aWVzIHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGlzdC5sZW5ndGgoJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgICRicmVha3BvaW50OiBsaXN0Lm50aCgkYnJlYWtwb2ludHMsICRpKTtcclxuXHJcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGJyZWFrcG9pbnR9KSB7XHJcbiAgICAgICAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWVzIGluICRwcm9wZXJ0aWVzIHtcclxuICAgICAgICAgIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlcykgPT0gXCJsaXN0XCIgYW5kIGxpc3QubGVuZ3RoKCR2YWx1ZXMpID09IDIgYW5kICRpID09IDEge1xyXG4gICAgICAgICAgICAkbWF4OiBsaXN0Lm50aCgkdmFsdWVzLCAxKTtcclxuICAgICAgICAgICAgJG1pbjogbGlzdC5udGgoJHZhbHVlcywgMik7XHJcbiAgICAgICAgICAgICRyZXNwb25zaXZlLXZhbHVlOiBpZigkaSA9PSAxLCByZXNwb25zaXZlVW5pdGxlc3MoJG1heCwgJG1pbiwgJHNtLCAkeHMpLCAkbWluKTtcclxuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkcmVzcG9uc2l2ZS12YWx1ZTtcclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAkdmFsdWU6IGlmKCRpID4gbGlzdC5sZW5ndGgoJHZhbHVlcyksIGxpc3QubnRoKCR2YWx1ZXMsIGxpc3QubGVuZ3RoKCR2YWx1ZXMpKSwgbGlzdC5udGgoJHZhbHVlcywgJGkpKTtcclxuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBjb250YWluZXIteCB7XHJcbiAgLy8gQGluY2x1ZGUgbXEocGFkZGluZy1sZWZ0LCAxNiwgJGxnKTtcclxuICAvLyBAaW5jbHVkZSBtcShwYWRkaW5nLXJpZ2h0LCAxNiwgJGxnKTtcclxuXHJcbiAgQGluY2x1ZGUgbXEocGFkZGluZy1sZWZ0LCAxNSwgJHNtKTtcclxuICBAaW5jbHVkZSBtcShwYWRkaW5nLXJpZ2h0LCAxNSwgJHNtKTtcclxufVxyXG5cclxuQG1peGluIGlucHV0LWRhdGUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBhcHBlYXJhbmNlOiBub25lO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcblxyXG4gIC8qJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTWpZaUlHaGxhV2RvZEQwaU1qWWlJSFpwWlhkQ2IzZzlJakFnTUNBeU5pQXlOaUlnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BISmxZM1FnZDJsa2RHZzlJakkySWlCb1pXbG5hSFE5SWpJMklpQnllRDBpTVRNaUlHWnBiR3c5SWlORVEwUkNSRU1pTHo0S1BIQmhkR2dnWkQwaVRUZ3VPRGc0T0RrZ01USXVNMGd4TWk0MVZqRTFMamhJT0M0NE9EZzRPVTB4Tnk0MU5UVTJJREU0TGpaSU55NDBORFEwTkZZeE1DNDVTREUzTGpVMU5UWk5NVGN1TlRVMU5pQTNMalJJTVRZdU9ETXpNMVkyU0RFMUxqTTRPRGxXTnk0MFNEa3VOakV4TVRGV05rZzRMakUyTmpZM1ZqY3VORWczTGpRME5EUTBRemN1TURZeE16VWdOeTQwSURZdU5qa3pPVFVnTnk0MU5EYzFJRFl1TkRJek1EY2dOeTQ0TVRBd05VTTJMakUxTWpFNElEZ3VNRGN5TmlBMklEZ3VOREk0TnlBMklEZ3VPRll4T0M0MlF6WWdNVGd1T1RjeE15QTJMakUxTWpFNElERTVMak15TnpRZ05pNDBNak13TnlBeE9TNDFPRGs1UXpZdU5qa3pPVFVnTVRrdU9EVXlOU0EzTGpBMk1UTTFJREl3SURjdU5EUTBORFFnTWpCSU1UY3VOVFUxTmtNeE55NDVNemcySURJd0lERTRMak13TmlBeE9TNDROVEkxSURFNExqVTNOamtnTVRrdU5UZzVPVU14T0M0NE5EYzRJREU1TGpNeU56UWdNVGtnTVRndU9UY3hNeUF4T1NBeE9DNDJWamd1T0VNeE9TQTRMalF5T0RjZ01UZ3VPRFEzT0NBNExqQTNNallnTVRndU5UYzJPU0EzTGpneE1EQTFRekU0TGpNd05pQTNMalUwTnpVZ01UY3VPVE00TmlBM0xqUWdNVGN1TlRVMU5pQTNMalJhSWlCbWFXeHNQU0lqTkRrME5UUkdJaTgrQ2p3dmMzWm5QZ289XCIpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDQ1cHg7XHJcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTNweCk7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9Ki9cclxufVxyXG5cclxuQG1peGluIHdpZHRoLWV4cGFuZGVkIHtcclxuICBtYXJnaW4tbGVmdDogY2FsYygoMTAwJSAtIDEwMHZ3KSAvIDIpO1xyXG4gIG1hcmdpbi1yaWdodDogY2FsYygoMTAwJSAtIDEwMHZ3KSAvIDIpO1xyXG4gIHdpZHRoOiAxMDB2dztcclxufVxyXG5AbWl4aW4gZnVsbC13aWR0aCB7XHJcbiAgQGluY2x1ZGUgd2lkdGgtZXhwYW5kZWQoKTtcclxufVxyXG5cclxuQG1peGluIGhpZGUtc2Nyb2xsYmFyIHtcclxuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XHJcbiAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgd2lkdGg6IDFweDtcclxuICB9XHJcblxyXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc2Nyb2xsLXgtZmxleCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG5cclxuICBAaW5jbHVkZSBoaWRlLXNjcm9sbGJhcjtcclxufVxyXG5cclxuQG1peGluIGltYWdlLWZ1bGwtY29udGVudCB7XHJcbiAgaW1nIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZpeGVkLWJvdHRvbSB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogYXV0bztcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICB6LWluZGV4OiAxMTAxO1xyXG59XHJcblxyXG5AbWl4aW4gcHgtbW9iaWxlIHtcclxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XHJcbiAgcGFkZGluZy1yaWdodDogMTZweDtcclxufVxyXG5cclxuXHJcbkBtaXhpbiBzZWxlY3RXcmFwcGVyIHtcclxuICBzZWxlY3Qge1xyXG4gICAgb3V0bGluZS1jb2xvcjogJGNvbG9yLXNreTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1za3k7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICBcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgXHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvYXNzZXRzL2ljb25zL2Fycm93LnBuZ1wiKSA5MCUgI2YwZjBmMCBuby1yZXBlYXQ7XHJcbiAgXHJcbiAgICAvLyBAaW5jbHVkZSBtcShiYWNrZ3JvdW5kLXBvc2l0aW9uLCA5NSUsICRzbSk7XHJcbiAgXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYmFja2dyb3VuZDogdXJsKFwiL2Fzc2V0cy9pY29ucy9hcnJvdy5wbmdcIikgOTAlICR3aGl0ZSBuby1yZXBlYXQ7XHJcbiAgICAgIG91dGxpbmU6ICRjb2xvci1za3k7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBtZWRpYVBob25lIHtcclxuICAgICAgJiwgJjpmb2N1cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRleHQtbG9hZCB7XHJcbiAgY29sb3I6ICM5OTk5O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGFuaW1hdGlvbjogZmFkZVRleHQgNHMgaW5maW5pdGU7XHJcbn1cclxuIl19 */
