.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 */
.tabs.tabs-bottom .tabs-container {
  margin: 0;
}
.tabs.tabs-bottom .tabs-heading {
  position: relative;
  margin-top: -1px;
}
.tabs.tabs-bottom .tabs-heading li {
  margin-bottom: 0;
  border-top: 0px solid #ffffff;
}
.tabs.tabs-bottom .tabs-heading li a {
  border: none;
}
.tabs.tabs-bottom .tabs-heading li.active {
  border-top: none;
  border-bottom: 2px solid #89C6CC;
  border-left: 1px solid #d2d2d2;
  border-right: 1px solid #d2d2d2;
}
.tabs.tabs-bottom .tabs-heading li.active a {
  border: none;
  position: relative;
}
.tabs.tabs-bottom .tabs-heading li:hover {
  border-bottom: 2px solid #89C6CC;
  background: #FFFFFF;
}
.tabs.tabs-bottom .tabs-container {
  border-bottom: 1px solid #89C6CC;
  border-top: none;
  background: transparent;
  margin-bottom: 1px;
}

.tabs.tabs-scrollable .tabs-heading {
  list-style: none;
  padding: 0;
  margin: 0;
  position: absolute;
  left: 0;
}
.tabs.tabs-scrollable .tabs-container {
  margin: 0;
}
.tabs.tabs-scrollable .prev {
  left: 0;
  background: #e4e4e4 url("../Images/arrow-left.png") center center no-repeat;
}
.tabs.tabs-scrollable .next {
  right: 0;
  background: #e4e4e4 url("../Images/arrow-right.png") center center no-repeat;
}
.tabs.tabs-scrollable.tabs-bottom .wrapper {
  margin-top: 2px;
  padding-bottom: 6px;
}
.tabs.tabs-scrollable.tabs-bottom .next {
  top: 1px;
}
.tabs.tabs-scrollable.tabs-bottom .prev {
  top: 1px;
}
.tabs.tabs-scrollable.tabs-bottom .tabs-heading {
  margin-top: -4px;
}

.tabs.tabs-vertical.tabs-vertical-right .tabs-heading {
  float: right;
  margin-left: -1px;
}
.tabs.tabs-vertical.tabs-vertical-right .tabs-heading li {
  border-top: 1px solid #f7f7f7;
  border-left: 1px solid #f7f7f7;
  border-right: 2px solid #89C6CC;
  border-bottom: 1px solid #f7f7f7;
}
.tabs.tabs-vertical.tabs-vertical-right .tabs-heading li.active {
  border-right: 2px solid #89C6CC;
  border-left: 1px solid #89C6CC;
}
.tabs.tabs-vertical.tabs-vertical-right .tabs-heading li.active a {
  border: none;
}
.tabs.tabs-vertical.tabs-vertical-right .tabs-heading li:hover {
  border-left: 1px solid #89C6CC;
}
.tabs.tabs-vertical.tabs-vertical-right .tabs-container {
  float: right;
  border-right: 1px solid #89C6CC;
  border-top: none;
  margin-left: -1px;
  border-left: none;
}

.tabs.tabs-vertical .tabs-heading {
  width: 30%;
  float: left;
}
.tabs.tabs-vertical .tabs-heading li {
  margin: 0 0 2px 0;
  display: block;
  width: 100%;
  border-top: 1px solid #f7f7f7;
  border-left: 2px solid #f7f7f7;
  border-right: 1px solid #89C6CC;
  border-bottom: 1px solid #f7f7f7;
}
.tabs.tabs-vertical .tabs-heading li.active {
  border-left: 2px solid #89C6CC;
}
.tabs.tabs-vertical .tabs-heading li.active a {
  border: none;
}
.tabs.tabs-vertical .tabs-heading li:first-child {
  margin-top: 0;
}
.tabs.tabs-vertical .tabs-heading li:hover {
  border-left: 2px solid #89C6CC;
}
.tabs.tabs-vertical .tabs-container {
  margin: 0;
  float: left;
  width: 70%;
  margin-left: -1px;
  border-top: none;
  border-left: 1px solid #89C6CC;
}

[data-whatinput=keyboard] .tabs-heading button:focus, [data-whatintent=keyboard] .tabs-heading button:focus {
  border: 2px dotted #000000;
}

.tabs {
  background: none;
  border: none;
  margin-top: 32px;
  margin-bottom: 32px;
}

.tab-slider {
  position: absolute;
  background: #f7f7f7;
  cursor: pointer;
  vertical-align: central;
  width: 15px;
  text-indent: -9999px;
  z-index: 10;
}

.tabs-heading, .c-fare-passes__tabs {
  margin-bottom: 32px;
}
.tabs-heading li, .c-fare-passes__tabs li {
  display: block;
  width: 100%;
  background: #d5d5d5;
  color: #000000;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  cursor: pointer;
}
.tabs-heading li div.field-heading, .c-fare-passes__tabs li div.field-heading {
  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: 500;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  overflow: visible;
}
.tabs-heading button, .tabs-heading .c-fare-passes__tabs-a a, .c-fare-passes__tabs button, .c-fare-passes__tabs .c-fare-passes__tabs-a a {
  background: #d5d5d5;
  color: #000000;
  width: auto;
  padding: 3.5% 16px;
  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: 500;
  overflow: visible;
  border: 1px solid transparent;
  cursor: pointer;
  border: none;
  text-decoration: none;
}
.tabs-heading button:hover, .tabs-heading button:focus, .tabs-heading .c-fare-passes__tabs-a a:hover, .tabs-heading .c-fare-passes__tabs-a a:focus, .c-fare-passes__tabs button:hover, .c-fare-passes__tabs button:focus, .c-fare-passes__tabs .c-fare-passes__tabs-a a:hover, .c-fare-passes__tabs .c-fare-passes__tabs-a a:focus {
  background: #da251d;
  color: #ffffff;
}
.tabs-heading li.active button, .c-fare-passes__tabs li.active button {
  background: #da251d;
  color: #ffffff;
}

.tabs-heading div,
.tabs-heading button {
  height: 100%;
  width: 100%;
  min-height: 62px;
}

.c-fare-passes__tabs .o-grid {
  margin-left: 0;
}

.c-fare-passes__tabs-a {
  height: 100%;
}
.c-fare-passes__tabs-a a {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  text-align: center;
  margin-bottom: 0;
  min-height: 62px;
}
.c-fare-passes__tabs-a a[aria-disabled] {
  background: #da251d;
  color: #ffffff;
}

.tabs-container {
  margin-top: -1px;
}

.tab {
  display: none;
  padding: 10px;
}
.tab.active {
  display: block;
}

.tabs.c-tabs--secondary .tabs-heading {
  text-align: center;
  display: -webkit-box;
  display: flex;
}
.tabs.c-tabs--secondary .tabs-heading li {
  width: 100%;
  border-bottom: 2px solid #da251d;
  background-color: #ffffff;
  color: #da251d;
}
.tabs.c-tabs--secondary .tabs-heading li.active, .tabs.c-tabs--secondary .tabs-heading li:hover, .tabs.c-tabs--secondary .tabs-heading li:focus {
  position: relative;
}
.tabs.c-tabs--secondary .tabs-heading li.active::after, .tabs.c-tabs--secondary .tabs-heading li:hover::after, .tabs.c-tabs--secondary .tabs-heading li:focus::after {
  content: "";
  position: absolute;
  background: url("/-/media/Project/TTC/DevProto/Icons/tab-chevron.svg") no-repeat 100% 50%;
  width: 24px;
  height: 12px;
  bottom: -2px;
  left: 50%;
  top: auto;
  margin-left: -12px;
}
.tabs.c-tabs--secondary .tabs-heading li:last-child {
  border-bottom: 2px solid #da251d !important;
}
.tabs.c-tabs--secondary .tabs-heading li button {
  background-color: #ffffff;
  color: #da251d;
}
.tabs.c-tabs--secondary .tabs-heading li li:first-child:nth-last-child(2), .tabs.c-tabs--secondary .tabs-heading li li:first-child:nth-last-child(2) ~ li {
  width: calc(50% - 1px);
}
.tabs.c-tabs--secondary .tabs-heading li li:first-child:nth-last-child(2) button, .tabs.c-tabs--secondary .tabs-heading li li:first-child:nth-last-child(2) ~ li button {
  padding: 2.5% 16px;
}
.tabs.c-tabs--secondary .tabs-heading li li:first-child:nth-last-child(3), .tabs.c-tabs--secondary .tabs-heading li li:first-child:nth-last-child(3) ~ li {
  width: calc(33.33% - 1px);
}
.tabs.c-tabs--secondary .tabs-heading li li:not(:last-child) {
  border-right: none;
}
.tabs.c-tabs--secondary .tabs-heading li button {
  max-height: 49px;
}

