.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.subway-station-connecting-line h3,
.subway-station-connecting-buses h3 {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.6rem;
  line-height: 32px;
}
@media (min-width: 768px) {
  .subway-station-connecting-line h3,
  .subway-station-connecting-buses h3 {
    font-size: 3.4rem;
    line-height: 40px;
  }
}
.subway-station-connecting-line h3,
.subway-station-connecting-buses h3 {
  font-style: normal;
  font-weight: 700;
}

.subway-station-connecting-line {
  margin-bottom: 50px;
}
.subway-station-connecting-line .connecting-line-wrapper {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  border-bottom: 1px solid #767676;
  padding: 40px 0;
}
@media (max-width: 639px) {
  .subway-station-connecting-line .connecting-line-wrapper {
    flex-wrap: wrap;
  }
}
.subway-station-connecting-line .connecting-line-wrapper .connecting-line-left,
.subway-station-connecting-line .connecting-line-wrapper .connecting-line-right {
  display: -webkit-box;
  display: flex;
}
.subway-station-connecting-line .connecting-line-wrapper .connecting-line {
  width: 50%;
}
@media (max-width: 639px) {
  .subway-station-connecting-line .connecting-line-wrapper .connecting-line {
    width: 100%;
  }
  .subway-station-connecting-line .connecting-line-wrapper .connecting-line:first-child {
    margin-bottom: 30px;
  }
}
.subway-station-connecting-line .connecting-line-wrapper .wrapper-line-id {
  height: 100%;
  padding-right: 20px;
  font-weight: bold;
  font-size: 24px;
}
.subway-station-connecting-line .connecting-line-wrapper .line-1,
.subway-station-connecting-line .connecting-line-wrapper .line-2,
.subway-station-connecting-line .connecting-line-wrapper .line-3,
.subway-station-connecting-line .connecting-line-wrapper .line-4,
.subway-station-connecting-line .connecting-line-wrapper .line-5,
.subway-station-connecting-line .connecting-line-wrapper .line-6 {
  font-family: "Swiss 721 W01", Arial, sans-serif;
  height: 32px;
  width: 32px;
  line-height: 32px;
  border-radius: 100%;
  color: #ffffff;
  text-align: center;
  display: inline-block;
}
.subway-station-connecting-line .connecting-line-wrapper .line-1 {
  background: #f8c300;
  color: #000;
}
.subway-station-connecting-line .connecting-line-wrapper .line-2 {
  background: #00923f;
}
.subway-station-connecting-line .connecting-line-wrapper .line-3 {
  background: #0082c9;
}
.subway-station-connecting-line .connecting-line-wrapper .line-4 {
  background: #a21a68;
}
.subway-station-connecting-line .connecting-line-wrapper .line-5 {
  background: #eb8738;
}
.subway-station-connecting-line .connecting-line-wrapper .line-6 {
  background: #969594;
}
.subway-station-connecting-line .connecting-line-direction {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
}
@media (min-width: 768px) {
  .subway-station-connecting-line .connecting-line-direction {
    font-size: 2rem;
    line-height: 32px;
  }
}
.subway-station-connecting-line .connecting-line-direction {
  font-style: normal;
  font-weight: 300;
  font-weight: bold;
}
.subway-station-connecting-line .connecting-line-departing {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
}
@media (min-width: 768px) {
  .subway-station-connecting-line .connecting-line-departing {
    font-size: 2rem;
    line-height: 32px;
  }
}
.subway-station-connecting-line .connecting-line-departing {
  font-style: normal;
  font-weight: 300;
}
.subway-station-connecting-line a {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 300;
  color: #0070cd;
  text-decoration: none !important;
  position: relative;
  font-weight: 400;
  display: block;
}
.subway-station-connecting-line a::after {
  content: "";
  position: absolute;
  margin-left: 8px;
  height: 20px;
  width: 20px;
  bottom: 3px;
  background-image: url("/-/media/Project/TTC/DevProto/Icons/arrow-background-right-outline.svg");
  background-size: cover;
}
.subway-station-connecting-line a:hover, .subway-station-connecting-line a:focus {
  text-decoration: underline;
}
.subway-station-connecting-line a {
  font-size: 20px;
}

