.intro-list {
  margin-bottom: 10rem; }

.intro__top {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  height: 110px;
  padding-bottom: 2rem; }

.intro__icon {
  position: absolute;
  top: 0; }

.intro__brow {
  display: block;
  margin-bottom: 1rem;
  color: #A0A0A0; }

.intro__b {
  position: relative;
  display: block;
  color: #404148;
  font-size: 3.8rem;
  line-height: 1.4; }

.intro__b--num {
  font-family: "Roboto", "NotoSans", sans-serif;
  font-size: 5.8rem;
  line-height: 1; }

[lang='en'] .intro__b--num {
  font-family: "Roboto", sans-serif; }

.intro__cont {
  padding-top: 2rem;
  border-top: 1px solid #101820;
  margin-bottom: 7.5rem; }

.intro__desc {
  margin: 0.5rem 0 0; }

.intro--global .intro__icon {
  left: 70px; }

@media (min-width: 45em) {
  .intro {
    width: calc(50% - 20px); }
  .intro:nth-child(even) {
    margin-left: 40px; }
  .intro-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-bottom: 12rem; }
  .intro__top {
    padding-bottom: 5rem;
    min-height: 130px; }
  .intro__brow {
    margin-bottom: 2rem; }
  .intro__b {
    font-size: 4.6rem; }
  .intro__b--num {
    font-size: 8.8rem;
    line-height: 0.9; }
  .intro--features .intro__icon {
    margin-top: 1.5rem; } }

@media (min-width: 75em) {
  .intro {
    width: calc(25% - 30px); }
  .intro:nth-child(3n) {
    margin-left: 4rem; }
  .intro-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .intro--global .intro__icon {
    left: 0; }
  .intro--features .intro__icon {
    left: 0;
    right: 0;
    text-align: center; } }

.award-modal.tingle-modal--visible .tingle-modal-box {
  -webkit-animation: none;
          animation: none; }

.award-modal .modal::after {
  bottom: 40px; }

.award-modal .modal-header {
  text-align: left;
  padding-top: 6rem;
  padding-bottom: 2rem; }

.award-modal .modal-body {
  max-height: calc( 100vh - 80px - 67px - 50px); }

.award-modal__cap {
  display: block;
  margin-bottom: 1rem;
  font-weight: normal;
  color: #B2B2B2; }

.award-modal__img {
  margin-bottom: 2rem; }

.award-modal__cont {
  padding-bottom: 5rem;
  word-break: keep-all;
  word-wrap: break-word; }

@media (min-width: 45em) {
  .award-modal {
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
  .award-modal .modal {
    width: 595px; }
  .award-modal .modal::after {
    bottom: 20px; }
  .award-modal .modal-header {
    padding: 13rem 5rem 2rem; }
  .award-modal .modal-close {
    top: 50px;
    right: 50px; }
  .award-modal .modal-body {
    margin: 0 5rem;
    padding-right: 1.6rem;
    max-height: calc(100vh - 150px - 135px); }
  .award-modal__img {
    margin-bottom: 3.5rem; } }

.award .prd-d1__h {
  font-family: "Roboto", "NotoSans", sans-serif;
  font-size: 2.8rem; }

[lang='en'] .award .prd-d1__h {
  font-family: "Roboto", sans-serif; }

.award .prd-d1__desc {
  font-size: 1.8rem; }

@media (min-width: 45em) {
  .award .prd-d1__h {
    font-size: 4.2rem; }
  .award .prd-d1__desc {
    font-size: 2rem; } }

.csr__hr {
  border: 0;
  height: 1px;
  background: rgba(16, 24, 32, 0.2);
  margin: 0 0 5.5rem; }

.csr__func {
  margin: 3rem 0 8rem; }

@media (min-width: 60em) {
  .csr__hr {
    margin-bottom: 8rem; }
  .csr__func {
    margin: 4rem 0 12rem; } }

.prd__pad {
  padding: 7.5rem 0 8rem; }

.prd__header {
  position: relative;
  margin-bottom: 3.5rem; }

.prd__more {
  bottom: 0; }

@media (min-width: 60em) {
  .prd__pad {
    padding: 10rem 0 11rem; }
  .prd__header {
    margin-bottom: 6.5rem; }
  .prd__more {
    bottom: 15px; } }

.prd-d1 {
  position: relative;
  height: 100vh;
  overflow: hidden; }

.mobile .prd-d1 {
  height: calc(var(--vh100, 100vh)); }

.prd-d1::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 40%;
  /*@if is-direction($direction) == false {
    $color-stops: $direction, $color-stops;
    $direction: 180deg;
  }*/
  background: rgba(16, 24, 32, 0.1);
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(16, 24, 32, 0.1)), to(rgba(16, 24, 32, 0)));
  background: -o-linear-gradient(bottom, rgba(16, 24, 32, 0.1), rgba(16, 24, 32, 0));
  background: linear-gradient(0deg, rgba(16, 24, 32, 0.1), rgba(16, 24, 32, 0));
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='rgba(16, 24, 32, 0.1)', endColorstr='rgba(16, 24, 32, 0)',GradientType=1 ); }

.prd-d1__bg {
  opacity: 0;
  -webkit-transform: scale(1.08);
      -ms-transform: scale(1.08);
          transform: scale(1.08); }

.prd-d1__box {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100%;
  padding-bottom: 12vh; }

.prd-d1__awards {
  margin-bottom: 1.5rem; }

.prd-d1__awards .award {
  display: inline-block;
  height: 40px;
  margin: 2rem 0.5rem 0 0; }

.prd-d1__awards .award__icon {
  width: auto;
  height: 100%; }

.prd-d1__func {
  margin-top: 2.5rem; }

