.progress {
  background-color: #293A42;
  padding: 88px 0 96px 0;
  color: #fff;
}
.progress.is-light {
  background-color: #E1DAD2;
  color: #414042;
}
.progress.is-light .progress__step {
  border-color: #414042;
}
.progress.is-light .progress__step .num-holder {
  color: #fff;
  background-color: #414042;
}
.progress.is-light .progress__step .title::after {
  background-color: #414042;
}
.progress.is-light .progress__step:nth-child(even)::before {
  background-color: #414042;
}
.progress.is-light .progress__step::after {
  background-color: #414042;
}
@media (max-width: 991.98px) {
  .progress {
    padding: 52px 0;
  }
}
.progress h2 {
  margin: 0 0 61px 0;
}
@media (max-width: 991.98px) {
  .progress h2 {
    margin: 0 0 32px 0;
  }
}
.progress__holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (max-width: 991.98px) {
  .progress__holder {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 16px;
  }
}
.progress__step {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 0 30px 0;
  border-bottom: 1px solid #fff;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  position: relative;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
}
@media (max-width: 991.98px) {
  .progress__step {
    border-bottom: none;
    padding: 0 0 35px 0;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 8px;
  }
  .progress__step::after {
    content: "";
    width: 1px;
    height: 24px;
    background-color: #fff;
    bottom: 0;
    position: absolute;
    left: 20px;
  }
}
.progress__step:nth-child(even) {
  border-top: 1px solid #fff;
  border-bottom: none;
  padding: 33px 0 0 0;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
}
@media (max-width: 991.98px) {
  .progress__step:nth-child(even) {
    border-top: none;
    padding: 0 0 35px 0;
  }
}
.progress__step:nth-child(even) .title {
  margin: 0;
}
.progress__step:nth-child(even) .title::after {
  display: none;
}
.progress__step:nth-child(even) .num-holder {
  margin: 10px 0 10px 0;
}
@media (max-width: 991.98px) {
  .progress__step:nth-child(even) .num-holder {
    margin: 0;
  }
}
.progress__step:nth-child(even)::before {
  content: "";
  width: 1px;
  height: 31px;
  background-color: #fff;
  top: 0;
  left: 50%;
  display: block;
  position: absolute;
}
@media (max-width: 991.98px) {
  .progress__step:nth-child(even)::before {
    display: none;
  }
}
.progress__step:nth-child(even):last-child::before {
  left: calc(50% - 23px);
}
.progress__step:first-child {
  padding-left: 67px;
}
@media (max-width: 991.98px) {
  .progress__step:first-child {
    padding-left: 0;
  }
}
.progress__step:last-child {
  padding-right: 44px;
}
@media (max-width: 991.98px) {
  .progress__step:last-child {
    padding: 0;
  }
}
.progress__step .num-holder {
  font-weight: 600;
  width: 41px;
  height: 41px;
  font-size: 20px;
  color: #293A42;
  background-color: #fff;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0 0 10px 0;
  position: relative;
}
@media (max-width: 991.98px) {
  .progress__step .num-holder {
    margin: 0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
}
.progress__step .title {
  position: relative;
  text-align: center;
  margin: 0 0 10px 0;
}
@media (max-width: 991.98px) {
  .progress__step .title {
    margin: 0;
    text-align: left;
  }
}
.progress__step .title::after {
  content: "";
  width: 1px;
  height: 31px;
  background-color: #fff;
  bottom: -40px;
  left: 50%;
  display: block;
  position: absolute;
}
@media (max-width: 991.98px) {
  .progress__step .title::after {
    display: none;
  }
}
@supports (-webkit-appearance:none){

}

 @media (max-width: 991.98px){

@supports (-webkit-appearance:none){

}

}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2dyZXNzL3Byb2dyZXNzLnNjc3MiLCIuLi9zcmMvc2Nzcy9jb21wb25lbnRzL3ZhcnMuc2NzcyIsInByb2dyZXNzL3Byb2dyZXNzLmNzcyIsIi4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSSx5QkM2Q1M7RUQ1Q1Qsc0JBQUE7RUFDQSxXQ3dDSztBQzFDVDtBRklJO0VBQ0kseUJDMENHO0VEekNILGNDd0NBO0FDMUNSO0FGSVE7RUFDSSxxQkNxQ0o7QUN2Q1I7QUZHWTtFQUNJLFdDK0JQO0VEOUJPLHlCQ2tDUjtBQ25DUjtBRkdZO0VBQ0kseUJDK0JSO0FDaENSO0FGR1k7RUFDSSx5QkM0QlI7QUM3QlI7QUZHWTtFQUNJLHlCQ3lCUjtBQzFCUjtBQ29ESTtFSHpFSjtJQTRCUSxlQUFBO0VFSE47QUFDRjtBRktJO0VBQ0ksa0JBQUE7QUVIUjtBQzRDSTtFSDFDQTtJQUlRLGtCQUFBO0VFRlY7QUFDRjtBRktJO0VBQ0ksb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx3QkFBQTtNQUFBLHFCQUFBO1VBQUEsa0JBQUE7QUVIUjtBQ21DSTtFSGxDQTtJQUtRLDRCQUFBO0lBQUEsNkJBQUE7UUFBQSwwQkFBQTtZQUFBLHNCQUFBO0lBQ0EsU0FBQTtFRUZWO0FBQ0Y7QUZLSTtFQUNJLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxhQUFBO0VBQ0EsNEJBQUE7RUFBQSw2QkFBQTtNQUFBLDBCQUFBO1VBQUEsc0JBQUE7RUFDQSx5QkFBQTtNQUFBLHNCQUFBO1VBQUEsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsbUJBQUE7TUFBQSxvQkFBQTtVQUFBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO01BQUEsa0JBQUE7VUFBQSxvQkFBQTtBRUhSO0FDbUJJO0VIeEJBO0lBV1EsbUJBQUE7SUFDQSxtQkFBQTtJQUNBLDhCQUFBO0lBQUEsNkJBQUE7UUFBQSx1QkFBQTtZQUFBLG1CQUFBO0lBQ0EseUJBQUE7UUFBQSxzQkFBQTtZQUFBLG1CQUFBO0lBQ0EsUUFBQTtFRUZWO0VGSVU7SUFDSSxXQUFBO0lBQ0EsVUFBQTtJQUNBLFlBQUE7SUFDQSxzQkMzQlA7SUQ0Qk8sU0FBQTtJQUNBLGtCQUFBO0lBQ0EsVUFBQTtFRUZkO0FBQ0Y7QUZLUTtFQUNJLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO01BQUEsb0JBQUE7VUFBQSxzQkFBQTtBRUhaO0FDTEk7RUhJSTtJQU9RLGdCQUFBO0lBQ0EsbUJBQUE7RUVGZDtBQUNGO0FGSVk7RUFDSSxTQUFBO0FFRmhCO0FGSWdCO0VBQ0ksYUFBQTtBRUZwQjtBRk1ZO0VBQ0kscUJBQUE7QUVKaEI7QUNwQkk7RUh1QlE7SUFJUSxTQUFBO0VFSGxCO0FBQ0Y7QUZNWTtFQUNJLFdBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQ2pFUDtFRGtFTyxNQUFBO0VBQ0EsU0FBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBRUpoQjtBQ25DSTtFSCtCUTtJQVdRLGFBQUE7RUVIbEI7QUFDRjtBRk9nQjtFQUNJLHNCQUFBO0FFTHBCO0FGVVE7RUFDSSxrQkFBQTtBRVJaO0FDOUNJO0VIcURJO0lBSVEsZUFBQTtFRVBkO0FBQ0Y7QUZVUTtFQUNJLG1CQUFBO0FFUlo7QUN0REk7RUg2REk7SUFJUSxVQUFBO0VFUGQ7QUFDRjtBRlVRO0VBQ0ksZ0JDOUdHO0VEK0dILFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUM1SEg7RUQ2SEcsY0NyR0M7RURzR0Qsc0JDekdIO0VEMEdHLGtCQUFBO0VBQ0Esb0JBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx3QkFBQTtNQUFBLHFCQUFBO1VBQUEsdUJBQUE7RUFDQSx5QkFBQTtNQUFBLHNCQUFBO1VBQUEsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FFUlo7QUN6RUk7RUhxRUk7SUFlUSxTQUFBO0lBQ0Esb0JBQUE7UUFBQSxjQUFBO0VFUGQ7QUFDRjtBRlVRO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FFUlo7QUNwRkk7RUh5Rkk7SUFNUSxTQUFBO0lBQ0EsZ0JBQUE7RUVQZDtBQUNGO0FGU1k7RUFDSSxXQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxzQkNySVA7RURzSU8sYUFBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7QUVQaEI7QUNwR0k7RUhtR1E7SUFXUSxhQUFBO0VFTmxCO0FBQ0Y7QUFDQTs7QUFFQTs7Q0FFQzs7QUFFRDs7QUFFQTs7QUFFQSIsImZpbGUiOiJwcm9ncmVzcy9wcm9ncmVzcy5taW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3JjL3Njc3MvY29tcG9uZW50cy92YXJzJztcbkBpbXBvcnQgJy4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMnO1xuXG4ucHJvZ3Jlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZ3JlZW47XG4gICAgcGFkZGluZzogODhweCAwIDk2cHggMDtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgJi5pcy1saWdodCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJhbWVsO1xuICAgICAgICBjb2xvcjogJGdyYXk7XG5cbiAgICAgICAgLnByb2dyZXNzX19zdGVwIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgICAubnVtLWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50aXRsZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbik6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgICAgICAgcGFkZGluZzogNTJweCAwO1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNjFweCAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMzJweCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0ZXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMzBweCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBlbmQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDM1cHggMDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAzM3B4IDAgMCAwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMzVweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5udW0taG9sZGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggMCAxMHB4IDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzFweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obGcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAyM3B4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNjdweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ0cHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubnVtLWhvbGRlciB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGZ3LXNlbWlib2xkO1xuICAgICAgICAgICAgd2lkdGg6IDQxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQxcHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmcy14bDtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFya2dyZWVuO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzFweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtNDBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8vIEdyaWQuXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IDU3NnB4LFxuXHRtZDogNzY4cHgsXG5cdGxnOiA5OTJweCxcblx0eGw6IDEyMDBweFxuKTtcbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuXHRzbTogNTQwcHgsXG5cdG1kOiA3MjBweCxcblx0bGc6IDk2MHB4LFxuXHR4bDogMTE0MHB4XG4pO1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAyMHB4O1xuXG4vLyBGb250IGZhbWlsaWVzLlxuJGZmXHRcdFx0OiBcIlNvdXJjZSBTYW5zIDNcIiwgc2VyaWY7XG4kZmYtdGl0bGVcdDogXCJTb3VyY2UgU2FucyAzXCIsIHNlcmlmO1xuXG4vLyBGb250IHNpemVzLlxuJGZzLXhzXHQ6IDEycHg7XG4kZnMtc21cdDogMTRweDtcbiRmcy1tZFx0OiAxNnB4O1xuJGZzLWxnXHQ6IDE4cHg7XG4kZnMteGxcdDogMjBweDtcblxuJGZzLWgxIDogNjRweDtcbiRmcy1oMiA6IDMycHg7XG4kZnMtaDMgOiAyNHB4O1xuJGZzLWg0IDogMThweDtcblxuLy8gRm9udCB3ZWlnaHRzLlxuJGZ3LWxpZ2h0XHRcdDogMzAwO1xuJGZ3LXJlZ3VsYXJcdFx0OiA0MDA7XG4kZnctbWVkaXVtXHRcdDogNTAwO1xuJGZ3LXNlbWlib2xkXHQ6IDYwMDtcbiRmdy1ib2xkXHRcdDogNzAwO1xuJGZ3LWV4dHJhYm9sZFx0OiA4MDA7XG4kZnctYmxhY2tcdFx0OiA5MDA7XG5cbi8vIExpbmUgaGVpZ2h0cy5cbiRsaFx0XHRcdDogMS40O1xuJGxoLXRpdGxlXHQ6IDEuMjtcblxuLy8gQ29sb3JzLlxuJHdoaXRlXHQ6ICNmZmY7XG4kYmxhY2tcdDogIzAwMDtcbiRnb2xkZW4gOiAjQjU3ODM1O1xuJGRhcmtncmVlbiA6ICMyOTNBNDI7XG4kZ3JheSA6ICM0MTQwNDI7XG4kY2FyYW1lbCA6ICNFMURBRDI7XG5cbi8vIE90aGVycy5cbiR0clx0XHQ6IDAuMzVzO1xuJHJhZGl1c1x0OiA1cHg7IiwiLnByb2dyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5M0E0MjtcbiAgcGFkZGluZzogODhweCAwIDk2cHggMDtcbiAgY29sb3I6ICNmZmY7XG59XG4ucHJvZ3Jlc3MuaXMtbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTFEQUQyO1xuICBjb2xvcjogIzQxNDA0Mjtcbn1cbi5wcm9ncmVzcy5pcy1saWdodCAucHJvZ3Jlc3NfX3N0ZXAge1xuICBib3JkZXItY29sb3I6ICM0MTQwNDI7XG59XG4ucHJvZ3Jlc3MuaXMtbGlnaHQgLnByb2dyZXNzX19zdGVwIC5udW0taG9sZGVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTQwNDI7XG59XG4ucHJvZ3Jlc3MuaXMtbGlnaHQgLnByb2dyZXNzX19zdGVwIC50aXRsZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE0MDQyO1xufVxuLnByb2dyZXNzLmlzLWxpZ2h0IC5wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoZXZlbik6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTQwNDI7XG59XG4ucHJvZ3Jlc3MuaXMtbGlnaHQgLnByb2dyZXNzX19zdGVwOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTQwNDI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2dyZXNzIHtcbiAgICBwYWRkaW5nOiA1MnB4IDA7XG4gIH1cbn1cbi5wcm9ncmVzcyBoMiB7XG4gIG1hcmdpbjogMCAwIDYxcHggMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvZ3Jlc3MgaDIge1xuICAgIG1hcmdpbjogMCAwIDMycHggMDtcbiAgfVxufVxuLnByb2dyZXNzX19ob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2dyZXNzX19ob2xkZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG59XG4ucHJvZ3Jlc3NfX3N0ZXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDAgMzBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbiAgZmxleC1ncm93OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogZW5kO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9ncmVzc19fc3RlcCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDAgMzVweCAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuICAucHJvZ3Jlc3NfX3N0ZXA6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMHB4O1xuICB9XG59XG4ucHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHBhZGRpbmc6IDMzcHggMCAwIDA7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2dyZXNzX19zdGVwOm50aC1jaGlsZChldmVuKSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDAgMzVweCAwO1xuICB9XG59XG4ucHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKGV2ZW4pIC50aXRsZSB7XG4gIG1hcmdpbjogMDtcbn1cbi5wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoZXZlbikgLnRpdGxlOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKGV2ZW4pIC5udW0taG9sZGVyIHtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoZXZlbikgLm51bS1ob2xkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLnByb2dyZXNzX19zdGVwOm50aC1jaGlsZChldmVuKTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAzMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvZ3Jlc3NfX3N0ZXA6bnRoLWNoaWxkKGV2ZW4pOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5wcm9ncmVzc19fc3RlcDpudGgtY2hpbGQoZXZlbik6bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgbGVmdDogY2FsYyg1MCUgLSAyM3B4KTtcbn1cbi5wcm9ncmVzc19fc3RlcDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogNjdweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvZ3Jlc3NfX3N0ZXA6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuLnByb2dyZXNzX19zdGVwOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiA0NHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9ncmVzc19fc3RlcDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4ucHJvZ3Jlc3NfX3N0ZXAgLm51bS1ob2xkZXIge1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aWR0aDogNDFweDtcbiAgaGVpZ2h0OiA0MXB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjMjkzQTQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvZ3Jlc3NfX3N0ZXAgLm51bS1ob2xkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxufVxuLnByb2dyZXNzX19zdGVwIC50aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgMCAxMHB4IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2dyZXNzX19zdGVwIC50aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5wcm9ncmVzc19fc3RlcCAudGl0bGU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAzMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3R0b206IC00MHB4O1xuICBsZWZ0OiA1MCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2dyZXNzX19zdGVwIC50aXRsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpe1xuXG59XG5cbiBAbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpe1xuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKXtcblxufVxuXG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl19 */