@media (max-width: 639px) {
  :not(.c-tabs--secondary) .tabs-heading li {
    border-bottom: 1px solid #000000;
  }
  :not(.c-tabs--secondary) .tabs-heading li:last-child {
    border-bottom: none;
  }
  .c-fare-passes__tabs > .component-content > div {
    height: 100%;
    width: 100%;
    min-height: 62px;
    border-bottom: 1px solid #000000;
  }
  .c-fare-passes__tabs > .component-content > div:last-child {
    border-bottom: none;
  }
  .c-fare-passes__tabs > .component-content > div div {
    height: 100%;
    width: 100%;
    min-height: 62px;
  }
  .tabs.c-tabs--secondary ul.tabs-heading {
    width: 100vw;
    margin-left: -32px;
    margin-right: -32px;
  }
  .tabs .tab {
    padding: 0 !important;
  }
}
@media (min-width: 640px) {
  .tabs-heading {
    display: -webkit-box;
    display: flex;
    text-align: center;
  }
  .tabs-heading li:first-child:nth-last-child(2), .tabs-heading li:first-child:nth-last-child(2) ~ li {
    width: calc(50% - 1px);
  }
  .tabs-heading li:first-child:nth-last-child(3), .tabs-heading li:first-child:nth-last-child(3) ~ li {
    width: calc(33.33% - 1px);
  }
  .tabs-heading li:not(:last-child) {
    border-right: 1px solid #000000;
  }
  .c-fare-passes__tabs > .component-content {
    display: -webkit-box;
    display: flex;
  }
  .c-fare-passes__tabs > .component-content > div {
    width: 16.6%;
  }
  .c-fare-passes__tabs > .component-content > div:not(:last-child) {
    border-right: 1px solid #000000;
  }
  .c-fare-passes__tabs > .component-content a {
    height: 100%;
  }
  .tabs.c-tabs--secondary .tabs-heading li:first-child:nth-last-child(2), .tabs.c-tabs--secondary .tabs-heading li:first-child:nth-last-child(2) ~ li {
    width: calc(50% - 1px);
  }
  .tabs.c-tabs--secondary .tabs-heading li:first-child:nth-last-child(2) button, .tabs.c-tabs--secondary .tabs-heading li:first-child:nth-last-child(2) ~ li button {
    padding: 2.5% 16px;
  }
  .tabs.c-tabs--secondary .tabs-heading li:first-child:nth-last-child(3), .tabs.c-tabs--secondary .tabs-heading li:first-child:nth-last-child(3) ~ li {
    width: calc(33.33% - 1px);
  }
  .tabs.c-tabs--secondary .tabs-heading li {
    border-right: none;
  }
  .tabs.c-tabs--secondary div, .tabs.c-tabs--secondary button {
    min-height: auto;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy92YXJzL190eXBlLWNsYXNzZXMuc2NzcyIsImNvbXBvbmVudC10YWJzLmNzcyIsImFic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJzdHlsZXMvdGFicy90YWJzLWJvdHRvbS5zY3NzIiwiYWJzdHJhY3RzL3ZhcnMvX2NvbG9ycy5zY3NzIiwic3R5bGVzL3RhYnMvdGFicy1zY3JvbGxhYmxlLnNjc3MiLCJzdHlsZXMvdGFicy90YWJzLXZlcnRpY2FsLXJpZ2h0LnNjc3MiLCJzdHlsZXMvdGFicy90YWJzLXZlcnRpY2FsLnNjc3MiLCJjb21wb25lbnQtdGFicy5zY3NzIiwiY29tbW9uLXVpL3R5cG9ncmFwaHkvX21peGlucy5zY3NzIiwiYWJzdHJhY3RzL21peGlucy9fc2Fzcy1tcS1tb2Quc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHSTtFQUNJLGdCQUFBO0FDRlI7O0FEQ0k7RUFDSSxnQkFBQTtBQ0VSOztBREhJO0VBQ0ksZ0JBQUE7QUNNUjs7QURQSTtFQUNJLGdCQUFBO0FDVVI7O0FDVUEsZ0JBQUE7QUNwQkk7RUFDSSxTQUFBO0FGY1I7QUVYSTtFQUNJLGtCQUFBO0VBQ0EsZ0JBQUE7QUZhUjtBRVhRO0VBQ0ksZ0JBQUE7RUFDQSw2QkFBQTtBRmFaO0FFWFk7RUFDSSxZQUFBO0FGYWhCO0FFVlk7RUFDSSxnQkFBQTtFRDRFUixnQ0FBQTtFQUdBLDhCQUFBO0VBR0EsK0JBQUE7QURuRVI7QUVWZ0I7RUFDSSxZQUFBO0VBQ0Esa0JBQUE7QUZZcEI7QUVSWTtFRGlFSixnQ0FBQTtFQy9EUSxtQkMyQ0E7QUhqQ2hCO0FFTEk7RUQwREksZ0NBQUE7RUN4REEsZ0JBQUE7RUFDQSx1QkMrTVU7RUQ5TVYsa0JBQUE7QUZPUjs7QUk5Q0k7RUFDSSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0FKaURSO0FJOUNJO0VBQ0ksU0FBQTtBSmdEUjtBSTdDSTtFQUNJLE9BQUE7RUFDQSwyRUFBQTtBSitD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SSx5QkFBQTtFUHVFbEI7RU9uRVU7SUFDSSxrQkFBQTtFUHFFZDtFT2pFTTtJQUNJLGdCQUFBO0VQbUVWO0FBQ0YiLCJmaWxlIjoiY29tcG9uZW50LXRhYnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcInR5cGVcIjtcclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gdHlwZS4kdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMge1xyXG4gICAgLnUtdHlwZS0tI3skbmFtZX0ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAjeyRzdHlsZX07XHJcbiAgICB9XHJcbn1cclxuIiwiLnUtdHlwZS0tbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4udS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnUtdHlwZS0tbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnUtdHlwZS0tYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGJyZWFrcG9pbnRzICovXG4udGFicy50YWJzLWJvdHRvbSAudGFicy1jb250YWluZXIge1xuICBtYXJnaW46IDA7XG59XG4udGFicy50YWJzLWJvdHRvbSAudGFicy1oZWFkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuLnRhYnMudGFicy1ib3R0b20gLnRhYnMtaGVhZGluZyBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci10b3A6IDBweCBzb2xpZCAjZmZmZmZmO1xufVxuLnRhYnMudGFicy1ib3R0b20gLnRhYnMtaGVhZGluZyBsaSBhIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnRhYnMudGFicy1ib3R0b20gLnRhYnMtaGVhZGluZyBsaS5hY3RpdmUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzg5QzZDQztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDJkMmQyO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkMmQyO1xufVxuLnRhYnMudGFicy1ib3R0b20gLnRhYnMtaGVhZGluZyBsaS5hY3RpdmUgYSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnRhYnMudGFicy1ib3R0b20gLnRhYnMtaGVhZGluZyBsaTpob3ZlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjODlDNkNDO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnRhYnMudGFicy1ib3R0b20gLnRhYnMtY29udGFpbmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4OUM2Q0M7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBtYXJnaW4tYm90dG9tOiAxcHg7XG59XG5cbi50YWJzLnRhYnMtc2Nyb2xsYWJsZSAudGFicy1oZWFkaW5nIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG59XG4udGFicy50YWJzLXNjcm9sbGFibGUgLnRhYnMtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwO1xufVxuLnRhYnMudGFicy1zY3JvbGxhYmxlIC5wcmV2IHtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogI2U0ZTRlNCB1cmwoXCIuLi9JbWFnZXMvYXJyb3ctbGVmdC5wbmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG59XG4udGFicy50YWJzLXNjcm9sbGFibGUgLm5leHQge1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogI2U0ZTRlNCB1cmwoXCIuLi9JbWFnZXMvYXJyb3ctcmlnaHQucG5nXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xufVxuLnRhYnMudGFicy1zY3JvbGxhYmxlLnRhYnMtYm90dG9tIC53cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuLnRhYnMudGFicy1zY3JvbGxhYmxlLnRhYnMtYm90dG9tIC5uZXh0IHtcbiAgdG9wOiAxcHg7XG59XG4udGFicy50YWJzLXNjcm9sbGFibGUudGFicy1ib3R0b20gLnByZXYge1xuICB0b3A6IDFweDtcbn1cbi50YWJzLnRhYnMtc2Nyb2xsYWJsZS50YWJzLWJvdHRvbSAudGFicy1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogLTRweDtcbn1cblxuLnRhYnMudGFicy12ZXJ0aWNhbC50YWJzLXZlcnRpY2FsLXJpZ2h0IC50YWJzLWhlYWRpbmcge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLnRhYnMudGFicy12ZXJ0aWNhbC50YWJzLXZlcnRpY2FsLXJpZ2h0IC50YWJzLWhlYWRpbmcgbGkge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2Y3ZjdmNztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZjdmN2Y3O1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjODlDNkNDO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y3ZjdmNztcbn1cbi50YWJzLnRhYnMtdmVydGljYWwudGFicy12ZXJ0aWNhbC1yaWdodCAudGFicy1oZWFkaW5nIGxpLmFjdGl2ZSB7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICM4OUM2Q0M7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzg5QzZDQztcbn1cbi50YWJzLnRhYnMtdmVydGljYWwudGFicy12ZXJ0aWNhbC1yaWdodCAudGFicy1oZWFkaW5nIGxpLmFjdGl2ZSBhIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnRhYnMudGFicy12ZXJ0aWNhbC50YWJzLXZlcnRpY2FsLXJpZ2h0IC50YWJzLWhlYWRpbmcgbGk6aG92ZXIge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM4OUM2Q0M7XG59XG4udGFicy50YWJzLXZlcnRpY2FsLnRhYnMtdmVydGljYWwtcmlnaHQgLnRhYnMtY29udGFpbmVyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjODlDNkNDO1xuICBib3JkZXItdG9wOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG5cbi50YWJzLnRhYnMtdmVydGljYWwgLnRhYnMtaGVhZGluZyB7XG4gIHdpZHRoOiAzMCU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnRhYnMudGFicy12ZXJ0aWNhbCAudGFicy1oZWFkaW5nIGxpIHtcbiAgbWFyZ2luOiAwIDAgMnB4IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmN2Y3Zjc7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2Y3ZjdmNztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzg5QzZDQztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmN2Y3Zjc7XG59XG4udGFicy50YWJzLXZlcnRpY2FsIC50YWJzLWhlYWRpbmcgbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjODlDNkNDO1xufVxuLnRhYnMudGFicy12ZXJ0aWNhbCAudGFicy1oZWFkaW5nIGxpLmFjdGl2ZSBhIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnRhYnMudGFicy12ZXJ0aWNhbCAudGFicy1oZWFkaW5nIGxpOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi50YWJzLnRhYnMtdmVydGljYWwgLnRhYnMtaGVhZGluZyBsaTpob3ZlciB7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzg5QzZDQztcbn1cbi50YWJzLnRhYnMtdmVydGljYWwgLnRhYnMtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDcwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzg5QzZDQztcbn1cblxuW2RhdGEtd2hhdGlucHV0PWtleWJvYXJkXSAudGFicy1oZWFkaW5nIGJ1dHRvbjpmb2N1cywgW2RhdGEtd2hhdGludGVudD1rZXlib2FyZF0gLnRhYnMtaGVhZGluZyBidXR0b246Zm9jdXMge1xuICBib3JkZXI6IDJweCBkb3R0ZWQgIzAwMDAwMDtcbn1cblxuLnRhYnMge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDMycHg7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG5cbi50YWItc2xpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBjZW50cmFsO1xuICB3aWR0aDogMTVweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4udGFicy1oZWFkaW5nLCAuYy1mYXJlLXBhc3Nlc19fdGFicyB7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG4udGFicy1oZWFkaW5nIGxpLCAuYy1mYXJlLXBhc3Nlc19fdGFicyBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2Q1ZDVkNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udGFicy1oZWFkaW5nIGxpIGRpdi5maWVsZC1oZWFkaW5nLCAuYy1mYXJlLXBhc3Nlc19fdGFicyBsaSBkaXYuZmllbGQtaGVhZGluZyB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnRhYnMtaGVhZGluZyBidXR0b24sIC50YWJzLWhlYWRpbmcgLmMtZmFyZS1wYXNzZXNfX3RhYnMtYSBhLCAuYy1mYXJlLXBhc3Nlc19fdGFicyBidXR0b24sIC5jLWZhcmUtcGFzc2VzX190YWJzIC5jLWZhcmUtcGFzc2VzX190YWJzLWEgYSB7XG4gIGJhY2tncm91bmQ6ICNkNWQ1ZDU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMy41JSAxNnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50YWJzLWhlYWRpbmcgYnV0dG9uOmhvdmVyLCAudGFicy1oZWFkaW5nIGJ1dHRvbjpmb2N1cywgLnRhYnMtaGVhZGluZyAuYy1mYXJlLXBhc3Nlc19fdGFicy1hIGE6aG92ZXIsIC50YWJzLWhlYWRpbmcgLmMtZmFyZS1wYXNzZXNfX3RhYnMtYSBhOmZvY3VzLCAuYy1mYXJlLXBhc3Nlc19fdGFicyBidXR0b246aG92ZXIsIC5jLWZhcmUtcGFzc2VzX190YWJzIGJ1dHRvbjpmb2N1cywgLmMtZmFyZS1wYXNzZXNfX3RhYnMgLmMtZmFyZS1wYXNzZXNfX3RhYnMtYSBhOmhvdmVyLCAuYy1mYXJlLXBhc3Nlc19fdGFicyAuYy1mYXJlLXBhc3Nlc19fdGFicy1hIGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZGEyNTFkO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi50YWJzLWhlYWRpbmcgbGkuYWN0aXZlIGJ1dHRvbiwgLmMtZmFyZS1wYXNzZXNfX3RhYnMgbGkuYWN0aXZlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICNkYTI1MWQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udGFicy1oZWFkaW5nIGRpdixcbi50YWJzLWhlYWRpbmcgYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNjJweDtcbn1cblxuLmMtZmFyZS1wYXNzZXNfX3RhYnMgLm8tZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uYy1mYXJlLXBhc3Nlc19fdGFicy1hIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmMtZmFyZS1wYXNzZXNfX3RhYnMtYSBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWluLWhlaWdodDogNjJweDtcbn1cbi5jLWZhcmUtcGFzc2VzX190YWJzLWEgYVthcmlhLWRpc2FibGVkXSB7XG4gIGJhY2tncm91bmQ6ICNkYTI1MWQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4udGFicy1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4udGFiIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMTBweDtcbn1cbi50YWIuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGEyNTFkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogI2RhMjUxZDtcbn1cbi50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcgbGkuYWN0aXZlLCAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmhvdmVyLCAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmZvY3VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaS5hY3RpdmU6OmFmdGVyLCAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmhvdmVyOjphZnRlciwgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaTpmb2N1czo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHVybChcIi8tL21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ljb25zL3RhYi1jaGV2cm9uLnN2Z1wiKSBuby1yZXBlYXQgMTAwJSA1MCU7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJvdHRvbTogLTJweDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAtMTJweDtcbn1cbi50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcgbGk6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGEyNTFkICFpbXBvcnRhbnQ7XG59XG4udGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjZGEyNTFkO1xufVxuLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaSBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSwgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaSBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IGxpIHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMXB4KTtcbn1cbi50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcgbGkgbGk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikgYnV0dG9uLCAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpIGxpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpIH4gbGkgYnV0dG9uIHtcbiAgcGFkZGluZzogMi41JSAxNnB4O1xufVxuLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaSBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSwgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaSBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSB+IGxpIHtcbiAgd2lkdGg6IGNhbGMoMzMuMzMlIC0gMXB4KTtcbn1cbi50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcgbGkgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcgbGkgYnV0dG9uIHtcbiAgbWF4LWhlaWdodDogNDlweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIDpub3QoLmMtdGFicy0tc2Vjb25kYXJ5KSAudGFicy1oZWFkaW5nIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDAwMDtcbiAgfVxuICA6bm90KC5jLXRhYnMtLXNlY29uZGFyeSkgLnRhYnMtaGVhZGluZyBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG4gIC5jLWZhcmUtcGFzc2VzX190YWJzID4gLmNvbXBvbmVudC1jb250ZW50ID4gZGl2IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNjJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDAwMDtcbiAgfVxuICAuYy1mYXJlLXBhc3Nlc19fdGFicyA+IC5jb21wb25lbnQtY29udGVudCA+IGRpdjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG4gIC5jLWZhcmUtcGFzc2VzX190YWJzID4gLmNvbXBvbmVudC1jb250ZW50ID4gZGl2IGRpdiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDYycHg7XG4gIH1cbiAgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgdWwudGFicy1oZWFkaW5nIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWFyZ2luLWxlZnQ6IC0zMnB4O1xuICAgIG1hcmdpbi1yaWdodDogLTMycHg7XG4gIH1cbiAgLnRhYnMgLnRhYiB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnRhYnMtaGVhZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnRhYnMtaGVhZGluZyBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSwgLnRhYnMtaGVhZGluZyBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IGxpIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpO1xuICB9XG4gIC50YWJzLWhlYWRpbmcgbGk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyksIC50YWJzLWhlYWRpbmcgbGk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiBsaSB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMlIC0gMXB4KTtcbiAgfVxuICAudGFicy1oZWFkaW5nIGxpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7XG4gIH1cbiAgLmMtZmFyZS1wYXNzZXNfX3RhYnMgPiAuY29tcG9uZW50LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmMtZmFyZS1wYXNzZXNfX3RhYnMgPiAuY29tcG9uZW50LWNvbnRlbnQgPiBkaXYge1xuICAgIHdpZHRoOiAxNi42JTtcbiAgfVxuICAuYy1mYXJlLXBhc3Nlc19fdGFicyA+IC5jb21wb25lbnQtY29udGVudCA+IGRpdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMDAwMDAwO1xuICB9XG4gIC5jLWZhcmUtcGFzc2VzX190YWJzID4gLmNvbXBvbmVudC1jb250ZW50IGEge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpLCAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpIH4gbGkge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XG4gIH1cbiAgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSBidXR0b24sIC50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IC50YWJzLWhlYWRpbmcgbGk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikgfiBsaSBidXR0b24ge1xuICAgIHBhZGRpbmc6IDIuNSUgMTZweDtcbiAgfVxuICAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpLCAudGFicy5jLXRhYnMtLXNlY29uZGFyeSAudGFicy1oZWFkaW5nIGxpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gbGkge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzJSAtIDFweCk7XG4gIH1cbiAgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgLnRhYnMtaGVhZGluZyBsaSB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB9XG4gIC50YWJzLmMtdGFicy0tc2Vjb25kYXJ5IGRpdiwgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkgYnV0dG9uIHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICB9XG59IiwiLy8gQGltcG9ydCAnfnNhc3MtbXEvbXEnO1xyXG5AdXNlIFwic2FzczpsaXN0XCI7XHJcbkB1c2UgJ21peGlucy9zYXNzLW1xLW1vZC5zY3NzJztcclxuQHVzZSAnLi4vY29tbW9uLXVpL3R5cG9ncmFwaHkvbWl4aW5zJztcclxuQHVzZSAnbWl4aW5zL2FjY2Vzc2liaWxpdHknO1xyXG5AdXNlICdtaXhpbnMvYnV0dG9uJztcclxuQHVzZSAnbWl4aW5zL2xpbmsnO1xyXG5AdXNlICdtaXhpbnMvb3ZlcmxheSc7XHJcbkB1c2UgJ21peGlucy90cmFuc2l0aW9ucyc7XHJcbkB1c2UgJ21peGlucy9zaGFkb3dzJztcclxuQHVzZSAnbWl4aW5zL3RhZyc7XHJcbkB1c2UgJy4uL2Fic3RyYWN0cy92YXJzL2NvbG9ycyc7XHJcblxyXG5AZm9yd2FyZCAnbWl4aW5zL3Nhc3MtbXEtbW9kLnNjc3MnO1xyXG5AZm9yd2FyZCAnLi4vY29tbW9uLXVpL3R5cG9ncmFwaHkvbWl4aW5zJztcclxuQGZvcndhcmQgJ21peGlucy9hY2Nlc3NpYmlsaXR5JztcclxuQGZvcndhcmQgJ21peGlucy9idXR0b24nO1xyXG5AZm9yd2FyZCAnbWl4aW5zL2xpbmsnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL292ZXJsYXknO1xyXG5AZm9yd2FyZCAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQGZvcndhcmQgJ21peGlucy9zaGFkb3dzJztcclxuQGZvcndhcmQgJ21peGlucy90YWcnO1xyXG5cclxuLy8gQmVsb3cgYXJlIG1peGluJ3MgZnJvbSBGWEFcclxuLyogYnJlYWtwb2ludHMgKi9cclxuXHJcbiRicmVhay1kZXNrdG9wOiA5NjBweDtcclxuJGJyZWFrLW1vYmlsZTogMzgwcHg7XHJcbiRicmVhay1tb2JpbGUtaG9yaXpvbnRhbDogNjQwcHg7XHJcbiRicmVhay1tb2JpbGUtbGFyZ2U6IDc4NnB4O1xyXG5cclxuQG1peGluIHdyYXBwZXIoKSB7XHJcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LXNpemUoJHNpemVWYWx1ZTogMS42KSB7XHJcbiAgICBmb250LXNpemU6ICgkc2l6ZVZhbHVlICogMTApICsgcHg7XHJcbiAgICBmb250LXNpemU6ICRzaXplVmFsdWUgKyByZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvcGVuc2Fucy1mb250LXN0YWNrKCkge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG5AbWl4aW4gbG9hZGluZy1naWYoKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBek1pQXpNaUlnZDJsa2RHZzlJak15SWlCb1pXbG5hSFE5SWpNeUlpQm1hV3hzUFNKaWJHRmpheUkrRFFvZ0lEeHdZWFJvSUNCdmNHRmphWFI1UFNJdU1qVWlJR1E5SWsweE5pQXdJRUV4TmlBeE5pQXdJREFnTUNBeE5pQXpNaUJCTVRZZ01UWWdNQ0F3SURBZ01UWWdNQ0JOTVRZZ05DQkJNVElnTVRJZ01DQXdJREVnTVRZZ01qZ2dRVEV5SURFeUlEQWdNQ0F4SURFMklEUWlMejROQ2lBZ1BIQmhkR2dnWm1sc2JEMG5JekZoT0RCaU5pY2daRDBpVFRFMklEQWdRVEUySURFMklEQWdNQ0F4SURNeUlERTJJRXd5T0NBeE5pQkJNVElnTVRJZ01DQXdJREFnTVRZZ05Ib2lQZzBLSUNBZ0lEeGhibWx0WVhSbFZISmhibk5tYjNKdElHRjBkSEpwWW5WMFpVNWhiV1U5SW5SeVlXNXpabTl5YlNJZ2RIbHdaVDBpY205MFlYUmxJaUJtY205dFBTSXdJREUySURFMklpQjBiejBpTXpZd0lERTJJREUySWlCa2RYSTlJakF1T0hNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnMEtJQ0E4TDNCaGRHZytEUW84TDNOMlp6NE5DZz09KTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcblxyXG5AbWl4aW4gcmVzcG9uZC10bygkbWVkaWEpIHtcclxuICAgIEBpZiAkbWVkaWE9PW1vYmlsZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09bW9iaWxlLWhvcml6b250YWwge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1ob3Jpem9udGFsIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1sYXJnZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlLWxhcmdlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09dGFibGV0IHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVhay1tb2JpbGUgKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09YWxsLW1vYmlsZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstZGVza3RvcCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1kZXNrdG9wIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVhay1kZXNrdG9wKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGJvcmRlci1iYXNpYygkcG9zaXRpb246IGFsbCwgJGJvcmRlci1jb2xvcjogY29sb3JzLiRib3JkZXItZ3JheSwgJGJvcmRlci13aWR0aDogMXB4KSB7XHJcbiAgICBAaWYoJHBvc2l0aW9uPT10b3ApIHtcclxuICAgICAgICBib3JkZXItdG9wOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PWJvdHRvbSkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09bGVmdCkge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PXJpZ2h0KSB7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmaXhlZC1iZygkcG9zLCAkbWluLWhlaWdodDogMjQwcHgpIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3M7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzLi4uKSB7XHJcbiAgICAvLyBEaXJlY3Rpb24gaGFzIGJlZW4gb21pdHRlZCBhbmQgaGFwcGVucyB0byBiZSBhIGNvbG9yLXN0b3BcclxuICAgIEBpZiBpcy1kaXJlY3Rpb24oJGRpcmVjdGlvbik9PWZhbHNlIHtcclxuICAgICAgICAkY29sb3Itc3RvcHM6ICRkaXJlY3Rpb24sICRjb2xvci1zdG9wcztcclxuICAgICAgICAkZGlyZWN0aW9uOiAxODBkZWc7XHJcbiAgICB9XHJcblxyXG4gICAgJGZpcnN0LWNvbG9yLXN0b3AtZ3JvdXA6IGxpc3QubnRoKCRjb2xvci1zdG9wcywgMSk7XHJcbiAgICAkZmlyc3QtY29sb3Itc3RvcDogbGlzdC5udGgoJGZpcnN0LWNvbG9yLXN0b3AtZ3JvdXAsIDEpO1xyXG4gICAgYmFja2dyb3VuZDogJGZpcnN0LWNvbG9yLXN0b3A7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy92YXJzL2NvbG9yc1wiIGFzICo7XHJcbkB1c2UgXCIuLi8uLi9hYnN0cmFjdHMvbWl4aW5zXCI7XHJcblxyXG4udGFicy50YWJzLWJvdHRvbSB7XHJcbiAgICAudGFicy1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAudGFicy1oZWFkaW5nIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAwcHggc29saWQgJGJvcmRlci13aGl0ZTtcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhib3R0b20sICR0YWItY29udGFpbmVyLWJvcmRlciwgMnB4KTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMobGVmdCk7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMuYm9yZGVyLWJhc2ljKHJpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMoYm90dG9tLCAkdGFiLWNvbnRhaW5lci1ib3JkZXIsIDJweCk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGFiLWhlYWRpbmctYWN0aXZlLWJnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50YWJzLWNvbnRhaW5lciB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhib3R0b20sICR0YWItY29udGFpbmVyLWJvcmRlcik7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkdGFiLWNvbnRhaW5lci1iZztcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XHJcbiAgICB9XHJcbn1cclxuIiwiQHVzZSBcIi4uL2Z1bmN0aW9ucy9jb2xvclwiO1xyXG5AdXNlIFwic2FzczptYXBcIjtcclxuQGZvcndhcmQgXCIuLi9mdW5jdGlvbnMvY29sb3JcIiBzaG93IGNvbG9yO1xyXG5cclxuLy8gVXNlIGNvbG9yIGZ1bmN0aW9ucyBmb3IgVFRDXHJcbi8vIE5hbWVzIHRha2VuIGZyb20gaHRtbGNzc2NvbG9yLmNvbSBpZiBub3QgZGVzY3JpcHRpdmUgZW5vdWdoIGZyb20gemVwbGluXHJcbiRjb2xvcnM6IChcclxuICBcIndoaXRlXCI6ICNmZmZmZmYsXHJcbiAgXCJ3aGl0ZS1zbW9rZVwiOiAjZjNmM2YzLFxyXG4gIFwiY2hlcnJ5LXJlZFwiOiAjZGEyNTFkLFxyXG4gIFwic2NhcmxldFwiOiAjNzQwMDAwLFxyXG4gIFwiY2FybWluZVwiOiAjYTMwMDFjLFxyXG4gIFwiY2VydWxlYW5cIjogIzAwNzBjZCxcclxuICBcIm9jZWFuLWJsdWVcIjogIzA2NTZhNSxcclxuICBcImNlcnVsZWFuLXR3b1wiOiAjMDA5YWRlLFxyXG4gIFwiZ29sZGVuLXllbGxvd1wiOiAjZmZjNjI3LFxyXG4gIFwid2FybS1ncmV5XCI6ICM3Njc2NzYsXHJcbiAgXCJncmV5MjlcIjogIzRhNGE0YSxcclxuICBcImdyZXk3MFwiOiAjYjNiM2IzLFxyXG4gIFwiZHVzdHktZ3JleVwiOiAjZWRlZGVkLFxyXG4gIFwid2FybS1ncmV5LTJcIjogIzk3OTc5NyxcclxuICBcImRpbS1ncmV5XCI6ICM2OTY5NjksXHJcbiAgXCJ3aGl0ZS10d29cIjogI2Q1ZDVkNSxcclxuICBcIndoaXRlLXRocmVlXCI6ICNkMmQyZDIsXHJcbiAgXCJnYWluc2Jvcm9cIjogI2Q4ZDhkOCxcclxuICBcIm5lcm9cIjogIzFlMWUxZSxcclxuICBcImdvbGRlbi1wb3BweVwiOiAjZjhjMzAwLFxyXG4gIFwiZXhwcmVzcy1ncmVlblwiOiAjMDA5MjNmLFxyXG4gIFwibmlnaHQtYmx1ZVwiOiAjMDI0MTgyLFxyXG4gIFwiY29tbXVuaXR5LWdyZXlcIjogIzgwODA4MCxcclxuICBcIm1hdXZlLXRhdXBlXCI6ICM5NzU4NkIsXHJcbiAgXCJibGFja1wiOiAjMDAwMDAwLFxyXG4gIFwic3BpbmtcIjogI0VCNkZCRCxcclxuICBcIm9yYW5nZVwiOiAjRUI4NzM4LFxyXG4gIFwic2h1dHRsZS1vcmFuZ2VcIjogI0VCODczOFxyXG4pO1xyXG5cclxuJGZ1bmN0aW9uYWwtY29sb3JzOiAoXHJcbiAgcHJpbWFyeS1jb250cmFzdDogbWFwLmdldCgkY29sb3JzLCBcIndoaXRlXCIpLFxyXG4gIHByaW1hcnktY29udHJhc3QtZGFyazogbWFwLmdldCgkY29sb3JzLCBcIndoaXRlLXNtb2tlXCIpLFxyXG4gIHByaW1hcnk6IG1hcC5nZXQoJGNvbG9ycywgXCJjaGVycnktcmVkXCIpLFxyXG4gIHByaW1hcnktZGFyazogbWFwLmdldCgkY29sb3JzLCBcInNjYXJsZXRcIiksXHJcbiAgcHJpbWFyeS1kYXJrZXI6IG1hcC5nZXQoJGNvbG9ycywgXCJjYXJtaW5lXCIpLFxyXG4gIHNlY29uZGFyeTogbWFwLmdldCgkY29sb3JzLCBcImNlcnVsZWFuXCIpLFxyXG4gIHNlY29uZGFyeS1kYXJrOiBtYXAuZ2V0KCRjb2xvcnMsIFwib2NlYW4tYmx1ZVwiKSxcclxuICBzZWNvbmRhcnktbGlnaHQ6IG1hcC5nZXQoJGNvbG9ycywgXCJjZXJ1bGVhbi10d29cIiksXHJcbiAgYWNjZW50LXllbGxvdzogbWFwLmdldCgkY29sb3JzLCBcImdvbGRlbi15ZWxsb3dcIiksXHJcbiAgZ3JleTogbWFwLmdldCgkY29sb3JzLCBcImdyZXkyOVwiKSxcclxuICBncmV5LW1lbnU6IG1hcC5nZXQoJGNvbG9ycywgXCJkdXN0eS1ncmV5XCIpLFxyXG4gIGdyZXktYm9yZGVyOiBtYXAuZ2V0KCRjb2xvcnMsIFwid2FybS1ncmV5XCIpLFxyXG4gIGdyZXktYm9yZGVyLTI6IG1hcC5nZXQoJGNvbG9ycywgXCJ3aGl0ZS10aHJlZVwiKSxcclxuICBncmV5LXBsYWNlaG9sZGVyOiBtYXAuZ2V0KCRjb2xvcnMsIFwiZ3JleTcwXCIpLFxyXG4gIGdyZXktMjogbWFwLmdldCgkY29sb3JzLCBcIndhcm0tZ3JleS0yXCIpLFxyXG4gIGNhcm91c2VsLWRvdHM6IG1hcC5nZXQoJGNvbG9ycywgXCJkaW0tZ3JleVwiKSxcclxuICBncmV5LWxpZ2h0OiBtYXAuZ2V0KCRjb2xvcnMsIFwiZ2FpbnNib3JvXCIpLFxyXG4gIHRhYi0tZGlzYWJsZWQ6IG1hcC5nZXQoJGNvbG9ycywgXCJ3aGl0ZS10d29cIiksXHJcbiAgYmFja2Ryb3A6IHJnYmEoMCwwLDAsMC43KSxcclxuICBibGFjazogbWFwLmdldCgkY29sb3JzLCBcImJsYWNrXCIpLFxyXG4gIHNpdGUtd2lkZS1hbGVydDogbWFwLmdldCgkY29sb3JzLCBcImdvbGRlbi1wb3BweVwiKSxcclxuICB2aXNpdGVkLS1saW5rOiBtYXAuZ2V0KCRjb2xvcnMsIFwibWF1dmUtdGF1cGVcIilcclxuKTtcclxuXHJcbi8vIFBvcHVsYXRlIHNoYXJlZCBjb2xvciBmdW5jdGlvbiBtYXBzXHJcbkBpbmNsdWRlIGNvbG9yLnNldC1jb2xvci1tYXBzKCRjb2xvcnMsICRmdW5jdGlvbmFsLWNvbG9ycyk7XHJcblxyXG4vLyBDb21wYXRpYmlsaXR5IHNoaW0gZm9yIGxlZ2FjeSBjYWxscyB1c2luZyBtYXAtZ2V0KC4uLikuXHJcbi8vIFRoaXMgYXZvaWRzIERhcnQgU2FzcyBnbG9iYWwgYnVpbHQtaW4gZGVwcmVjYXRpb24gd2FybmluZ3Mgd2hpbGUgdGhlIGNvZGViYXNlIGlzIGluY3JlbWVudGFsbHkgbWlncmF0ZWQgdG8gbWFwLmdldCguLi4pLlxyXG5AZnVuY3Rpb24gbWFwLWdldCgkbWFwLXZhbHVlLCAka2V5KSB7XHJcbiAgQHJldHVybiBtYXAuZ2V0KCRtYXAtdmFsdWUsICRrZXkpO1xyXG59XHJcblxyXG4vLyBMZWdhY3kgY29tcGF0aWJpbGl0eSBmb3IgZmlsZXMgc3RpbGwgdXNpbmcgbWFwLWdldCgkY29sb3JzLCAuLi4pXHJcbiRjb2xvcnM6ICRjb2xvcnMgIWRlZmF1bHQ7XHJcbiRmdW5jdGlvbmFsLWNvbG9yczogJGZ1bmN0aW9uYWwtY29sb3JzICFkZWZhdWx0O1xyXG5cclxuLy9CYWNrZ3JvdW5kcyBjb2xvcnNcclxuJGJnLXRyYW5zcGFyZW50OnRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4kYmctYmFzaWMtY29sb3I6I0ZGRkZGRiAhZGVmYXVsdDtcclxuJGJnLWJhc2ljLWNvbG9yLWFjdGl2ZTogI2NjY2NjYyAhZGVmYXVsdDtcclxuJGJnLWxpZ2h0LWdyYXk6ICNmN2Y3ZjcgIWRlZmF1bHQ7XHJcbiRiZy1saWdodC1ncmF5LWFjdGl2ZTogI2RhZGFkYSAhZGVmYXVsdDtcclxuJGJnLWJsdWU6Izg5QzZDQztcclxuJGJnLWJsdWUtYWN0aXZlOiAjMTU5MDljICFkZWZhdWx0O1xyXG4kYmctc3VibWVudTojZWRlYmViICFkZWZhdWx0O1xyXG4kYmctc3VibWVudS1hY3RpdmU6I2Y2ZjZmNiAhZGVmYXVsdDtcclxuJGJnLWJsYWNrOiMwMDAwMDA7XHJcbiRiZy1ibGFjay1hY3RpdmU6IzNkM2QzZDtcclxuLy9UZXh0IGNvbG9yc1xyXG4kdGV4dC13aGl0ZTojZmZmICFkZWZhdWx0O1xyXG4kdGV4dC1oZWFkaW5nLWNvbG9yOiAjMjIyICFkZWZhdWx0O1xyXG4kdGV4dC1iYXNpYzojNzQ3NDc0ICFkZWZhdWx0O1xyXG4kdGV4dC1iYXNpYy1hY3RpdmU6Izg3ODc4NyAhZGVmYXVsdDtcclxuJHRleHQtYmx1ZTojODlDNkNDICFkZWZhdWx0O1xyXG4kdGV4dC1ibHVlLWFjdGl2ZTojMTU5MDljICFkZWZhdWx0O1xyXG4kdGV4dC1zdWJtZW51LWFjdGl2ZTogIzIyMiAhZGVmYXVsdDtcclxuJHRleHQtZGlzYWJsZWQ6ICNhYWEgIWRlZmF1bHQ7XHJcbiR0ZXh0LWJsYWNrOiAjMDAwMDAwICFkZWZhdWx0O1xyXG4vL0JvcmRlciBjb2xvcnNcclxuJGJvcmRlci1ncmF5OiAjZDJkMmQyICFkZWZhdWx0O1xyXG4kYm9yZGVyLXdoaXRlOiAjZmZmZmZmICFkZWZhdWx0O1xyXG4kYm9yZGVyLWJhc2ljLWNvbG9yOiAjODlDNkNDICFkZWZhdWx0O1xyXG4kYm9yZGVyLWJhc2ljLWFjdGl2ZTojMTU5MDljICFkZWZhdWx0O1xyXG5cclxuLy9TdHlsZXMgZm9yIGVhY2ggY29tcG9uZW50IHNlcGFyYXRlbHlcclxuLy9BY2NvcmRpb25cclxuJGFjY29yZGlvbi1oZWFkZXItYmc6IHRyYW5zcGFyZW50O1xyXG4kYWNjb3JkaW9uLWhlYWRlci1iZy1hY3RpdmU6IHRyYW5zcGFyZW50O1xyXG4kYWNjb3JkaW9uLXRvZ2dsZWQtYmc6IHRyYW5zcGFyZW50O1xyXG4kYWNjb3JkaW9uLWhlYWRlci1ib3JkZXI6ICRib3JkZXItZ3JheTtcclxuLy9CcmVhZGNydW1iXHJcbiRicmVhZGNydW1iLWRyb3Bkb3duLWJnOiRiZy1iYXNpYy1jb2xvcjtcclxuJGJyZWFkY3J1bWItZHJvcGRvd24tYmctYWN0aXZlOiRiZy1ibHVlO1xyXG4kYnJlYWRjcnVtYi1kcm9wZG93bi10ZXh0LWFjdGl2ZTokdGV4dC13aGl0ZTtcclxuJGJyZWFkY3J1bWItYmc6dHJhbnNwYXJlbnQ7XHJcbiRicmVhZGNydW1iLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kYnJlYWRjcnVtYi1jb2xvci1hY3RpdmU6JHRleHQtYmx1ZS1hY3RpdmU7XHJcbi8vQnV0dG9ucyBjb2xvcnNcclxuJGJ0bi1ncmVlbi1saWdodDogI2EwY2U0ZTtcclxuJGJ0bi1ncmVlbjogIzkyYmU0MztcclxuJGJ0bi1yZWQtYWN0aXZlOiAjYzM0ZTMwO1xyXG4kYnRuLXJlZDogI2JjNDUyNjtcclxuLy9DYXJvdXNlbFxyXG4kY2Fyb3VzZWwtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kY2Fyb3VzZWwtbmF2LWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRjYXJvdXNlbC1uYXYtYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vQ29udGFpbmVyIGNvbXBvbmVudFxyXG4kY29udGFpbmVyLXRpdGxlLXJvdy1iZzogJGJnLWxpZ2h0LWdyYXk7XHJcbi8vRXZlbnQgTGlzdFxyXG4kZXZlbnQtbGlzdC1iZzp0cmFuc3BhcmVudDtcclxuJGV2ZW50LWxpc3QtaXRlbS1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRldmVudC1saXN0LWl0ZW0tY29sb3I6JHRleHQtYmFzaWM7XHJcbiRldmVudC1saXN0LXRpdGxlLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL0NhbGVuZGFyXHJcbiRjYWxlbmRhci1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRjYWxlbmRhci1oZWFkZXItYmc6JGJnLWJhc2ljLWNvbG9yLWFjdGl2ZTtcclxuJGNhbGVuZGFyLWRheS1jb2xvci1hY3RpdmU6JHRleHQtd2hpdGU7XHJcbi8vRmVlZFxyXG4kZmVlZC1iZzp0cmFuc3BhcmVudDtcclxuJGZlZWQtaXRlbS1iZzp0cmFuc3BhcmVudDtcclxuLy9GaWVsZCBFZGl0b3JcclxuJGZpZWxkLWVkaXRvci1iZzp0cmFuc3BhcmVudDtcclxuJGZpZWxkLWVkaXRvci10YWJsZS1ib3JkZXI6JGJnLWxpZ2h0LWdyYXk7XHJcbiRmaWVsZC1lZGl0b3ItdGV4dC1oZWFkZXI6JHRleHQtYmxhY2s7XHJcbiRmaWVsZC1lZGl0b3ItdGV4dDokdGV4dC1iYXNpYztcclxuLy9GaWxlIExpc3RcclxuJGZpbGUtbGlzdC1iZzp0cmFuc3BhcmVudDtcclxuJGZpbGUtbGlzdC1pdGVtLWJnOnRyYW5zcGFyZW50O1xyXG4kZmlsZS1saXN0LXRpdGxlLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kZmlsZS1saXN0LXRpdGxlLWJvcmRlcjp0cmFuc3BhcmVudDtcclxuJGZpbGUtbGlzdC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kZmlsZS1saXN0LWl0ZW0tY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGZpbGUtbGlzdC1pdGVtLXNpemU6JHRleHQtYmFzaWM7XHJcbiRmaWxlLWxpc3QtaXRlbS1ib3JlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL0ZsaXBcclxuJGZsaXAtYmc6dHJhbnNwYXJlbnQ7XHJcbiRmbGlwLXNsaWRlcy1iZzokYmctYmFzaWMtY29sb3I7XHJcbi8vR2FsbGVyeVxyXG4kZ2FsbGVyaWEtY29udGFpbmVyLWJnOiRiZy1ibGFjaztcclxuJGdhbGxlcnktaW5mby1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRnYWxsZXJ5LWluZm8tYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJGdhbGxlcnktaW5mby10ZXh0OiR0ZXh0LWJhc2ljO1xyXG4kZ2FsbGVyeS1uYXYtYWN0aXZlOiR0ZXh0LXdoaXRlO1xyXG4kZ2FsbGVyeS1uYXY6JHRleHQtYmFzaWM7XHJcbiRnYWxsZXJ5LWNvdW50ZXItY29sb3I6JHRleHQtd2hpdGU7XHJcbi8vTGFuZ3VhZ2Ugc2VsZWN0b3JcclxuJGxhbmctc2VsZWN0b3ItYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kbGFuZy1zZWxlY3Rvci1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJGxhbmctc2VsZWN0b3ItaXRlbS1iZy1hY3RpdmU6JGJnLWJhc2ljLWNvbG9yO1xyXG4kbGFuZy1zZWxlY3Rvci1pdGVtLWJvcmRlcjokYm9yZGVyLXdoaXRlO1xyXG4kbGFuZy1zZWxlY3Rvci1pdGVtLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1hY3RpdmU7XHJcbi8vU2l0ZSBzZWxlY3RvclxyXG4kc2l0ZS1zZWxlY3Rvci1jb2xvcjokdGV4dC1iYXNpYztcclxuLy9MaW5rIExpc3RcclxuJGxpbmstbGlzdC1iZzp0cmFuc3BhcmVudDtcclxuJGxpbmstbGlzdC1oZWFkZXItYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRsaW5rLWxpc3QtaXRlbXMtYmc6dHJhbnNwYXJlbnQ7XHJcbiRsaW5rLWxpc3QtaXRlbS1iZzp0cmFuc3BhcmVudDtcclxuJGxpbmstbGlzdC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kbGluay1saXN0LWl0ZW0tY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljLWFjdGl2ZTtcclxuJGxpbmstbGlzdC1pdGVtLWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9Mb2dpblxyXG4kbG9naW4tYmc6dHJhbnNwYXJlbnQ7XHJcbi8vTG9nb3V0XHJcbiRsb2dvdXQtYmc6dHJhbnNwYXJlbnQ7XHJcbiRsb2dvdXQtbGluay10ZXh0LWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kbG9nb3V0LWxpbmstdGV4dC1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4kbG9nb3V0LWxpbmstYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vTWFwXHJcbiRtYXAtYmc6dHJhbnNwYXJlbnQ7XHJcbiRtYXAtYm9yZGVyOm5vbmU7XHJcbi8vUGFnZSBMaXN0XHJcbiRwYWdlLWxpc3QtYmc6JGJnLXRyYW5zcGFyZW50O1xyXG4kcGFnZS1saXN0LWl0ZW0tYmc6JGJnLXRyYW5zcGFyZW50O1xyXG4kcGFnZS1saXN0LWl0ZW0tdGl0bGUtdGV4dDokdGV4dC1ibGFjaztcclxuJHBhZ2UtbGlzdC1pdGVtLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1BhZ2luYXRpb25cclxuJGxpc3QtcGFnaW5hdGlvbi1iZzp0cmFuc3BhcmVudDtcclxuJGxpc3QtcGFnaW5hdGlvbi1hY3RpdmUtYmc6JGJnLWJsdWU7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiR0ZXh0LXdoaXRlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjokdGV4dC1ibHVlO1xyXG4kbGlzdC1wYWdpbmF0aW9uLWFjdGl2ZS1iZzokYmctc3VibWVudS1hY3RpdmU7XHJcbiRsaXN0LXBhZ2luYXRpb24tYWN0aXZlLWJvcmRlcjokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuLy9QbGF5IGxpc3QgXHJcbiRwbGF5LWxpc3QtYmc6dHJhbnNwYXJlbnQ7XHJcbiRwbGF5LWxpc3QtaXRlbS1iZzp0cmFuc3BhcmVudDtcclxuJHBsYXktbGlzdC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kcGxheS1saXN0LWl0ZW0tY29sb3ItYWN0aXZlOiR0ZXh0LXdoaXRlO1xyXG4kcGxheS1saXN0LW5hdi1hY3RpdmU6JHRleHQtYmx1ZTtcclxuJHBsYXktbGlzdC1pdGVtLWJnOiRiZy1saWdodC1ncmF5O1xyXG4kcGxheS1saXN0LWl0ZW0tYWN0aXZlLWJnOiRiZy1ibHVlO1xyXG4kcGxheS1saXN0LWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kcGxheS1saXN0LXRpdGxlLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL1Byb21vXHJcbiRwcm9tby1iZzokYmctYmFzaWMtY29sb3I7XHJcbiRwcm9tby1iZy1oZXJvOnJnYmEoMCwgMCwgMCwgMC41KTtcclxuJHByb21vLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRwcm9tby1oZXJvLXRleHQtY29sb3I6JHRleHQtd2hpdGU7XHJcbiRwcm9tby1zaGFkb3ctYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vUmljaCBUZXh0IENvbnRlbnRcclxuJHJpY2gtY29udGVudC1iZzp0cmFuc3BhcmVudDtcclxuJHJpY2gtY29udGVudC1jb2xvcjokdGV4dC1iYXNpYztcclxuJHJpY2gtY29udGVudC1ib3JkZXI6bm9uZTtcclxuLy9TZWFyY2hcclxuJHNlYXJjaC1maWx0ZXI6JHRleHQtYmFzaWM7XHJcbiRzZWFyY2gtZmlsdGVyLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL01lbnUgY29sb3JzXHJcbiRtZW51LWhvdmVyLWNvbG9yOiMxYjgwOWU7XHJcbiRtZW51LWFjdGl2ZS1jb2xvcjojMTc2Zjg5O1xyXG4vL05hdmlnYXRpb25cclxuJG5hdi1iZzp0cmFuc3BhcmVudDtcclxuJG5hdi1jb2xvci1yb290OiR0ZXh0LWJhc2ljO1xyXG4kbmF2LWNvbG9yLXJvb3QtYWN0aXZlOiR0ZXh0LWJhc2ljO1xyXG4kbmF2LWJvcmRlci1yb290OiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRuYXYtYm9yZGVyLXJvb3QtYWN0aXZlOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRuYXYtY29sb3Itc3VibWVudTokdGV4dC1zdWJtZW51LWFjdGl2ZTtcclxuJG5hdi1jb2xvci1zdWJtZW51LWFjdGl2ZTokdGV4dC1zdWJtZW51LWFjdGl2ZTtcclxuJG5hdi1iZy1yb290OiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJG5hdi1iZy1zdWJtZW51OiRiZy1zdWJtZW51LWFjdGl2ZTtcclxuJG5hdi1iZy1zdWJtZW51LWFjdGl2ZTokYmctc3VibWVudS1hY3RpdmU7XHJcbiRuYXYtYm9yZGVyLXN1Ym1lbnU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJG5hdi1zdWJtZW51LWl0ZW0tYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJG5hdi1zdWJtZW51LWJvcmRlci1hY3RpdmU6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuLy9Tb2NpYWwgTWVkaWEgU2hhcmVcclxuJHNvY2lhbC1tZWRpYS1zaGFyZS1iZzp0cmFuc3BhcmVudDtcclxuLy9UYWJzXHJcbiR0YWItaGVhZGluZy1iZzokYmctbGlnaHQtZ3JheTtcclxuJHRhYi1oZWFkaW5nLWFjdGl2ZS1iZzokYmctYmFzaWMtY29sb3I7XHJcbiR0YWItaGVhZGluZy1jb2xvcjokdGV4dC1oZWFkaW5nLWNvbG9yO1xyXG4kdGFiLWhlYWRpbmctYWN0aXZlLWNvbG9yOiR0ZXh0LWJsYWNrO1xyXG4kdGFiLWNvbnRhaW5lci1iZzp0cmFuc3BhcmVudDtcclxuJHRhYi1jb250YWluZXItYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbi8vVGl0bGVcclxuJHRpdGxlLWJnOnRyYW5zcGFyZW50O1xyXG4kdGl0bGUtY29sb3I6JHRleHQtYmFzaWM7XHJcbiR0aXRsZS1jb2xvci1hY3RpdmU6JHRleHQtYmFzaWMtYWN0aXZlO1xyXG4vL1RvZ2dsZVxyXG4kdG9nZ2xlLWhlYWRlci1iZzokYmctYmFzaWMtY29sb3I7XHJcbiR0b2dnbGUtY29udGVudC1iZzokYmctYmFzaWMtY29sb3I7XHJcbiR0b2dnbGUtc2hvdy1jb2xvcjokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbi8vU2VhcmNoIENvbXBvbmVudHNcclxuJHNlYXJjaC1idG4tYmc6dHJhbnNwYXJlbnQ7XHJcbiRzZWFyY2gtYnRuLWFjdGl2ZS1iZzojZTBlMGUwO1xyXG4kc2VhcmNoLWJ0bi1hY3RpdmUtYm9yZGVyOiNhZGFkYWQ7XHJcbi8vSW1hZ2UgY29tcG9uZW50XHJcbiRpbWFnZS1jYXB0aW9uLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4vL01lZGlhIExpbmsgQ29tcG9uZW50XHJcbiRtZWRpYS1saW5rLWJnOnRyYW5zcGFyZW50O1xyXG4kbWVkaWEtbGluay1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJG1lZGlhLWxpbmstY29sb3I6JHRleHQtYmFzaWM7XHJcbiRtZWRpYS1saW5rLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbi8vVGFnIENvbXBvbmVudFxyXG4kdGFnLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kdGFnLWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiR0YWctYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWFjdGl2ZTtcclxuJHRhZy1saW5rLWJnIDokYmctYmx1ZTtcclxuJHRhZy1saW5rLWJnLWFjdGl2ZSA6JGJnLWJsdWUtYWN0aXZlO1xyXG4kdGFnLWxpbmstY29sb3IgOiR0ZXh0LXdoaXRlO1xyXG4vL0xpbmsgQ29tcG9uZW50XHJcbiRsaW5rLWJnOnRyYW5zcGFyZW50O1xyXG4kbGluay10ZXh0LWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kbGluay10ZXh0LWNvbG9yLWFjdGl2ZTokdGV4dC1iYXNpYy1hY3RpdmU7XHJcbiRsaW5rLWJvcmRlcjokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4vL092ZXJsYXlcclxuJG92ZXJsYXktYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbi8vU2VhcmNoIENvbXBvbmVudHNcclxuJHNlYXJjaC10aXRsZS1ib3JkZXI6JGJvcmRlci1iYXNpYy1jb2xvcjtcclxuJHNlYXJjaC10aXRsZS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHNlYXJjaC1pdGVtLWNvbG9yOiR0ZXh0LWJhc2ljO1xyXG4kc2VhcmNoLWl0ZW0tY29sb3ItYWN0aXZlOiR0ZXh0LWJhc2ljO1xyXG4kc2VhcmNoLWl0ZW0tYm9yZGVyOiRib3JkZXItYmFzaWMtY29sb3I7XHJcbiRzZWFyY2gtaXRlbS1ib3JkZXItYWN0aXZlOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4vL1xyXG4kc2VhcmNoLWZpbHRlci1yYWRpdXMtYWN0aXZlOiR0ZXh0LWJsdWU7XHJcbiRzZWFyY2gtZmlsdGVyLXJhZGl1cy1ib3JkZXI6JGJvcmRlci1ncmF5O1xyXG4kc2VhcmNoLWZpbHRlci1yYWRpdXMtYmc6JGJvcmRlci1ncmF5O1xyXG4vL1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYm9yZGVyLWFjdGl2ZTokYm9yZGVyLWJhc2ljLWNvbG9yO1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYmctYWN0aXZlOiRiZy1ibHVlO1xyXG4kc2VhcmNoLWZpbHRlci1zbGlkZXItYnRuLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbiRzZWFyY2gtZmlsdGVyLXNsaWRlci1idG4tYmc6JGJnLWxpZ2h0LWdyYXk7XHJcbiRzZWFyY2gtZmlsdGVyLXNsaWRlci1idG4tYmctYWN0aXZlOiRiZy1saWdodC1ncmF5LWFjdGl2ZTtcclxuLy9TZXJhY2ggUGFnaW5hdGlvblxyXG4kc2VhcmNoLXBhZ2luYXRpb24tYmc6dHJhbnNwYXJlbnQ7XHJcbiRzZWFyY2gtcGFnaW5hdGlvbi1hY3RpdmUtYmc6JGJnLWJsdWU7XHJcbiRzZWFyY2gtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6JHRleHQtd2hpdGU7XHJcbiRzZWFyY2gtcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjokdGV4dC1ibHVlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24taG92ZXItYmc6JGJnLXN1Ym1lbnUtYWN0aXZlO1xyXG4kc2VhcmNoLXBhZ2luYXRpb24taG92ZXItYm9yZGVyOiRib3JkZXItYmFzaWMtYWN0aXZlO1xyXG4vL1NlYXJjaCBzZWxlY3RvclxyXG4kc2VyYWNoLXNlbGVjdG9yLXZhcmlhbnQtY29sb3ItYWN0aXZlOiAkdGV4dC1ibHVlLWFjdGl2ZTtcclxuLy9UeXBlaGVhZFxyXG4kdHQtY29sb3I6JHRleHQtYmFzaWM7XHJcbiR0dC1jb2xvci1hY3RpdmU6JHRleHQtYmx1ZTtcclxuJHR0LXByaWNlLWNvbG9yOiR0ZXh0LWJsdWU7XHJcbiR0dC1kcm9wZG93bi1iZzokYmctbGlnaHQtZ3JheTtcclxuJHR0LXN1Z2dlc3Rpb24tYmctYWN0aXZlOiRiZy1saWdodC1ncmF5LWFjdGl2ZTtcclxuJHR0LWRyb3Bkb3duLWJvcmRlcjokYm9yZGVyLWdyYXk7XHJcbi8vVmlkZW9cclxuJHZpZGVvLWNvbnRyb2wtYmc6JGJnLWJhc2ljLWNvbG9yO1xyXG4kdmlkZW8tdGltZS1jb2xvcjokdGV4dC1iYXNpYztcclxuJHZpZGVvLXRpbWUtdG90YWwtYmc6JGJnLWJsYWNrO1xyXG4kdmlkZW8tdGltZS1oYW5kbGUtYm9yZGVyOiRib3JkZXItZ3JheTtcclxuJHZpZGVvLXRpbWUtaGFuZGxlLWJnOiRiZy1ibGFjaztcclxuLy9NYWluXHJcbiRwYWdlLWJnOiAkYmctYmFzaWMtY29sb3I7XHJcbiRwYWdlLWJnLWVkaXRvcjpub25lO1xyXG4iLCJAdXNlIFwiLi4vLi4vYWJzdHJhY3RzL3ZhcnNcIjtcclxuQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy9taXhpbnNcIjtcclxuXHJcbi50YWJzLnRhYnMtc2Nyb2xsYWJsZSB7XHJcbiAgICAudGFicy1oZWFkaW5nIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWJzLWNvbnRhaW5lciB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmV2IHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNlNGU0ZTQgdXJsKFwiLi4vSW1hZ2VzL2Fycm93LWxlZnQucG5nXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xyXG4gICAgfVxyXG5cclxuICAgIC5uZXh0IHtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZTRlNGU0IHVybChcIi4uL0ltYWdlcy9hcnJvdy1yaWdodC5wbmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi50YWJzLWJvdHRvbSB7XHJcbiAgICAgICAgLndyYXBwZXIge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubmV4dCB7XHJcbiAgICAgICAgICAgIHRvcDogMXB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnByZXYge1xyXG4gICAgICAgICAgICB0b3A6IDFweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50YWJzLWhlYWRpbmcge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAdXNlIFwiLi4vLi4vYWJzdHJhY3RzL3ZhcnMvY29sb3JzXCIgYXMgKjtcclxuQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy9taXhpbnNcIjtcclxuXHJcbi50YWJzLnRhYnMtdmVydGljYWwge1xyXG4gICAgJi50YWJzLXZlcnRpY2FsLXJpZ2h0IHtcclxuICAgICAgICAudGFicy1oZWFkaW5nIHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWModG9wLCAkdGFiLWhlYWRpbmctYmcpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhsZWZ0LCAkdGFiLWhlYWRpbmctYmcpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhyaWdodCwgJHRhYi1jb250YWluZXItYm9yZGVyLCAycHgpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhib3R0b20sICR0YWItaGVhZGluZy1iZyk7XHJcblxyXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMocmlnaHQsICR0YWItY29udGFpbmVyLWJvcmRlciwgMnB4KTtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMuYm9yZGVyLWJhc2ljKGxlZnQsICR0YWItY29udGFpbmVyLWJvcmRlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMobGVmdCwgJHRhYi1jb250YWluZXItYm9yZGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnRhYnMtY29udGFpbmVyIHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMuYm9yZGVyLWJhc2ljKHJpZ2h0LCAkdGFiLWNvbnRhaW5lci1ib3JkZXIsIDFweCk7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2Fic3RyYWN0cy92YXJzL2NvbG9yc1wiIGFzICo7XHJcbkB1c2UgXCIuLi8uLi9hYnN0cmFjdHMvbWl4aW5zXCI7XHJcblxyXG4udGFicy50YWJzLXZlcnRpY2FsIHtcclxuICAgIC50YWJzLWhlYWRpbmcge1xyXG4gICAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMnB4IDA7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyh0b3AsICR0YWItaGVhZGluZy1iZyk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMobGVmdCwgJHRhYi1oZWFkaW5nLWJnLCAycHgpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMuYm9yZGVyLWJhc2ljKHJpZ2h0LCAkdGFiLWNvbnRhaW5lci1ib3JkZXIpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMuYm9yZGVyLWJhc2ljKGJvdHRvbSwgJHRhYi1oZWFkaW5nLWJnKTtcclxuXHJcbiAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMobGVmdCwgJHRhYi1jb250YWluZXItYm9yZGVyLCAycHgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMobGVmdCwgJHRhYi1jb250YWluZXItYm9yZGVyLCAycHgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50YWJzLWNvbnRhaW5lciB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgICAgICBAaW5jbHVkZSBtaXhpbnMuYm9yZGVyLWJhc2ljKGxlZnQsICR0YWItY29udGFpbmVyLWJvcmRlciwgMXB4KTtcclxuICAgIH1cclxufVxyXG4iLCJAdXNlIFwiYWJzdHJhY3RzXCI7XHJcbkB1c2UgXCJhYnN0cmFjdHMvbWl4aW5zXCI7XHJcbkB1c2UgXCJhYnN0cmFjdHMvdmFycy9jb2xvcnNcIiBhcyAqO1xyXG5AdXNlIFwiYWJzdHJhY3RzL3ZhcnMvY29sb3JzXCIgYXMgY29sb3JzO1xyXG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9ucy9jb2xvclwiIGFzIGZ1bmN0aW9ucy1jb2xvcjtcclxuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnMvc3BhY2VcIjtcclxuQHVzZSBcInN0eWxlcy90YWJzL3RhYnMtYm90dG9tXCI7XHJcbkB1c2UgXCJzdHlsZXMvdGFicy90YWJzLXNjcm9sbGFibGVcIjtcclxuQHVzZSBcInN0eWxlcy90YWJzL3RhYnMtdmVydGljYWwtcmlnaHRcIjtcclxuQHVzZSBcInN0eWxlcy90YWJzL3RhYnMtdmVydGljYWxcIjtcclxuXHJcbiR0YWJzLWNvbG9yLXByaW1hcnk6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcihwcmltYXJ5KTtcclxuJHRhYnMtY29sb3ItYmxhY2s6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcihibGFjayk7XHJcbiR0YWJzLWNvbG9yLXRhYi0tZGlzYWJsZWQ6IGZ1bmN0aW9ucy1jb2xvci5jb2xvcih0YWItLWRpc2FibGVkKTtcclxuJHRhYnMtY29sb3ItcHJpbWFyeS1jb250cmFzdDogZnVuY3Rpb25zLWNvbG9yLmNvbG9yKHByaW1hcnktY29udHJhc3QpO1xyXG4kdGFicy1zcGFjZS0xOiAje3NwYWNlLnNwYWNlKDEpfTtcclxuJHRhYnMtc3BhY2UtMjogI3tzcGFjZS5zcGFjZSgyKX07XHJcbiR0YWJzLXNwYWNlLTQ6ICN7c3BhY2Uuc3BhY2UoNCl9O1xyXG5cclxuW2RhdGEtd2hhdGlucHV0PWtleWJvYXJkXSAudGFicy1oZWFkaW5nIGJ1dHRvbjpmb2N1cywgW2RhdGEtd2hhdGludGVudD1rZXlib2FyZF0gLnRhYnMtaGVhZGluZyBidXR0b246Zm9jdXMge1xyXG4gICAgYm9yZGVyOiAycHggZG90dGVkICR0YWJzLWNvbG9yLWJsYWNrO1xyXG59XHJcblxyXG4udGFicyB7XHJcbiAgICAvLyBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG1hcmdpbi10b3A6ICR0YWJzLXNwYWNlLTQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkdGFicy1zcGFjZS00O1xyXG59XHJcblxyXG4udGFiLXNsaWRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkdGFiLWhlYWRpbmctYmc7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudHJhbDtcclxuICAgIHdpZHRoOiAxNXB4O1xyXG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XHJcbiAgICB6LWluZGV4OiAxMDtcclxufVxyXG5cclxuLnRhYnMtaGVhZGluZywgLmMtZmFyZS1wYXNzZXNfX3RhYnMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHRhYnMtc3BhY2UtNDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHRhYnMtY29sb3ItdGFiLS1kaXNhYmxlZDtcclxuICAgICAgICBjb2xvcjogJHRhYnMtY29sb3ItYmxhY2s7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgZGl2LmZpZWxkLWhlYWRpbmcge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudWktdHlwb2dyYXBoeShjYXB0aW9uKTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBidXR0b24sIC5jLWZhcmUtcGFzc2VzX190YWJzLWEgYSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHRhYnMtY29sb3ItdGFiLS1kaXNhYmxlZDtcclxuICAgICAgICBjb2xvcjogJHRhYnMtY29sb3ItYmxhY2s7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgcGFkZGluZzogMy41JSAkdGFicy1zcGFjZS0yO1xyXG4gICAgICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KGNhcHRpb24pO1xyXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICAgICAmOmhvdmVyLFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGFicy1jb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtY29sb3ItcHJpbWFyeS1jb250cmFzdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGkuYWN0aXZlIGJ1dHRvbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHRhYnMtY29sb3ItcHJpbWFyeTtcclxuICAgICAgICBjb2xvcjogJHRhYnMtY29sb3ItcHJpbWFyeS1jb250cmFzdDtcclxuICAgIH1cclxufVxyXG5cclxuLnRhYnMtaGVhZGluZyB7XHJcbiAgICBkaXYsXHJcbiAgICBidXR0b24ge1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4taGVpZ2h0OiA2MnB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4vL3Jlc2V0IGdyaWQgZm9yIGZha2UgdGFic1xyXG4uYy1mYXJlLXBhc3Nlc19fdGFicyB7XHJcbiAgICAuby1ncmlkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmMtZmFyZS1wYXNzZXNfX3RhYnMtYSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDYycHg7XHJcblxyXG4gICAgICAgICZbYXJpYS1kaXNhYmxlZF0ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGFicy1jb2xvci1wcmltYXJ5O1xyXG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtY29sb3ItcHJpbWFyeS1jb250cmFzdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi50YWJzLWNvbnRhaW5lciB7XHJcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG59XHJcblxyXG4udGFiIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG5cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxufVxyXG5cclxuLy90YWJzIHNlY29uZGFyeVxyXG4udGFicy5jLXRhYnMtLXNlY29uZGFyeSB7XHJcbiAgICAudGFicy1oZWFkaW5nIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhib3R0b20sICR0YWJzLWNvbG9yLXByaW1hcnksIDJweCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbG9yLXByaW1hcnktY29udHJhc3Q7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdGFicy1jb2xvci1wcmltYXJ5O1xyXG5cclxuICAgICAgICAgICAgJi5hY3RpdmUsXHJcbiAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy90YWItY2hldnJvbi5zdmcnKSBuby1yZXBlYXQgMTAwJSA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTJweDtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkdGFicy1jb2xvci1wcmltYXJ5ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb2xvci1wcmltYXJ5LWNvbnRyYXN0O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzLWNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMiksXHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpIH4gbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIuNSUgJHRhYnMtc3BhY2UtMjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSxcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMlIC0gMXB4KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQ5cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1peGlucy5tcSgkdW50aWw6c20pIHtcclxuICAgIDpub3QoLmMtdGFicy0tc2Vjb25kYXJ5KSAudGFicy1oZWFkaW5nIHtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy5ib3JkZXItYmFzaWMoYm90dG9tLCBmdW5jdGlvbnMtY29sb3IuY29sb3IoYmxhY2spLCAxcHgpO1xyXG5cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmMtZmFyZS1wYXNzZXNfX3RhYnMge1xyXG4gICAgICAgID4gLmNvbXBvbmVudC1jb250ZW50ID4gZGl2IHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogNjJweDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhib3R0b20sIGZ1bmN0aW9ucy1jb2xvci5jb2xvcihibGFjayksIDFweCk7XHJcblxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNjJweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGFicy5jLXRhYnMtLXNlY29uZGFyeSB7XHJcbiAgICAgICAgdWwudGFicy1oZWFkaW5nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSBzcGFjZS5zcGFjZSg0KTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtIHNwYWNlLnNwYWNlKDQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vZm1sXHJcbiAgICAudGFicyAudGFiIHtcclxuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1peGlucy5tcShzbSkge1xyXG4gICAgLnRhYnMtaGVhZGluZyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSxcclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IGxpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyksXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiBsaSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMy4zMyUgLSAxcHgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhyaWdodCwgZnVuY3Rpb25zLWNvbG9yLmNvbG9yKGJsYWNrKSwgMXB4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYy1mYXJlLXBhc3Nlc19fdGFicyB7XHJcbiAgICAgICAgPiAuY29tcG9uZW50LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICAgICAgICAgICAgPiBkaXYge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2LjYlO1xyXG5cclxuICAgICAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmJvcmRlci1iYXNpYyhyaWdodCwgZnVuY3Rpb25zLWNvbG9yLmNvbG9yKGJsYWNrKSwgMXB4KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnRhYnMuYy10YWJzLS1zZWNvbmRhcnkge1xyXG4gICAgICAgIC50YWJzLWhlYWRpbmcge1xyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpLFxyXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IGxpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxcHgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjUlICR0YWJzLXNwYWNlLTI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyksXHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDMzLjMzJSAtIDFweCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2LCBidXR0b24ge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAdXNlICdzYXNzOm1hcCc7XHJcbkB1c2UgJ3Nhc3M6bGlzdCc7XHJcbkB1c2UgJ3Nhc3M6bWF0aCc7XHJcbkB1c2UgJ3Nhc3M6bWV0YSc7XHJcbkB1c2UgJy4uLy4uL2Fic3RyYWN0cy92YXJzL3R5cGUnO1xyXG5AdXNlICcuLi8uLi9hYnN0cmFjdHMvdmFycy9icmVha3BvaW50cycgYXMgYmFzZTtcclxuQHVzZSAnLi4vLi4vYWJzdHJhY3RzL2Z1bmN0aW9ucy9weC10by1yZW0nO1xyXG5cclxuQGZ1bmN0aW9uIHRvLXJlbSgkdmFsdWUpIHtcclxuICAgIEBpZiBtYXRoLmlzLXVuaXRsZXNzKCR2YWx1ZSkgb3IgbWF0aC51bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XHJcbiAgICAgICAgQHJldHVybiAkdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiBweC10by1yZW0uZ2V0LXJlbSgkdmFsdWUpO1xyXG59XHJcblxyXG5AbWl4aW4gaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemVzKSB7XHJcbiAgICBAaWYgbGlzdC5sZW5ndGgoJHNpemVzKSA9PSAyIHtcclxuICAgICAgICBmb250LXNpemU6IGxpc3QubnRoKCRzaXplcywgMSk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGxpc3QubnRoKCRzaXplcywgMik7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkc2l6ZXM7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBpb3RhLXR5cGUoJHNpemVzLCAkYnJlYWtwb2ludHM6IGJhc2UuJGlvdGEtZ2xvYmFsLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBAaWYgbWV0YS50eXBlLW9mKCRzaXplcykgPT0gJ21hcCcge1xyXG4gICAgICAgIEBpZiBtYXAuaGFzLWtleSgkc2l6ZXMsIG51bGwpIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMobWFwLmdldCgkc2l6ZXMsIG51bGwpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkc2l6ZSBpbiAkc2l6ZXMge1xyXG4gICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgIT0gbnVsbCBhbmQgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xyXG4gICAgICAgICAgICAgICAgQG1lZGlhICN7bWFwLmdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KX0ge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAaW5jbHVkZSBpb3RhLWV4dHJhY3QtdHlwZS1zaXplcygkc2l6ZXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5OiB0eXBlLiR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpIHtcclxuICAgIEBpZiAkZm9udC1mYW1pbHkgIT0gbnVsbCB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBmb250LWZhbWlseTogdHlwZS4kdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHkoJHN0eWxlKSB7XHJcbiAgICBAaWYgbWFwLmhhcy1rZXkodHlwZS4kdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgICAgICRzdHlsZTogbWFwLmdldCh0eXBlLiR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcclxuICAgICAgICAkZm9udC1mYW1pbHk6IG1hcC5nZXQoJHN0eWxlLCBmb250LWZhbWlseSk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHktYmFzZSgkZm9udC1mYW1pbHkpO1xyXG4gICAgICAgIEBpbmNsdWRlIGlvdGEtdHlwZShtYXAuZ2V0KCRzdHlsZSwgc2l6ZXMpKTtcclxuICAgICAgICAvLyBSZW1vdmUgcHJvcGVydGllcyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIGdlbmVyYXRlZCBiZWxvd1xyXG4gICAgICAgICRwcm9wczogbWFwLnJlbW92ZSgkc3R5bGUsIGZvbnQtZmFtaWx5LCBtYXJnaW4sIHNpemVzKTtcclxuICAgICAgICAka2V5czogbWFwLmtleXMoJHByb3BzKTtcclxuXHJcbiAgICAgICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XHJcbiAgICAgICAgICAgICN7JGtleX06IG1hcC5nZXQoJHByb3BzLCAka2V5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCcpO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gdWktdHlwb2dyYXBoeS1tYXJnaW4oJHN0eWxlKSB7XHJcbiAgICBAaWYgbWFwLmhhcy1rZXkodHlwZS4kdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgICAgICRzdHlsZS1kZWZpbml0aW9uOiBtYXAuZ2V0KHR5cGUuJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpO1xyXG4gICAgICAgICRzdHlsZS1tYXJnaW46IG1hcC5nZXQoJHN0eWxlLWRlZmluaXRpb24sIG1hcmdpbik7XHJcbiAgICAgICAgbWFyZ2luOiAkc3R5bGUtbWFyZ2luO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCBmb3IgbWFyZ2luJyk7XHJcbiAgICB9XHJcbn1cclxuIiwiLy9tb2RkZWQgdG8gdXNlIHB4XHJcblxyXG5AY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcclxuQHVzZSAnLi4vdmFycy9icmVha3BvaW50cyc7XHJcbkB1c2UgJ3Nhc3M6bGlzdCc7XHJcbkB1c2UgJ3Nhc3M6bWFwJztcclxuQHVzZSAnc2FzczptZXRhJztcclxuQHVzZSAnc2FzczptYXRoJztcclxuQHVzZSAnc2FzczpzdHJpbmcnO1xyXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXHJcblxyXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcclxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcclxuJG1xLWJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIFJlc3BvbnNpdmUgbW9kZVxyXG4vLy9cclxuLy8vIFNldCB0byBgZmFsc2VgIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxyXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcclxuLy8vXHJcbi8vLyBZb3UgY291bGQgY3JlYXRlIGEgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gb2xkZXIgYnJvd3NlcnMsXHJcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyBvbGQtaWUuc2Nzc1xyXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcclxuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcclxuLy8vXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cclxuJG1xLXJlc3BvbnNpdmU6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQnJlYWtwb2ludCBsaXN0XHJcbi8vL1xyXG4vLy8gTmFtZSB5b3VyIGJyZWFrcG9pbnRzIGluIGEgd2F5IHRoYXQgY3JlYXRlcyBhIHViaXF1aXRvdXMgbGFuZ3VhZ2VcclxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cclxuLy8vIHN0YWtlaG9sZGVycywgZGVzaWduZXJzLCBkZXZlbG9wZXJzLCBhbmQgdGVzdGVycy5cclxuLy8vXHJcbi8vLyBAdHlwZSBNYXBcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtYnJlYWtwb2ludHM6IGJyZWFrcG9pbnRzLiRtcS1icmVha3BvaW50cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXHJcbi8vL1xyXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXHJcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcclxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3NcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xyXG4vLy8gIC8vXHJcbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXHJcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLXN0YXRpYy1icmVha3BvaW50OiBtZDIgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxyXG4vLy9cclxuLy8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXHJcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xyXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXHJcbi8vL1xyXG4vLy8gQHR5cGUgbWFwXHJcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDdXN0b21pemUgdGhlIG1lZGlhIHR5cGUgKGUuZy4gYEBtZWRpYSBzY3JlZW5gIG9yIGBAbWVkaWEgcHJpbnRgKVxyXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcclxuLy8vXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1tZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRweCAtIHZhbHVlIHRvIGNvbnZlcnRcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xyXG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxyXG4vLy8gQHJldHVybnMge051bWJlcn1cclxuQGZ1bmN0aW9uIG1xLXB4MmVtKCRweCwgJGJhc2UtZm9udC1zaXplOiAkbXEtYmFzZS1mb250LXNpemUpIHtcclxuICAgIEBpZiBtYXRoLmlzLXVuaXRsZXNzKCRweCkge1xyXG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xyXG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgbWF0aC51bml0KCRweCkgPT0gJ2VtJyB7XHJcbiAgICAgICAgQHJldHVybiAkcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiBtYXRoLmRpdigkcHgsICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XHJcbn1cclxuXHJcbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50LiBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gICR0YWJsZXQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKHRhYmxldCk7XHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFZhbHVlIGluIHBpeGVsc1xyXG5AZnVuY3Rpb24gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJG5hbWUsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xyXG4gICAgICAgIEByZXR1cm4gbWFwLmdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcclxuICAgICAgICBAcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XHJcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxyXG4vLy9cclxuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXHJcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAuZWxlbWVudCB7XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoJGZyb206IG1vYmlsZSkge1xyXG4vLy8gICAgICBjb2xvcjogcmVkO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKCR1bnRpbDogdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKG1vYmlsZSwgdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xyXG4vLy8gICAgICBjb2xvcjogdGVhbDtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSg5NTBweCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XHJcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoTCwgJGJyZWFrcG9pbnRzOiAkbXktYnJlYWtwb2ludHMsICRzdGF0aWMtYnJlYWtwb2ludDogTCkge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbkBtaXhpbiBtcSggJGZyb206IGZhbHNlLCAkdW50aWw6IGZhbHNlLCAkYW5kOiBmYWxzZSwgJGVtcy1vbjogZmFsc2UsICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSwgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnQgKSB7XHJcbiAgICAkbWluLXdpZHRoOiAwO1xyXG4gICAgJG1heC13aWR0aDogMDtcclxuICAgICRtZWRpYS1xdWVyeTogJyc7XHJcblxyXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXHJcbiAgICBAaWYgJGZyb20ge1xyXG4gICAgICAgIEBpZiBtZXRhLnR5cGUtb2YoJGZyb20pID09ICdudW1iZXInIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtaW4td2lkdGg6ICRmcm9tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxyXG4gICAgQGlmICR1bnRpbCB7XHJcbiAgICAgICAgQGlmIG1ldGEudHlwZS1vZigkdW50aWwpID09ICdudW1iZXInIHtcclxuICAgICAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiAkdW50aWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1heC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpIC0gMXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcclxuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXHJcbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xyXG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG51bGw7XHJcblxyXG4gICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgJHRhcmdldC13aWR0aDogbXEtcHgyZW0oJHN0YXRpYy1icmVha3BvaW50LXdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAkdGFyZ2V0LXdpZHRoOiAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXHJcbiAgICAgICAgQGlmICggJGFuZCA9PSBmYWxzZSBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoIGFuZCAoICR1bnRpbCA9PSBmYWxzZSBvciAkbWF4LXdpZHRoID49ICR0YXJnZXQtd2lkdGggKSApIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHtcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHtcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgJGFuZCB7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xyXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xyXG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyaW5nLnNsaWNlKHN0cmluZy51bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLy8gUXVpY2sgc29ydFxyXG4vLy9cclxuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxyXG5AZnVuY3Rpb24gX21xLXF1aWNrLXNvcnQoJGxpc3QpIHtcclxuICAgICRsZXNzOiAoKTtcclxuICAgICRlcXVhbDogKCk7XHJcbiAgICAkbGFyZ2U6ICgpO1xyXG5cclxuICAgIEBpZiBsaXN0Lmxlbmd0aCgkbGlzdCkgPiAxIHtcclxuICAgICAgICAkc2VlZDogbGlzdC5udGgoJGxpc3QsIG1hdGguY2VpbChsaXN0Lmxlbmd0aCgkbGlzdCkgLyAyKSk7XHJcblxyXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICAgICAgICAgQGlmICgkaXRlbSA9PSAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGVxdWFsOiBsaXN0LmFwcGVuZCgkZXF1YWwsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSBpZiAoJGl0ZW0gPCAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxlc3M6IGxpc3QuYXBwZW5kKCRsZXNzLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsYXJnZTogbGlzdC5hcHBlbmQoJGxhcmdlLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEByZXR1cm4gbGlzdC5qb2luKGxpc3Quam9pbihfbXEtcXVpY2stc29ydCgkbGVzcyksICRlcXVhbCksIF9tcS1xdWljay1zb3J0KCRsYXJnZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuXHJcbi8vLyBTb3J0IGEgbWFwIGJ5IHZhbHVlcyAod29ya3Mgd2l0aCBudW1iZXJzIG9ubHkpXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXHJcbkBmdW5jdGlvbiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1hcCkge1xyXG4gICAgJG1hcC1zb3J0ZWQ6ICgpO1xyXG4gICAgJG1hcC1rZXlzOiBtYXAua2V5cygkbWFwKTtcclxuICAgICRtYXAtdmFsdWVzOiBtYXAudmFsdWVzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXMtc29ydGVkOiBfbXEtcXVpY2stc29ydCgkbWFwLXZhbHVlcyk7XHJcblxyXG4gICAgLy8gUmVvcmRlciBrZXkvdmFsdWUgcGFpcnMgYmFzZWQgb24ga2V5IHZhbHVlc1xyXG4gICAgQGVhY2ggJHZhbHVlIGluICRtYXAtdmFsdWVzLXNvcnRlZCB7XHJcbiAgICAgICAgJGluZGV4OiBsaXN0LmluZGV4KCRtYXAtdmFsdWVzLCAkdmFsdWUpO1xyXG4gICAgICAgICRrZXk6IGxpc3QubnRoKCRtYXAta2V5cywgJGluZGV4KTtcclxuICAgICAgICAkbWFwLXNvcnRlZDogbWFwLm1lcmdlKCRtYXAtc29ydGVkLCAoJGtleTogJHZhbHVlKSk7XHJcblxyXG4gICAgICAgIC8vIFVuc2V0IHRoZSB2YWx1ZSBpbiAkbWFwLXZhbHVlcyB0byBwcmV2ZW50IHRoZSBsb29wXHJcbiAgICAgICAgLy8gZnJvbSBmaW5kaW5nIHRoZSBzYW1lIGluZGV4IHR3aWNlXHJcbiAgICAgICAgJG1hcC12YWx1ZXM6IGxpc3Quc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xyXG59XHJcblxyXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcclxuLy8vICBAaW5jbHVkZSBtaXhpbnMubXEodHZzY3JlZW4pIHt9XHJcbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XHJcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcclxuICAgICRtcS1icmVha3BvaW50czogbWFwLm1lcmdlKCRtcS1icmVha3BvaW50cywgJG5ldy1icmVha3BvaW50KSAhZ2xvYmFsO1xyXG4gICAgJG1xLWJyZWFrcG9pbnRzOiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1xLWJyZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXHJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXHJcbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcclxuLy8vXHJcbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3NcclxuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcclxuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xyXG4gICAgYm9keTpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xyXG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xyXG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XHJcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDtcclxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXHJcbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XHJcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGlmIGxpc3QubGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xyXG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcclxufVxyXG4iXX0= */
