.product .course-header {
  margin-bottom: 50px;
  background: #cacaca;
}
.product .course-header:before {
  content: '';
  display: table;
}
.product .course-header:after {
  content: '';
  display: table;
  clear: both;
}
.product .course-header .course-header-i {
  display: -ms-flexbox;
  display: flex;
  padding: 50px 30px;
}
.product .course-header .course-header-i .title-summary {
  width: calc(99.9% * 8/12 - (30px - 30px * 8/12));
}
.product .course-header .course-header-i .title-summary:nth-child(1n) {
  float: left;
  margin-right: 30px;
  clear: none;
}
.product .course-header .course-header-i .title-summary:last-child {
  margin-right: 0;
}
.product .course-header .course-header-i .title-summary:nth-child(2n) {
  margin-right: 0;
  float: right;
}
.product .course-header .course-header-i .title-summary:nth-child(2n + 1) {
  clear: both;
}
.product .course-header .course-header-i .title-summary .course-title {
  padding-right: 50px;
  font-size: 36px;
  line-height: 1.2;
  margin: 0;
  font-weight: normal;
}
.product .course-header .course-header-i .title-summary .course-summary {
  max-width: 60%;
  padding-top: 26px;
  font-size: 16px;
  font-weight: lighter;
}
.product .course-header .course-header-i .title-summary .alert {
  width: 100%;
  max-width: 500px;
}
.product .course-header .course-header-i .add-to-cart {
  width: calc(99.9% * 4/12 - (30px - 30px * 4/12));
  display: -ms-flexbox;
  display: flex;
  -ms-flex: 1;
      flex: 1;
  padding: 0 0 0 30px;
  -ms-flex-direction: column;
      flex-direction: column;
}
.product .course-header .course-header-i .add-to-cart:nth-child(1n) {
  float: left;
  margin-right: 30px;
  clear: none;
}
.product .course-header .course-header-i .add-to-cart:last-child {
  margin-right: 0;
}
.product .course-header .course-header-i .add-to-cart:nth-child(2n) {
  margin-right: 0;
  float: right;
}
.product .course-header .course-header-i .add-to-cart:nth-child(2n + 1) {
  clear: both;
}
.product .course-header .course-header-i .add-to-cart .course-price-w {
  display: -ms-flexbox;
  display: flex;
  width: 174px;
  -ms-flex-direction: column;
      flex-direction: column;
}
.product .course-header .course-header-i .add-to-cart .course-price-w .course-price-line-through {
  font-size: 23px;
  text-decoration: line-through;
}
.product .course-header .course-header-i .add-to-cart .course-price-w .course-price {
  display: inline-block;
  color: #3799db;
  font-size: 32px;
  font-weight: bold;
  padding: 0 0 4px 0;
  text-align: left;
}
.product .course-header .course-header-i .add-to-cart .input-price-w {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  padding: 18px 0 20px;
}
.product .course-header .course-header-i .add-to-cart .input-price-w label i {
  font-size: 27px;
  margin-right: 12px;
  color: #292929;
}
.product .course-header .course-header-i .add-to-cart .input-price-w .spinner {
  width: 220px;
}
.product .course-header .course-header-i .add-to-cart .input-price-w .spinner select {
  font-size: 13px;
  border-radius: 6px;
}
.product .course-header .course-header-i .add-to-cart .input-price-w .spinner .input-group-btn-vertical {
  position: relative;
  z-index: 3;
  left: -25px;
  white-space: nowrap;
  width: 1%;
  vertical-align: middle;
  display: table-cell;
}
.product .course-header .course-header-i .add-to-cart .input-price-w .spinner .input-group-btn-vertical > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
  padding: 8px;
  margin-left: -1px;
  position: relative;
  border: none;
  color: #a3acad;
}
.product .course-header .course-header-i .add-to-cart .input-price-w .spinner .input-group-btn-vertical > .btn:last-child {
  margin-top: -2px;
}
.product .course-header .course-header-i .add-to-cart .input-price-w .spinner .input-group-btn-vertical i {
  position: absolute;
  top: 0;
  left: 4px;
}
.product .course-header .course-header-i .add-to-cart .payments-img {
  width: 174px;
  margin-bottom: 25px;
}
.product .course-header .course-header-i button {
  width: 100%;
  padding: 17px 0;
  line-height: 1;
  font-size: 18px;
  margin: 0 auto;
}
@media only screen and (max-width: 1024px) {
  .product .course-header .course-header-i button {
    width: 100%;
    font-size: 15px;
  }
}
@media only screen and (max-width: 1140px) {
  .product .course-header .course-header-i .title-summary .course-title {
    font-size: 32px;
  }
}
@media only screen and (max-width: 960px) {
  .product .course-header .course-header-i {
    -ms-flex-direction: column;
        flex-direction: column;
  }
  .product .course-header .course-header-i .title-summary {
    width: calc(99.9% * 1/1 - (30px - 30px * 1/1));
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
  }
  .product .course-header .course-header-i .title-summary:nth-child(1n) {
    float: left;
    margin-right: 30px;
    clear: none;
  }
  .product .course-header .course-header-i .title-summary:last-child {
    margin-right: 0;
  }
  .product .course-header .course-header-i .title-summary:nth-child(1n) {
    margin-right: 0;
    float: right;
  }
  .product .course-header .course-header-i .title-summary:nth-child(1n + 1) {
    clear: both;
  }
  .product .course-header .course-header-i .title-summary .course-title,
  .product .course-header .course-header-i .title-summary .course-summary {
    max-width: 80%;
    text-align: center;
  }
  .product .course-header .course-header-i .title-summary .course-title {
    padding-right: 0;
  }
  .product .course-header .course-header-i .add-to-cart {
    margin-top: 40px;
    width: calc(99.9% * 1/1 - (30px - 30px * 1/1));
    padding: 0;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
  }
  .product .course-header .course-header-i .add-to-cart:nth-child(1n) {
    float: left;
    margin-right: 30px;
    clear: none;
  }
  .product .course-header .course-header-i .add-to-cart:last-child {
    margin-right: 0;
  }
  .product .course-header .course-header-i .add-to-cart:nth-child(1n) {
    margin-right: 0;
    float: right;
  }
  .product .course-header .course-header-i .add-to-cart:nth-child(1n + 1) {
    clear: both;
  }
  .product .course-header .course-header-i .add-to-cart .add-to-cart-i {
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    max-width: 80%;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
  }
  .product .course-header .course-header-i .add-to-cart form {
    width: 80%;
  }
}
@media only screen and (max-width: 870px) {
  .product .course-header .course-header-i .title-summary .course-title,
  .product .course-header .course-header-i .title-summary .course-summary {
    max-width: 100%;
  }
  .product .course-header .course-header-i .add-to-cart .add-to-cart-i {
    max-width: 100%;
  }
  .product .course-header .course-header-i .add-to-cart form {
    width: 100%;
  }
}
@media only screen and (max-width: 720px) {
  .product .course-header .course-header-i .title-summary .course-title {
    font-size: 26px;
    font-weight: bold;
  }
  .product .course-header .course-header-i .add-to-cart {
    margin-top: 20px;
  }
  .product .course-header .course-header-i .add-to-cart .add-to-cart-i {
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: start;
        align-items: flex-start;
  }
}
.product .course-content .course-tabs {
  width: calc(99.9% * 7/12 - (30px - 30px * 7/12));
}
.product .course-content .course-tabs:nth-child(1n) {
  float: left;
  margin-right: 30px;
  clear: none;
}
.product .course-content .course-tabs:last-child {
  margin-right: 0;
}
.product .course-content .course-tabs:nth-child(2n) {
  margin-right: 0;
  float: right;
}
.product .course-content .course-tabs:nth-child(2n + 1) {
  clear: both;
}
.product .course-content .course-tabs .panel-heading {
  background: #cacaca;
}
.product .course-content .course-tabs .panel-heading .panel-title a {
  font-size: 20px;
}
.product .course-content .course-tabs .panel-heading .panel-title a i {
  font-size: 24px;
  margin-right: 20px;
  transform: rotate(90deg);
  transition-duration: 0.5s;
}
.product .course-content .course-tabs .panel-heading .panel-title a.collapsed i {
  transform: rotate(0deg);
  transition-duration: 0.5s;
}
.product .course-content .course-video {
  width: calc(99.9% * 5/12 - (30px - 30px * 5/12));
}
.product .course-content .course-video:nth-child(1n) {
  float: left;
  margin-right: 30px;
  clear: none;
}
.product .course-content .course-video:last-child {
  margin-right: 0;
}
.product .course-content .course-video:nth-child(2n) {
  margin-right: 0;
  float: right;
}
.product .course-content .course-video:nth-child(2n + 1) {
  clear: both;
}
@media only screen and (max-width: 1140px) {
  .product .course-content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    -ms-flex-align: center;
        align-items: center;
  }
  .product .course-content .course-tabs,
  .product .course-content .course-video {
    width: auto;
  }
  .product .course-content .course-tabs:last-child,
  .product .course-content .course-video:last-child {
    float: none;
    clear: none;
    margin-right: 0;
    width: auto;
  }
  .product .course-content .course-tabs:nth-child(1n),
  .product .course-content .course-video:nth-child(1n) {
    float: none;
    clear: none;
    margin-right: 0;
    width: auto;
  }
  .product .course-content .course-tabs:nth-child(1n + 1),
  .product .course-content .course-video:nth-child(1n + 1) {
    float: none;
    clear: none;
    margin-right: 0;
    width: auto;
  }
  .product .course-content .course-video {
    width: 100% !important;
    max-width: 440px !important;
  }
  .product .course-content .course-tabs {
    width: 100% !important;
    margin-top: 50px;
  }
  .product .course-content .course-tabs .panel-heading .panel-title a {
    font-size: 16px;
  }
  .product .course-content .course-tabs .panel-heading .panel-title a i {
    font-size: 18px;
  }
}
@media only screen and (max-width: 700px) {
  .product .course-content .course-tabs .panel-heading .panel-title a {
    font-size: 14px;
  }
  .product .course-content .course-tabs .panel-heading .panel-title a i {
    font-size: 15px;
  }
  .product .course-content .course-video {
    width: 100% !important;
    max-width: 500px !important;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2R1Y3Quc3R5bCIsInByb2R1Y3QuY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdJO0VBRUksb0JBQUE7RUFDQSxvQkFBQTtDQ0ZQO0FEREc7RUFDSSxZQUFBO0VBQUEsZUFBQTtDQ0FQO0FEREc7RUFDSSxZQUFBO0VBQUEsZUFBQTtFQUFBLFlBQUE7Q0NBUDtBREdPO0VBQ0kscUJBQUE7RUFBQSxjQUFBO0VBQ0EsbUJBQUE7Q0NEWDtBREVXO0VBQ0ksaURBQUE7Q0NBZjtBRERXO0VBQ0ksWUFBQTtFQUFBLG1CQUFBO0VBQUEsWUFBQTtDQ0FmO0FERFc7RUFDSSxnQkFBQTtDQ0FmO0FERFc7RUFDSSxnQkFBQTtFQUFBLGFBQUE7Q0NBZjtBRERXO0VBQ0ksWUFBQTtDQ0FmO0FEQ2U7RUFDSSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0Esb0JBQUE7Q0NDbkI7QURBZTtFQUNJLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7Q0NFbkI7QUREZTtFQUNJLFlBQUE7RUFDQSxpQkFBQTtDQ0duQjtBREZXO0VBQ0ksaURBQUE7RUFDQSxxQkFBQTtFQUFBLGNBQUE7RUFDQSxZQUFBO01BQUEsUUFBQTtFQUNBLG9CQUFBO0VBQ0EsMkJBQUE7TUFBQSx1QkFBQTtDQ0lmO0FEVFc7RUFDSSxZQUFBO0VBQUEsbUJBQUE7RUFBQSxZQUFBO0NDUWY7QURUVztFQUNJLGdCQUFBO0NDUWY7QURUVztFQUNJLGdCQUFBO0VBQUEsYUFBQTtDQ1FmO0FEVFc7RUFDSSxZQUFBO0NDUWY7QURIZTtFQUNJLHFCQUFBO0VBQUEsY0FBQTtFQUNBLGFBQUE7RUFDQSwyQkFBQTtNQUFBLHVCQUFBO0NDS25CO0FESm1CO0VBQ0ksZ0JBQUE7RUFDQSw4QkFBQTtDQ012QjtBRExtQjtFQUNJLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFB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SSxpREFBQTtDQ3NDWDtBRHZDTztFQUNJLFlBQUE7RUFBQSxtQkFBQTtFQUFBLFlBQUE7Q0NzQ1g7QUR2Q087RUFDSSxnQkFBQTtDQ3NDWDtBRHZDTztFQUNJLGdCQUFBO0VBQUEsYUFBQTtDQ3NDWDtBRHZDTztFQUNJLFlBQUE7Q0NzQ1g7QUMzRFU7RUFBQTtJRnVCQyxxQkFBQTtJQUFBLGNBQUE7SUFDQSxtQ0FBQTtRQUFBLCtCQUFBO0lBQ0EsdUJBQUE7UUFBQSxvQkFBQTtHQ3dDVDtFRHZDUzs7SUFFSSxZQUFBO0dDeUNiO0VEM0NTOztJQUVJLFlBQUE7SUFBQSxZQUFBO0lBQUEsZ0JBQUE7SUFBQSxZQUFBO0dDeUNiO0VEM0NTOztJQUVJLFlBQUE7SUFBQSxZQUFBO0lBQUEsZ0JBQUE7SUFBQSxZQUFBO0dDeUNiO0VEM0NTOztJQUVJLFlBQUE7SUFBQSxZQUFBO0lBQUEsZ0JBQUE7SUFBQSxZQUFBO0dDeUNiO0VEeENTO0lBQ0ksdUJBQUE7SUFDQSw0QkFBQTtHQzBDYjtFRHpDUztJQUNJLHVCQUFBO0lBQ0EsaUJBQUE7R0MyQ2I7RUR4Q3FCO0lBQ0ksZ0JBQUE7R0MwQ3pCO0VEekN5QjtJQUNJLGdCQUFBO0dDMkM3QjtDQUNGO0FDcEZVO0VGNkNhO0lBQ0ksZ0JBQUE7R0MwQ3pCO0VEekN5QjtJQUNJLGdCQUFBO0dDMkM3QjtFRDFDUztJQUNJLHVCQUFBO0lBQ0EsNEJBQUE7R0M0Q2I7Q0FDRiIsImZpbGUiOiJwcm9kdWN0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuLi9nbG9iYWwvX19fdmFyaWFibGVzXCJcblxuLnByb2R1Y3RcbiAgICAuY291cnNlLWhlYWRlclxuICAgICAgICBsb3N0LXV0aWxpdHkgY2xlYXJmaXhcbiAgICAgICAgbWFyZ2luLWJvdHRvbSA1MHB4XG4gICAgICAgIGJhY2tncm91bmQgI0NBQ0FDQVxuICAgICAgICAuY291cnNlLWhlYWRlci1pXG4gICAgICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgICAgIHBhZGRpbmcgNTBweCAzMHB4XG4gICAgICAgICAgICAudGl0bGUtc3VtbWFyeVxuICAgICAgICAgICAgICAgIGxvc3QtY29sdW1uIDgvMTIgMlxuICAgICAgICAgICAgICAgIC5jb3Vyc2UtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodCA1MHB4XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAzNnB4XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0IDEuMlxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4gMFxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodCBub3JtYWxcbiAgICAgICAgICAgICAgICAuY291cnNlLXN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoIDYwJVxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcCAyNnB4XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxNnB4XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0IGxpZ2h0ZXJcbiAgICAgICAgICAgICAgICAuYWxlcnRcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGggNTAwcHhcbiAgICAgICAgICAgIC5hZGQtdG8tY2FydFxuICAgICAgICAgICAgICAgIGxvc3QtY29sdW1uIDQvMTIgMlxuICAgICAgICAgICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICAgICAgICAgIGZsZXggMVxuICAgICAgICAgICAgICAgIHBhZGRpbmcgMCAwIDAgMzBweFxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbiAgICAgICAgICAgICAgICAuY291cnNlLXByaWNlLXdcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIDE3NHB4XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS1wcmljZS1saW5lLXRocm91Z2hcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAyM3B4XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24gbGluZS10aHJvdWdoXG4gICAgICAgICAgICAgICAgICAgIC5jb3Vyc2UtcHJpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciAjMzc5OURCXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemUgMzJweFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQgYm9sZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZyAwIDAgNHB4IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnRcbiAgICAgICAgICAgICAgICAuaW5wdXQtcHJpY2Utd1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgMThweCAwIDIwcHhcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwgaVxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplIDI3cHhcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodCAxMnB4XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciAjMjkyOTI5XG4gICAgICAgICAgICAgICAgICAgIC5zcGlubmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAyMjBweFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplIDEzcHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzIDZweFxuICAgICAgICAgICAgICAgICAgICAgICAgLmlucHV0LWdyb3VwLWJ0bi12ZXJ0aWNhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXggM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgLTI1cHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDElXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgPiAuYnRuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXIgbm9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yICNBM0FDQURcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgPiAuYnRuOmxhc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4XG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5wdXQtZ3JvdXAtYnRuLXZlcnRpY2FsIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA0cHhcbiAgICAgICAgICAgICAgICAucGF5bWVudHMtaW1nXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIDE3NHB4XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b20gMjVweFxuICAgICAgICAgICAgYnV0dG9uXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIHBhZGRpbmcgMTdweCAwXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQgMVxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxOHB4XG4gICAgICAgICAgICAgICAgbWFyZ2luIDAgYXV0b1xuICAgICAgICAgICAgICAgICtiZWxvdygxMDI0cHgpXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplIDE1cHhcbiAgICAgICAgICAgICtiZWxvdygxMTQwcHgpXG4gICAgICAgICAgICAgICAgLnRpdGxlLXN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplIDMycHhcbiAgICAgICAgICAgICtiZWxvdyg5NjBweClcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uXG4gICAgICAgICAgICAgICAgLnRpdGxlLXN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgbG9zdC1jb2x1bW4gMS8xIDFcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgICAgICAgICAgICAgICAgIC5jb3Vyc2UtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGggODAlXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduIGNlbnRlclxuICAgICAgICAgICAgICAgICAgICAuY291cnNlLXRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0IDBcbiAgICAgICAgICAgICAgICAuYWRkLXRvLWNhcnRcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcCA0MHB4XG4gICAgICAgICAgICAgICAgICAgIGxvc3QtY29sdW1uIDEvMSAxXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgMFxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgY2VudGVyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zIGNlbnRlclxuICAgICAgICAgICAgICAgICAgICAuYWRkLXRvLWNhcnQtaVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGggODAlXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgc3BhY2UtYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoIDgwJVxuICAgICAgICAgICAgK2JlbG93KDg3MHB4KVxuICAgICAgICAgICAgICAgIC50aXRsZS1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgIC5jb3Vyc2UtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgLmNvdXJzZS1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIC5hZGQtdG8tY2FydFxuICAgICAgICAgICAgICAgICAgICAuYWRkLXRvLWNhcnQtaVxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoIDEwMCVcbiAgICAgICAgICAgICAgICAgICAgZm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgK2JlbG93KDcyMHB4KVxuICAgICAgICAgICAgICAgIC50aXRsZS1zdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgIC5jb3Vyc2UtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAyNnB4XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodCBib2xkXG4gICAgICAgICAgICAgICAgLmFkZC10by1jYXJ0XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3AgMjBweFxuICAgICAgICAgICAgICAgICAgICAuYWRkLXRvLWNhcnQtaVxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb24gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtcyBmbGV4LXN0YXJ0XG4gICAgLmNvdXJzZS1jb250ZW50XG4gICAgICAgIC5jb3Vyc2UtdGFic1xuICAgICAgICAgICAgbG9zdC1jb2x1bW4gNy8xMiAyXG4gICAgICAgICAgICAucGFuZWwtaGVhZGluZ1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQgI0NBQ0FDQVxuICAgICAgICAgICAgICAgIC5wYW5lbC10aXRsZVxuICAgICAgICAgICAgICAgICAgICBhXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemUgMjBweFxuICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAyNHB4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0IDIwcHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuNXNcbiAgICAgICAgICAgICAgICAgICAgYS5jb2xsYXBzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC41c1xuICAgICAgICAuY291cnNlLXZpZGVvXG4gICAgICAgICAgICBsb3N0LWNvbHVtbiA1LzEyIDJcbiAgICAgICAgK2JlbG93KDExNDBweClcbiAgICAgICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlXG4gICAgICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAgICAgIC5jb3Vyc2UtdGFic1xuICAgICAgICAgICAgLmNvdXJzZS12aWRlb1xuICAgICAgICAgICAgICAgIGxvc3QtY29sdW1uIG5vbmVcbiAgICAgICAgICAgIC5jb3Vyc2UtdmlkZW9cbiAgICAgICAgICAgICAgICB3aWR0aCAxMDAlIWltcG9ydGFudFxuICAgICAgICAgICAgICAgIG1heC13aWR0aCA0NDBweCFpbXBvcnRhbnRcbiAgICAgICAgICAgIC5jb3Vyc2UtdGFic1xuICAgICAgICAgICAgICAgIHdpZHRoIDEwMCUhaW1wb3J0YW50XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcCA1MHB4XG4gICAgICAgICAgICAgICAgLnBhbmVsLWhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgLnBhbmVsLXRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplIDE2cHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxOHB4XG4gICAgICAgICtiZWxvdyg3MDBweClcbiAgICAgICAgICAgIC5jb3Vyc2UtdGFic1xuICAgICAgICAgICAgICAgIC5wYW5lbC1oZWFkaW5nXG4gICAgICAgICAgICAgICAgICAgIC5wYW5lbC10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxNHB4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemUgMTVweFxuICAgICAgICAgICAgLmNvdXJzZS12aWRlb1xuICAgICAgICAgICAgICAgIHdpZHRoIDEwMCUhaW1wb3J0YW50XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoIDUwMHB4IWltcG9ydGFudFxuXG4iLCIucHJvZHVjdCAuY291cnNlLWhlYWRlciB7XG4gIGxvc3QtdXRpbGl0eTogY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIGJhY2tncm91bmQ6ICNjYWNhY2E7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNTBweCAzMHB4O1xufVxuLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAudGl0bGUtc3VtbWFyeSB7XG4gIGxvc3QtY29sdW1uOiA4LzEyIDI7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC50aXRsZS1zdW1tYXJ5IC5jb3Vyc2UtdGl0bGUge1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xuICBmb250LXNpemU6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbjogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLnRpdGxlLXN1bW1hcnkgLmNvdXJzZS1zdW1tYXJ5IHtcbiAgbWF4LXdpZHRoOiA2MCU7XG4gIHBhZGRpbmctdG9wOiAyNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAudGl0bGUtc3VtbWFyeSAuYWxlcnQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLmFkZC10by1jYXJ0IHtcbiAgbG9zdC1jb2x1bW46IDQvMTIgMjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogMCAwIDAgMzBweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLmFkZC10by1jYXJ0IC5jb3Vyc2UtcHJpY2UtdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxNzRweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLmFkZC10by1jYXJ0IC5jb3Vyc2UtcHJpY2UtdyAuY291cnNlLXByaWNlLWxpbmUtdGhyb3VnaCB7XG4gIGZvbnQtc2l6ZTogMjNweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCAuY291cnNlLXByaWNlLXcgLmNvdXJzZS1wcmljZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICMzNzk5ZGI7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAgMCA0cHggMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLmFkZC10by1jYXJ0IC5pbnB1dC1wcmljZS13IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMThweCAwIDIwcHg7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCAuaW5wdXQtcHJpY2UtdyBsYWJlbCBpIHtcbiAgZm9udC1zaXplOiAyN3B4O1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiAjMjkyOTI5O1xufVxuLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAuYWRkLXRvLWNhcnQgLmlucHV0LXByaWNlLXcgLnNwaW5uZXIge1xuICB3aWR0aDogMjIwcHg7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCAuaW5wdXQtcHJpY2UtdyAuc3Bpbm5lciBzZWxlY3Qge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLmFkZC10by1jYXJ0IC5pbnB1dC1wcmljZS13IC5zcGlubmVyIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDM7XG4gIGxlZnQ6IC0yNXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMSU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCAuaW5wdXQtcHJpY2UtdyAuc3Bpbm5lciAuaW5wdXQtZ3JvdXAtYnRuLXZlcnRpY2FsID4gLmJ0biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4O1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjYTNhY2FkO1xufVxuLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAuYWRkLXRvLWNhcnQgLmlucHV0LXByaWNlLXcgLnNwaW5uZXIgLmlucHV0LWdyb3VwLWJ0bi12ZXJ0aWNhbCA+IC5idG46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4ucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCAuaW5wdXQtcHJpY2UtdyAuc3Bpbm5lciAuaW5wdXQtZ3JvdXAtYnRuLXZlcnRpY2FsIGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNHB4O1xufVxuLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAuYWRkLXRvLWNhcnQgLnBheW1lbnRzLWltZyB7XG4gIHdpZHRoOiAxNzRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE3cHggMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNDBweCkge1xuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC50aXRsZS1zdW1tYXJ5IC5jb3Vyc2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLnRpdGxlLXN1bW1hcnkge1xuICAgIGxvc3QtY29sdW1uOiAxLzEgMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC50aXRsZS1zdW1tYXJ5IC5jb3Vyc2UtdGl0bGUsXG4gIC5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLnRpdGxlLXN1bW1hcnkgLmNvdXJzZS1zdW1tYXJ5IHtcbiAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAudGl0bGUtc3VtbWFyeSAuY291cnNlLXRpdGxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIC5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLmFkZC10by1jYXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIGxvc3QtY29sdW1uOiAxLzEgMTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAuYWRkLXRvLWNhcnQgLmFkZC10by1jYXJ0LWkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA4MCU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAuYWRkLXRvLWNhcnQgZm9ybSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NzBweCkge1xuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC50aXRsZS1zdW1tYXJ5IC5jb3Vyc2UtdGl0bGUsXG4gIC5wcm9kdWN0IC5jb3Vyc2UtaGVhZGVyIC5jb3Vyc2UtaGVhZGVyLWkgLnRpdGxlLXN1bW1hcnkgLmNvdXJzZS1zdW1tYXJ5IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1oZWFkZXIgLmNvdXJzZS1oZWFkZXItaSAuYWRkLXRvLWNhcnQgLmFkZC10by1jYXJ0LWkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCBmb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC50aXRsZS1zdW1tYXJ5IC5jb3Vyc2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAucHJvZHVjdCAuY291cnNlLWhlYWRlciAuY291cnNlLWhlYWRlci1pIC5hZGQtdG8tY2FydCAuYWRkLXRvLWNhcnQtaSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxufVxuLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IC5jb3Vyc2UtdGFicyB7XG4gIGxvc3QtY29sdW1uOiA3LzEyIDI7XG59XG4ucHJvZHVjdCAuY291cnNlLWNvbnRlbnQgLmNvdXJzZS10YWJzIC5wYW5lbC1oZWFkaW5nIHtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbn1cbi5wcm9kdWN0IC5jb3Vyc2UtY29udGVudCAuY291cnNlLXRhYnMgLnBhbmVsLWhlYWRpbmcgLnBhbmVsLXRpdGxlIGEge1xuICBmb250LXNpemU6IDIwcHg7XG59XG4ucHJvZHVjdCAuY291cnNlLWNvbnRlbnQgLmNvdXJzZS10YWJzIC5wYW5lbC1oZWFkaW5nIC5wYW5lbC10aXRsZSBhIGkge1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xufVxuLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IC5jb3Vyc2UtdGFicyAucGFuZWwtaGVhZGluZyAucGFuZWwtdGl0bGUgYS5jb2xsYXBzZWQgaSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xufVxuLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IC5jb3Vyc2UtdmlkZW8ge1xuICBsb3N0LWNvbHVtbjogNS8xMiAyO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTQwcHgpIHtcbiAgLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5wcm9kdWN0IC5jb3Vyc2UtY29udGVudCAuY291cnNlLXRhYnMsXG4gIC5wcm9kdWN0IC5jb3Vyc2UtY29udGVudCAuY291cnNlLXZpZGVvIHtcbiAgICBsb3N0LWNvbHVtbjogbm9uZTtcbiAgfVxuICAucHJvZHVjdCAuY291cnNlLWNvbnRlbnQgLmNvdXJzZS12aWRlbyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDQ0MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IC5jb3Vyc2UtdGFicyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICB9XG4gIC5wcm9kdWN0IC5jb3Vyc2UtY29udGVudCAuY291cnNlLXRhYnMgLnBhbmVsLWhlYWRpbmcgLnBhbmVsLXRpdGxlIGEge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuICAucHJvZHVjdCAuY291cnNlLWNvbnRlbnQgLmNvdXJzZS10YWJzIC5wYW5lbC1oZWFkaW5nIC5wYW5lbC10aXRsZSBhIGkge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAucHJvZHVjdCAuY291cnNlLWNvbnRlbnQgLmNvdXJzZS10YWJzIC5wYW5lbC1oZWFkaW5nIC5wYW5lbC10aXRsZSBhIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IC5jb3Vyc2UtdGFicyAucGFuZWwtaGVhZGluZyAucGFuZWwtdGl0bGUgYSBpIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbiAgLnByb2R1Y3QgLmNvdXJzZS1jb250ZW50IC5jb3Vyc2UtdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiA1MDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJiYXNlLWZvbnQtc2l6ZSA/PSAxNnB4XG5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcyA/PSBmYWxzZVxuXG5ydXB0dXJlID0ge1xuICByYXN0ZXJpc2UtbWVkaWEtcXVlcmllczogcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXNcbiAgbW9iaWxlLWN1dG9mZjogNDAwcHhcbiAgZGVza3RvcC1jdXRvZmY6IDEwNTBweFxuICBoZC1jdXRvZmY6IDE4MDBweFxuICBlbmFibGUtZW0tYnJlYWtwb2ludHM6IGZhbHNlXG4gIGJhc2UtZm9udC1zaXplOiBiYXNlLWZvbnQtc2l6ZVxuICBhbnRpLW92ZXJsYXA6IGZhbHNlXG4gIGRlbnNpdHktcXVlcmllczogJ2RwcHgnICd3ZWJraXQnICdtb3onICdkcGknXG4gIHJldGluYS1kZW5zaXR5OiAxLjVcbiAgdXNlLWRldmljZS13aWR0aDogZmFsc2Vcbn1cbnJ1cHR1cmUuc2NhbGUgPSAwIChydXB0dXJlLm1vYmlsZS1jdXRvZmYpIDYwMHB4IDgwMHB4IChydXB0dXJlLmRlc2t0b3AtY3V0b2ZmKSAocnVwdHVyZS5oZC1jdXRvZmYpXG5ydXB0dXJlLnNjYWxlLW5hbWVzID0gJ3hzJyAncycgJ20nICdsJyAneGwnICdoZCdcblxuLWlzLXN0cmluZyh2YWwpXG4gIGlmIHR5cGVvZih2YWwpIGlzIG5vdCAndW5pdCdcbiAgICBpZiB2YWwgaXMgYSAnc3RyaW5nJyBvciB2YWwgaXMgYSAnaWRlbnQnXG4gICAgICB0cnVlXG4gICAgZWxzZVxuICAgICAgZmFsc2VcbiAgZWxzZVxuICAgIGZhbHNlXG5cbi1nZXQtc2NhbGUtbnVtYmVyKHNjYWxlLW5hbWUpXG4gIGZvciBsaXN0LWl0ZW0sIGkgaW4gcnVwdHVyZS5zY2FsZS1uYW1lc1xuICAgIGlmIGxpc3QtaXRlbSBpcyBzY2FsZS1uYW1lXG4gICAgICByZXR1cm4gaSArIDFcbiAgcmV0dXJuIGZhbHNlXG5cbi1jb252ZXJ0LXRvKHRvLXVuaXQsIHZhbHVlLCBjb250ZXh0ID0gcnVwdHVyZS5iYXNlLWZvbnQtc2l6ZSlcbiAgZnJvbS11bml0ID0gdW5pdCh2YWx1ZSlcbiAgcmV0dXJuIHZhbHVlIGlmIHRvLXVuaXQgaXMgZnJvbS11bml0XG4gIGlmIHRvLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHZhbHVlIGlmIGZyb20tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgLyBjb250ZXh0KSwgdG8tdW5pdClcbiAgaWYgdG8tdW5pdCBpcyAncHgnXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlICogY29udGV4dCksICdweCcpXG5cbi1vbi1zY2FsZShuKVxuICByZXR1cm4gdW5pdChuKSBpcyAnJ1xuXG4tbGFyZ2VyLXRoYW4tc2NhbGUobilcbiAgcmV0dXJuIChuID4gKGxlbmd0aChydXB0dXJlLnNjYWxlKSAtIDEpKSBhbmQgLW9uLXNjYWxlKG4pXG5cbi1pcy16ZXJvKG4pXG4gIHJldHVybiBuIGlzIDBcblxuLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBzaGlmdC11bml0ID0gdW5pdChuKVxuICBhbnRpLW92ZXJsYXAgPSAwcHggdW5sZXNzIGFudGktb3ZlcmxhcFxuICBhbnRpLW92ZXJsYXAgPSAxcHggaWYgYW50aS1vdmVybGFwIGlzIHRydWVcbiAgaWYgbGVuZ3RoKGFudGktb3ZlcmxhcCkgaXMgMVxuICAgIHJldHVybiAtY29udmVydC10byhzaGlmdC11bml0LCBhbnRpLW92ZXJsYXApXG4gIGZvciB2YWwgaW4gYW50aS1vdmVybGFwXG4gICAgcmV0dXJuIHZhbCBpZiB1bml0KHZhbCkgaXMgc2hpZnQtdW5pdFxuXG4tYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCBuLCBzaWRlID0gJ21pbicpXG4gIC1zaGlmdCA9IC1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgaWYgKHNpZGUgaXMgJ21pbicgYW5kIC1zaGlmdCA+IDApIG9yIChzaWRlIGlzICdtYXgnIGFuZCAtc2hpZnQgPCAwKVxuICAgIG4gPSBuICsgLXNoaWZ0XG4gIHJldHVybiBuXG5cbi1pcy1wb3NpdGl2ZShuKVxuICByZXR1cm4gbiA+PSAwXG5cbi1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgaWYgdHlwZW9mKGRlbnNpdHkpIGlzIG5vdCAndW5pdCdcbiAgICBpZiBub3QgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9ICclcycgJSBkZW5zaXR5XG4gIGRlbnNpdHkgPSBydXB0dXJlLnJldGluYS1kZW5zaXR5IGlmIGRlbnNpdHkgaXMgJ3JldGluYSdcbiAgcXVlcmllcyA9ICgpXG4gIGZvciBxdWVyeSBpbiBydXB0dXJlLmRlbnNpdHktcXVlcmllc1xuICAgIGlmIHF1ZXJ5IGlzICd3ZWJraXQnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ21veidcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbydcbiAgICAgIHB1c2gocXVlcmllcywgJygtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcy8xKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAncmF0aW8nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcGknXG4gICAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICAgIGRlbnNpdHk9Y29udmVydChkZW5zaXR5KVxuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwaSknICUgKHJvdW5kKGRlbnNpdHkgKiA5NiwgMSkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwcHgnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBweCknICUgKGRlbnNpdHkpKVxuICByZXR1cm4gcXVlcmllc1xuXG5jcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGNsYXNzKVxuICAveycnICsgY2xhc3MgKyAnICcgKyBzZWxlY3RlZH1cbiAgICB7YmxvY2t9XG5cbi8vICtiZXR3ZWVuKG1pbiwgbWF4KVxuLy8gdXNhZ2UgKHNjYWxlIGNhbiBiZSBtaXhlZCB3aXRoIGN1c3RvbSB2YWx1ZXMpOlxuLy8gICAtICtiZXR3ZWVuKDEsIDMpIHNjYWxlOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMCwgMykgMCB3aWR0aDpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA1MDBweCkgY3VzdG9tOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDAsIDMwMHB4KSAwIHdpZHRoOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDEsIDMwMHB4KSBzY2FsZTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigyMDBweCwgNCkgY3VzdG9tOnNjYWxlXG5cbmJldHdlZW4obWluLCBtYXgsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgaWYgLWlzLXN0cmluZyhtaW4pXG4gICAgbWluID0gLWdldC1zY2FsZS1udW1iZXIobWluKVxuICBpZiAtaXMtc3RyaW5nKG1heClcbiAgICBtYXggPSAtZ2V0LXNjYWxlLW51bWJlcihtYXgpXG5cbiAgLW1pbiA9IHJ1cHR1cmUuc2NhbGVbbWluIC0gMV0gdW5sZXNzIC1pcy16ZXJvKG1pbikgb3IgKG5vdCAtb24tc2NhbGUobWluKSlcbiAgLW1heCA9IHJ1cHR1cmUuc2NhbGVbbWF4XSB1bmxlc3Mgbm90IC1vbi1zY2FsZShtYXgpXG4gIC1taW4gPz0gbWluXG4gIC1tYXggPz0gbWF4XG5cbiAgaWYgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgbm90IChkZW5zaXR5IG9yIC1tYXggb3Igb3JpZW50YXRpb24pXG4gICAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4nXG4gICAgdXNlLWRldmljZS13aWR0aCA9IHVzZS1kZXZpY2Utd2lkdGggPyAnZGV2aWNlLScgOiAnJ1xuICAgIHVubGVzcyAtbWluIGlzIDBcbiAgICAgIC1taW4gPSAtY29udmVydC10bygnZW0nLCAtbWluKSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1pbiA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1taW4sIHNpZGU6ICdtaW4nKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1pbi0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWluKVxuICAgIHVubGVzcyAtbGFyZ2VyLXRoYW4tc2NhbGUobWF4KVxuICAgICAgLW1heCA9IC1jb252ZXJ0LXRvKCdlbScsIC1tYXgpIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWF4ID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1heCwgc2lkZTogJ21heCcpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWF4LScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1tYXgpXG4gICAgaWYgb3JpZW50YXRpb25cbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICBpZiBkZW5zaXR5XG4gICAgICBjb25kaXRpb25zID0gKClcbiAgICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uICsgJyBhbmQgJXMnICUgKHF1ZXJ5KSlcbiAgICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICB7YmxvY2t9XG5cbmF0KHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5mcm9tLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBsZW5ndGgocnVwdHVyZS5zY2FsZSksIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYWJvdmUgPSBmcm9tLXdpZHRoXG5cbnRvLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKDEsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmJlbG93ID0gdG8td2lkdGhcblxubW9iaWxlKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JlbG93KHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG50YWJsZXQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihydXB0dXJlLm1vYmlsZS1jdXRvZmYsIHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVza3RvcChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmhkKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuaGQtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlbnNpdHkoZGVuc2l0eSwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgY29uZGl0aW9ucyA9ICgpXG4gICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbiBhbmQgJXMnICUgKHF1ZXJ5KVxuICAgICAgaWYgb3JpZW50YXRpb25cbiAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24pXG4gICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cblxucGl4ZWwtcmF0aW8gPSBkZW5zaXR5XG5cbnJldGluYShvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgK2RlbnNpdHkoJ3JldGluYScsIG9yaWVudGF0aW9uLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmxhbmRzY2FwZShkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBsYW5kc2NhcGUsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuXG5wb3J0cmFpdChkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBwb3J0cmFpdCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cbiJdfQ== */
