.c-cta-banner {
  background-color: #5A7796;
  background-image: linear-gradient(to right, #0E2D3B, #5A7796);
  overflow: hidden;
  padding: 5rem 0;
  position: relative;
}

.c-cta-banner--red {
  background-color: #892034;
  background-image: linear-gradient(to right, #892034, #C5B5A4);
  background-size: 200% 100%;
}

.c-cta-banner--gold {
  background-color: #C5B5A4;
  background-image: none;
}

.c-cta-banner--interior {
  margin-bottom: 1.5rem;
  padding: 2.5rem 0;
}

.c-cta-banner--sidebar {
  padding: 2.5rem 0;
}
@media (min-width: 992px) {
  .c-cta-banner--sidebar {
    padding: 1rem 0 0;
  }
}
.c-cta-banner--sidebar .c-cta-banner__wrapper {
  display: block;
}

@media (min-width: 992px) {
  .c-cta-banner__wrapper {
    align-items: center;
    display: flex;
    justify-content: space-between;
  }
}

.c-cta-banner__content {
  box-sizing: content-box;
  margin-left: auto;
  margin-right: auto;
  max-width: 1150px;
  padding-left: 30px;
  padding-right: 30px;
}
@media (min-width: 992px) {
  .c-cta-banner__content {
    margin-right: 4rem;
  }
}
@media (min-width: 992px) {
  .c-cta-banner--interior .c-cta-banner__content {
    margin-right: 1rem;
  }
}
@media (min-width: 992px) {
  .c-cta-banner--sidebar .c-cta-banner__content {
    margin-right: 0;
  }
}

.c-cta-banner__title:after {
  background-color: #fff;
  content: "";
  display: block;
  height: 1px;
  margin-top: 0.5rem;
  width: 9.5rem;
}
.c-cta-banner--gold .c-cta-banner__title:after {
  background-color: #181818;
}
.c-cta-banner--sidebar .c-cta-banner__title {
  font-size: 1.15rem;
}
@media (min-width: 600px) {
  .c-cta-banner--sidebar .c-cta-banner__title {
    font-size: 1.2rem;
  }
}

.c-cta-banner__body {
  font-weight: 300;
  margin-bottom: 2rem;
}
.c-cta-banner--sidebar .c-cta-banner__body {
  margin-bottom: 1.5rem;
}

.c-cta-banner__link a {
  background-color: var(--c-steel-blue, #5A7796);
  border: 1px;
  color: var(--c-white, #fff);
  cursor: pointer;
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 400;
  height: 2.2rem;
  line-height: 1;
  margin-bottom: 1rem;
  padding: 15px 40px;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  transition: all 0.2s;
  white-space: nowrap;
  border-radius: 3px;
  background-color: var(--c-white, #fff);
  color: var(--c-steel-blue, #5A7796) !important;
  display: block;
  height: auto;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}
.c-cta-banner__link a:hover {
  background-color: #40556B !important;
  color: var(--c-white, #fff) !important;
  text-decoration: none !important;
}
.c-cta-banner__link a:hover {
  color: var(--c-black, #181818) !important;
  background-color: var(--c-lt-grey, #D0D0D0) !important;
}

.c-cta-banner__image {
  vertical-align: center;
  width: 100%;
  padding-left: 30px;
  padding-right: 30px;
}
@media (max-width: 991px) {
  .c-cta-banner__image {
    margin-top: 2.5rem;
  }
}
.c-cta-banner__image img,
.c-cta-banner__image svg {
  width: 100%;
}

.c-cta-banner__clipped {
  margin: 0 auto;
}

@media (min-width: 992px) {
  .c-cta-banner--sidebar .c-cta-banner__image {
    margin-left: -105%;
    padding: 0;
    width: 200%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY2FsbC10by1hY3Rpb24tYmFubmVyL2NhbGwtdG8tYWN0aW9uLWJhbm5lci5zY3NzIiwicGFydGlhbHMvc2V0dGluZ3MvX2NvbG9ycy5zY3NzIiwiY29tcG9uZW50cy9jYWxsLXRvLWFjdGlvbi1iYW5uZXIvY2FsbC10by1hY3Rpb24tYmFubmVyLmNzcyIsInBhcnRpYWxzL21peGlucy9fYnAuc2NzcyIsInBhcnRpYWxzL21peGlucy9fbGF5b3V0LnNjc3MiLCJwYXJ0aWFscy9zZXR0aW5ncy9fbGF5b3V0LnNjc3MiLCJwYXJ0aWFscy9taXhpbnMvX3R5cG9ncmFwaHkuc2NzcyIsInBhcnRpYWxzL3NldHRpbmdzL190eXBvZ3JhcGh5LnNjc3MiLCJwYXJ0aWFscy9taXhpbnMvX2J1dHRvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UseUJDc0NtQjtFRHJDbkIsNkRBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtBRURGOztBRklBO0VBQ0UseUJDaUJtQjtFRGhCbkIsNkRBQUE7RUFDQSwwQkFBQTtBRURGOztBRklBO0VBQ0UseUJDZ0JtQjtFRGZuQixzQkFBQTtBRURGOztBRklBO0VBQ0UscUJBQUE7RUFDQSxpQkFBQTtBRURGOztBRklBO0VBQ0UsaUJBQUE7QUVERjtBQ2tCTTtFSGxCTjtJQUdJLGlCQUFBO0VFQ0Y7QUFDRjtBRkNFO0VBQ0UsY0FBQTtBRUNKOztBQ1VNO0VIUE47SUFFSSxtQkFBQTtJQUNBLGFBQUE7SUFDQSw4QkFBQTtFRUFGO0FBQ0Y7O0FGR0E7RUlyQ0UsdUJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJDSk87RURlUCxrQkNWUztFRFdULG1CQ1hTO0FIdUNYO0FDUE07RUhDTjtJQUtJLGtCQUFBO0VFS0Y7QUFDRjtBQ1pNO0VIU0o7SUFFSSxrQkFBQTtFRUtKO0FBQ0Y7QUNqQk07RUhjSjtJQUVJLGVBQUE7RUVLSjtBQUNGOztBRkFFO0VBQ0Usc0JDMURnQjtFRDJEaEIsV0FBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0FFR0o7QUZDSTtFQUNFLHlCQ3JFYztBQ3NFcEI7QUZHRTtFTXlEQSxrQkFBQTtBSnpERjtBQ3JDTTtFSHFDSjtJTXlEQSxpQkFBQTtFSnJEQTtBQUNGOztBRkFBO0VBQ0UsZ0JPdEJTO0VQdUJULG1CQUFBO0FFR0Y7QUZERTtFQUNFLHFCQUFBO0FFR0o7O0FGRUU7RVEvRkEsOENBQUE7RUFDQSxXQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCRDJEVztFQzFEWCxjQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxvQkFBQTtFQUNBLG1CQUFBO0VBcURBLGtCQUFBO0VBc0ZBLHNDQUFBO0VBQ0EsOENBQUE7RVJ4REUsY0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7QUVpQko7QU12R0U7RUFDRSxvQ0FBQTtFQUNBLHNDQUFBO0VBQ0EsZ0NBQUE7QU55R0o7QU0rQkU7RUFDRSx5Q0FBQTtFQUNBLHNEQUFBO0FON0JKOztBRnJCQTtFQUNFLHNCQUFBO0VBQ0EsV0FBQTtFSXpGQSxrQkNWUztFRFdULG1CQ1hTO0FINkhYO0FDM0dRO0VIK0VSO0lBS0ksa0JBQUE7RUUyQkY7QUFDRjtBRnpCRTs7RUFFRSxXQUFBO0FFMkJKOztBRnZCQTtFQUNFLGNBQUE7QUUwQkY7O0FDMUdNO0VIK0dOO0lBRUksa0JBQUE7SUFDQSxVQUFBO0lBQ0EsV0FBQTtFRUZGO0FBQ0YiLCJmaWxlIjoiY29tcG9uZW50cy9jYWxsLXRvLWFjdGlvbi1iYW5uZXIvY2FsbC10by1hY3Rpb24tYmFubmVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuLi8uLi9wYXJ0aWFscy9fcGFydGlhbHNcIjtcblxuLmMtY3RhLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRibHVlLS1kYXJrZXIsICRibHVlKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogcmVtKDEwMHB4KSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jLWN0YS1iYW5uZXItLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHJlZCwgI0M1QjVBNCk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xufVxuXG4uYy1jdGEtYmFubmVyLS1nb2xkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi5jLWN0YS1iYW5uZXItLWludGVyaW9yIHtcbiAgbWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xuICBwYWRkaW5nOiByZW0oNTBweCkgMDtcbn1cblxuLmMtY3RhLWJhbm5lci0tc2lkZWJhciB7XG4gIHBhZGRpbmc6IHJlbSg1MHB4KSAwO1xuICBAaW5jbHVkZSBicChsYXJnZSkge1xuICAgIHBhZGRpbmc6IHJlbSgyMHB4KSAwIDA7XG4gIH1cblxuICAuYy1jdGEtYmFubmVyX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uYy1jdGEtYmFubmVyX193cmFwcGVyIHtcbiAgQGluY2x1ZGUgYnAobGFyZ2UpIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbi5jLWN0YS1iYW5uZXJfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBib3gtLWNvbnN0cmFpbmVkO1xuICBAaW5jbHVkZSBib3gtLWd1dHRlcnM7XG5cbiAgQGluY2x1ZGUgYnAobGFyZ2UpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbSg4MHB4KTtcbiAgfVxuXG4gIC5jLWN0YS1iYW5uZXItLWludGVyaW9yICYge1xuICAgIEBpbmNsdWRlIGJwKGxhcmdlKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyMHB4KTtcbiAgICB9XG4gIH1cbiAgLmMtY3RhLWJhbm5lci0tc2lkZWJhciAmIHtcbiAgICBAaW5jbHVkZSBicChsYXJnZSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4uYy1jdGEtYmFubmVyX190aXRsZSB7XG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbi10b3A6IHJlbSgxMHB4KTtcbiAgICB3aWR0aDogcmVtKDE5MHB4KTtcbiAgfVxuXG4gIC5jLWN0YS1iYW5uZXItLWdvbGQgJiB7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4gICAgfVxuICB9XG5cbiAgLmMtY3RhLWJhbm5lci0tc2lkZWJhciAmIHtcbiAgICBAaW5jbHVkZSBmcyhoZWFkaW5nKTtcbiAgfVxufVxuXG4uYy1jdGEtYmFubmVyX19ib2R5IHtcbiAgZm9udC13ZWlnaHQ6ICRmdy1saWdodDtcbiAgbWFyZ2luLWJvdHRvbTogcmVtKDQwcHgpO1xuXG4gIC5jLWN0YS1iYW5uZXItLXNpZGViYXIgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xuICB9XG59XG5cbi5jLWN0YS1iYW5uZXJfX2xpbmsge1xuICBhIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG4gICAgQGluY2x1ZGUgYnV0dG9uLXJhZGl1cztcbiAgICBAaW5jbHVkZSBidXR0b24tLXdoaXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG4gIH1cbn1cblxuLmMtY3RhLWJhbm5lcl9faW1hZ2Uge1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgYm94LS1ndXR0ZXJzO1xuICBAaW5jbHVkZSBicChub25lIGxhcmdlKSB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDUwcHgpO1xuICB9XG5cbiAgaW1nLFxuICBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5jLWN0YS1iYW5uZXJfX2NsaXBwZWQge1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLy8uYy1jdGEtYmFubmVyLS1pbnRlcmlvciAuYy1jdGEtYmFubmVyX19jbGlwcGVkIHtcbi8vICB3aWR0aDogcmVtKDQ3M3B4KTtcbi8vfVxuXG4vLy5jLWN0YS1iYW5uZXJfX2ltYWdlIHtcbi8vICB0cmFuc2Zvcm06IHNjYWxlKC41KTtcbi8vICBAaW5jbHVkZSBicChsYXJnZSkge1xuLy8gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbi8vICB9XG4vL31cblxuLy8uYy1jdGEtYmFubmVyLS1zaWRlYmFyIC5jLWN0YS1iYW5uZXJfX2NsaXBwZWQge1xuLy8gIGJvdHRvbTogcmVtKDUwcHgpO1xuLy8gIGhlaWdodDogcmVtKDIzOXB4KTtcbi8vICBtYXJnaW4tcmlnaHQ6IHJlbSgtMjM2LjVweCk7XG4vLyAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gIHJpZ2h0OiA1MCU7XG4vLyAgd2lkdGg6IHJlbSg0NzNweCk7XG4vLyAgQGluY2x1ZGUgYnAobGFyZ2UpIHtcbi8vICAgIGJvdHRvbTogMDtcbi8vICAgIGhlaWdodDogcmVtKDIzOXB4KTtcbi8vICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgIHJpZ2h0OiByZW0oMTVweCk7XG4vLyAgICB3aWR0aDogcmVtKDQ3M3B4KTtcbi8vICB9XG4vL31cblxuLmMtY3RhLWJhbm5lci0tc2lkZWJhciAuYy1jdGEtYmFubmVyX19pbWFnZSB7XG4gIEBpbmNsdWRlIGJwKGxhcmdlKSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMDUlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDIwMCU7XG4gIH1cbn1cbi8vLmMtY3RhLWJhbm5lci0tcHJldmlldyAuYy1jdGEtYmFubmVyX19jbGlwcGVkIHtcbi8vICBkaXNwbGF5OiBub25lO1xuLy99XG4iLCIvL1xuLy8gQGZpbGVcbi8vIENvbG9yIHZhcmlhYmxlcy5cbi8vXG4vLyBTRUUgaHR0cHM6Ly95ZXVuLmdpdGh1Yi5pby9vcGVuLWNvbG9yL1xuLy9cblxuLy8gQiAmIFdcbiRibGFjazogICAgICAgICAgICAgIzE4MTgxODtcbiR3aGl0ZTogICAgICAgICAgICAgI2ZmZjtcbiRvZmYtd2hpdGU6ICAgICAgICAgI2Y3ZjdmNztcblxuJGdyYXktLWxpZ2h0OiAjRDBEMEQwO1xuJGdyYXktLWxpZ2h0ZXI6ICNFREVERUQ7XG5cbi8vIEdyYXlzY2FsZVxuJGdyYXktMDA6ICAgICAgICAgICAgIzEzMGYxMztcbiRncmF5LTEwOiAgICAgICAgICAgICMyNjFmMjY7XG4kZ3JheS0yMDogICAgICAgICAgICAjMzYzMTM2O1xuJGdyYXktMzA6ICAgICAgICAgICAgIzUwNGI1MDtcbiRncmF5LTQwOiAgICAgICAgICAgICM3NzcyNzc7XG4kZ3JheS01MDogICAgICAgICAgICAjOWQ5OTlkO1xuJGdyYXktNjA6ICAgICAgICAgICAgI2MzYzFjMztcbiRncmF5LTcwOiAgICAgICAgICAgICNlMWUwZTE7XG4kZ3JheS04MDogICAgICAgICAgICAjZjBlZmYwO1xuJGdyYXktOTA6ICAgICAgICAgICAgI2Y3ZjZmNztcblxuLy8gUmVkXG4kcmVkOiAgICAgICAgICAgICAgICAjODkyMDM0O1xuJHJlZC0tbGlnaHQ6ICAgICAgICAgI0ExNEQ1RDtcbiRyZWQtLWRhcms6ICAgICAgICAgICM1RjFCMjg7XG4kcmVkLTUwOiAgICAgICAgICAgICAjYzAwO1xuXG4kZ29sZDogICAgICAgICAgICAgICAjQzVCNUE0O1xuXG4vLyBHcmVlblxuJGdyZWVuLTMwOiAgICAgICAgICAgIzQxNzUwNTtcbiRncmVlbi01MDogICAgICAgICAgICM3ZWQzMjE7XG5cbi8vIEJsdWVcbiRibHVlLS1saWdodDogICAgICAgICM3OUE0Qzk7XG4kYmx1ZTogICAgICAgICAgICAgICAjNUE3Nzk2O1xuJGJsdWUtLWRhcms6ICAgICAgICAgIzQwNTU2QjtcbiRibHVlLS1kYXJrZXI6ICAgICAgICMwRTJEM0I7XG4kYmx1ZS00MDogICAgICAgICAgICAjMDA2NTliO1xuJGJsdWUtNTA6ICAgICAgICAgICAgIzAwOThjZTtcblxuLy8gWWVsbG93XG4keWVsbG93LTUwOiAgICAgICAgICAjZmRjNDAwO1xuJHllbGxvdy05MDogICAgICAgICAgI2Y5ZThhYztcblxuLy9cbi8vIFNlbWFudGljIGNvbG9yc1xuLy9cblxuJGNsci1uZXV0cmFsOiAgICAgICAgJGdyYXktNTA7ICAgICAgICAgICAvLyBEZWZhdWx0IG51ZXRyYWwgY29sb3JcbiRjbHItdGV4dDogICAgICAgICAgICRncmF5LTIwOyAgICAgICAgICAgLy8gRGVmYXVsdCBib2R5IGNvcHkgY29sb3JcbiRjbHItbGluazogICAgICAgICAgICRyZWQ7ICAgICAgICAgICAgIC8vIERlZmF1bHQgbGluayBjb2xvclxuJGNsci1oZWFkaW5nOiAgICAgICAgJGJsYWNrOyAgICAgICAgICAgLy8gRGVmYXVsdCBoZWFkZXIgY29sb3JcbiRjbHItaGVhZGluZy0yOiAgICAgICRyZWQ7XG4kY2xyLWhlYWRpbmctMzogICAgICAkYmx1ZTtcbiRjbHItaGVhZGluZy00OiAgICAgICRyZWQ7XG4kY2xyLWhlYWRpbmctNTogICAgICAkYmx1ZTtcbiRjbHItaGVhZGluZy02OiAgICAgICRyZWQ7XG4kY2xyLWFjY2VudDogICAgICAgICAkeWVsbG93LTUwOyAgICAgICAgICAgIC8vIERlZmF1bHQgYWNjZW50IGNvbG9yXG4kY2xyLWJvcmRlcjogICAgICAgICAkZ3JheS02MDsgICAgICAgICAgICAgIC8vIERlZmF1bHQgYm9yZGVyIGFuZCByZXF1aXJlZCBjb2xvclxuJGNsci1zdGF0dXM6ICAgICAgICAgJGdyZWVuLTUwOyAgICAgICAgICAgICAgLy8gRGVmYXVsdCBzdGF0dXMgY29sb3JcbiRjbHItd2FybmluZzogICAgICAgICR5ZWxsb3ctNTA7ICAgICAgICAgICAgICAvLyBEZWZhdWx0IHdhcm5pbmcgY29sb3JcbiRjbHItZXJyb3I6ICAgICAgICAgICRyZWQtNTA7ICAgICAgICAgICAgICAvLyBEZWZhdWx0IGVycm9yIGFuZCByZXF1aXJlZCBjb2xvclxuJGNsci10YWJsZS1ib3JkZXI6ICAgJGNsci1ib3JkZXI7ICAgICAgIC8vIERlZmF1bHQgdGFibGUgYm9yZGVyIGNvbG9yXG4kY2xyLXRhYmxlLWhlYWRlcjogICAkZ3JheS03MDtcbiRjbHItdGFibGUtb2RkOiAgICAgICR3aGl0ZTsgICAgICAgICAgIC8vIERlZmF1bHQgdGFibGUgb2RkIHJvdyBjb2xvclxuJGNsci10YWJsZS1ldmVuOiAgICAgJGdyYXktOTA7ICAgICAgICAgICAgLy8gRGVmYXVsdCB0YWJsZSBldmVuIHJvdyBjb2xvclxuXG5cbiRwY2MtcHJpbWFyeTogJHJlZDtcbiIsIi5jLWN0YS1iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNUE3Nzk2O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwRTJEM0IsICM1QTc3OTYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiA1cmVtIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtY3RhLWJhbm5lci0tcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg5MjAzNDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjODkyMDM0LCAjQzVCNUE0KTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG59XG5cbi5jLWN0YS1iYW5uZXItLWdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzVCNUE0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uYy1jdGEtYmFubmVyLS1pbnRlcmlvciB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZzogMi41cmVtIDA7XG59XG5cbi5jLWN0YS1iYW5uZXItLXNpZGViYXIge1xuICBwYWRkaW5nOiAyLjVyZW0gMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYy1jdGEtYmFubmVyLS1zaWRlYmFyIHtcbiAgICBwYWRkaW5nOiAxcmVtIDAgMDtcbiAgfVxufVxuLmMtY3RhLWJhbm5lci0tc2lkZWJhciAuYy1jdGEtYmFubmVyX193cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYy1jdGEtYmFubmVyX193cmFwcGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbi5jLWN0YS1iYW5uZXJfX2NvbnRlbnQge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMTUwcHg7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYy1jdGEtYmFubmVyX19jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYy1jdGEtYmFubmVyLS1pbnRlcmlvciAuYy1jdGEtYmFubmVyX19jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYy1jdGEtYmFubmVyLS1zaWRlYmFyIC5jLWN0YS1iYW5uZXJfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uYy1jdGEtYmFubmVyX190aXRsZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICB3aWR0aDogOS41cmVtO1xufVxuLmMtY3RhLWJhbm5lci0tZ29sZCAuYy1jdGEtYmFubmVyX190aXRsZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODE4MTg7XG59XG4uYy1jdGEtYmFubmVyLS1zaWRlYmFyIC5jLWN0YS1iYW5uZXJfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5jLWN0YS1iYW5uZXItLXNpZGViYXIgLmMtY3RhLWJhbm5lcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG59XG5cbi5jLWN0YS1iYW5uZXJfX2JvZHkge1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuLmMtY3RhLWJhbm5lci0tc2lkZWJhciAuYy1jdGEtYmFubmVyX19ib2R5IHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uYy1jdGEtYmFubmVyX19saW5rIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXN0ZWVsLWJsdWUsICM1QTc3OTYpO1xuICBib3JkZXI6IDFweDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUsICNmZmYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGhlaWdodDogMi4ycmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZzogMTVweCA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS1jLXN0ZWVsLWJsdWUsICM1QTc3OTYpICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbi5jLWN0YS1iYW5uZXJfX2xpbmsgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDU1NkIgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUsICNmZmYpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLmMtY3RhLWJhbm5lcl9fbGluayBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWMtYmxhY2ssICMxODE4MTgpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtbHQtZ3JleSwgI0QwRDBEMCkgIWltcG9ydGFudDtcbn1cblxuLmMtY3RhLWJhbm5lcl9faW1hZ2Uge1xuICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5jLWN0YS1iYW5uZXJfX2ltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gIH1cbn1cbi5jLWN0YS1iYW5uZXJfX2ltYWdlIGltZyxcbi5jLWN0YS1iYW5uZXJfX2ltYWdlIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYy1jdGEtYmFubmVyX19jbGlwcGVkIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYy1jdGEtYmFubmVyLS1zaWRlYmFyIC5jLWN0YS1iYW5uZXJfX2ltYWdlIHtcbiAgICBtYXJnaW4tbGVmdDogLTEwNSU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMjAwJTtcbiAgfVxufSIsIi8vXG4vLyBAZmlsZVxuLy8gQnJlYWtwb2ludCBNaXhpblxuXG4vL1xuLy8gQ3JlYXRlIG1lZGlhIHF1ZXJpZXMgYmFzZWQgb24gdGhlIHZhbHVlcyBpbiBzaXRlICRicmVha3BvaW50cyBtYXAuXG4vLyBAcGFyYW0gJGJyZWFrcG9pbnQ7XG4vLyAgIFRoZSBuYW1lZCBicmVha3BvaW50IGtleSB3ZSB3YW50IHRvIHVzZS4gQ2FuIHByb3ZpZGUgYSBsaXN0IGZvciBtaW4vbWF4XG4vLyAgIHF1ZXJpZXMuXG4vLyBAcGFyYW0gJGJyZWFrcG9pbnRzO1xuLy8gICBUaGUgbWFwIG9mIGJyZWFrcG9pbnQga2V5L3ZhbHVlIHBhaXJzLiBEZWZhdWx0cyB0byB0aGUgZ2xvYmFsICRicmVha3Bpb250c1xuLy8gICBtYXAgaW4gYHNldHRpbmdzL2JyZWFrcG9pbnRzYC5cbi8vXG5AbWl4aW4gYnAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICRtaW4tYnAtbmFtZTogbnRoKCRicmVha3BvaW50LCAxKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbWluLWJwLW5hbWUpIHtcbiAgICAkbWluLWJwLXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG1pbi1icC1uYW1lKTtcblxuICAgIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnQpID09IDEgYW5kICRtaW4tYnAtdmFsdWUgPT0gMCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgbWluLW1heC13aWR0aCBxdWVyeS5cbiAgICBAZWxzZSBpZiBsZW5ndGgoJGJyZWFrcG9pbnQpID09IDIgYW5kIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbnRoKCRicmVha3BvaW50LCAyKSkge1xuICAgICAgLy8gR2V0IG91ciBtYXggd2lkdGggdmFsdWUsIHN1YnRyYWN0IG9uZSBwaXhlbCB0byBhdm9pZCBicmVha3Bpb250XG4gICAgICAvLyBjb25mbGljdHMuXG4gICAgICAkbWF4LWJwLXZhbHVlOiAobWFwLWdldCgkYnJlYWtwb2ludHMsIG50aCgkYnJlYWtwb2ludCwgMikpKSAtIDFweDtcblxuICAgICAgQGlmICRtaW4tYnAtdmFsdWUgPT0gMCB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4LWJwLXZhbHVlKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4tYnAtdmFsdWUpIGFuZCAobWF4LXdpZHRoOiAkbWF4LWJwLXZhbHVlKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2luZ2xlIG1pbi13aWR0aCBxdWVyeS5cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi1icC12YWx1ZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuICRtaW4tYnAtbmFtZSArIFwiIGlzIG5vdCBhIGtleSBpbiBicmVha3BvaW50cy5cIjtcbiAgfVxufVxuIiwiLy9cbi8vIEBmaWxlXG4vLyBCb3ggbWl4aW5zXG4vL1xuLy8gVGhlc2Ugc3R5bGVzIGRlYWwgd2l0aCBpbm5lciBwYWRkaW5nIGFuZCBib3ggd2lkdGhzLlxuLy9cblxuQG1peGluIGJveC0tY29uc3RyYWluZWQoJHdpZHRoOiAkdy1mdWxsKSB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbn1cblxuQG1peGluIGJveC0tbmFycm93KCR3aWR0aDogJHctbmFycm93KSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogJHctbmFycm93O1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1peGluIGJveC0tZ3V0dGVycygkbGVmdDogJHctZ3V0dGVyLCAkcmlnaHQ6ICRsZWZ0KSB7XG4gIHBhZGRpbmctbGVmdDogJGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRyaWdodDtcbn1cblxuQG1peGluIGJveC0tcGFkZGVkKCR0b3A6ICR3LWd1dHRlciwgJGJvdHRvbTogJHRvcCkge1xuICBwYWRkaW5nLWJvdHRvbTogJGJvdHRvbTtcbiAgcGFkZGluZy10b3A6ICR0b3A7XG59XG5cbkBtaXhpbiBtYXJnaW4tYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogcmVtKDMwcHgpO1xufVxuXG5AbWl4aW4gb2Zmc2V0IHtcbiAgQGluY2x1ZGUgYm94LS1ndXR0ZXJzKHJlbSgyMHB4KSk7XG5cbiAgQGluY2x1ZGUgYnAobWVkaXVtKSB7XG4gICAgQGluY2x1ZGUgYm94LS1ndXR0ZXJzKHJlbSgzMHB4KSk7XG4gIH1cblxuICBAaW5jbHVkZSBicChsYXJnZSkge1xuICAgIEBpbmNsdWRlIGJveC0tZ3V0dGVycyhyZW0oNTBweCkpO1xuICB9XG59XG4iLCIvLyBMYXlvdXRcbi8vXG4vLyBHcmlkLlxuLy9cblxuLy8gV2lkdGguXG4kdy1mdWxsZXI6IDExMzBweDtcbiR3LWZ1bGw6IDExNTBweDtcbiR3LW5hcnJvdzogOTYwcHg7XG4kdy1jb250ZW50OiA4MDBweDtcbiR3LXNpZGViYXI6IDMyMHB4O1xuJHctc2lkZWJhci1maXJzdDogMzIwcHg7XG4kdy1ndXR0ZXI6IDMwcHg7XG4kdy1ndXR0ZXItaGFsZjogJHctZ3V0dGVyIC8gMjtcbiIsIi8vXG4vLyBNaXhpbnMgZm9yIHR5cG9ncmFwaHlcbi8vXG5cbkBmdW5jdGlvbiBzY2FsZS1oYXMtbGgoJHNjYWxlKSB7XG4gIEByZXR1cm4gbGVuZ3RoKCRzY2FsZSkgPiAxO1xufVxuXG4vL1xuLy8gUmV0dXJucyBhIGZvbnQgc2NhbGUgZm9yIGEgc3BlY2lmaWMgYnJlYWtwb2ludC5cbi8vXG4vLyBAcGFyYW0gJGJyZWFrcG9pbnQ7XG4vLyAgIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHdobydzIGZvbnQgc2NhbGUgd2UgbmVlZC5cbi8vIEBwYXJhbSAkbWFwO1xuLy8gICBBIGZvbnQgc2l6aW5nIG1hcC4gRGVmYXVsdHMgdG8gdGhlIHNpdGV3aWRlIGRlZmluZWQgaW5cbi8vICAgYHNldHRpbmdzL3R5cG9ncmFwaHlgXG4vLyBAcmV0dXJuXG4vLyAgIFNhc3MgbWFwIG9mIGZvbnQgc2l6ZXMuXG5AZnVuY3Rpb24gZ2V0LWJyZWFrcG9pbnQtZnMtbWFwKCRicmVha3BvaW50OiBcIm5vbmVcIiwgJG1hcDogJGZvbnQtc2l6ZXMpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRicmVha3BvaW50KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIlVuZm9ydHVuYXRlbHksIG5vIGJyZWFrcG9pbnQgY291bGQgYmUgcmV0cmlldmVkIGZvciBgI3skYnJlYWtwb2ludH1gLiBcIlxuICAgICAgICArIFwiUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIGluIGAkbWFwYCBtYXAuXCI7XG4gIH1cbn07XG5cbi8vXG4vLyBSZXR1cm5zIGEgc3BlY2lmaWMgZm9udCBzaXplIGZyb20gYSBmb250IHNjYWxlLlxuLy9cbi8vIEBwYXJhbSAkc2l6ZTtcbi8vICAgVGhlIG5hbWVkIGZvbnQgc2l6ZSB0byBsb29rIGZvci5cbi8vIEBwYXJhbSAkbWFwO1xuLy8gICBBIGZvbnQgc2NhbGUgbWFwLlxuLy8gQHJldHVyblxuLy8gICBGb250IHNpemUgdmFsdWUuXG5AZnVuY3Rpb24gZ2V0LWZzKCRzaXplLCAkbWFwKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAkc2l6ZSkge1xuICAgIC8vIEFsd2F5cyByZXR1cm4gdGhlIGZpcnN0IHNpemUgaXRlbS5cbiAgICBAcmV0dXJuIG50aChtYXAtZ2V0KCRtYXAsICRzaXplKSwgMSk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJVbmZvcnR1bmF0ZWx5LCBubyBmb250LXNpemUgY291bGQgYmUgcmV0cmlldmVkIGZvciBgI3skc2l6ZX1gLiBcIlxuICAgICAgICArIFwiUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIGluIGAkbWFwYCBtYXAuXCI7XG4gIH1cbn1cblxuLy9cbi8vIFJldHVybnMgYSBzcGVjaWZpYyBsaW5lIGhlaWdodCBmcm9tIGEgZm9udCBzY2FsZS5cbi8vXG4vLyBAcGFyYW0gJHNpemU7XG4vLyAgIFRoZSBuYW1lZCBsaW5lIGhlaWdodCB0byBsb29rIGZvci5cbi8vIEBwYXJhbSAkbWFwO1xuLy8gICBBIGZvbnQgc2NhbGUgbWFwLlxuLy8gQHJldHVyblxuLy8gICBGb250IHNpemUgdmFsdWUuXG5AZnVuY3Rpb24gZ2V0LWxoKCRzaXplLCAkbWFwKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAkc2l6ZSkgYW5kIGxlbmd0aChtYXAtZ2V0KCRtYXAsICRzaXplKSkgPiAxIHtcbiAgICAvLyBBbHdheXMgcmV0dXJuIHRoZSBzZWNvbmQgc2l6ZSBpdGVtLlxuICAgIEByZXR1cm4gbnRoKG1hcC1nZXQoJG1hcCwgJHNpemUpLCAyKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIlVuZm9ydHVuYXRlbHksIG5vIGxpbmUtaGVpZ2h0IGNvdWxkIGJlIHJldHJpZXZlZCBmb3IgYCN7JHNpemV9YC4gXCJcbiAgICAgICAgKyBcIlBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgZGVmaW5lZCBpbiBgJG1hcGAgbWFwLlwiO1xuICB9XG59XG5cbi8vXG4vLyBSZXR1cm5zIGEgc3BlY2lmaWMgZm9udCBzaXplLCBmb3IgYSBzcGVjaWZpYyBicmVha3BvaW50IGZyb20gYSBmb250IG1hcC5cbi8vXG4vLyBAcGFyYW0gJHNpemU7XG4vLyAgIFRoZSBuYW1lZCBmb250IHNpemUgdG8gbG9vayBmb3IuXG4vLyBAcGFyYW0gJGJyZWFrcG9pbnQ7XG4vLyAgIFRoZSBuYW1lZCBicmVha3BvaW50IHRvIGxvb2sgdGhyb3VnaC4gRGVmYXVsdHMgdG8gJ25vbmUnLlxuLy8gQHBhcmFtICRtYXA7XG4vLyAgIFRoZSBmb250IHNjYWxlIG1hcCB0byB1c2UuIERlZmF1bHRzIHRvIHNjYWxlIGRlZmluZWQgaW5cbi8vICAgYHNldHRpbmdzL3R5cG9ncmFwaHlgLlxuLy8gQHJldHVyblxuLy8gICBGb250IHNpemUgdmFsdWUuXG5AZnVuY3Rpb24gZ2V0LWZzLWZyb20tYnJlYWtwb2ludCgkc2l6ZSwgJGJyZWFrcG9pbnQ6IFwibm9uZVwiLCAkbWFwOiAkZm9udC1zaXplcykge1xuICBAcmV0dXJuIGdldC1mcygkc2l6ZSwgZ2V0LWJyZWFrcG9pbnQtZnMtbWFwKCRicmVha3BvaW50LCAkbWFwKSk7XG59XG5cbi8vXG4vLyBSZXR1cm5zIGEgZm9udCBzaXplIGluIFJFTSB1bml0cyBmcm9tIGEgZm9udCBtYXAuXG4vL1xuLy8gQHBhcmFtICRzaXplO1xuLy8gICBUaGUgbmFtZWQgZm9udCBzaXplIHRvIGxvb2sgZm9yLlxuLy8gQHBhcmFtICRicmVha3BvaW50O1xuLy8gICBUaGUgbmFtZWQgYnJlYWtwb2ludCB0byBsb29rIHRocm91Z2guIERlZmF1bHRzIHRvICdub25lJy5cbi8vIEBwYXJhbSAkbWFwO1xuLy8gICBUaGUgZm9udCBzY2FsZSBtYXAgdG8gdXNlLiBEZWZhdWx0cyB0byBzY2FsZSBkZWZpbmVkIGluXG4vLyAgIGBzZXR0aW5ncy90eXBvZ3JhcGh5YC5cbi8vIEByZXR1cm5cbi8vICAgRm9udCBzaXplIGluIFJFTSB1bml0cy5cbkBmdW5jdGlvbiBmcygkc2l6ZSwgJGJyZWFrcG9pbnQ6IFwibm9uZVwiLCAkbWFwOiAkZm9udC1zaXplcykge1xuICBAcmV0dXJuIHJlbShnZXQtZnMtZnJvbS1icmVha3BvaW50KCRzaXplLCAkYnJlYWtwb2ludCwgJG1hcCkpO1xufVxuXG4vL1xuLy8gUmV0dXJucyBhIHNwZWNpZmljIGxpbmUgaGVpZ2h0LCBmb3IgYSBzcGVjaWZpYyBicmVha3BvaW50IGZyb20gYSBmb250IG1hcC5cbi8vXG4vLyBAcGFyYW0gJHNpemU7XG4vLyAgIFRoZSBuYW1lZCBsaW5lIGhlaWdodCB0byBsb29rIGZvci5cbi8vIEBwYXJhbSAkYnJlYWtwb2ludDtcbi8vICAgVGhlIG5hbWVkIGJyZWFrcG9pbnQgdG8gbG9vayB0aHJvdWdoLiBEZWZhdWx0cyB0byAnbm9uZScuXG4vLyBAcGFyYW0gJG1hcDtcbi8vICAgVGhlIGZvbnQgc2NhbGUgbWFwIHRvIHVzZS4gRGVmYXVsdHMgdG8gc2NhbGUgZGVmaW5lZCBpblxuLy8gICBgc2V0dGluZ3MvdHlwb2dyYXBoeWAuXG4vLyBAcmV0dXJuXG4vLyAgIEZvbnQgc2l6ZSB2YWx1ZS5cbkBmdW5jdGlvbiBnZXQtbGgtZnJvbS1icmVha3BvaW50KCRzaXplLCAkYnJlYWtwb2ludDogXCJub25lXCIsICRtYXA6ICRmb250LXNpemVzKSB7XG4gIEByZXR1cm4gZ2V0LWxoKCRzaXplLCBnZXQtYnJlYWtwb2ludC1mcy1tYXAoJGJyZWFrcG9pbnQsICRtYXApKTtcbn1cblxuLy9cbi8vIFJldHVybnMgYSB1bml0bGVzcyBsaW5lLWhlaWdodCBmcm9tIGEgZm9udCBtYXAuXG4vL1xuLy8gQHBhcmFtICRzaXplO1xuLy8gICBUaGUgbmFtZWQgbGluZSBoZWlnaHQgdG8gbG9vayBmb3IuXG4vLyBAcGFyYW0gJGJyZWFrcG9pbnQ7XG4vLyAgIFRoZSBuYW1lZCBicmVha3BvaW50IHRvIGxvb2sgdGhyb3VnaC4gRGVmYXVsdHMgdG8gJ25vbmUnLlxuLy8gQHBhcmFtICRtYXA7XG4vLyAgIFRoZSBmb250IHNjYWxlIG1hcCB0byB1c2UuIERlZmF1bHRzIHRvIHNjYWxlIGRlZmluZWQgaW5cbi8vICAgYHNldHRpbmdzL3R5cG9ncmFwaHlgLlxuLy8gQHJldHVyblxuLy8gICBGb250IHNpemUgaW4gUkVNIHVuaXRzLlxuQGZ1bmN0aW9uIGxpbmUtaGVpZ2h0KCRzaXplLCAkYnJlYWtwb2ludDogXCJub25lXCIsICRtYXA6ICRmb250LXNpemVzKSB7XG4gICRmczogZ2V0LWZzLWZyb20tYnJlYWtwb2ludCgkc2l6ZSwgJGJyZWFrcG9pbnQsICRtYXApO1xuICAkbGg6IGdldC1saC1mcm9tLWJyZWFrcG9pbnQoJHNpemUsICRicmVha3BvaW50LCAkbWFwKTtcbiAgQHJldHVybiAkbGgvJGZzO1xufVxuXG5AbWl4aW4gc2V0LWZvbnQtcmh5dGhtKCRzaXplLCAkYnJlYWtwb2ludDogbnVsbCwgJG1hcDogJGZvbnQtc2l6ZXMpIHtcbiAgZm9udC1zaXplOiBmcygkc2l6ZSwgJGJyZWFrcG9pbnQsICRtYXApO1xuXG4gIC8vIENoZWNrIGlmIG91ciBzY2FsZSBoYXMgYSBsaW5lIGhlaWdodC5cbiAgQGlmIHNjYWxlLWhhcy1saChtYXAtZ2V0KGdldC1icmVha3BvaW50LWZzLW1hcCgkYnJlYWtwb2ludCwgJG1hcCksICRzaXplKSkge1xuICAgIGxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodCgkc2l6ZSwgJGJyZWFrcG9pbnQsICRtYXApO1xuICB9XG59XG5cbi8vXG4vLyBPdXRwdXRzIHN0eWxlcyBmb3IgYSBmdWxsIGZvbnQgc2NhbGUgYWNyb3NzIGJyZWFrcG9pbnRzLlxuLy9cbi8vIEBwYXJhbSAkc2l6ZTtcbi8vICAgVGhlIG5hbWVkIGZvbnQgc2l6ZSB0byBsb29rIGZvci5cbi8vIEBwYXJhbSAkYnJlYWtwb2ludDtcbi8vICAgVGhlIG5hbWVkIGJyZWFrcG9pbnQgdG8gbG9vayB0aHJvdWdoLiBEZWZhdWx0cyB0byAnbm9uZScuXG4vLyBAcGFyYW0gJG1hcDtcbi8vICAgVGhlIGZvbnQgc2NhbGUgbWFwIHRvIHVzZS4gRGVmYXVsdHMgdG8gc2NhbGUgZGVmaW5lZCBpblxuLy8gICBgc2V0dGluZ3MvdHlwb2dyYXBoeWAuXG5AbWl4aW4gZnMoJHNpemUsICRicmVha3BvaW50OiBudWxsLCAkbWFwOiAkZm9udC1zaXplcykge1xuICBAaWYgJGJyZWFrcG9pbnQgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgYnAoJGJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHNldC1mb250LXJoeXRobSgkc2l6ZSwgJGJyZWFrcG9pbnQsICRtYXApO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAZWFjaCAkYnAsICRzY2FsZSBpbiAkbWFwIHtcbiAgICAgIC8vIElmIHRoZSBmb250IHNpemUgZXhpc3RzIGluIHRoZSBjdXJyZW50IHNjYWxlLCBzZXQgb3VyIHN0eWxlcy5cbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkc2NhbGUsICRzaXplKSB7XG4gICAgICAgIEBpbmNsdWRlIGJwKCRicCkge1xuICAgICAgICAgIEBpbmNsdWRlIHNldC1mb250LXJoeXRobSgkc2l6ZSwgJGJwLCAkbWFwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBMaW5lIEhlaWdodFxuQG1peGluIGxoKCRzaXplKSB7XG4gIGxpbmUtaGVpZ2h0OiBsaCgkc2l6ZSk7XG59XG4iLCIvL1xuLy8gQGZpbGVcbi8vIEJyZWFrcG9pbnQgdmFyaWFibGVzLlxuLy9cblxuLy9cbi8vIFR5cGVmYWNlcy5cbi8vXG4kZmYtbW9ubzogIG1vbm9zcGFjZTtcbiRmZi1zYW5zOiAgJ1JvYm90bycsIHNhbnMtc2VyaWY7XG4kZmYtc2VyaWY6IHNlcmlmO1xuXG4vL1xuLy8gU2VtYW50aWMgZm9udHMuXG4vL1xuJGZmLWJvZHk6ICAgICRmZi1zYW5zO1xuJGZmLWhlYWRpbmc6ICRmZi1zYW5zO1xuJGZmLWRpc3BsYXk6ICRmZi1zYW5zO1xuXG4vL1xuLy8gQmFzZVxuLy9cbiRiYXNlLWZvbnQtc2l6ZTogICAgMjBweDtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAgMS4yNTtcblxuJGZvbnQtc2l6ZXM6IChcbiAgXCJub25lXCI6IChcbiAgICBcIm1pY3JvXCI6IDEwcHgsXG4gICAgXCJ0aW55XCI6IDEycHgsXG4gICAgXCJsYWJlbFwiOiAxNnB4LFxuICAgIFwic21hbGxcIjogMTRweCxcbiAgICBcImNhcHRpb25cIjogMTRweCxcbiAgICBcImJvZHlcIjogMTZweCxcbiAgICBcInN1YmhlYWRcIjogMjBweCxcbiAgICBcImhlYWRpbmdcIjogMjNweCxcbiAgICBcImRpc3BsYXlcIjogMzBweCxcbiAgICBcImhlYWRsaW5lXCI6IDM1cHgsXG4gICAgXCJtZWdhXCI6IDQ4cHhcbiAgKSxcbiAgXCJzbWFsbFwiOiAoXG4gICAgXCJtaWNyb1wiOiAxMHB4LFxuICAgIFwidGlueVwiOiAxMnB4LFxuICAgIFwibGFiZWxcIjogMTZweCxcbiAgICBcInNtYWxsXCI6IDE0cHgsXG4gICAgXCJjYXB0aW9uXCI6IDE0cHgsXG4gICAgXCJib2R5XCI6IDE2cHgsXG4gICAgXCJzdWJoZWFkXCI6IDIwcHgsXG4gICAgXCJoZWFkaW5nXCI6IDI0cHgsXG4gICAgXCJkaXNwbGF5XCI6IDM2cHgsXG4gICAgXCJoZWFkbGluZVwiOiA0MnB4LFxuICAgIFwibWVnYVwiOiA4MHB4IDkwcHhcbiAgKSxcbik7XG5cbi8vIExpbmUgaGVpZ2h0cyBtYXBcbiRsaDogKFxuICAtMTogMS4xLFxuICAwOiAkYmFzZS1saW5lLWhlaWdodCxcbiAgMTogMS41XG4pO1xuXG4vL1xuLy8gRm9udCBXZWlnaHRzXG4vL1xuJGZ3LXRoaW46IDIwMDtcbiRmdy1saWdodDogMzAwO1xuJGZ3LXJlZ3VsYXI6IDQwMDtcbiRmdy1tZWRpdW06IDUwMDtcbiRmdy1zZW1pYm9sZDogNTAwO1xuJGZ3LWJvbGQ6IDYwMDtcbiRmdy1ibGFjazogOTAwO1xuXG4vL1xuLy8gSW5kZW50YXRpb24uXG4vL1xuJGluZGVudC1hbW91bnQ6IDEuNXJlbTtcbiIsIkBtaXhpbiBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXN0ZWVsLWJsdWUsICRibHVlKTtcbiAgYm9yZGVyOiAxcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLCAkd2hpdGUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiBmcyhib2R5KTtcbiAgZm9udC13ZWlnaHQ6ICRmdy1yZWd1bGFyO1xuICBoZWlnaHQ6IHJlbSg0NHB4KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IHJlbSgyMHB4KTtcbiAgcGFkZGluZzogMTVweCA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS0tZGFyayAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlLCAkd2hpdGUpICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1zaGFkb3ctLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJyaWNrLCAkcmVkKTtcbiAgY29sb3I6IHZhcigtLWMtYnJpY2ssICRyZWQpO1xuICBwYWRkaW5nOiAxM3B4IDQwcHg7XG5cbiAgJjpob3ZlcixcbiAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJpY2ssICRyZWQpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUsICR3aGl0ZSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLXNoYWRvdy0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXN0ZWVsLWJsdWUsICRibHVlKTtcbiAgY29sb3I6IHZhcigtLWMtc3RlZWwtYmx1ZSwgJGJsdWUpO1xuICBwYWRkaW5nOiAxM3B4IDQwcHg7XG5cbiAgJjpob3ZlcixcbiAgJi5iZWYtbGluay0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc3RlZWwtYmx1ZSwgJGJsdWUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUsICR3aGl0ZSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLXNoYWRvdy0tcmV2ZXJzZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy13aGl0ZSwgJHdoaXRlKTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUsICR3aGl0ZSk7XG4gIHBhZGRpbmc6IDEzcHggNDBweDtcblxuICBzdmcgcGF0aCB7XG4gICAgZmlsbDogdmFyKC0tYy1icmljaywgJHJlZCk7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmLmJlZi1saW5rLS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSwgJHdoaXRlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyaWNrLCAkcmVkKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24tcmFkaXVzIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5AbWl4aW4gYnV0dG9uLS1saW5rIHtcbiAgcGFkZGluZy1yaWdodDogMzRweCAhaW1wb3J0YW50O1xuXG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uL2ltYWdlcy9pY29ucy9hcnJvdy1yaWdodC5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xuICAgIHdpZHRoOiA2cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDM1cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMjBweCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLS1saW5rLS1uYXJyb3cge1xuICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHggIWltcG9ydGFudDtcblxuICAmOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi9pbWFnZXMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgICB3aWR0aDogNnB4O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTlweCAhaW1wb3J0YW50O1xuXG4gICAgJjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtKDIwcHgpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi0tcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1icmljaywgJHJlZCk7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZC0tZGFyayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBzaW1wbGUtLWxpbmsge1xuICAmOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi9pbWFnZXMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgICB3aWR0aDogNnB4O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgJjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtKDIwcHgpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi0td2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlLCAkd2hpdGUpO1xuICBjb2xvcjogdmFyKC0tYy1zdGVlbC1ibHVlLCAkYmx1ZSkgIWltcG9ydGFudDtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWMtYmxhY2ssICRibGFjaykgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWx0LWdyZXksICRncmF5LS1saWdodCkgIWltcG9ydGFudDtcbiAgfVxufVxuIl19 */