.prd-d1.is-invert::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  background-color: rgba(16, 24, 32, 0.1); }

.prd-d1.is-invert .prd-d1__h, .prd-d1.is-invert .prd-d1__desc, .prd-d1.is-invert .prd-d1__btn {
  color: #FFF; }

.prd-d1.is-invert .prd-d1__btn {
  border-color: #FFF; }

@media (min-width: 45em) {
  .prd-d1__box {
    padding: 8vh 0 0;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .prd-d1__cont {
    width: 50%;
    max-width: 440px;
    opacity: 0; }
  .prd-d1__desc {
    margin: 1.5rem 0 3rem; }
  .prd-d1.is-rotate .prd-d1__cont {
    margin-left: auto; }
  [lang='en'] .root:not(.award) .prd-d1 .prd-d1__cont {
    width: 100%;
    max-width: none; }
  [lang='en'] .root:not(.award) .prd-d1 .prd-d1__desc {
    width: 100%;
    max-width: 550px; } }

@media (min-width: 75em) {
  .prd-d1.is-rotate .prd-d1__cont {
    margin-right: -10%; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3N1cHBvcnQvZnJvbnQvc2Nzcy9wYWdlL2Fib3V0L19hYm91dC1pbmRleC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3VwcG9ydC9mcm9udC9zY3NzL3V0aWwvX2Z1bmN0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9jb2xvci5qc29uIiwiLi4vLi4vLi4vLi4vLi4vc3VwcG9ydC9mcm9udC9zY3NzL3V0aWwvX3ZhcmlhYmxlLnNjc3MiLCJhYm91dC5jc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1tcS9fbXEuc2NzcyIsIi4uLy4uLy4uLy4uLy4uL3N1cHBvcnQvZnJvbnQvc2Nzcy9wYWdlL2Fib3V0L19hd2FyZC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vc3VwcG9ydC9mcm9udC9zY3NzL3V0aWwvX21peGluLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zdXBwb3J0L2Zyb250L3Njc3MvcGFnZS9hYm91dC9fY3NyLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9zdXBwb3J0L2Zyb250L3Njc3MvcGFnZS9wcm9kdWN0L19wcmQtZDEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRRTtFQUNFLG9CQ0NvQyxFQUFBOztBREV0QztFQUNFLGtCQUFrQjtFQUNsQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7TUFBdEIsMEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixxQkFBeUI7TUFBekIsa0JBQXlCO1VBQXpCLHlCQUF5QjtFQUN6QixhQUFhO0VBQ2Isb0JDUm9DLEVBQUE7O0FEV3RDO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU0sRUFBQTs7QUFHUjtFQUNFLGNBQWM7RUFDZCxtQkNsQm9DO0VEbUJwQyxjRXhCVyxFQUFBOztBRjJCYjtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsY0UzQlc7RUY0QlgsaUJDMUJvQztFRDJCcEMsZ0JBQWdCLEVBQUE7O0FBRWhCO0VBQ0Us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OUQsa0ZBQThEO0VBQTlELDZFQUE4RDtFQUs5RCw2SUFBaUksRUFBQTs7QUUxS2pJO0VBQ0UsVUFBVTtFQUNWLDhCQUFzQjtNQUF0QiwwQkFBc0I7VUFBdEIsc0JBQXNCLEVBQUE7O0FBR3hCO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHNCQUFxQjtNQUFyQixtQkFBcUI7VUFBckIscUJBQXFCO0VBQ3JCLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLG9CQUFvQixFQUFBOztBQUd0QjtFQUNFLHFCUjFEb0MsRUFBQTs7QVF5RHJDO0VBSUcscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWix1QkFBMEIsRUFBQTs7QUFON0I7RUFTSyxXQUFXO0VBQ1gsWUFBWSxFQUFBOztBQUtsQjtFQUNFLGtCUnpFb0MsRUFBQTs7QVF1QnhDO0VBdURNLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1QsWUFBWTtFQUNaLHVDUHBGUyxFQUFBOztBT3VCZjtFQW9FUSxXUHJHSSxFQUFBOztBT2lDWjtFQXdFUSxrQlB6R0ksRUFBQTs7QUdnT0o7RUlqSEo7SUFDRSxnQkFBZ0I7SUFDaEIseUJBQW1CO1FBQW5CLHNCQUFtQjtZQUFuQixtQkFBbUIsRUFBQTtFQUdyQjtJQUNFLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsVUFBVSxFQUFBO0VBR1o7SUFDRSxxQlJqSGtDLEVBQUE7RVF1QnhDO0lBZ0dVLGlCQUFpQixFQUFBO0VMa0l6QjtJS3pIVSxXQUFXO0lBQ1gsZUFBZSxFQUFBO0VMMkh6QjtJS3ZIVSxXQUFXO0lBQ1gsZ0JBQWdCLEVBQUEsRUFDakI7O0FKK0VIO0VJL0xSO0lBMEhVLGtCQUFrQixFQUFBLEVBQ25CIiwiZmlsZSI6ImFib3V0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBYm91dCA+IEluZGV4XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWJvdXRfX2ludHJvIHtcbn1cblxuLmludHJvIHtcbiAgJi1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTAwKTtcbiAgfVxuXG4gICZfX3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGhlaWdodDogMTEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gIH1cblxuICAmX19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgJl9fYnJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcbiAgICBjb2xvcjogJGdyYXk0O1xuICB9XG5cbiAgJl9fYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkZ3JheTc7XG4gICAgZm9udC1zaXplOiByZW0oMzgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAmLS1udW0ge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LXN1Yi1rb3I7XG4gICAgICBmb250LXNpemU6IHJlbSg1OCk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgW2xhbmc9J2VuJ10gJiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1tYWluLWVuZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb250IHtcbiAgICBwYWRkaW5nLXRvcDogcmVtKDIwKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyYXk5O1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSg3NSk7XG4gIH1cblxuICAmX19kZXNjIHtcbiAgICBtYXJnaW46IHJlbSg1KSAwIDA7XG4gIH1cblxuICAmLS1nbG9iYWwge1xuICAgIC5pbnRybyB7XG4gICAgICAmX19pY29uIHtcbiAgICAgICAgbGVmdDogNzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtcShtZWRpdW0pIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTtcblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgIH1cblxuICAgICYtbGlzdCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEyMCk7XG4gICAgfVxuXG4gICAgJl9fdG9wIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNTApO1xuICAgICAgbWluLWhlaWdodDogMTMwcHg7XG4gICAgfVxuXG4gICAgJl9fYnJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgIH1cblxuICAgICZfX2Ige1xuICAgICAgZm9udC1zaXplOiByZW0oNDYpO1xuXG4gICAgICAmLS1udW0ge1xuICAgICAgICBmb250LXNpemU6IHJlbSg4OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tZmVhdHVyZXMge1xuICAgICAgLmludHJvIHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE1KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xKHgtbGFyZ2UpIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAzMHB4KTtcblxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtKDQwKTtcbiAgICB9XG5cbiAgICAmLWxpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAmLS1nbG9iYWwge1xuICAgICAgLmludHJvIHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtLWZlYXR1cmVzIHtcbiAgICAgIC5pbnRybyB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tZ29hbCB7XG4gICAgICAuaW50cm8ge1xuICAgICAgICAmX19iIHtcbiAgICAgICAgICAvLyBmb250LXNpemU6IHJlbSgzOCk7XG4gICAgICAgICAgLy8gbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZ1bmN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBmb250LWljb24gdW5pY29kZSDsspjrpqxcbkBmdW5jdGlvbiB1bmljb2RlKCRzdHIpIHtcbiAgQHJldHVybiB1bnF1b3RlKCdcXCcnKSt1bnF1b3RlKHN0ci1pbnNlcnQoJHN0ciwgJ1xcXFwnLCAxKSkrdW5xdW90ZSgnXFwnJyk7XG59XG5cbkBmdW5jdGlvbiByZW0oJHB4KSB7XG4gIEByZXR1cm4gI3skcHggLyAkYmFzZS1mb250LXNpemV9cmVtO1xufVxuXG5AZnVuY3Rpb24gZW0oJGVtLCAkY29udGV4dCkge1xuICBAcmV0dXJuICN7JGVtIC8gJGNvbnRleHR9ZW07XG59XG4iLCIkd2hpdGU6ICNGRkY7XG4kZ3JheTA6ICNGN0Y3Rjc7XG4kZ3JheTE6ICNFRkVGRUY7XG4kZ3JheTI6ICNEOEQ4RDg7XG4kZ3JheTM6ICNCMkIyQjI7XG4kZ3JheTQ6ICNBMEEwQTA7XG4kZ3JheTU6ICM3Njc3N0I7XG4kZ3JheTY6ICM1NDU2NUI7XG4kZ3JheTc6ICM0MDQxNDg7XG4kZ3JheTg6ICMyQjJEMzU7XG4kZ3JheTk6ICMxMDE4MjA7XG4kZm9nOiAkZ3JheTA7XG4kYXNoOiAkZ3JheTE7XG4kc2lsdmVyLWxpZ2h0OiAkZ3JheTI7XG4kc2lsdmVyOiAkZ3JheTM7XG4kc2lsdmVyLWRhcms6ICRncmF5NDtcbiRncmF5LWxpZ2h0OiAkZ3JheTU7XG4kZ3JheTogJGdyYXk2O1xuJGdyYXktZGFyazogJGdyYXk3O1xuJGRhcms6ICRncmF5ODtcbiRpbms6ICRncmF5OTtcbiRjb2xvci1wcmltYXJ5LXdoaXRlOiAkd2hpdGU7XG4kY29sb3ItcHJpbWFyeS1wYWxlOiAkZ3JheTM7XG4kY29sb3ItcHJpbWFyeS1saWdodDogJGdyYXk2O1xuJGNvbG9yLXByaW1hcnk6ICRncmF5OTtcbiRjb2xvci1zZWNvbmRhcnk6ICMwMDcxRTM7XG4kY29sb3Itc2Vjb25kYXJ5LWxpZ2h0OiAjMjk5N0ZGO1xuJGNvbG9yLXNlY29uZGFyeS1kYXJrOiAjMDA2NkNDO1xuJGNvbG9yLWVycm9yOiAjRTgxNDI1OyIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBWYXJpYWJsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gYnJlYWtwb2ludHNcbiRtcS1icmVha3BvaW50czogKFxuICBzbWFsbDogNTYwcHgsXG4gIG1lZGl1bTogNzIwcHgsXG4gIGxhcmdlOiA5NjBweCxcbiAgeC1sYXJnZTogMTIwMHB4LFxuICB4eC1sYXJnZTogMTYwMHB4LFxuKTtcblxuLy8gZ3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRndXR0ZXItc206IDEwcHg7XG4kZ3V0dGVyLWxnOiAyMHB4O1xuJGdyaWQtY29sdW1ucy1zbTogNjtcbiRncmlkLWNvbHVtbnMtbGc6IDEyO1xuXG4vLyBsYXlvdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kdy1zbWFsbDogMzYwcHg7XG4kdy1kZWZhdWx0OiAxMTMwcHg7XG4kdy13cmFwOiAxMzYwcHg7XG4kdy1uYXJyb3c6IDY3MHB4O1xuXG4kb2Zmc2V0LXNtOiAyMHB4O1xuJG9mZnNldC1tZDogNDZweDtcbiRvZmZzZXQtbGc6IDQwcHg7XG5cbiRoZWFkZXItaGVpZ2h0LXNtOiA2MHB4OyAvLyDrqqjrsJTsnbwgaGVhZGVyIOuGkuydtFxuJGhlYWRlci1oZWlnaHQtbGc6IDY0cHg7IC8vIOuNsOyKpO2BrO2DkSBoZWFkZXIg64aS7J20XG5cbiRsbmItaGVpZ2h0LXNtOiA2MHB4OyAvLyDrjbDsiqTtgaztg5EgbG5iIOuGkuydtFxuJGxuYi1oZWlnaHQtbGc6IDY0cHg7IC8vIOuNsOyKpO2BrO2DkSBsbmIg64aS7J20XG4vLyAkaGVhZGVyLWhlaWdodC1jb21wYWN0OiA0NXB4OyAvLyDrjbDsiqTtgaztg5EgaGVhZGVyIOy1nOyGjO2ZlCDsi5wg64aS7J20XG5cbiRoZWFkZXItemluZGV4OiAxMDA7XG5cbiRpbnB1dC1wYWRkaW5nLXRiOiAxNXB4O1xuJGlucHV0LXBhZGRpbmctbHI6IDE1cHg7XG5cbi8vIGZvbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGJhc2UtZm9udC1zaXplOiAxMDsgLy8gZnVuY3Rpb24gcmVtKClcblxuJGZvbnQtbGlzdC1rb3I6IChcbiAgLyogW2ZpbGVuYW1lXTogKFtmb250LWZhbWlseV06IFt3ZWlnaHRdKSovXG4gIE5vdG9TYW5zLUJvbGQ6IChOb3RvU2FucywgNzAwKSxcbiAgTm90b1NhbnMtUmVndWxhcjogKE5vdG9TYW5zLCA0MDApLFxuICBSb2JvdG8ta29yLUJvbGQ6IChSb2JvdG8sIDcwMCksXG4gIFJvYm90by1rb3ItTWVkaXVtOiAoUm9ib3RvLCA1MDApLFxuICBSb2JvdG8ta29yLVJlZ3VsYXI6IChSb2JvdG8sIDQwMClcbik7XG5cbiRmb250LWxpc3QtZW5nOiAoXG4gIC8qIFtmaWxlbmFtZV06IChbZm9udC1mYW1pbHldOiBbd2VpZ2h0XSkqL1xuICBSb2JvdG8tZW5nLUJvbGQ6IChSb2JvdG8sIDcwMCksXG4gIFJvYm90by1lbmctTWVkaXVtOiAoUm9ib3RvLCA1MDApLFxuICBSb2JvdG8tZW5nLVJlZ3VsYXI6IChSb2JvdG8sIDQwMClcbik7XG5cblxuLy8gJ01hbGd1biBHb3RoaWMnLCAn66eR7J2AIOqzoOuUlScsXG4vLyAn64+L7JuAJywgZG90dW1cbiRmb250LW1haW4ta29yOiAnTm90b1NhbnMnLCBzYW5zLXNlcmlmO1xuJGZvbnQtc3ViLWtvcjogJ1JvYm90bycsICdOb3RvU2FucycsIHNhbnMtc2VyaWY7XG5cbiRmb250LW1haW4tZW5nOiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcblxuJGZvbnQtaWNvbjogJ2ljb24nO1xuJGljb25zOiAoKTtcblxuLy8gY29sb3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICcuLi9jb2xvci5qc29uJztcblxuLy8g66as7Iqk7Yq4IOqzte2GtVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRsaXN0LWJnLWNvbG9yOiAkZ3JheTE7XG4kbGlzdC1ib3JkZXItY29sb3I6ICRncmF5MjtcbiRsaXN0LWJvcmRlci1kYXJrLWNvbG9yOiAkZ3JheTc7XG4kbGlzdC1wYWRkaW5nLWxyOiAxNXB4O1xuXG4kZWxlbWVudC1tYXJnaW4tbHI6IDAuNWVtO1xuXG4vLyDslaDri4jrqZTsnbTshZhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kZHVyOiAwLjRzO1xuJGVhc2U6IGN1YmljLWJlemllcigwLjI1LCAwLjQ1LCAwLjUsIDEpO1xuIiwiLmludHJvLWxpc3Qge1xuICBtYXJnaW4tYm90dG9tOiAxMHJlbTsgfVxuXG4uaW50cm9fX3RvcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgaGVpZ2h0OiAxMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cblxuLmludHJvX19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IH1cblxuLmludHJvX19icm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiAjQTBBMEEwOyB9XG5cbi5pbnRyb19fYiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjNDA0MTQ4O1xuICBmb250LXNpemU6IDMuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuICAuaW50cm9fX2ItLW51bSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiTm90b1NhbnNcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDUuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIFtsYW5nPSdlbiddIC5pbnRyb19fYi0tbnVtIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBzYW5zLXNlcmlmOyB9XG5cbi5pbnRyb19fY29udCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzEwMTgyMDtcbiAgbWFyZ2luLWJvdHRvbTogNy41cmVtOyB9XG5cbi5pbnRyb19fZGVzYyB7XG4gIG1hcmdpbjogMC41cmVtIDAgMDsgfVxuXG4uaW50cm8tLWdsb2JhbCAuaW50cm9fX2ljb24ge1xuICBsZWZ0OiA3MHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0NWVtKSB7XG4gIC5pbnRybyB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7IH1cbiAgICAuaW50cm86bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4OyB9XG4gICAgLmludHJvLWxpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycmVtOyB9XG4gICAgLmludHJvX190b3Age1xuICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gICAgICBtaW4taGVpZ2h0OiAxMzBweDsgfVxuICAgIC5pbnRyb19fYnJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgLmludHJvX19iIHtcbiAgICAgIGZvbnQtc2l6ZTogNC42cmVtOyB9XG4gICAgICAuaW50cm9fX2ItLW51bSB7XG4gICAgICAgIGZvbnQtc2l6ZTogOC44cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMC45OyB9XG4gICAgLmludHJvLS1mZWF0dXJlcyAuaW50cm9fX2ljb24ge1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmludHJvIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAzMHB4KTsgfVxuICAgIC5pbnRybzpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cmVtOyB9XG4gICAgLmludHJvLWxpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5pbnRyby0tZ2xvYmFsIC5pbnRyb19faWNvbiB7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgLmludHJvLS1mZWF0dXJlcyAuaW50cm9fX2ljb24ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLmF3YXJkLW1vZGFsLnRpbmdsZS1tb2RhbC0tdmlzaWJsZSAudGluZ2xlLW1vZGFsLWJveCB7XG4gIGFuaW1hdGlvbjogbm9uZTsgfVxuXG4uYXdhcmQtbW9kYWwgLm1vZGFsOjphZnRlciB7XG4gIGJvdHRvbTogNDBweDsgfVxuXG4uYXdhcmQtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctdG9wOiA2cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuXG4uYXdhcmQtbW9kYWwgLm1vZGFsLWJvZHkge1xuICBtYXgtaGVpZ2h0OiBjYWxjKCAxMDB2aCAtIDgwcHggLSA2N3B4IC0gNTBweCk7IH1cblxuLmF3YXJkLW1vZGFsX19jYXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICNCMkIyQjI7IH1cblxuLmF3YXJkLW1vZGFsX19pbWcge1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG5cbi5hd2FyZC1tb2RhbF9fY29udCB7XG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0NWVtKSB7XG4gIC5hd2FyZC1tb2RhbCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gICAgLmF3YXJkLW1vZGFsIC5tb2RhbCB7XG4gICAgICB3aWR0aDogNTk1cHg7IH1cbiAgICAgIC5hd2FyZC1tb2RhbCAubW9kYWw6OmFmdGVyIHtcbiAgICAgICAgYm90dG9tOiAyMHB4OyB9XG4gICAgICAuYXdhcmQtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDEzcmVtIDVyZW0gMnJlbTsgfVxuICAgICAgLmF3YXJkLW1vZGFsIC5tb2RhbC1jbG9zZSB7XG4gICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgcmlnaHQ6IDUwcHg7IH1cbiAgICAgIC5hd2FyZC1tb2RhbCAubW9kYWwtYm9keSB7XG4gICAgICAgIG1hcmdpbjogMCA1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjZyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNTBweCAtIDEzNXB4KTsgfVxuICAgIC5hd2FyZC1tb2RhbF9faW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMuNXJlbTsgfSB9XG5cbi5hd2FyZCAucHJkLWQxX19oIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiTm90b1NhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyLjhyZW07IH1cbiAgW2xhbmc9J2VuJ10gLmF3YXJkIC5wcmQtZDFfX2gge1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBzYW5zLXNlcmlmOyB9XG5cbi5hd2FyZCAucHJkLWQxX19kZXNjIHtcbiAgZm9udC1zaXplOiAxLjhyZW07IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ1ZW0pIHtcbiAgLmF3YXJkIC5wcmQtZDFfX2gge1xuICAgIGZvbnQtc2l6ZTogNC4ycmVtOyB9XG4gIC5hd2FyZCAucHJkLWQxX19kZXNjIHtcbiAgICBmb250LXNpemU6IDJyZW07IH0gfVxuXG4uY3NyX19ociB7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTYsIDI0LCAzMiwgMC4yKTtcbiAgbWFyZ2luOiAwIDAgNS41cmVtOyB9XG5cbi5jc3JfX2Z1bmMge1xuICBtYXJnaW46IDNyZW0gMCA4cmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5jc3JfX2hyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cmVtOyB9XG4gIC5jc3JfX2Z1bmMge1xuICAgIG1hcmdpbjogNHJlbSAwIDEycmVtOyB9IH1cblxuLnByZF9fcGFkIHtcbiAgcGFkZGluZzogNy41cmVtIDAgOHJlbTsgfVxuXG4ucHJkX19oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDMuNXJlbTsgfVxuXG4ucHJkX19tb3JlIHtcbiAgYm90dG9tOiAwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5wcmRfX3BhZCB7XG4gICAgcGFkZGluZzogMTByZW0gMCAxMXJlbTsgfVxuICAucHJkX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDYuNXJlbTsgfVxuICAucHJkX19tb3JlIHtcbiAgICBib3R0b206IDE1cHg7IH0gfVxuXG4ucHJkLWQxIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tb2JpbGUgLnByZC1kMSB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoMTAwLCAxMDB2aCkpOyB9XG4gIC5wcmQtZDE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiA0MCU7XG4gICAgLypAaWYgaXMtZGlyZWN0aW9uKCRkaXJlY3Rpb24pID09IGZhbHNlIHtcbiAgICAkY29sb3Itc3RvcHM6ICRkaXJlY3Rpb24sICRjb2xvci1zdG9wcztcbiAgICAkZGlyZWN0aW9uOiAxODBkZWc7XG4gIH0qL1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTYsIDI0LCAzMiwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKFwiMGRlZ1wiKSwgcmdiYSgxNiwgMjQsIDMyLCAwLjEpLCByZ2JhKDE2LCAyNCwgMzIsIDApKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKFwiMGRlZ1wiKSwgcmdiYSgxNiwgMjQsIDMyLCAwLjEpLCByZ2JhKDE2LCAyNCwgMzIsIDApKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgxNiwgMjQsIDMyLCAwLjEpLCByZ2JhKDE2LCAyNCwgMzIsIDApKTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0ncmdiYSgxNiwgMjQsIDMyLCAwLjEpJywgZW5kQ29sb3JzdHI9J3JnYmEoMTYsIDI0LCAzMiwgMCknLEdyYWRpZW50VHlwZT0xICk7IH1cbiAgLnByZC1kMV9fYmcge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTsgfVxuICAucHJkLWQxX19ib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnZoOyB9XG4gIC5wcmQtZDFfX2F3YXJkcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgLnByZC1kMV9fYXdhcmRzIC5hd2FyZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBtYXJnaW46IDJyZW0gMC41cmVtIDAgMDsgfVxuICAgICAgLnByZC1kMV9fYXdhcmRzIC5hd2FyZF9faWNvbiB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnByZC1kMV9fZnVuYyB7XG4gICAgbWFyZ2luLXRvcDogMi41cmVtOyB9XG4gIC5wcmQtZDEuaXMtaW52ZXJ0OjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE2LCAyNCwgMzIsIDAuMSk7IH1cbiAgLnByZC1kMS5pcy1pbnZlcnQgLnByZC1kMV9faCwgLnByZC1kMS5pcy1pbnZlcnQgLnByZC1kMV9fZGVzYywgLnByZC1kMS5pcy1pbnZlcnQgLnByZC1kMV9fYnRuIHtcbiAgICBjb2xvcjogI0ZGRjsgfVxuICAucHJkLWQxLmlzLWludmVydCAucHJkLWQxX19idG4ge1xuICAgIGJvcmRlci1jb2xvcjogI0ZGRjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDVlbSkge1xuICAgIC5wcmQtZDFfX2JveCB7XG4gICAgICBwYWRkaW5nOiA4dmggMCAwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5wcmQtZDFfX2NvbnQge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNDQwcHg7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLnByZC1kMV9fZGVzYyB7XG4gICAgICBtYXJnaW46IDEuNXJlbSAwIDNyZW07IH1cbiAgICAucHJkLWQxLmlzLXJvdGF0ZSAucHJkLWQxX19jb250IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgW2xhbmc9J2VuJ10gLnJvb3Q6bm90KC5hd2FyZCkgLnByZC1kMSAucHJkLWQxX19jb250IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgW2xhbmc9J2VuJ10gLnJvb3Q6bm90KC5hd2FyZCkgLnByZC1kMSAucHJkLWQxX19kZXNjIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiA1NTBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLnByZC1kMS5pcy1yb3RhdGUgLnByZC1kMV9fY29udCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMCU7IH0gfVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICBAZWxzZSB7XG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cblxuICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgbWVkaWEgcXVlcnkgcHJlZml4ICdhbGwgYW5kICdcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6IHN0ci1zbGljZSh1bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG59XG5cbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG4vLy9cbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBjb2xvcjogI0MwOTg1MztcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XG4gICAgICAgICAgICAkd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xuICAgIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWJvdXQgPiBBd2FyZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5hd2FyZCB7XG4gICYtbW9kYWwge1xuICAgICYudGluZ2xlLW1vZGFsLS12aXNpYmxlIHtcbiAgICAgIC50aW5nbGUtbW9kYWwtYm94IHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbCB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJvdHRvbTogNDBweDtcbiAgICAgIH1cbiAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjApO1xuICAgICAgfVxuXG4gICAgICAmLWJvZHkge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAgIDEwMHZoIC0gODBweCAtIDY3cHggLSA1MHB4XG4gICAgICAgICk7IC8vIDEwMHZoIC0gcGFkZGluZyAtIGhlaWdodCAtIGdhcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAkZ3JheTM7XG4gICAgfVxuXG4gICAgJl9faW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgfVxuXG4gICAgJl9fY29udCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDUwKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEobWVkaXVtKSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgIC5tb2RhbCB7XG4gICAgICAgIHdpZHRoOiA1OTVweDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgIHBhZGRpbmc6IHJlbSgxMzApIHJlbSg1MCkgcmVtKDIwKTtcbiAgICAgICAgfVxuICAgICAgICAmLWNsb3NlIHtcbiAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgcmlnaHQ6IDUwcHg7XG4gICAgICAgIH1cbiAgICAgICAgJi1ib2R5IHtcbiAgICAgICAgICBtYXJnaW46IDAgcmVtKDUwKTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTYpO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNTBweCAtIDEzNXB4KTsgLy8gMTAwdmggLSBwYWRkaW5nIC0gaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICZfX2ltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByZC1kMSB7XG4gICAgJl9faCB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtc3ViLWtvcjtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDI4KTtcblxuICAgICAgW2xhbmc9J2VuJ10gJiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1tYWluLWVuZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kZXNjIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtcShtZWRpdW0pIHtcbiAgICAgICZfX2gge1xuICAgICAgICBmb250LXNpemU6IHJlbSg0Mik7XG4gICAgICB9XG5cbiAgICAgICZfX2Rlc2Mge1xuICAgICAgICBmb250LXNpemU6IHJlbSgyMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWl4aW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpY29uLXN0eWxlcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdpY29uJztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIC8vIHNwZWFrOiBub25lOyAvLyBvbmx5IG5lY2Vzc2FyeSBpZiBub3QgdXNpbmcgdGhlIHByaXZhdGUgdW5pY29kZSByYW5nZSAoZmlyc3RHbHlwaCBvcHRpb24pXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbkBtaXhpbiBpY29uKCRmaWxlbmFtZSwgJHBvc2l0aW9uOiBiZWZvcmUsICRzdHlsZXM6IHRydWUpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBib3RoIHtcbiAgICAkcG9zaXRpb246ICdiZWZvcmUsICY6YWZ0ZXInO1xuICB9XG5cbiAgLy8gRWl0aGVyIGEgOmJlZm9yZSBvciA6YWZ0ZXIgcHNldWRvLWVsZW1lbnQsIG9yIGJvdGgsIGRlZmF1bHRpbmcgdG8gOmJlZm9yZVxuICAmOiN7JHBvc2l0aW9ufSB7XG4gICAgQGlmICRmaWxlbmFtZSB7XG4gICAgICAvLyBBIHBhcnRpY3VsYXIgaWNvbiBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkaWNvbi1jaGFyLCAkZmlsZW5hbWUpIHtcbiAgICAgICAgJGljb24tdW5pY29kZTogbWFwLWdldCgkaWNvbi1jaGFyLCAkZmlsZW5hbWUpO1xuICAgICAgICBjb250ZW50OiB1bmljb2RlKCN7JGljb24tdW5pY29kZX0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgICBAd2FybiBcIlxcXCIjeyRmaWxlbmFtZX0uc3ZnXFxcIiBmaWxlIGBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwcGluZ1wiO1xuICAgICAgfVxuICAgIH1cbiAgICBAaWYgJHN0eWxlcyB7XG4gICAgICBAaW5jbHVkZSBpY29uLXN0eWxlcztcbiAgICB9XG4gICAgLy8gSW5jbHVkZSBhbnkgZXh0cmEgcnVsZXMgc3VwcGxpZWQgZm9yIHRoZSBwc2V1ZG8tZWxlbWVudFxuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIGZvbnQtZmFjZSDshKDslrgg66eM65Ok6riwXG5AbWl4aW4gZm9udC1mYWNlKCRmYW1pbHksICRmaWxlbmFtZSwgJHdlaWdodDogNDAwKSB7XG4gIC8vbm9pbnNwZWN0aW9uIENzc1Vua25vd25UYXJnZXRcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICcjeyRmYW1pbHl9JztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgc3JjOiB1cmwoLi4vZm9udC8jeyRmaWxlbmFtZX0ud29mZjIpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCguLi9mb250LyN7JGZpbGVuYW1lfS53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbiAgfVxufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXVuZGVybGluZSgkY29sb3IsICRoZWlnaHQpIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCBjYWxjKDEwMCUgLSAjeyRoZWlnaHR9KSwgJGNvbG9yICN7JGhlaWdodH0pO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDAlIDEwMCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtc2l6ZSAwLjNzO1xufVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICB6b29tOiAxO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbkBtaXhpbiBmdWxsLXBvcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xufVxuXG5AbWl4aW4gYnJlYWstd29yZCB7XG4gIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbkBtaXhpbiBlbGxpcHNpcygkbGluZXM6IGZhbHNlKSB7XG4gIEBpZiAoJGxpbmVzKSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRsaW5lcztcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuICB9IEBlbHNlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgd29yZC13cmFwOiBub3JtYWw7XG4gIH1cbn1cblxuQG1peGluIHYtbWlkKCRjaGlsZDogJyYtY2VsbCcpIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAjeyRjaGlsZH0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cblxuQG1peGluIGZsZXgtbWlkKCkge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcblxuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5AbWl4aW4gYmFyLWxpc3QoXG4gICRtYXJnaW4sXG4gICRpbmxpbmUtc3BhY2U6IDFweCxcbiAgJGJhci1oZWlnaHQ6IDEwcHgsXG4gICRiYXItd2lkdGg6IDFweCxcbiAgJGJhci1jb2xvcjogJHNpbHZlci1saWdodFxuKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogJG1hcmdpbiAtICRpbmxpbmUtc3BhY2U7XG4gIHBhZGRpbmctbGVmdDogJG1hcmdpbiArICRiYXItd2lkdGg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6ICRiYXItaGVpZ2h0O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogJGJhci1oZWlnaHQgLyAtMjtcbiAgICBib3JkZXItbGVmdDogJGJhci13aWR0aCBzb2xpZCAkYmFyLWNvbG9yO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yXG4gICAgKCRkaXJlY3Rpb24gPT0gZG93bikgb3JcbiAgICAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3JcbiAgICAoJGRpcmVjdGlvbiA9PSBsZWZ0KVxuICB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcbiAgLypAaWYgaXMtZGlyZWN0aW9uKCRkaXJlY3Rpb24pID09IGZhbHNlIHtcbiAgICAkY29sb3Itc3RvcHM6ICRkaXJlY3Rpb24sICRjb2xvci1zdG9wcztcbiAgICAkZGlyZWN0aW9uOiAxODBkZWc7XG4gIH0qL1xuXG4gIGJhY2tncm91bmQ6IG50aChudGgoJGNvbG9yLXN0b3BzLCAxKSwgMSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksICRjb2xvci1zdG9wcyk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KFxuICAgIGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksXG4gICAgJGNvbG9yLXN0b3BzXG4gICk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh1bnF1b3RlKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xuXG4gICRzdGFydC1jb2xvcjogbnRoKCRjb2xvci1zdG9wcywgMSk7XG4gICRlbmQtY29sb3I6IG50aCgkY29sb3Itc3RvcHMsIDIpO1xuXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjeyRzdGFydC1jb2xvcn0nLCBlbmRDb2xvcnN0cj0nI3skZW5kLWNvbG9yfScsR3JhZGllbnRUeXBlPTEgKTsgLy8gSUU2LTkgZmFsbGJhY2sgb24gaG9yaXpvbnRhbCBncmFkaWVudFxufVxuXG4vLyBNaXhpbiB0byBjdXN0b21pemUgc2Nyb2xsYmFyc1xuLy8gQGluY2x1ZGUgc2Nyb2xsYmFycyhzZWxlY3RvciwgLjVlbSwgZm9yZWdyb3VuZCwgYmFja2dyb3VuZCk7XG5AbWl4aW4gc2Nyb2xsYmFycygkc2VsZWN0b3IsICRzaXplLCAkZm9yZWdyb3VuZC1jb2xvciwgJGJhY2tncm91bmQtY29sb3IpIHtcbiAgLy8gRm9yIC13ZWJraXQtXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogJGZvcmVncm91bmQtY29sb3I7XG4gIH1cblxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIC8vIEZvciAtbXMtXG4gIEBpZiAkc2VsZWN0b3IgPT0gbnVsbCB7XG4gICAgYm9keSB7XG4gICAgICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBzY3JvbGxiYXItYXJyb3ctY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgc2Nyb2xsYmFyLXRyYWNrLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBzY3JvbGxiYXItZmFjZS1jb2xvcjogJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBzY3JvbGxiYXItYXJyb3ctY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgc2Nyb2xsYmFyLXRyYWNrLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9iamVjdGZpdC1wb2x5ZmlsbCgpIHtcbiAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZnVsbC1kZWNvKCR0eXBlLCAkY29sb3IsICRwb3NpdGlvbjogYWZ0ZXIpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OiN7JHBvc2l0aW9ufSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLSRvZmZzZXQtc207XG5cbiAgICBAaWYgJHR5cGUgPT0gYmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgQGlmICR0eXBlID09IGJvcmRlciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xuICB9XG5cbiAgQGluY2x1ZGUgbXEobWVkaXVtKSB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IC0kb2Zmc2V0LW1kO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xKHgtbGFyZ2UpIHtcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgbGVmdDogLSRvZmZzZXQtbGc7XG4gICAgfVxuICB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWJvdXQgPiBDU1Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uY3NyIHtcbiAgJl9faHIge1xuICAgIGJvcmRlcjogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRncmF5OSwgMC4yKTtcbiAgICBtYXJnaW46IDAgMCByZW0oNTUpO1xuICB9XG5cbiAgJl9fZnVuYyB7XG4gICAgbWFyZ2luOiByZW0oMzApIDAgcmVtKDgwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xKGxhcmdlKSB7XG4gICAgJl9faHIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDgwKTtcbiAgICB9XG5cbiAgICAmX19mdW5jIHtcbiAgICAgIG1hcmdpbjogcmVtKDQwKSAwIHJlbSgxMjApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByb2R1Y3QgPiBkZXB0aCAxXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucHJkIHtcbiAgJl9fcGFkIHtcbiAgICBwYWRkaW5nOiByZW0oNzUpIDAgcmVtKDgwKTtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgzNSk7XG4gIH1cblxuICAmX19tb3JlIHtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICBAaW5jbHVkZSBtcShsYXJnZSkge1xuICAgICZfX3BhZCB7XG4gICAgICBwYWRkaW5nOiByZW0oMTAwKSAwIHJlbSgxMTApO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oNjUpO1xuICAgIH1cblxuICAgICZfX21vcmUge1xuICAgICAgYm90dG9tOiAxNXB4O1xuICAgIH1cbiAgfVxufVxuXG4ucHJkLWQxIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC5tb2JpbGUgJiB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXZoMTAwLCAxMDB2aCkpO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDQwJTtcbiAgICBAaW5jbHVkZSBncmFkaWVudCgnMGRlZycsIHJnYmEoJGdyYXk5LCAwLjEpLCByZ2JhKCRncmF5OSwgMCkpO1xuICB9XG5cbiAgJl9fYmcge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTtcbiAgfVxuXG4gICZfX2JveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDEydmg7XG4gIH1cblxuICAmX19hd2FyZHMge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG5cbiAgICAuYXdhcmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgbWFyZ2luOiByZW0oMjApIHJlbSg1KSAwIDA7XG5cbiAgICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2Z1bmMge1xuICAgIG1hcmdpbi10b3A6IHJlbSgyNSk7XG4gIH1cblxuICAmLmlzLWludmVydCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRncmF5OSwgMC4xKTtcbiAgICB9XG5cbiAgICAucHJkLWQxIHtcbiAgICAgICZfX2gsXG4gICAgICAmX19kZXNjLFxuICAgICAgJl9fYnRuIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJl9fYnRuIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXEobWVkaXVtKSB7XG4gICAgJl9fYm94IHtcbiAgICAgIHBhZGRpbmc6IDh2aCAwIDA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2NvbnQge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNDQwcHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICZfX2Rlc2Mge1xuICAgICAgbWFyZ2luOiByZW0oMTUpIDAgcmVtKDMwKTtcbiAgICB9XG5cbiAgICAmLmlzLXJvdGF0ZSB7XG4gICAgICAucHJkLWQxIHtcbiAgICAgICAgJl9fY29udCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAucm9vdDpub3QoLmF3YXJkKSAmIHtcbiAgICAgIFtsYW5nPSdlbiddICYge1xuICAgICAgICAucHJkLWQxIHtcbiAgICAgICAgICAmX19jb250IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICZfX2Rlc2Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xKHgtbGFyZ2UpIHtcbiAgICAmLmlzLXJvdGF0ZSB7XG4gICAgICAucHJkLWQxIHtcbiAgICAgICAgJl9fY29udCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */
