.stories__left,
.stories__right {
  width: 100%;
}
.stories__left {
  max-width: 365px;
}
@media only screen and (max-width: 1024px) {
  .stories__right {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    margin-top: 80px;
  }
}
@media only screen and (max-width: 530px) {
  .stories-slider {
    padding-bottom: 40px;
  }
}
.stories-slider__img {
  position: relative;
  height: 140px;
}
.stories-slider__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.stories-slider__layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("../img/main/home/stories/stories-img-layer.png");
  background-position: center;
  background-size: cover;
}
.stories-slider__layer--orange {
  background-image: url("../img/main/home/stories/stories-img-layer-orange.png");
}
.stories-slider__layer--pink {
  background-image: url("../img/main/home/stories/stories-img-layer-pink.png");
}
.stories-slider__layer--violet {
  background-image: url("../img/main/home/stories/stories-img-layer-violet.png");
}
.stories-slider__layer--blue {
  background-image: url("../img/main/home/stories/stories-img-layer-blue.png");
}
.stories-slider__main {
  gap: 40px;
  margin-top: 35px;
  padding-bottom: 50px;
  border-bottom: 1px dashed rgba(255,255,255,0.3);
}
@media only screen and (max-width: 530px) {
  .stories-slider__main {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 14px;
  }
}
.stories-slider__left {
  width: 100%;
  max-width: 200px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.stories-slider__sub {
  padding: 35px 0;
  border-bottom: 1px dashed rgba(255,255,255,0.3);
  gap: 12px;
}
.stories-slider__info {
  width: 100%;
  gap: 40px;
}
@media only screen and (max-width: 530px) {
  .stories-slider__info {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3px;
  }
}
.stories-slider__btns {
  margin-top: 35px;
}
.stories-slider__bottom {
  position: relative;
  margin-top: 50px;
}
@media only screen and (max-width: 520px) {
  .stories-slider__bottom {
    margin-top: 100px;
  }
}
.stories--violet .stories-slider__layer {
  background-image: url("../img/main/home/stories/stories-img-layer-blue.png");
}
@media only screen and (max-width: 1024px) {
  .stories__wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
@media only screen and (max-width: 1024px) {
  .stories .slider {
    padding: 0;
  }
  .stories .slider:before,
  .stories .slider:after {
    display: none;
  }
}
@media only screen and (max-width: 1024px) {
  .stories .slider--narrow {
    max-width: 100%;
  }
}
.stories .slider__btns {
  right: 0;
}
.stories-item {
  display: block;
  padding: 60px 130px 100px 0;
  position: relative;
  cursor: pointer;
  border-bottom: 1px dashed rgba(15,17,18,0.3);
}
@media only screen and (max-width: 1280px) {
  .stories-item {
    padding: 60px 60px 100px 0;
  }
}
@media only screen and (max-width: 1024px) {
  .stories-item {
    width: 100%;
    padding: 60px 0 60px 0;
  }
}
@media only screen and (max-width: 778px) {
  .stories-item {
    padding: 90px 0 60px 0;
  }
}
.stories-item__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 125px;
}
@media only screen and (max-width: 1280px) {
  .stories-item__wrapper {
    gap: 50px;
  }
}
@media only screen and (max-width: 1024px) {
  .stories-item__wrapper {
    max-width: 410px;
    margin: auto;
    width: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    gap: 30px;
  }
}
.stories-item__img {
  max-width: 455px;
  height: 170px;
  width: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
}
.stories-item__img img {
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (max-width: 1080px) {
  .stories-item__img {
    max-width: 410px;
  }
}
.stories-item__content {
  max-width: 585px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.stories-item__logo {
  width: 115px;
  height: 115px;
  position: absolute;
  top: 25px;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 1024px) {
  .stories-item__logo {
    left: 0;
    right: unset;
  }
}
@media only screen and (max-width: 778px) {
  .stories-item__logo {
    left: unset;
    top: 30px;
    width: 50px;
    height: 50px;
  }
}
.stories-item__btn {
  opacity: 0;
  visibility: hidden;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-left: 40px;
  width: 55px;
  height: 55px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 50%;
  background-color: #0f1112;
  cursor: pointer;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.stories-item__btn path {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.stories-item__btn:hover {
  background-color: #f46f11;
}
@media only screen and (max-width: 1024px) {
  .stories-item__btn {
    display: none;
  }
}
.stories-item__descr {
  margin-top: 20px;
}
.stories-item__descr p {
  font-size: 14px;
  line-height: 21px;
}
.stories-item-bottom {
  margin-top: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 12px;
}
.stories-item-bottom__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 30px;
}
@media only screen and (max-width: 580px) {
  .stories-item-bottom__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 4px;
  }
}
.stories-item-bottom__row div {
  font-size: 14px;
  line-height: 21px;
}
.stories-item-bottom__row div:first-child {
  min-width: 120px;
  font-size: 14px;
  line-height: 21px;
  color: rgba(15,17,18,0.7);
}
.stories-item-bottom__row span:not(:first-child) {
  padding-left: 20px;
}
.stories-item-bottom--inner .stories-item-bottom__row div:first-child {
  min-width: 145px;
}
.stories-item:hover .stories-item__btn {
  opacity: 1;
  visibility: visible;
}
.story__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.story__content {
  width: 100%;
  max-width: 1032px;
}
.story__top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 768px) {
  .story__top {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.story__main {
  width: 100%;
  max-width: 595px;
}
@media only screen and (max-width: 1080px) {
  .story__title .title__icon {
    display: none;
  }
}
.story__descr {
  margin-top: 30px;
}
.story__logo {
  width: 100%;
  max-width: 100px;
}
@media only screen and (max-width: 768px) {
  .story__logo {
    margin-top: 40px;
  }
}
.story-img {
  position: relative;
  margin-top: 60px;
  width: 100%;
  height: 310px;
}
@media only screen and (max-width: 768px) {
  .story-img {
    height: 200px;
  }
}
.story-img__layer {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
}
.story-img img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 1;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3JpZXMuc3R5bCIsInN0b3JpZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdJOztFQUVJLFdBQU07QUNGZDtBREdJO0VBQ0ksZ0JBQVU7QUNEbEI7QUN5SVc7RUFBQTtJRnJJQyx3QkFBWTtRQUFaLHFCQUFZO1lBQVosdUJBQVk7SUFDWixnQkFBVztFQ0FyQjtBQUNGO0FDbUlXO0VBQUE7SUYvSEMsb0JBQWU7RUNBekI7QUFDRjtBRENRO0VBQ0ksa0JBQVM7RUFDVCxhQUFPO0FDQ25CO0FEQVk7RUFDSSxXQUFNO0VBQ04sWUFBTztFQUNQLG9CQUFXO0tBQVgsaUJBQVc7QUNFM0I7QURBUTtFQUNJLGtCQUFTO0VBQ1QsTUFBSTtFQUNKLE9BQUs7RUFDTCxXQUFNO0VBQ04sWUFBTztFQUNQLHVFQUFxRTtFQUNyRSwyQkFBb0I7RUFDcEIsc0JBQWdCO0FDRTVCO0FERFk7RUFDSSw4RUFBNEU7QUNHNUY7QURGWTtFQUNJLDRFQUEwRTtBQ0kxRjtBREhZO0VBQ0ksOEVBQTRFO0FDSzVGO0FESlk7RUFDSSw0RUFBMEU7QUNNMUY7QURMUTtFQUNJLFNBQUk7RUFDSixnQkFBVztFQUNYLG9CQUFlO0VBQ2YsK0NBQWM7QUNPMUI7QUN5Rlc7RUFBQTtJRjdGSyw0QkFBZTtJQUFmLDZCQUFlO1FBQWYsMEJBQWU7WUFBZixzQkFBZTtJQUNmLHdCQUFZO1FBQVoscUJBQVk7WUFBWix1QkFBWTtJQUNaLFNBQUk7RUNRbEI7QUFDRjtBRFBRO0VBQ0ksV0FBTTtFQUNOLGdCQUFVO0VBQ1Ysb0JBQVk7TUFBWixjQUFZO0FDU3hCO0FEUlE7RUFDSSxlQUFRO0VBQ1IsK0NBQWM7RUFDZCxTQUFJO0FDVWhCO0FEVFE7RUFDSSxXQUFNO0VBQ04sU0FBSTtBQ1doQjtBQ29FVztFQUFBO0lGNUVLLDRCQUFlO0lBQWYsNkJBQWU7UUFBZiwwQkFBZTtZQUFmLHNCQUFlO0lBQ2YsUUFB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O0FBQ0Y7QURuQ0k7RUFDSSxnQkFBVztBQ3FDbkI7QURwQ0k7RUFDSSxXQUFNO0VBQ04sZ0JBQVU7QUNzQ2xCO0FDaExXO0VBQUE7SUY2SUMsZ0JBQVc7RUN1Q3JCO0FBQ0Y7QUR0Q0k7RUFDSSxrQkFBUztFQUNULGdCQUFXO0VBQ1gsV0FBTTtFQUNOLGFBQU87QUN3Q2Y7QUMzTFc7RUFBQTtJRnNKQyxhQUFPO0VDeUNqQjtBQUNGO0FEeENRO0VBQ0ksa0JBQVM7RUFDVCxNQUFJO0VBQ0osT0FBSztFQUNMLFVBQVE7RUFDUixXQUFNO0VBQ04sWUFBTztBQzBDbkI7QUR6Q1E7RUFDSSxrQkFBUztFQUNULE1BQUk7RUFDSixPQUFLO0VBQ0wsUUFBTTtFQUNOLFNBQU87RUFDUCxXQUFNO0VBQ04sWUFBTztFQUNQLG9CQUFXO0tBQVgsaUJBQVc7RUFDWCxVQUFRO0FDMkNwQiIsImZpbGUiOiJzdG9yaWVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ3N1cHBvcnRzL192YXJzLnN0eWwnXG5cbi5zdG9yaWVzXG4gICAgJl9fbGVmdCxcbiAgICAmX19yaWdodFxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgJl9fbGVmdFxuICAgICAgICBtYXgtd2lkdGggMzY1cHhcbiAgICAmX19yaWdodFxuICAgICAgICArYmVsb3coMTAyNHB4KVxuICAgICAgICAgICAgYWxpZ24taXRlbXMgZmxleC1zdGFydFxuICAgICAgICAgICAgbWFyZ2luLXRvcCA4MHB4XG5cbiAgICAmLXNsaWRlclxuICAgICAgICBcbiAgICAgICAgK2JlbG93KDUzMHB4KVxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b20gNDBweFxuXG4gICAgICAgICZfX2ltZ1xuICAgICAgICAgICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICAgICAgICAgIGhlaWdodCAxNDBweFxuICAgICAgICAgICAgaW1nXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdCBjb3ZlclxuICAgICAgICAgICAgICAgIFxuICAgICAgICAmX19sYXllclxuICAgICAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgICAgIHRvcCAwXG4gICAgICAgICAgICBsZWZ0IDBcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vaW1nL21haW4vaG9tZS9zdG9yaWVzL3N0b3JpZXMtaW1nLWxheWVyLnBuZycpXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uIGNlbnRlclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplIGNvdmVyXG4gICAgICAgICAgICAmLS1vcmFuZ2VcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vaW1nL21haW4vaG9tZS9zdG9yaWVzL3N0b3JpZXMtaW1nLWxheWVyLW9yYW5nZS5wbmcnKVxuICAgICAgICAgICAgJi0tcGlua1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2UgdXJsKCcuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXItcGluay5wbmcnKVxuICAgICAgICAgICAgJi0tdmlvbGV0XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSB1cmwoJy4uL2ltZy9tYWluL2hvbWUvc3Rvcmllcy9zdG9yaWVzLWltZy1sYXllci12aW9sZXQucG5nJylcbiAgICAgICAgICAgICYtLWJsdWVcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIHVybCgnLi4vaW1nL21haW4vaG9tZS9zdG9yaWVzL3N0b3JpZXMtaW1nLWxheWVyLWJsdWUucG5nJylcbiAgICAgICAgJl9fbWFpblxuICAgICAgICAgICAgZ2FwIDQwcHhcbiAgICAgICAgICAgIG1hcmdpbi10b3AgMzVweFxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b20gNTBweFxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbSAxcHggZGFzaGVkICRtaWQtd2hpdGVcblxuICAgICAgICAgICAgK2JlbG93KDUzMHB4KVxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zIGZsZXgtc3RhcnRcbiAgICAgICAgICAgICAgICBnYXAgMTRweFxuXG4gICAgICAgICZfX2xlZnRcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIG1heC13aWR0aCAyMDBweFxuICAgICAgICAgICAgZmxleC1zaHJpbmsgMFxuICAgICAgICAmX19zdWJcbiAgICAgICAgICAgIHBhZGRpbmcgMzVweCAwXG4gICAgICAgICAgICBib3JkZXItYm90dG9tIDFweCBkYXNoZWQgJG1pZC13aGl0ZVxuICAgICAgICAgICAgZ2FwIDEycHhcbiAgICAgICAgJl9faW5mb1xuICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgZ2FwIDQwcHhcblxuICAgICAgICAgICAgK2JlbG93KDUzMHB4KVxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgICAgIGdhcCAzcHhcblxuICAgICAgICAmX19idG5zXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDM1cHhcbiAgICAgICAgJl9fYm90dG9tXG4gICAgICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgICAgICAgICAgbWFyZ2luLXRvcCA1MHB4XG5cbiAgICAgICAgICAgICtiZWxvdyg1MjBweClcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wIDEwMHB4XG5cbiAgICAmLS12aW9sZXRcbiAgICAgICAgLnN0b3JpZXNcbiAgICAgICAgICAgICYtc2xpZGVyXG4gICAgICAgICAgICAgICAgJl9fbGF5ZXJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSB1cmwoJy4uL2ltZy9tYWluL2hvbWUvc3Rvcmllcy9zdG9yaWVzLWltZy1sYXllci1ibHVlLnBuZycpXG5cbiAgICAmX193cmFwcGVyXG4gICAgICAgICtiZWxvdygxMDI0cHgpXG4gICAgICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zIGZsZXgtc3RhcnRcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50IGNlbnRlclxuICAgIC5zbGlkZXJcbiAgICAgICAgK2JlbG93KDEwMjRweClcbiAgICAgICAgICAgIHBhZGRpbmcgMFxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyXG4gICAgICAgICAgICAgICAgZGlzcGxheSBub25lXG4gICAgICAgICYtLW5hcnJvd1xuICAgICAgICAgICAgK2JlbG93KDEwMjRweClcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGggMTAwJVxuICAgICAgICAmX19idG5zXG4gICAgICAgICAgICByaWdodCAwXG5cbiAgICAmLWl0ZW1cbiAgICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgICBwYWRkaW5nIDYwcHggMTMwcHggMTAwcHggMFxuICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgICAgICBjdXJzb3IgcG9pbnRlclxuICAgICAgICBib3JkZXItYm90dG9tIDFweCBkYXNoZWQgcmdiYSgxNSwxNywxOCwuMylcblxuICAgICAgICArYmVsb3coMTI4MHB4KVxuICAgICAgICAgICAgcGFkZGluZyA2MHB4IDYwcHggMTAwcHggMFxuXG4gICAgICAgICtiZWxvdygxMDI0cHgpXG4gICAgICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgICAgICBwYWRkaW5nIDYwcHggMCA2MHB4IDBcblxuICAgICAgICArYmVsb3coNzc4cHgpXG4gICAgICAgICAgICBwYWRkaW5nIDkwcHggMCA2MHB4IDBcblxuICAgICAgICAmX193cmFwcGVyXG4gICAgICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zIGZsZXgtc3RhcnRcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudCBmbGV4LWVuZFxuICAgICAgICAgICAgZ2FwIDEyNXB4XG5cbiAgICAgICAgICAgICtiZWxvdygxMjgwcHgpXG4gICAgICAgICAgICAgICAgZ2FwIDUwcHhcblxuICAgICAgICAgICAgK2JlbG93KDEwMjRweClcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGggNDEwcHhcbiAgICAgICAgICAgICAgICBtYXJnaW4gYXV0b1xuICAgICAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW4tcmV2ZXJzZVxuICAgICAgICAgICAgICAgIGdhcCAzMHB4XG5cblxuICAgICAgICAmX19pbWdcbiAgICAgICAgICAgIG1heC13aWR0aCA0NTVweFxuICAgICAgICAgICAgaGVpZ2h0IDE3MHB4XG4gICAgICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgICAgICBmbGV4LXNocmluayAwXG4gICAgICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxuXG4gICAgICAgICAgICBpbWdcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0IGNvdmVyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgICAgICAgICB0b3AgMFxuICAgICAgICAgICAgICAgIGxlZnQgMFxuICAgICAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgICAgICBoZWlnaHQgMTAwJVxuXG4gICAgICAgICAgICArYmVsb3coMTA4MHB4KVxuICAgICAgICAgICAgICAgIG1heC13aWR0aCA0MTBweFxuXG5cblxuICAgICAgICAmX19jb250ZW50XG4gICAgICAgICAgICBtYXgtd2lkdGggNTg1cHhcbiAgICAgICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICAgICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgICAgICZfX2xvZ29cbiAgICAgICAgICAgIHdpZHRoIDExNXB4XG4gICAgICAgICAgICBoZWlnaHQgMTE1cHhcbiAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICB0b3AgMjVweFxuICAgICAgICAgICAgcmlnaHQgMFxuICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudCBjZW50ZXJcblxuICAgICAgICAgICAgK2JlbG93KDEwMjRweClcbiAgICAgICAgICAgICAgICBsZWZ0IDBcbiAgICAgICAgICAgICAgICByaWdodCB1bnNldFxuXG4gICAgICAgICAgICArYmVsb3coNzc4cHgpXG4gICAgICAgICAgICAgICAgbGVmdCB1bnNldFxuICAgICAgICAgICAgICAgIHRvcCAzMHB4XG4gICAgICAgICAgICAgICAgd2lkdGggNTBweFxuICAgICAgICAgICAgICAgIGhlaWdodCA1MHB4XG5cbiAgICAgICAgJl9fYnRuXG4gICAgICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgICAgIHZpc2liaWxpdHkgaGlkZGVuXG4gICAgICAgICAgICBmbGV4LXNocmluayAwXG4gICAgICAgICAgICBtYXJnaW4tbGVmdCA0MHB4XG4gICAgICAgICAgICB3aWR0aCA1NXB4XG4gICAgICAgICAgICBoZWlnaHQgNTVweFxuICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudCBjZW50ZXJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXMgNTAlXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRibGFja1xuICAgICAgICAgICAgY3Vyc29yIHBvaW50ZXJcbiAgICAgICAgICAgIHRyYW5zaXRpb24gJHRyYW5zXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbiAkdHJhbnNcbiAgICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRvcmFuZ2VcblxuICAgICAgICAgICAgK2JlbG93KDEwMjRweClcbiAgICAgICAgICAgICAgICBkaXNwbGF5IG5vbmVcblxuICAgICAgICAmX19kZXNjclxuICAgICAgICAgICAgbWFyZ2luLXRvcCAyMHB4XG4gICAgICAgICAgICBwXG4gICAgICAgICAgICAgICAgZm9udC1zaXplIDE0cHhcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodCAyMXB4XG4gICAgICAgICYtYm90dG9tXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDQwcHhcbiAgICAgICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb24gY29sdW1uXG4gICAgICAgICAgICBnYXAgMTJweFxuICAgICAgICAgICAgJl9fcm93XG4gICAgICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXMgZmxleC1zdGFydFxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudCBmbGV4LXN0YXJ0XG4gICAgICAgICAgICAgICAgZ2FwIDMwcHhcblxuICAgICAgICAgICAgICAgICtiZWxvdyg1ODBweClcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb24gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgIGdhcCA0cHhcblxuICAgICAgICAgICAgICAgIGRpdlxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemUgMTRweFxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodCAyMXB4XG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aCAxMjBweFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplIDE0cHhcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0IDIxcHhcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yIHJnYmEoMTUsMTcsMTgsIC43KVxuXG4gICAgICAgICAgICAgICAgc3BhblxuICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQgMjBweFxuICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICYtLWlubmVyXG4gICAgICAgICAgICAgICAgLnN0b3JpZXNcbiAgICAgICAgICAgICAgICAgICAgJi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAmLWJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZfX3Jvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGggMTQ1cHhcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgICAuc3Rvcmllc1xuICAgICAgICAgICAgICAgICYtaXRlbVxuICAgICAgICAgICAgICAgICAgICAmX19idG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMVxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eSB2aXNpYmxlXG5cbi5zdG9yeVxuICAgICZfX3dyYXBwZXJcbiAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgIGFsaWduLWl0ZW1zIGNlbnRlclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgZmxleC1lbmRcbiAgICAmX19jb250ZW50XG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgbWF4LXdpZHRoIDEwMzJweFxuICAgICZfX3RvcFxuICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgYWxpZ24taXRlbXMgZmxleC1zdGFydFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgc3BhY2UtYmV0d2VlblxuXG4gICAgICAgICtiZWxvdyg3NjhweClcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuXG4gICAgJl9fbWFpblxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIG1heC13aWR0aCA1OTVweFxuICAgICZfX3RpdGxlXG4gICAgICAgIC50aXRsZVxuICAgICAgICAgICAgJl9faWNvblxuICAgICAgICAgICAgICAgICtiZWxvdygxMDgwcHgpXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICZfX2Rlc2NyXG4gICAgICAgIG1hcmdpbi10b3AgMzBweFxuICAgICZfX2xvZ29cbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBtYXgtd2lkdGggMTAwcHhcblxuICAgICAgICArYmVsb3coNzY4cHgpXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDQwcHhcblxuICAgICYtaW1nXG4gICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICAgIG1hcmdpbi10b3AgNjBweFxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIGhlaWdodCAzMTBweFxuXG4gICAgICAgICtiZWxvdyg3NjhweClcbiAgICAgICAgICAgIGhlaWdodCAyMDBweFxuXG4gICAgICAgICZfX2xheWVyXG4gICAgICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICAgICAgdG9wIDBcbiAgICAgICAgICAgIGxlZnQgMFxuICAgICAgICAgICAgei1pbmRleCAyXG4gICAgICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgICAgICBoZWlnaHQgMTAwJVxuICAgICAgICBpbWdcbiAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICB0b3AgMFxuICAgICAgICAgICAgbGVmdCAwXG4gICAgICAgICAgICByaWdodCAwXG4gICAgICAgICAgICBib3R0b20gMFxuICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgaGVpZ2h0IDEwMCVcbiAgICAgICAgICAgIG9iamVjdC1maXQgY292ZXJcbiAgICAgICAgICAgIHotaW5kZXggMVxuIiwiLnN0b3JpZXNfX2xlZnQsXG4uc3Rvcmllc19fcmlnaHQge1xuICB3aWR0aDogMTAwJTtcbn1cbi5zdG9yaWVzX19sZWZ0IHtcbiAgbWF4LXdpZHRoOiAzNjVweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zdG9yaWVzX19yaWdodCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzBweCkge1xuICAuc3Rvcmllcy1zbGlkZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICB9XG59XG4uc3Rvcmllcy1zbGlkZXJfX2ltZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxNDBweDtcbn1cbi5zdG9yaWVzLXNsaWRlcl9faW1nIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLnN0b3JpZXMtc2xpZGVyX19sYXllciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXIucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG4uc3Rvcmllcy1zbGlkZXJfX2xheWVyLS1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXItb3JhbmdlLnBuZ1wiKTtcbn1cbi5zdG9yaWVzLXNsaWRlcl9fbGF5ZXItLXBpbmsge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXItcGluay5wbmdcIik7XG59XG4uc3Rvcmllcy1zbGlkZXJfX2xheWVyLS12aW9sZXQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXItdmlvbGV0LnBuZ1wiKTtcbn1cbi5zdG9yaWVzLXNsaWRlcl9fbGF5ZXItLWJsdWUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXItYmx1ZS5wbmdcIik7XG59XG4uc3Rvcmllcy1zbGlkZXJfX21haW4ge1xuICBnYXA6IDQwcHg7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTMwcHgpIHtcbiAgLnN0b3JpZXMtc2xpZGVyX19tYWluIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTRweDtcbiAgfVxufVxuLnN0b3JpZXMtc2xpZGVyX19sZWZ0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnN0b3JpZXMtc2xpZGVyX19zdWIge1xuICBwYWRkaW5nOiAzNXB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xuICBnYXA6IDEycHg7XG59XG4uc3Rvcmllcy1zbGlkZXJfX2luZm8ge1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiA0MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MzBweCkge1xuICAuc3Rvcmllcy1zbGlkZXJfX2luZm8ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAzcHg7XG4gIH1cbn1cbi5zdG9yaWVzLXNsaWRlcl9fYnRucyB7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG59XG4uc3Rvcmllcy1zbGlkZXJfX2JvdHRvbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNTBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTIwcHgpIHtcbiAgLnN0b3JpZXMtc2xpZGVyX19ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICB9XG59XG4uc3Rvcmllcy0tdmlvbGV0IC5zdG9yaWVzLXNsaWRlcl9fbGF5ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbWFpbi9ob21lL3N0b3JpZXMvc3Rvcmllcy1pbWctbGF5ZXItYmx1ZS5wbmdcIik7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc3Rvcmllc19fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc3RvcmllcyAuc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5zdG9yaWVzIC5zbGlkZXI6YmVmb3JlLFxuICAuc3RvcmllcyAuc2xpZGVyOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc3RvcmllcyAuc2xpZGVyLS1uYXJyb3cge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuLnN0b3JpZXMgLnNsaWRlcl9fYnRucyB7XG4gIHJpZ2h0OiAwO1xufVxuLnN0b3JpZXMtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA2MHB4IDEzMHB4IDEwMHB4IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHJnYmEoMTUsMTcsMTgsMC4zKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5zdG9yaWVzLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDYwcHggNjBweCAxMDBweCAwO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc3Rvcmllcy1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA2MHB4IDAgNjBweCAwO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc3OHB4KSB7XG4gIC5zdG9yaWVzLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDkwcHggMCA2MHB4IDA7XG4gIH1cbn1cbi5zdG9yaWVzLWl0ZW1fX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiAxMjVweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5zdG9yaWVzLWl0ZW1fX3dyYXBwZXIge1xuICAgIGdhcDogNTBweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnN0b3JpZXMtaXRlbV9fd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiA0MTBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGdhcDogMzBweDtcbiAgfVxufVxuLnN0b3JpZXMtaXRlbV9faW1nIHtcbiAgbWF4LXdpZHRoOiA0NTVweDtcbiAgaGVpZ2h0OiAxNzBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc3Rvcmllcy1pdGVtX19pbWcgaW1nIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDgwcHgpIHtcbiAgLnN0b3JpZXMtaXRlbV9faW1nIHtcbiAgICBtYXgtd2lkdGg6IDQxMHB4O1xuICB9XG59XG4uc3Rvcmllcy1pdGVtX19jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA1ODVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5zdG9yaWVzLWl0ZW1fX2xvZ28ge1xuICB3aWR0aDogMTE1cHg7XG4gIGhlaWdodDogMTE1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNXB4O1xuICByaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc3Rvcmllcy1pdGVtX19sb2dvIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiB1bnNldDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NzhweCkge1xuICAuc3Rvcmllcy1pdGVtX19sb2dvIHtcbiAgICBsZWZ0OiB1bnNldDtcbiAgICB0b3A6IDMwcHg7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICB9XG59XG4uc3Rvcmllcy1pdGVtX19idG4ge1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogNDBweDtcbiAgd2lkdGg6IDU1cHg7XG4gIGhlaWdodDogNTVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTExMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbn1cbi5zdG9yaWVzLWl0ZW1fX2J0biBwYXRoIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XG59XG4uc3Rvcmllcy1pdGVtX19idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ2ZjExO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnN0b3JpZXMtaXRlbV9fYnRuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc3Rvcmllcy1pdGVtX19kZXNjciB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4uc3Rvcmllcy1pdGVtX19kZXNjciBwIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjFweDtcbn1cbi5zdG9yaWVzLWl0ZW0tYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xufVxuLnN0b3JpZXMtaXRlbS1ib3R0b21fX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMzBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTgwcHgpIHtcbiAgLnN0b3JpZXMtaXRlbS1ib3R0b21fX3JvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbiAgfVxufVxuLnN0b3JpZXMtaXRlbS1ib3R0b21fX3JvdyBkaXYge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xufVxuLnN0b3JpZXMtaXRlbS1ib3R0b21fX3JvdyBkaXY6Zmlyc3QtY2hpbGQge1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICBjb2xvcjogcmdiYSgxNSwxNywxOCwwLjcpO1xufVxuLnN0b3JpZXMtaXRlbS1ib3R0b21fX3JvdyBzcGFuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuLnN0b3JpZXMtaXRlbS1ib3R0b20tLWlubmVyIC5zdG9yaWVzLWl0ZW0tYm90dG9tX19yb3cgZGl2OmZpcnN0LWNoaWxkIHtcbiAgbWluLXdpZHRoOiAxNDVweDtcbn1cbi5zdG9yaWVzLWl0ZW06aG92ZXIgLnN0b3JpZXMtaXRlbV9fYnRuIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5zdG9yeV9fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uc3RvcnlfX2NvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDMycHg7XG59XG4uc3RvcnlfX3RvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zdG9yeV9fdG9wIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4uc3RvcnlfX21haW4ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1OTVweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA4MHB4KSB7XG4gIC5zdG9yeV9fdGl0bGUgLnRpdGxlX19pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc3RvcnlfX2Rlc2NyIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi5zdG9yeV9fbG9nbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3RvcnlfX2xvZ28ge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gIH1cbn1cbi5zdG9yeS1pbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMxMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3RvcnktaW1nIHtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICB9XG59XG4uc3RvcnktaW1nX19sYXllciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnN0b3J5LWltZyBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHotaW5kZXg6IDE7XG59XG4iLCJiYXNlLWZvbnQtc2l6ZSA/PSAxNnB4XG5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcyA/PSBmYWxzZVxuXG5ydXB0dXJlID0ge1xuICByYXN0ZXJpc2UtbWVkaWEtcXVlcmllczogcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXNcbiAgbW9iaWxlLWN1dG9mZjogNDAwcHhcbiAgZGVza3RvcC1jdXRvZmY6IDEwNTBweFxuICBoZC1jdXRvZmY6IDE4MDBweFxuICBlbmFibGUtZW0tYnJlYWtwb2ludHM6IGZhbHNlXG4gIGJhc2UtZm9udC1zaXplOiBiYXNlLWZvbnQtc2l6ZVxuICBhbnRpLW92ZXJsYXA6IGZhbHNlXG4gIGRlbnNpdHktcXVlcmllczogJ2RwcHgnICd3ZWJraXQnICdtb3onICdkcGknXG4gIHJldGluYS1kZW5zaXR5OiAxLjVcbiAgdXNlLWRldmljZS13aWR0aDogZmFsc2Vcbn1cbnJ1cHR1cmUuc2NhbGUgPSAwIChydXB0dXJlLm1vYmlsZS1jdXRvZmYpIDYwMHB4IDgwMHB4IChydXB0dXJlLmRlc2t0b3AtY3V0b2ZmKSAocnVwdHVyZS5oZC1jdXRvZmYpXG5ydXB0dXJlLnNjYWxlLW5hbWVzID0gJ3hzJyAncycgJ20nICdsJyAneGwnICdoZCdcblxuLWlzLXN0cmluZyh2YWwpXG4gIGlmIHR5cGVvZih2YWwpIGlzIG5vdCAndW5pdCdcbiAgICBpZiB2YWwgaXMgYSAnc3RyaW5nJyBvciB2YWwgaXMgYSAnaWRlbnQnXG4gICAgICB0cnVlXG4gICAgZWxzZVxuICAgICAgZmFsc2VcbiAgZWxzZVxuICAgIGZhbHNlXG5cbi1nZXQtc2NhbGUtbnVtYmVyKHNjYWxlLW5hbWUpXG4gIGZvciBsaXN0LWl0ZW0sIGkgaW4gcnVwdHVyZS5zY2FsZS1uYW1lc1xuICAgIGlmIGxpc3QtaXRlbSBpcyBzY2FsZS1uYW1lXG4gICAgICByZXR1cm4gaSArIDFcbiAgcmV0dXJuIGZhbHNlXG5cbi1jb252ZXJ0LXRvKHRvLXVuaXQsIHZhbHVlLCBjb250ZXh0ID0gcnVwdHVyZS5iYXNlLWZvbnQtc2l6ZSlcbiAgZnJvbS11bml0ID0gdW5pdCh2YWx1ZSlcbiAgcmV0dXJuIHZhbHVlIGlmIHRvLXVuaXQgaXMgZnJvbS11bml0XG4gIGlmIHRvLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHZhbHVlIGlmIGZyb20tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgLyBjb250ZXh0KSwgdG8tdW5pdClcbiAgaWYgdG8tdW5pdCBpcyAncHgnXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlICogY29udGV4dCksICdweCcpXG5cbi1vbi1zY2FsZShuKVxuICByZXR1cm4gdW5pdChuKSBpcyAnJ1xuXG4tbGFyZ2VyLXRoYW4tc2NhbGUobilcbiAgcmV0dXJuIChuID4gKGxlbmd0aChydXB0dXJlLnNjYWxlKSAtIDEpKSBhbmQgLW9uLXNjYWxlKG4pXG5cbi1pcy16ZXJvKG4pXG4gIHJldHVybiBuIGlzIDBcblxuLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBzaGlmdC11bml0ID0gdW5pdChuKVxuICBhbnRpLW92ZXJsYXAgPSAwcHggdW5sZXNzIGFudGktb3ZlcmxhcFxuICBhbnRpLW92ZXJsYXAgPSAxcHggaWYgYW50aS1vdmVybGFwIGlzIHRydWVcbiAgaWYgbGVuZ3RoKGFudGktb3ZlcmxhcCkgaXMgMVxuICAgIHJldHVybiAtY29udmVydC10byhzaGlmdC11bml0LCBhbnRpLW92ZXJsYXApXG4gIGZvciB2YWwgaW4gYW50aS1vdmVybGFwXG4gICAgcmV0dXJuIHZhbCBpZiB1bml0KHZhbCkgaXMgc2hpZnQtdW5pdFxuXG4tYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCBuLCBzaWRlID0gJ21pbicpXG4gIC1zaGlmdCA9IC1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgaWYgKHNpZGUgaXMgJ21pbicgYW5kIC1zaGlmdCA+IDApIG9yIChzaWRlIGlzICdtYXgnIGFuZCAtc2hpZnQgPCAwKVxuICAgIG4gPSBuICsgLXNoaWZ0XG4gIHJldHVybiBuXG5cbi1pcy1wb3NpdGl2ZShuKVxuICByZXR1cm4gbiA+PSAwXG5cbi1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgaWYgdHlwZW9mKGRlbnNpdHkpIGlzIG5vdCAndW5pdCdcbiAgICBpZiBub3QgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9ICclcycgJSBkZW5zaXR5XG4gIGRlbnNpdHkgPSBydXB0dXJlLnJldGluYS1kZW5zaXR5IGlmIGRlbnNpdHkgaXMgJ3JldGluYSdcbiAgcXVlcmllcyA9ICgpXG4gIGZvciBxdWVyeSBpbiBydXB0dXJlLmRlbnNpdHktcXVlcmllc1xuICAgIGlmIHF1ZXJ5IGlzICd3ZWJraXQnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ21veidcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbydcbiAgICAgIHB1c2gocXVlcmllcywgJygtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcy8xKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAncmF0aW8nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcGknXG4gICAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICAgIGRlbnNpdHk9Y29udmVydChkZW5zaXR5KVxuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwaSknICUgKHJvdW5kKGRlbnNpdHkgKiA5NiwgMSkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwcHgnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBweCknICUgKGRlbnNpdHkpKVxuICByZXR1cm4gcXVlcmllc1xuXG5jcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGNsYXNzKVxuICAveycnICsgY2xhc3MgKyAnICcgKyBzZWxlY3RlZH1cbiAgICB7YmxvY2t9XG5cbi8vICtiZXR3ZWVuKG1pbiwgbWF4KVxuLy8gdXNhZ2UgKHNjYWxlIGNhbiBiZSBtaXhlZCB3aXRoIGN1c3RvbSB2YWx1ZXMpOlxuLy8gICAtICtiZXR3ZWVuKDEsIDMpIHNjYWxlOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMCwgMykgMCB3aWR0aDpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA1MDBweCkgY3VzdG9tOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDAsIDMwMHB4KSAwIHdpZHRoOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDEsIDMwMHB4KSBzY2FsZTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigyMDBweCwgNCkgY3VzdG9tOnNjYWxlXG5cbmJldHdlZW4obWluLCBtYXgsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgaWYgLWlzLXN0cmluZyhtaW4pXG4gICAgbWluID0gLWdldC1zY2FsZS1udW1iZXIobWluKVxuICBpZiAtaXMtc3RyaW5nKG1heClcbiAgICBtYXggPSAtZ2V0LXNjYWxlLW51bWJlcihtYXgpXG5cbiAgLW1pbiA9IHJ1cHR1cmUuc2NhbGVbbWluIC0gMV0gdW5sZXNzIC1pcy16ZXJvKG1pbikgb3IgKG5vdCAtb24tc2NhbGUobWluKSlcbiAgLW1heCA9IHJ1cHR1cmUuc2NhbGVbbWF4XSB1bmxlc3Mgbm90IC1vbi1zY2FsZShtYXgpXG4gIC1taW4gPz0gbWluXG4gIC1tYXggPz0gbWF4XG5cbiAgaWYgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgbm90IChkZW5zaXR5IG9yIC1tYXggb3Igb3JpZW50YXRpb24pXG4gICAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4nXG4gICAgdXNlLWRldmljZS13aWR0aCA9IHVzZS1kZXZpY2Utd2lkdGggPyAnZGV2aWNlLScgOiAnJ1xuICAgIHVubGVzcyAtbWluIGlzIDBcbiAgICAgIC1taW4gPSAtY29udmVydC10bygnZW0nLCAtbWluKSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1pbiA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1taW4sIHNpZGU6ICdtaW4nKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1pbi0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWluKVxuICAgIHVubGVzcyAtbGFyZ2VyLXRoYW4tc2NhbGUobWF4KVxuICAgICAgLW1heCA9IC1jb252ZXJ0LXRvKCdlbScsIC1tYXgpIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWF4ID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1heCwgc2lkZTogJ21heCcpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWF4LScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1tYXgpXG4gICAgaWYgb3JpZW50YXRpb25cbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICBpZiBkZW5zaXR5XG4gICAgICBjb25kaXRpb25zID0gKClcbiAgICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uICsgJyBhbmQgJXMnICUgKHF1ZXJ5KSlcbiAgICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICB7YmxvY2t9XG5cbmF0KHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5mcm9tLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBsZW5ndGgocnVwdHVyZS5zY2FsZSksIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYWJvdmUgPSBmcm9tLXdpZHRoXG5cbnRvLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKDEsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmJlbG93ID0gdG8td2lkdGhcblxubW9iaWxlKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JlbG93KHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG50YWJsZXQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihydXB0dXJlLm1vYmlsZS1jdXRvZmYsIHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVza3RvcChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmhkKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuaGQtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlbnNpdHkoZGVuc2l0eSwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgY29uZGl0aW9ucyA9ICgpXG4gICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbiBhbmQgJXMnICUgKHF1ZXJ5KVxuICAgICAgaWYgb3JpZW50YXRpb25cbiAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24pXG4gICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cblxucGl4ZWwtcmF0aW8gPSBkZW5zaXR5XG5cbnJldGluYShvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgK2RlbnNpdHkoJ3JldGluYScsIG9yaWVudGF0aW9uLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmxhbmRzY2FwZShkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBsYW5kc2NhcGUsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuXG5wb3J0cmFpdChkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBwb3J0cmFpdCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucnVwdHVyZS1ob3ZlcihkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGNvbmRpdGlvbiA9IFwib25seSBzY3JlZW4gYW5kIChob3ZlcjogaG92ZXIpXCI7XG4gIEBtZWRpYSAoe2NvbmRpdGlvbn0pXG4gICAge2Jsb2NrfVxuXG5ob3ZlciA9IHJ1cHR1cmUtaG92ZXJcbiJdfQ== */