.subway-station-connecting-buses h3 {
  padding-bottom: 40px;
}
.subway-station-connecting-buses .connecting-buses {
  display: -webkit-box;
  display: flex;
  border-bottom: 1px solid #767676;
  padding: 15px 28px 15px 0;
}
@media (max-width: 639px) {
  .subway-station-connecting-buses .connecting-buses {
    display: block;
  }
}
.subway-station-connecting-buses .wrapper-connecting-buses-route {
  display: -webkit-box;
  display: flex;
}
.subway-station-connecting-buses .connecting-buses-route-number {
  font-family: "Swiss 721 W01", Arial, sans-serif;
  font-weight: normal;
  font-size: 22px;
  border-radius: 4px;
  min-width: 56px;
  width: 56px;
  text-align: center;
  color: #ffffff;
  background: #da251d;
  margin-right: 8px;
  border: 2px solid transparent;
  max-height: 32px;
  line-height: 27px;
}
.subway-station-connecting-buses .connecting-buses-route-number.night-bus {
  background-color: #fff;
  border-color: #024182;
  border-radius: 4px;
  color: #024182;
  position: relative;
  min-width: 56px;
  /* padding: 0 16px 0 2px;*/
  /* &:after {
    content: " ";
    display: block;
    width: 12px;
    height: 11px;
    position: absolute;
    top: 6px;
    right: 2px;
    background: url("/-/media/Project/TTC/DevProto/Icons/night-bus.svg") no-repeat;
  }*/
}
.subway-station-connecting-buses .connecting-buses-route-number.express-bus {
  background: #00923f;
}
.subway-station-connecting-buses .connecting-buses-route-number.limited-bus {
  background-color: #fff;
  border-color: #da251d;
  color: #da251d;
}
.subway-station-connecting-buses .connecting-buses-route-number.downtown-express-bus {
  background-color: #fff;
  border-color: #00923f;
  color: #00923f;
}
.subway-station-connecting-buses .connecting-buses-route-number.community-bus {
  background-color: #fff !important;
  border-color: gray;
  color: gray;
}
.subway-station-connecting-buses .connecting-buses-route-number.seasonal-bus {
  background-color: #fff;
  border-color: #EB6FBD;
  color: #EB6FBD;
}
.subway-station-connecting-buses .connecting-buses-route-number.shuttle-line6 {
  color: transparent;
  text-indent: -9999px;
  background-color: transparent;
  background-image: url("/~/media/Project/TTC/DevProto/Images/Line6ShuttleBus");
  background-repeat: no-repeat;
  border: 2px solid #eb8738;
  background-position: center;
  background-size: contain;
}
.subway-station-connecting-buses .connecting-buses-route-number.shuttle-line5 {
  color: transparent;
  text-indent: -9999px;
  background-color: transparent;
  background-image: url("/~/media/Project/TTC/DevProto/Images/Line5ShuttleBus");
  background-repeat: no-repeat;
  border: 2px solid #eb8738;
  background-position: center;
  background-size: contain;
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url {
  margin-left: auto;
}
@media (max-width: 639px) {
  .subway-station-connecting-buses .connecting-buses-route-schedule-url {
    margin-top: 0;
    padding-left: 66px;
  }
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url a {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 300;
  color: #0070cd;
  text-decoration: none !important;
  position: relative;
  font-weight: 400;
  display: block;
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url a::after {
  content: "";
  position: absolute;
  margin-left: 8px;
  height: 20px;
  width: 20px;
  bottom: 3px;
  background-image: url("/-/media/Project/TTC/DevProto/Icons/arrow-background-right-outline.svg");
  background-size: cover;
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url a:hover, .subway-station-connecting-buses .connecting-buses-route-schedule-url a:focus {
  text-decoration: underline;
}

.connecting-info {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
}
@media (min-width: 768px) {
  .connecting-info {
    font-size: 1.6rem;
    line-height: 16px;
  }
}
.connecting-info {
  font-style: normal;
  font-weight: 400;
  padding-top: 15px;
  margin-bottom: 40px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy92YXJzL190eXBlLWNsYXNzZXMuc2NzcyIsImNvbXBvbmVudC1zdWJ3YXktY29ubmVjdGluZy1saW5lLmNzcyIsImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJjb21wb25lbnQtc3Vid2F5LWNvbm5lY3RpbmctbGluZS5zY3NzIiwiY29tbW9uLXVpL3R5cG9ncmFwaHkvX21peGlucy5zY3NzIiwiYWJzdHJhY3RzL21peGlucy9fc2Fzcy1tcS1tb2Quc2NzcyIsImFic3RyYWN0cy9taXhpbnMvX2xpbmsuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHSTtFQUNJLGdCQUFBO0FDRlI7O0FEQ0k7RUFDSSxnQkFBQTtBQ0VSOztBREhJO0VBQ0ksZ0JBQUE7QUNNUjs7QURQSTtFQUNJLGdCQUFBO0FDVVI7O0FDVUEsZ0JBQUE7QUNiSTs7RUNzQ0ksd0NBYWM7RUFQbEIsa0NBQUE7RUFDQSxtQ0FBQTtFQXRDSSxpQkFBQTtFQUNBLGlCQUFBO0FIS1I7QUdVZ0I7RUR2Qlo7O0lDT0ksaUJBQUE7SUFDQSxpQkFBQTtFSFdOO0FBQ0Y7QUVwQkk7O0VDNERRLGtCQUFBO0VBQUEsZ0JBQUE7QUhuQ1o7O0FFcEJBO0VBQ0ksbUJBQUE7QUZ1Qko7QUVyQkk7RUFDSSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx5QkFBQTtVQUFBLDhCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxlQUFBO0FGdUJSO0FJMk1RO0VGdE9KO0lBT1EsZUFBQTtFRndCVjtBQUNGO0FFdEJROztFQUVJLG9CQUFBO0VBQUEsYUFBQTtBRndCWjtBRXJCUTtFQUNJLFVBQUE7QUZ1Qlo7QUkrTFE7RUZ2TkE7SUFJUSxXQUFBO0VGd0JkO0VFdEJjO0lBQ0ksbUJBQUE7RUZ3QmxCO0FBQ0Y7QUVwQlE7RUFDSSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUZzQlo7QUVuQlE7Ozs7OztFQU1JLCtDQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0F6RCtCO0VBMEQvQixrQkFBQTtFQUNBLHFCQUFBO0FGcUJaO0FFbEJRO0VBQ0ksbUJBQUE7RUFDQSxXQUFBO0FGb0JaO0FFakJRO0VBQ0ksbUJBQUE7QUZtQlo7QUVoQlE7RUFDSSxtQkFBQTtBRmtCWjtBRWZRO0VBQ0ksbUJBQUE7QUZpQlo7QUVkUTtFQUNJLG1CQUFBO0FGZ0JaO0FFYlE7RUFDSSxtQkFBQTtBRmVaO0FFWEk7RUM5Q0ksd0NBYWM7RUFQbEIsa0NBQUE7RUFDQSxtQ0FBQTtFQXRDSSxpQkFBQTtFQUNBLGlCQUFBO0FIOEZSO0FHL0VnQjtFRDZEWjtJQzdFSSxlQUFBO0lBQ0EsaUJBQUE7RUhtR047QUFDRjtBRXhCSTtFQ3hCUSxrQkFBQTtFQUFBLGdCQUFBO0VEMEJKLGlCQUFBO0FGMkJSO0FFeEJJO0VDbkRJLHdDQWFjO0VBUGxCLGtDQUFBO0VBQ0EsbUNBQUE7RUF0Q0ksaUJBQUE7RUFDQSxpQkFBQTtBSGdIUjtBR2pHZ0I7RURrRVo7SUNsRkksZUFBQTtJQUNBLGlCQUFBO0VIcUhOO0FBQ0Y7QUVyQ0k7RUM3QlEsa0JBQUE7RUFBQSxnQkFBQTtBSHNFWjtBRXJDSTtFQ3ZESSx3Q0FhYztFQVBsQixrQ0FBQTtFQUNBLG1DQUFBO0VBdENJLGlCQUFBO0VBQ0EsaUJBQUE7RUFvREksa0JBQUE7RUFBQSxnQkFBQTtFRWpCUixjQS9DbUI7RUFnRG5CLGdDQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7QUxpR0o7QUsvRkk7RUFDSSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFiZ0I7RUFjaEIsWUFiUztFQWNULFdBZFM7RUFlVCxXQUFBO0VBQ0EsK0ZBQUE7RUFDQSxzQkFBQTtBTGlHUjtBSzlGSTtFQUNJLDBCQUFBO0FMZ0dSO0FFaEVJO0VBRUksZUFBQTtBRmlFUjs7QUU1REk7RUFDSSxvQkFBQTtBRitEUjtBRTVESTtFQUNJLG9CQUFBO0VBQUEsYUFBQTtFQUNBLGdDQUFBO0VBQ0EseUJBQUE7QUY4RFI7QUlxRVE7RUZ0SUo7SUFNUSxjQUFBO0VGK0RWO0FBQ0Y7QUU1REk7RUFDSSxvQkFBQTtFQUFBLGFBQUE7QUY4RFI7QUUzREk7RUFDSSwrQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNBbEltQztFQW1JbkMsbUJBckkwQjtFQXNJMUIsaUJBQUE7RUFDQSw2QkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUY2RFI7QUUzRFE7RUFDSSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7RUFDQTs7Ozs7Ozs7O0lBQUE7QUZzRVo7QUUxRFE7RUFDSSxtQkFBQTtBRjREWjtBRXpEUTtFQUNJLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxjQUFBO0FGMkRaO0FFeERRO0VBQ0ksc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGNBQUE7QUYwRFo7QUV2RFE7RUFDSSxpQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBRnlEWjtBRXREUTtFQUNJLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxjQUFBO0FGd0RaO0FFckRRO0VBQ0ksa0JBQUE7RUFDQSxvQkFBQTtFQUNBLDZCQUFBO0VBQ0EsNkVBQUE7RUFDQSw0QkFBQTtFQUNBLHlCQUFBO0VBQ0EsMkJBQUE7RUFDQSx3QkFBQTtBRnVEWjtBRXBEUTtFQUNJLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSw2QkFBQTtFQUNBLDZFQUFBO0VBQ0EsNEJBQUE7RUFDQSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esd0JBQUE7QUZzRFo7QUVsREk7RUFDSSxpQkFBQTtBRm9EUjtBSW5CUTtFRmxDSjtJQUlRLGFBQUE7SUFDQSxrQkFBQTtFRnFEVjtBQUNGO0FFbkRRO0VDOUtBLHdDQWFjO0VBUGxCLGtDQUFBO0VBQ0EsbUNBQUE7RUF0Q0ksaUJBQUE7RUFDQSxpQkFBQTtFQW9ESSxrQkFBQTtFQUFBLGdCQUFBO0VFakJSLGNBL0NtQjtFQWdEbkIsZ0NBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtBTHNPSjtBS3BPSTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQWJnQjtFQWNoQixZQWJTO0VBY1QsV0FkUztFQWVULFdBQUE7RUFDQSwrRkFBQTtFQUNBLHNCQUFBO0FMc09SO0FLbk9JO0VBQ0ksMEJBQUE7QUxxT1I7O0FFeEVBO0VDcExRLHdDQWFjO0VBUGxCLGtDQUFBO0VBQ0EsbUNBQUE7RUF0Q0ksaUJBQUE7RUFDQSxpQkFBQTtBSGtTUjtBR25SZ0I7RURtTWhCO0lDbk5RLGlCQUFBO0lBQ0EsaUJBQUE7RUh1U047QUFDRjtBRXRGQTtFQzlKWSxrQkFBQTtFQUFBLGdCQUFBO0VEZ0tSLGlCQUFBO0VBQ0EsbUJBQUE7QUZ5RkoiLCJmaWxlIjoiY29tcG9uZW50LXN1YndheS1jb25uZWN0aW5nLWxpbmUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcInR5cGVcIjtcclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gdHlwZS4kdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMge1xyXG4gICAgLnUtdHlwZS0tI3skbmFtZX0ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAjeyRzdHlsZX07XHJcbiAgICB9XHJcbn1cclxuIiwiLnUtdHlwZS0tbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4udS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnUtdHlwZS0tbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnUtdHlwZS0tYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGJyZWFrcG9pbnRzICovXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIGgzLFxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgaDMge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgaDMsXG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIGgzIHtcbiAgICBmb250LXNpemU6IDMuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgfVxufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSBoMyxcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIGgzIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc2NzY3NjtcbiAgcGFkZGluZzogNDBweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5jb25uZWN0aW5nLWxpbmUtbGVmdCxcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5jb25uZWN0aW5nLWxpbmUtcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmNvbm5lY3RpbmctbGluZSB7XG4gIHdpZHRoOiA1MCU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmNvbm5lY3RpbmctbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmNvbm5lY3RpbmctbGluZTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLndyYXBwZXItbGluZS1pZCB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTEsXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS0yLFxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmxpbmUtMyxcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTQsXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS01LFxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmxpbmUtNiB7XG4gIGZvbnQtZmFtaWx5OiBcIlN3aXNzIDcyMSBXMDFcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS0xIHtcbiAgYmFja2dyb3VuZDogI2Y4YzMwMDtcbiAgY29sb3I6ICMwMDA7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS0yIHtcbiAgYmFja2dyb3VuZDogIzAwOTIzZjtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTMge1xuICBiYWNrZ3JvdW5kOiAjMDA4MmM5O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmxpbmUtNCB7XG4gIGJhY2tncm91bmQ6ICNhMjFhNjg7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS01IHtcbiAgYmFja2dyb3VuZDogI2ViODczODtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTYge1xuICBiYWNrZ3JvdW5kOiAjOTY5NTk0O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLWRpcmVjdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLWRpcmVjdGlvbiB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtZGlyZWN0aW9uIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS1kZXBhcnRpbmcge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS1kZXBhcnRpbmcge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLWRlcGFydGluZyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgYSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMwMDcwY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYm90dG9tOiAzcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi8tL21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ljb25zL2Fycm93LWJhY2tncm91bmQtcmlnaHQtb3V0bGluZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIGE6aG92ZXIsIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSBhIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyBoMyB7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc2NzY3NjtcbiAgcGFkZGluZzogMTVweCAyOHB4IDE1cHggMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MzlweCkge1xuICAuc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC53cmFwcGVyLWNvbm5lY3RpbmctYnVzZXMtcm91dGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtbnVtYmVyIHtcbiAgZm9udC1mYW1pbHk6IFwiU3dpc3MgNzIxIFcwMVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1pbi13aWR0aDogNTZweDtcbiAgd2lkdGg6IDU2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQ6ICNkYTI1MWQ7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgbWF4LWhlaWdodDogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDI3cHg7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIubmlnaHQtYnVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDI0MTgyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiAjMDI0MTgyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogNTZweDtcbiAgLyogcGFkZGluZzogMCAxNnB4IDAgMnB4OyovXG4gIC8qICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2cHg7XG4gICAgcmlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9uaWdodC1idXMuc3ZnXCIpIG5vLXJlcGVhdDtcbiAgfSovXG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIuZXhwcmVzcy1idXMge1xuICBiYWNrZ3JvdW5kOiAjMDA5MjNmO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtbnVtYmVyLmxpbWl0ZWQtYnVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZGEyNTFkO1xuICBjb2xvcjogI2RhMjUxZDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlci5kb3dudG93bi1leHByZXNzLWJ1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzAwOTIzZjtcbiAgY29sb3I6ICMwMDkyM2Y7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIuY29tbXVuaXR5LWJ1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBncmF5O1xuICBjb2xvcjogZ3JheTtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlci5zZWFzb25hbC1idXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNFQjZGQkQ7XG4gIGNvbG9yOiAjRUI2RkJEO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtbnVtYmVyLnNodXR0bGUtbGluZTYge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL34vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSW1hZ2VzL0xpbmU2U2h1dHRsZUJ1c1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYm9yZGVyOiAycHggc29saWQgI2ViODczODtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIuc2h1dHRsZS1saW5lNSB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvfi9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JbWFnZXMvTGluZTVTaHV0dGxlQnVzXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZWI4NzM4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLXNjaGVkdWxlLXVybCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLXNjaGVkdWxlLXVybCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDY2cHg7XG4gIH1cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLXNjaGVkdWxlLXVybCBhIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogIzAwNzBjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1zY2hlZHVsZS11cmwgYTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJvdHRvbTogM3B4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9hcnJvdy1iYWNrZ3JvdW5kLXJpZ2h0LW91dGxpbmUuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtc2NoZWR1bGUtdXJsIGE6aG92ZXIsIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLXNjaGVkdWxlLXVybCBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jb25uZWN0aW5nLWluZm8ge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb25uZWN0aW5nLWluZm8ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICB9XG59XG4uY29ubmVjdGluZy1pbmZvIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn0iLCIvLyBAaW1wb3J0ICd+c2Fzcy1tcS9tcSc7XHJcbkB1c2UgXCJzYXNzOmxpc3RcIjtcclxuQHVzZSAnbWl4aW5zL3Nhc3MtbXEtbW9kLnNjc3MnO1xyXG5AdXNlICcuLi9jb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AdXNlICdtaXhpbnMvYWNjZXNzaWJpbGl0eSc7XHJcbkB1c2UgJ21peGlucy9idXR0b24nO1xyXG5AdXNlICdtaXhpbnMvbGluayc7XHJcbkB1c2UgJ21peGlucy9vdmVybGF5JztcclxuQHVzZSAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQHVzZSAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AdXNlICdtaXhpbnMvdGFnJztcclxuQHVzZSAnLi4vYWJzdHJhY3RzL3ZhcnMvY29sb3JzJztcclxuXHJcbkBmb3J3YXJkICdtaXhpbnMvc2Fzcy1tcS1tb2Quc2Nzcyc7XHJcbkBmb3J3YXJkICcuLi9jb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL2FjY2Vzc2liaWxpdHknO1xyXG5AZm9yd2FyZCAnbWl4aW5zL2J1dHRvbic7XHJcbkBmb3J3YXJkICdtaXhpbnMvbGluayc7XHJcbkBmb3J3YXJkICdtaXhpbnMvb3ZlcmxheSc7XHJcbkBmb3J3YXJkICdtaXhpbnMvdHJhbnNpdGlvbnMnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL3RhZyc7XHJcblxyXG4vLyBCZWxvdyBhcmUgbWl4aW4ncyBmcm9tIEZYQVxyXG4vKiBicmVha3BvaW50cyAqL1xyXG5cclxuJGJyZWFrLWRlc2t0b3A6IDk2MHB4O1xyXG4kYnJlYWstbW9iaWxlOiAzODBweDtcclxuJGJyZWFrLW1vYmlsZS1ob3Jpem9udGFsOiA2NDBweDtcclxuJGJyZWFrLW1vYmlsZS1sYXJnZTogNzg2cHg7XHJcblxyXG5AbWl4aW4gd3JhcHBlcigpIHtcclxuICAgIG1heC13aWR0aDogOTYwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAxLjYpIHtcclxuICAgIGZvbnQtc2l6ZTogKCRzaXplVmFsdWUgKiAxMCkgKyBweDtcclxuICAgIGZvbnQtc2l6ZTogJHNpemVWYWx1ZSArIHJlbTtcclxufVxyXG5cclxuQG1peGluIG9wZW5zYW5zLWZvbnQtc3RhY2soKSB7XHJcbiAgICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbkBtaXhpbiBsb2FkaW5nLWdpZigpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtODtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqTXlJaUJvWldsbmFIUTlJak15SWlCbWFXeHNQU0ppYkdGamF5SStEUW9nSUR4d1lYUm9JQ0J2Y0dGamFYUjVQU0l1TWpVaUlHUTlJazB4TmlBd0lFRXhOaUF4TmlBd0lEQWdNQ0F4TmlBek1pQkJNVFlnTVRZZ01DQXdJREFnTVRZZ01DQk5NVFlnTkNCQk1USWdNVElnTUNBd0lERWdNVFlnTWpnZ1FURXlJREV5SURBZ01DQXhJREUySURRaUx6NE5DaUFnUEhCaGRHZ2dabWxzYkQwbkl6RmhPREJpTmljZ1pEMGlUVEUySURBZ1FURTJJREUySURBZ01DQXhJRE15SURFMklFd3lPQ0F4TmlCQk1USWdNVElnTUNBd0lEQWdNVFlnTkhvaVBnMEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQm1jbTl0UFNJd0lERTJJREUySWlCMGJ6MGlNell3SURFMklERTJJaUJrZFhJOUlqQXVPSE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGcwS0lDQThMM0JoZEdnK0RRbzhMM04yWno0TkNnPT0pO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbkBtaXhpbiByZXNwb25kLXRvKCRtZWRpYSkge1xyXG4gICAgQGlmICRtZWRpYT09bW9iaWxlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtaG9yaXpvbnRhbCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlLWhvcml6b250YWwgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09bW9iaWxlLWxhcmdlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtbGFyZ2UpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT10YWJsZXQge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrLW1vYmlsZSArIDEpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstZGVza3RvcCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1hbGwtbW9iaWxlIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWRlc2t0b3Age1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrLWRlc2t0b3ApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJhc2ljKCRwb3NpdGlvbjogYWxsLCAkYm9yZGVyLWNvbG9yOiBjb2xvcnMuJGJvcmRlci1ncmF5LCAkYm9yZGVyLXdpZHRoOiAxcHgpIHtcclxuICAgIEBpZigkcG9zaXRpb249PXRvcCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09Ym90dG9tKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09cmlnaHQpIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGZpeGVkLWJnKCRwb3MsICRtaW4taGVpZ2h0OiAyNDBweCkge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvcztcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbiAgICBtaW4taGVpZ2h0OiAkbWluLWhlaWdodDtcclxufVxyXG5cclxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcclxuICAgIC8vIERpcmVjdGlvbiBoYXMgYmVlbiBvbWl0dGVkIGFuZCBoYXBwZW5zIHRvIGJlIGEgY29sb3Itc3RvcFxyXG4gICAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKT09ZmFsc2Uge1xyXG4gICAgICAgICRjb2xvci1zdG9wczogJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzO1xyXG4gICAgICAgICRkaXJlY3Rpb246IDE4MGRlZztcclxuICAgIH1cclxuXHJcbiAgICAkZmlyc3QtY29sb3Itc3RvcC1ncm91cDogbGlzdC5udGgoJGNvbG9yLXN0b3BzLCAxKTtcclxuICAgICRmaXJzdC1jb2xvci1zdG9wOiBsaXN0Lm50aCgkZmlyc3QtY29sb3Itc3RvcC1ncm91cCwgMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZmlyc3QtY29sb3Itc3RvcDtcclxuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZ2FjeS1kaXJlY3Rpb24oJGRpcmVjdGlvbiksICRjb2xvci1zdG9wcyk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzKTtcclxufVxyXG4iLCJAdXNlIFwiYWJzdHJhY3RzXCI7XHJcblxyXG5AdXNlIFwiYWJzdHJhY3RzL21peGluc1wiO1xyXG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9ucy9jb2xvclwiIGFzIGZ1bmN0aW9ucy1jb2xvcjtcclxuXHJcbiRzdWJ3YXktY29ubmVjdGluZy1jb2xvci1wcmltYXJ5OiBmdW5jdGlvbnMtY29sb3IuY29sb3IocHJpbWFyeSk7XHJcbiRzdWJ3YXktY29ubmVjdGluZy1jb2xvci1ncmV5LWJvcmRlcjogZnVuY3Rpb25zLWNvbG9yLmNvbG9yKGdyZXktYm9yZGVyKTtcclxuJHN1YndheS1jb25uZWN0aW5nLWNvbG9yLXByaW1hcnktY29udHJhc3Q6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcihwcmltYXJ5LWNvbnRyYXN0KTtcclxuXHJcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUsXHJcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIHtcclxuICAgIGgzIHtcclxuICAgICAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShkNCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHJcbiAgICAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3Vid2F5LWNvbm5lY3RpbmctY29sb3ItZ3JleS1ib3JkZXI7XHJcbiAgICAgICAgcGFkZGluZzogNDBweCAwO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtaXhpbnMubXEoJHVudGlsOiBzbSkge1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29ubmVjdGluZy1saW5lLWxlZnQsXHJcbiAgICAgICAgLmNvbm5lY3RpbmctbGluZS1yaWdodCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29ubmVjdGluZy1saW5lIHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5tcSgkdW50aWw6IHNtKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAud3JhcHBlci1saW5lLWlkIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmxpbmUtMSxcclxuICAgICAgICAubGluZS0yLFxyXG4gICAgICAgIC5saW5lLTMsXHJcbiAgICAgICAgLmxpbmUtNCxcclxuICAgICAgICAubGluZS01LFxyXG4gICAgICAgIC5saW5lLTYge1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJTd2lzcyA3MjEgVzAxXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgICAgICAgY29sb3I6ICRzdWJ3YXktY29ubmVjdGluZy1jb2xvci1wcmltYXJ5LWNvbnRyYXN0O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5saW5lLTEge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjhjMzAwO1xyXG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5saW5lLTIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDA5MjNmO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmxpbmUtMyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDgyYzk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubGluZS00IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2EyMWE2ODtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5saW5lLTUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWI4NzM4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmxpbmUtNiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM5Njk1OTQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb25uZWN0aW5nLWxpbmUtZGlyZWN0aW9uIHtcclxuICAgICAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShib2R5KTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAuY29ubmVjdGluZy1saW5lLWRlcGFydGluZyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmxpbmstLWFycm93KCk7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyB7XHJcbiAgICBoMyB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbm5lY3RpbmctYnVzZXMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzdWJ3YXktY29ubmVjdGluZy1jb2xvci1ncmV5LWJvcmRlcjtcclxuICAgICAgICBwYWRkaW5nOiAxNXB4IDI4cHggMTVweCAwO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtaXhpbnMubXEoJHVudGlsOiBzbSkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXBwZXItY29ubmVjdGluZy1idXNlcy1yb3V0ZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgIH1cclxuXHJcbiAgICAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlN3aXNzIDcyMSBXMDFcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogNTZweDtcclxuICAgICAgICB3aWR0aDogNTZweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICRzdWJ3YXktY29ubmVjdGluZy1jb2xvci1wcmltYXJ5LWNvbnRyYXN0O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRzdWJ3YXktY29ubmVjdGluZy1jb2xvci1wcmltYXJ5O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XHJcblxyXG4gICAgICAgICYubmlnaHQtYnVzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDI0MTgyO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDI0MTgyO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIG1pbi13aWR0aDogNTZweDtcclxuICAgICAgICAgICAgLyogcGFkZGluZzogMCAxNnB4IDAgMnB4OyovXHJcbiAgICAgICAgICAgIC8qICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgICAgIGhlaWdodDogMTFweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA2cHg7XHJcbiAgICAgICAgcmlnaHQ6IDJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9uaWdodC1idXMuc3ZnXCIpIG5vLXJlcGVhdDtcclxuICAgICAgfSovXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmV4cHJlc3MtYnVzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwOTIzZjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubGltaXRlZC1idXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICNkYTI1MWQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZGEyNTFkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5kb3dudG93bi1leHByZXNzLWJ1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzAwOTIzZjtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDkyM2Y7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmNvbW11bml0eS1idXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogZ3JheTtcclxuICAgICAgICAgICAgY29sb3I6IGdyYXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnNlYXNvbmFsLWJ1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI0VCNkZCRDtcclxuICAgICAgICAgICAgY29sb3I6ICNFQjZGQkQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnNodXR0bGUtbGluZTYge1xyXG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvfi9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JbWFnZXMvTGluZTZTaHV0dGxlQnVzJyk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlYjg3Mzg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zaHV0dGxlLWxpbmU1IHtcclxuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL34vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSW1hZ2VzL0xpbmU1U2h1dHRsZUJ1cycpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZWI4NzM4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtc2NoZWR1bGUtdXJsIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLm1xKCR1bnRpbDogc20pIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2NnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5saW5rLS1hcnJvdygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmNvbm5lY3RpbmctaW5mbyB7XHJcbiAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShkLXhzbWFsbCk7XHJcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbn1cclxuIiwiQHVzZSAnc2FzczptYXAnO1xyXG5AdXNlICdzYXNzOmxpc3QnO1xyXG5AdXNlICdzYXNzOm1hdGgnO1xyXG5AdXNlICdzYXNzOm1ldGEnO1xyXG5AdXNlICcuLi8uLi9hYnN0cmFjdHMvdmFycy90eXBlJztcclxuQHVzZSAnLi4vLi4vYWJzdHJhY3RzL3ZhcnMvYnJlYWtwb2ludHMnIGFzIGJhc2U7XHJcbkB1c2UgJy4uLy4uL2Fic3RyYWN0cy9mdW5jdGlvbnMvcHgtdG8tcmVtJztcclxuXHJcbkBmdW5jdGlvbiB0by1yZW0oJHZhbHVlKSB7XHJcbiAgICBAaWYgbWF0aC5pcy11bml0bGVzcygkdmFsdWUpIG9yIG1hdGgudW5pdCgkdmFsdWUpICE9ICdweCcge1xyXG4gICAgICAgIEByZXR1cm4gJHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gcHgtdG8tcmVtLmdldC1yZW0oJHZhbHVlKTtcclxufVxyXG5cclxuQG1peGluIGlvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplcykge1xyXG4gICAgQGlmIGxpc3QubGVuZ3RoKCRzaXplcykgPT0gMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiBsaXN0Lm50aCgkc2l6ZXMsIDEpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBsaXN0Lm50aCgkc2l6ZXMsIDIpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJHNpemVzO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gaW90YS10eXBlKCRzaXplcywgJGJyZWFrcG9pbnRzOiBiYXNlLiRpb3RhLWdsb2JhbC1icmVha3BvaW50cykge1xyXG4gICAgQGlmIG1ldGEudHlwZS1vZigkc2l6ZXMpID09ICdtYXAnIHtcclxuICAgICAgICBAaWYgbWFwLmhhcy1rZXkoJHNpemVzLCBudWxsKSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGlvdGEtZXh0cmFjdC10eXBlLXNpemVzKG1hcC5nZXQoJHNpemVzLCBudWxsKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHNpemUgaW4gJHNpemVzIHtcclxuICAgICAgICAgICAgQGlmICRicmVha3BvaW50ICE9IG51bGwgYW5kIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpIHtcclxuICAgICAgICAgICAgICAgIEBtZWRpYSAje21hcC5nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCl9IHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBpb3RhLWV4dHJhY3QtdHlwZS1zaXplcygkc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemVzKTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5AbWl4aW4gdWktdHlwb2dyYXBoeS1iYXNlKCRmb250LWZhbWlseTogdHlwZS4kdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0KSB7XHJcbiAgICBAaWYgJGZvbnQtZmFtaWx5ICE9IG51bGwge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6IHR5cGUuJHVpLXR5cG9ncmFwaHktc3RhY2stZGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbn1cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5KCRzdHlsZSkge1xyXG4gICAgQGlmIG1hcC5oYXMta2V5KHR5cGUuJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpIHtcclxuICAgICAgICAkc3R5bGU6IG1hcC5nZXQodHlwZS4kdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSk7XHJcbiAgICAgICAgJGZvbnQtZmFtaWx5OiBtYXAuZ2V0KCRzdHlsZSwgZm9udC1mYW1pbHkpO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5KTtcclxuICAgICAgICBAaW5jbHVkZSBpb3RhLXR5cGUobWFwLmdldCgkc3R5bGUsIHNpemVzKSk7XHJcbiAgICAgICAgLy8gUmVtb3ZlIHByb3BlcnRpZXMgdGhhdCBkbyBub3QgbmVlZCB0byBiZSBnZW5lcmF0ZWQgYmVsb3dcclxuICAgICAgICAkcHJvcHM6IG1hcC5yZW1vdmUoJHN0eWxlLCBmb250LWZhbWlseSwgbWFyZ2luLCBzaXplcyk7XHJcbiAgICAgICAgJGtleXM6IG1hcC5rZXlzKCRwcm9wcyk7XHJcblxyXG4gICAgICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xyXG4gICAgICAgICAgICAjeyRrZXl9OiBtYXAuZ2V0KCRwcm9wcywgJGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybignQ291bGQgbm90IGZpbmQgYCN7JHN0eWxlfWAgaW4gYCR1aS10eXBvZ3JhcGh5LXN0eWxlc2AnKTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHktbWFyZ2luKCRzdHlsZSkge1xyXG4gICAgQGlmIG1hcC5oYXMta2V5KHR5cGUuJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpIHtcclxuICAgICAgICAkc3R5bGUtZGVmaW5pdGlvbjogbWFwLmdldCh0eXBlLiR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcclxuICAgICAgICAkc3R5bGUtbWFyZ2luOiBtYXAuZ2V0KCRzdHlsZS1kZWZpbml0aW9uLCBtYXJnaW4pO1xyXG4gICAgICAgIG1hcmdpbjogJHN0eWxlLW1hcmdpbjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybignQ291bGQgbm90IGZpbmQgYCN7JHN0eWxlfWAgaW4gYCR1aS10eXBvZ3JhcGh5LXN0eWxlc2AgZm9yIG1hcmdpbicpO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vbW9kZGVkIHRvIHVzZSBweFxyXG5cclxuQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XHJcbkB1c2UgJy4uL3ZhcnMvYnJlYWtwb2ludHMnO1xyXG5AdXNlICdzYXNzOmxpc3QnO1xyXG5AdXNlICdzYXNzOm1hcCc7XHJcbkB1c2UgJ3Nhc3M6bWV0YSc7XHJcbkB1c2UgJ3Nhc3M6bWF0aCc7XHJcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcclxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxyXG5cclxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XHJcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXHJcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBSZXNwb25zaXZlIG1vZGVcclxuLy8vXHJcbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcclxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXHJcbi8vL1xyXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxyXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gb2xkLWllLnNjc3NcclxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XHJcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXHJcbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJyZWFrcG9pbnQgbGlzdFxyXG4vLy9cclxuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXHJcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXHJcbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXHJcbi8vL1xyXG4vLy8gQHR5cGUgTWFwXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLWJyZWFrcG9pbnRzOiBicmVha3BvaW50cy4kbXEtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3RhdGljIGJyZWFrcG9pbnQgKGZvciBmaXhlZC13aWR0aCBsYXlvdXRzKVxyXG4vLy9cclxuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxyXG4vLy8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IHdpZHRoIGZvciB0aGUgZml4ZWQtd2lkdGggbGF5b3V0XHJcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3NcclxuLy8vICAvL1xyXG4vLy8gIC8vIElnbm9yZSBhbGwgc3R5bGVzIGFib3ZlIHRhYmxldCBicmVha3BvaW50LFxyXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxyXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcclxuLy8vICAkbXEtc3RhdGljLWJyZWFrcG9pbnQ6IHRhYmxldDtcclxuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcclxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcclxuLy8vXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogbWQyICFkZWZhdWx0O1xyXG5cclxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vXHJcbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxyXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcclxuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxyXG4vLy9cclxuLy8vIEB0eXBlIG1hcFxyXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcclxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXHJcbi8vL1xyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcclxuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XHJcbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XHJcbiAgICBAaWYgbWF0aC5pcy11bml0bGVzcygkcHgpIHtcclxuICAgICAgICBAd2FybiBcIkFzc3VtaW5nICN7JHB4fSB0byBiZSBpbiBwaXhlbHMsIGF0dGVtcHRpbmcgdG8gY29udmVydCBpdCBpbnRvIHBpeGVscy5cIjtcclxuICAgICAgICBAcmV0dXJuIG1xLXB4MmVtKCRweCAqIDFweCwgJGJhc2UtZm9udC1zaXplKTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIG1hdGgudW5pdCgkcHgpID09ICdlbScge1xyXG4gICAgICAgIEByZXR1cm4gJHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gbWF0aC5kaXYoJHB4LCAkYmFzZS1mb250LXNpemUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcclxuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xyXG4gICAgQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcclxuICAgICAgICBAcmV0dXJuIG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQHdhcm4gXCJCcmVha3BvaW50ICN7JG5hbWV9IHdhc24ndCBmb3VuZCBpbiAkYnJlYWtwb2ludHMuXCI7XHJcbiAgICAgICAgQHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLy8gTWVkaWEgUXVlcnkgbWl4aW5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICR1bnRpbCAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkYW5kIChmYWxzZSkgLSBBZGRpdGlvbmFsIG1lZGlhIHF1ZXJ5IHBhcmFtZXRlcnNcclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxyXG4vLy9cclxuLy8vIEBpZ25vcmUgVW5kb2N1bWVudGVkIEFQSSwgZm9yIGFkdmFuY2VkIHVzZSBvbmx5OlxyXG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXHJcbi8vLyBAaWdub3JlIEBwYXJhbSB7U3RyaW5nfSAkc3RhdGljLWJyZWFrcG9pbnQgKCRtcS1zdGF0aWMtYnJlYWtwb2ludClcclxuLy8vXHJcbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLW1lZGlhLXR5cGVcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1weDJlbVxyXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcclxuLy8vXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vbi1kZWZhdWx0IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLmVsZW1lbnQge1xyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKCRmcm9tOiBtb2JpbGUpIHtcclxuLy8vICAgICAgY29sb3I6IHJlZDtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSgkdW50aWw6IHRhYmxldCkge1xyXG4vLy8gICAgICBjb2xvcjogYmx1ZTtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcShtb2JpbGUsIHRhYmxldCkge1xyXG4vLy8gICAgICBjb2xvcjogZ3JlZW47XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcclxuLy8vICAgICAgY29sb3I6IHRlYWw7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoOTUwcHgpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxyXG4vLy8gICAgJG15LWJyZWFrcG9pbnRzOiAoTDogOTAwcHgsIFhMOiAxMjAwcHgpO1xyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG5AbWl4aW4gbXEoICRmcm9tOiBmYWxzZSwgJHVudGlsOiBmYWxzZSwgJGFuZDogZmFsc2UsICRlbXMtb246IGZhbHNlLCAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLCAkcmVzcG9uc2l2ZTogJG1xLXJlc3BvbnNpdmUsICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50ICkge1xyXG4gICAgJG1pbi13aWR0aDogMDtcclxuICAgICRtYXgtd2lkdGg6IDA7XHJcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xyXG5cclxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxyXG4gICAgQGlmICRmcm9tIHtcclxuICAgICAgICBAaWYgbWV0YS50eXBlLW9mKCRmcm9tKSA9PSAnbnVtYmVyJyB7XHJcbiAgICAgICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKCRmcm9tKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkbWluLXdpZHRoOiAkZnJvbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcclxuICAgIEBpZiAkdW50aWwge1xyXG4gICAgICAgIEBpZiBtZXRhLnR5cGUtb2YoJHVudGlsKSA9PSAnbnVtYmVyJyB7XHJcbiAgICAgICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKCR1bnRpbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1heC13aWR0aDogJHVudGlsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSAtIDFweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXHJcbiAgICAvLyBUaGUgYnJvd3NlciB3aWxsIHJlbHkgb24gdGhlIGNhc2NhZGUgaXRzZWxmLlxyXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcclxuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuICAgICAgICAkdGFyZ2V0LXdpZHRoOiBudWxsO1xyXG5cclxuICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgJHRhcmdldC13aWR0aDogJHN0YXRpYy1icmVha3BvaW50LXdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBPdXRwdXQgb25seSBydWxlcyB0aGF0IHN0YXJ0IGF0IG9yIHNwYW4gb3VyIHRhcmdldCB3aWR0aFxyXG4gICAgICAgIEBpZiAoICRhbmQgPT0gZmFsc2UgYW5kICRtaW4td2lkdGggPD0gJHRhcmdldC13aWR0aCBhbmQgKCAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoICkgKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGlmICRhbmQge1xyXG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgbWVkaWEgcXVlcnkgcHJlZml4ICdhbGwgYW5kICdcclxuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcclxuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xyXG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6IHN0cmluZy5zbGljZShzdHJpbmcudW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8vIFF1aWNrIHNvcnRcclxuLy8vXHJcbi8vLyBAYXV0aG9yIFNhbSBSaWNoYXJkc1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gU29ydGVkIExpc3RcclxuQGZ1bmN0aW9uIF9tcS1xdWljay1zb3J0KCRsaXN0KSB7XHJcbiAgICAkbGVzczogKCk7XHJcbiAgICAkZXF1YWw6ICgpO1xyXG4gICAgJGxhcmdlOiAoKTtcclxuXHJcbiAgICBAaWYgbGlzdC5sZW5ndGgoJGxpc3QpID4gMSB7XHJcbiAgICAgICAgJHNlZWQ6IGxpc3QubnRoKCRsaXN0LCBtYXRoLmNlaWwobGlzdC5sZW5ndGgoJGxpc3QpIC8gMikpO1xyXG5cclxuICAgICAgICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICAgICAgICAgIEBpZiAoJGl0ZW0gPT0gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRlcXVhbDogbGlzdC5hcHBlbmQoJGVxdWFsLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2UgaWYgKCRpdGVtIDwgJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsZXNzOiBsaXN0LmFwcGVuZCgkbGVzcywgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIGlmICgkaXRlbSA+ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkbGFyZ2U6IGxpc3QuYXBwZW5kKCRsYXJnZSwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAcmV0dXJuIGxpc3Quam9pbihsaXN0LmpvaW4oX21xLXF1aWNrLXNvcnQoJGxlc3MpLCAkZXF1YWwpLCBfbXEtcXVpY2stc29ydCgkbGFyZ2UpKTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuICRsaXN0O1xyXG59XHJcblxyXG4vLy8gU29ydCBhIG1hcCBieSB2YWx1ZXMgKHdvcmtzIHdpdGggbnVtYmVycyBvbmx5KVxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc29ydFxyXG4vLy8gQHJldHVybnMge01hcH0gTWFwIHNvcnRlZCBieSB2YWx1ZVxyXG5AZnVuY3Rpb24gX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtYXApIHtcclxuICAgICRtYXAtc29ydGVkOiAoKTtcclxuICAgICRtYXAta2V5czogbWFwLmtleXMoJG1hcCk7XHJcbiAgICAkbWFwLXZhbHVlczogbWFwLnZhbHVlcygkbWFwKTtcclxuICAgICRtYXAtdmFsdWVzLXNvcnRlZDogX21xLXF1aWNrLXNvcnQoJG1hcC12YWx1ZXMpO1xyXG5cclxuICAgIC8vIFJlb3JkZXIga2V5L3ZhbHVlIHBhaXJzIGJhc2VkIG9uIGtleSB2YWx1ZXNcclxuICAgIEBlYWNoICR2YWx1ZSBpbiAkbWFwLXZhbHVlcy1zb3J0ZWQge1xyXG4gICAgICAgICRpbmRleDogbGlzdC5pbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcclxuICAgICAgICAka2V5OiBsaXN0Lm50aCgkbWFwLWtleXMsICRpbmRleCk7XHJcbiAgICAgICAgJG1hcC1zb3J0ZWQ6IG1hcC5tZXJnZSgkbWFwLXNvcnRlZCwgKCRrZXk6ICR2YWx1ZSkpO1xyXG5cclxuICAgICAgICAvLyBVbnNldCB0aGUgdmFsdWUgaW4gJG1hcC12YWx1ZXMgdG8gcHJldmVudCB0aGUgbG9vcFxyXG4gICAgICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxyXG4gICAgICAgICRtYXAtdmFsdWVzOiBsaXN0LnNldC1udGgoJG1hcC12YWx1ZXMsICRpbmRleCwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkbWFwLXNvcnRlZDtcclxufVxyXG5cclxuLy8vIEFkZCBhIGJyZWFrcG9pbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIGJyZWFrcG9pbnRcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgQGluY2x1ZGUgbXEtYWRkLWJyZWFrcG9pbnQodHZzY3JlZW4sIDE5MjBweCk7XHJcbi8vLyAgQGluY2x1ZGUgbWl4aW5zLm1xKHR2c2NyZWVuKSB7fVxyXG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xyXG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC5tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcclxuICAgICRtcS1icmVha3BvaW50czogX21xLW1hcC1zb3J0LWJ5LXZhbHVlKCRtcS1icmVha3BvaW50cykgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XHJcbi8vL1xyXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXHJcbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XHJcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIGJvZHk6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBjb2xvcjogI0MwOTg1MztcclxuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDA7XHJcbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxyXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xyXG4gICAgICAgICAgICAkd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpZiBsaXN0Lmxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcclxuICAgIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2NvbW1vbi11aS90eXBvZ3JhcGh5L21peGluc1wiO1xyXG5AdXNlIFwiLi4vZnVuY3Rpb25zL2NvbG9yXCIgYXMgZnVuY3Rpb25zLWNvbG9yO1xyXG5AdXNlIFwiLi4vZnVuY3Rpb25zL3NwYWNlXCI7XHJcblxyXG4kZXh0ZW5zaW9uczogcGRmIHhscyBwcHQgZG9jO1xyXG5cclxuJGxpbmstY29sb3ItcHJpbWFyeTogZnVuY3Rpb25zLWNvbG9yLmNvbG9yKHByaW1hcnkpO1xyXG4kbGluay1jb2xvci1zZWNvbmRhcnk6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcihzZWNvbmRhcnkpO1xyXG5cclxuQG1peGluIGxpbmsge1xyXG4gICAgQGluY2x1ZGUgbWl4aW5zLnVpLXR5cG9ncmFwaHkobGluayk7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tcmVkIHtcclxuICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KGJvZHkpO1xyXG4gICAgY29sb3I6ICRsaW5rLWNvbG9yLXByaW1hcnk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLS1yZWRzbSB7XHJcbiAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShjYXB0aW9uKTtcclxuICAgIGNvbG9yOiAkbGluay1jb2xvci1wcmltYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tcGRmIHtcclxuICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KHBkZik7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tYXJyb3cge1xyXG4gICAgJGFycm93LW1hcmdpbi1sZWZ0OiBzcGFjZS5zcGFjZSgxKTtcclxuICAgICRhcnJvdy1zaXplOiBzcGFjZS5zcGFjZSgyLjUpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KHBkZik7XHJcbiAgICBjb2xvcjogJGxpbmstY29sb3Itc2Vjb25kYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYXJyb3ctbWFyZ2luLWxlZnQ7XHJcbiAgICAgICAgaGVpZ2h0OiAkYXJyb3ctc2l6ZTtcclxuICAgICAgICB3aWR0aDogJGFycm93LXNpemU7XHJcbiAgICAgICAgYm90dG9tOiAzcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9hcnJvdy1iYWNrZ3JvdW5kLXJpZ2h0LW91dGxpbmUuc3ZnJyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstZXh0ZW5zaW9ucyB7XHJcbiAgICAkZXh0ZW5zaW9uLXBhZGRpbmctcmlnaHQ6IHNwYWNlLnNwYWNlKDAuNSk7XHJcblxyXG4gICAgQGVhY2ggJGV4dGVuc2lvbiBpbiAkZXh0ZW5zaW9ucyB7XHJcbiAgICAgICAgJltocmVmKj1cIiN7JGV4dGVuc2lvbn1cIl0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZXh0ZW5zaW9uLXBhZGRpbmctcmlnaHQ7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgJGV4dGVuc2lvbiA9PSBwZGYge1xyXG4gICAgICAgICAgICAmW2hyZWYqPVwiI3skZXh0ZW5zaW9ufVwiXTo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLy0vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSWNvbnMvcGRmLXJlZC5zdmcpO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDIzcHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIzcHggMjVweDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgJltocmVmKj1cIiN7JGV4dGVuc2lvbn1cIl06OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiLiN7JGV4dGVuc2lvbn1cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0= */
