/****************
 * Fonts
 ****************/
/****************
 * Paints
 ****************/
/****************
 * Effects
 ****************/
/****************
 * Grid Settings
 ****************/
.inpage-nav {
  position: sticky;
  top: var(--header-height);
  left: 0;
  width: 100%;
  background-color: #004965;
  z-index: 3;
  margin-bottom: 3.5rem;
}
@media (min-width: 62rem) {
  .inpage-nav {
    margin-bottom: 4.75rem;
  }
}
.inpage-nav__wrapper {
  display: flex;
  justify-content: center;
  height: 3.5rem;
  align-items: center;
}
.inpage-nav__list {
  overflow: auto;
  display: flex;
}
.inpage-nav__list-item {
  min-width: fit-content;
}
.inpage-nav__list-item:not(:last-child) {
  margin-right: clamp(1.25rem, -0.4807692308rem + 4.8076923077vw, 3.125rem);
}
.inpage-nav__list-item a:focus {
  color: #ffffff;
}
.inpage-nav__list-item.active a,
.inpage-nav__list-item.active a:focus {
  color: #b3b3b3;
}
.inpage-nav__item {
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 400;
}
.inpage-nav__item:hover {
  color: #b3b3b3;
}

.block-hero {
  margin-top: 0;
}
.block-hero__thumbnail img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  object-position: center;
}
.block-hero--content-image {
  position: relative;
  margin-bottom: 2.875rem;
  color: #ffffff;
  background-color: #377e96;
  overflow: hidden;
}
@media (min-width: 62rem) {
  .block-hero--content-image {
    display: flex;
    align-items: center;
    min-height: 43.5rem;
    margin-bottom: 4.625rem;
  }
}
.block-hero--content-image .block-hero__thumbnail {
  height: 0;
  padding-top: 70.6%;
  position: relative;
  overflow: hidden;
}
@media (max-width: 61.98rem) {
  .block-hero--content-image .block-hero__thumbnail {
    z-index: 2;
  }
}
@media (min-width: 62rem) {
  .block-hero--content-image .block-hero__thumbnail {
    height: 100%;
    padding-top: 0;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 50.8%;
  }
}
.block-hero--content-image .block-hero__content {
  padding: 1.875rem 0 3rem;
  margin: 0 auto;
  width: 100%;
}
@media (min-width: 62rem) {
  .block-hero--content-image .block-hero__content {
    padding: 6.1875rem 0 7.5rem;
  }
}
.block-hero--content-image .block-hero__content-bg {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 0;
  min-height: 100%;
  opacity: 0.85;
}
@media (min-width: 62rem) {
  .block-hero--content-image .block-hero__content-bg {
    width: 50%;
    top: 0;
    bottom: auto;
  }
}
.block-hero--content-image .block-hero__content-bg + .container {
  position: relative;
  z-index: 1;
}
.block-hero--content-image .block-hero__title {
  margin-bottom: clamp(1.375rem, 0.1634615385rem + 3.3653846154vw, 2.6875rem);
}
.block-hero--content-image .c-btn-wrapper,
.block-hero--content-image .c-btn {
  width: 100%;
}
@media (min-width: 36rem) {
  .block-hero--content-image .c-btn-wrapper,
  .block-hero--content-image .c-btn {
    width: auto;
  }
}
.block-hero--content-image .c-btn-wrapper:not(:last-child) {
  margin-bottom: 1.0625rem;
}
@media (min-width: 36rem) {
  .block-hero--content-image .c-btn-wrapper:not(:last-child) {
    margin-bottom: 0;
  }
}
.block-hero--content-image .c-btn-group {
  margin-bottom: -1.0625rem;
}
.block-hero--content-image .c-btn-group .c-btn-wrapper {
  margin-bottom: 1.0625rem;
}
@media (min-width: 36rem) {
  .block-hero--content-image .c-btn-group {
    margin-top: 3.0625rem;
  }
}
.block-hero--full-width {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: clamp(20.5rem, 8.3846153846rem + 33.6538461538vw, 33.625rem);
  margin-bottom: 2.3125rem;
  color: #ffffff;
}
@media (min-width: 48rem) {
  .block-hero--full-width {
    margin-bottom: 4.625rem;
  }
}
.block-hero--full-width .block-hero__content {
  z-index: 3;
}
.block-hero--full-width .block-hero__title {
  margin-bottom: clamp(1.375rem, -0.8173076923rem + 6.0897435897vw, 3.75rem);
}
.block-hero--full-width .block-hero__thumbnail {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.block-hero--full-width .block-hero__thumbnail::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 42.71%, rgba(0, 0, 0, 0.4) 100%);
}
.block-hero--full-width .block-hero__thumbnail img {
  object-position: bottom;
}
.block-hero--full-width + .inpage-nav {
  margin-top: -2.3125rem;
}
@media (min-width: 48rem) {
  .block-hero--full-width + .inpage-nav {
    margin-top: -4.625rem;
  }
}
.block-hero--small-image {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 2.9375rem;
}
@media (min-width: 48rem) {
  .block-hero--small-image {
    margin-bottom: 7.1875rem;
  }
}
.block-hero--small-image .block-hero__thumbnail img {
  position: relative;
}
.block-hero--small-image .block-hero__content {
  padding-top: 0.0625rem;
  order: 1;
  margin: 2.9375rem 0 0.375rem;
  text-align: center;
}
@media (min-width: 48rem) {
  .block-hero--small-image .block-hero__content {
    margin: 6.0625rem 0 0.8125rem;
  }
}
.block-hero--small-image .block-hero__title {
  margin-bottom: clamp(2.5rem, 1.1153846154rem + 3.8461538462vw, 4rem);
}
.block-hero--small-image .block-hero__thumbnail-wrapper {
  order: 2;
}
.block-hero--small-image + .inpage-nav {
  margin-top: -2.9375rem;
}
@media (min-width: 48rem) {
  .block-hero--small-image + .inpage-nav {
    margin-top: -7.1875rem;
  }
}
.block-hero--no-image {
  margin-bottom: 2.75rem;
}
@media (min-width: 48rem) {
  .block-hero--no-image {
    margin-bottom: 4.375rem;
  }
}
.block-hero--no-image .block-hero__title {
  margin-top: clamp(3.6875rem, 0.7451923077rem + 8.1730769231vw, 6.875rem);
  margin-right: auto !important;
  margin-left: auto !important;
  width: calc(var(--columnWidth) * 12 - 40px);
  max-width: calc(var(--columnMaxWidth) * 12 - 40px);
}
@media (min-width: 48rem) {
  .block-hero--no-image .block-hero__title {
    width: calc(var(--columnWidth) * 12 - 30px);
    max-width: calc(var(--columnMaxWidth) * 12 - 30px);
  }
}
@media (min-width: 62rem) {
  .block-hero--no-image .block-hero__title {
    width: calc(var(--columnMaxWidth) * 10 - 30px);
    max-width: calc(var(--columnMaxWidth) * 10 - 30px);
  }
}
@media (min-width: 75rem) {
  .block-hero--no-image .block-hero__title {
    width: calc(var(--columnWidth) * 8 - 30px);
    max-width: calc(var(--columnMaxWidth) * 8 - 30px);
  }
}
.block-hero--no-image + .inpage-nav {
  margin-top: -2.75rem;
}
@media (min-width: 48rem) {
  .block-hero--no-image + .inpage-nav {
    margin-top: -4.375rem;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9zcmMvX19zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiYWNmLWJsb2Nrcy9oZXJvL3NyYy9faW5wYWdlLW5hdi5zY3NzIiwiY3NzL3NyYy92ZW5kb3IvYm9vdHN0cmFwL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsImFjZi1ibG9ja3MvaGVyby9zcmMvc3R5bGUuc2NzcyIsImNzcy9zcmMvX19zdHlsZXMvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUMvQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUNxREc7RUQ1REo7SUFVRTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7O0FBR0Q7RUFDQzs7QUFDQTtFQUNDOztBQUdEO0VBQ0M7O0FBSUE7QUFBQTtFQUVDOztBQUtIO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQzs7O0FFL0NIO0VBR0M7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FEb0NFO0VDekNIO0lBUUU7SUFDQTtJQUNBO0lBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FEb0NDO0VDeENGO0lBT0U7OztBRG9CQTtFQzNCRjtJQVdFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTs7QURHQztFQ05GO0lBTUU7OztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRFZDO0VDSUY7SUFTRTtJQUNBO0lBQ0E7OztBQUdEO0VBQ0M7RUFDQTs7QUFJRjtFQUNDOztBQUdEO0FBQUE7RUFFQzs7QUQ5QkM7RUM0QkY7QUFBQTtJQUtFOzs7QUFJRjtFQUNDOztBRHRDQztFQ3FDRjtJQUlFOzs7QUFJRjtFQUNDOztBQUVBO0VBQ0M7O0FEakRBO0VDNkNGO0lBUUU7OztBQUtIO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRGhFRTtFQzBESDtJQVNFOzs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7O0FBSUY7RUFDQzs7QUR2R0M7RUNzR0Y7SUFJRTs7O0FBS0g7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QURuSEU7RUMrR0g7SUFPRTs7O0FBR0Q7RUFDQzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBRGpJQztFQzZIRjtJQU9FOzs7QUFJRjtFQUNDOztBQUdEO0VBQ0M7O0FBR0Q7RUFDQzs7QURqSkM7RUNnSkY7SUFJRTs7O0FBS0g7RUFDQzs7QUQxSkU7RUN5Skg7SUFJRTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUNuS0M7RUFDQTs7QUZEQTtFQ2dLRjtJQzVKTTtJQUNBOzs7QUZMSjtFQ2dLRjtJQ3RKVTtJQUNBOzs7QUZYUjtFQ2dLRjtJQy9JVTtJQUNBOzs7QURzSlY7RUFDQzs7QUR6S0M7RUN3S0Y7SUFJRSIsImZpbGUiOiJhY2YtYmxvY2tzL2hlcm8vZGlzdC9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKlxuICogRm9udHNcbiAqKioqKioqKioqKioqKioqL1xuJGZvbnQtYmFzZTogXCJicm90aGVyLTE4MTYtcHJpbnRlZFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtYmFza2VydmlsbGU6IFwiYmFza2VydmlsbGUtdXJ3XCIsIHNlcmlmO1xuJGZvbnQtYXVzdGluLXBlbjogXCJhdXN0aW4tcGVuXCIsIHNlcmlmO1xuJGZvbnQtb3BlbjogXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjtcblxuLyoqKioqKioqKioqKioqKipcbiAqIFBhaW50c1xuICoqKioqKioqKioqKioqKiovXG4kcGFpbnRzOiAoXG5cdGFjY2VudDogIzM3N2U5Nixcblx0YWNjZW50LXZhcmlhbnQ6ICMwMDQ5NjUsXG5cdGFjY2VudC12YXJpYW50LTI6ICM0NzY3OTYsXG5cdGFjY2VudC12YXJpYW50LTM6ICNjYzRhMjcsXG5cdGJnLWRhcms6ICMwMDAwMDAsXG5cdGJnLWxpZ2h0OiAjZmZmZmZmLFxuXHRiZy1saWdodC0yOiAjZGRlNWYyLFxuXHR0ZXh0LWRhcms6ICMwMjFiMjcsXG5cdHRleHQtbGlnaHQ6ICNmZmZmZmYsXG5cdG5ldXRyYWwtMzA6ICM0ZDRkNGQsXG5cdG5ldXRyYWwtNDU6ICM3MzczNzMsXG5cdG5ldXRyYWwtNzA6ICNiM2IzYjMsXG5cdG5ldXRyYWwtODg6ICNlMWUxZTEsXG5cdG5ldXRyYWwtOTQ6ICNmMGYwZjAsXG5cdG5ldXRyYWwtOTc6ICNmN2Y3ZjcsXG5cdGVycm9yOiAjYjAwMDIwLFxuXHR3YXJuaW5nOiAjZjlhNTEzLFxuXHRzdWNjZXNzOiAjMDA4NzM3LFxuXHRpbmZvcm1hdGlvbjogIzAwNmJiMixcblx0YXV0b2ZpbGw6ICNlNmYwZjcsXG5cdGZvcmVzdGdyZWVuOiAjMTUzZTBlLFxuXHRiZy1mb3Jlc3RncmVlbjogIzAxNDkwMCxcblx0bGlnaHQtYmx1ZTogIzllYzVmZixcblx0ZGFyay1ibHVlOiAjMDA0YTY0LFxuKTtcblxuLyoqKioqKioqKioqKioqKipcbiAqIEVmZmVjdHNcbiAqKioqKioqKioqKioqKioqL1xuJGVmZmVjdHM6IChcblx0ZHJvcHNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAuMSksXG5cdGN0YTogMCAtNHB4IDRweCByZ2JhKDAsIDAsIDAsIC4wNSksXG5cdHRleHQtc2hhZG93OiAwIDRweCA0cHggcmdiYSgwLCAwLCAwLCAuMjUpLFxuKTtcblxuLyoqKioqKioqKioqKioqKipcbiAqIEdyaWQgU2V0dGluZ3NcbiAqKioqKioqKioqKioqKioqL1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IHJlbSg1NzYpLFxuXHRtZDogcmVtKDc2OCksXG5cdGxnOiByZW0oOTkyKSxcblx0eGw6IHJlbSgxMjAwKSxcblx0eG1sOiByZW0oMTM1MCksXG5cdHh4bDogcmVtKDE0MTApLFxuKTtcbiRjdXN0b20tYnJlYWtwb2ludHM6IChcblx0bW9iaWxlTWVudTogcmVtKDEyMDApLFxuKTtcbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuXHR4czogcmVtKDU3NiksXG5cdHNtOiByZW0oNzY4KSxcblx0bWQ6IHJlbSg5OTIpLFxuXHRsZzogcmVtKDEyMDApLFxuXHR4bDogcmVtKDE0MTApLFxuKTtcbiRjb250YWluZXItc20tc3BhY2luZzogcmVtKDIwKTtcbiRjb250YWluZXItbWQtc3BhY2luZzogcmVtKDQwKTtcbiRjb250YWluZXItbGctc3BhY2luZzogcmVtKDYwKTtcbiRncmlkLWd1dHRlci13aWR0aDogcmVtKDMwKTtcblxuLy8gVHJhbnNpdGlvbnNcbiR0cmFuc2l0aW9uLXN0YW5kYXJkOiBhbGwgLjJzIGxpbmVhcjtcbiR0cmFuc2l0aW9uLWRlZmF1bHQ6IC4ycyBsaW5lYXI7XG5cbi8vIEJsb2NrIHRpdGxlXG4kYmxvY2stdGl0bGUtbWItc206IHJlbSg0MCk7XG4kYmxvY2stdGl0bGUtbWItbWQ6IHJlbSg2NCk7XG4kbWVkaWEtbWFyZ2luOiAzMHB4O1xuJG1lZGlhLW1hcmdpbi1tb2JpbGU6IDIwcHg7XG5cbi8vIE91dGxpbmVcbiRvdXRsaW5lOiByZW0oMikgc29saWQgIzdhYWNmZTtcbiIsIi5pbnBhZ2UtbmF2IHtcblx0cG9zaXRpb246IHN0aWNreTtcblx0dG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHBhaW50KGFjY2VudC12YXJpYW50KTtcblx0ei1pbmRleDogMztcblx0bWFyZ2luLWJvdHRvbTogcmVtKDU2KTtcblxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDc2KTtcblx0fVxuXG5cdCZfX3dyYXBwZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0aGVpZ2h0OiByZW0oNTYpO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQmX19saXN0IHtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG5cblx0Jl9fbGlzdC1pdGVtIHtcblx0XHRtaW4td2lkdGg6IGZpdC1jb250ZW50O1xuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHJlc3BvbnNpdmUtdmFsdWVzKDIwLCA1MCk7XG5cdFx0fVxuXG5cdFx0YTpmb2N1cyB7XG5cdFx0XHRjb2xvcjogcGFpbnQodGV4dC1saWdodCk7XG5cdFx0fVxuXG5cdFx0Ji5hY3RpdmUge1xuXHRcdFx0YSxcblx0XHRcdGE6Zm9jdXMge1xuXHRcdFx0XHRjb2xvcjogcGFpbnQobmV1dHJhbC03MCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jl9faXRlbSB7XG5cdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQpO1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE2KTtcblx0XHRsaW5lLWhlaWdodDogcmVtKDI0KTtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogcGFpbnQobmV1dHJhbC03MCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi8uLi9jc3Mvc3JjL2xpYi9iYXNlLWluY2x1ZGVzXCI7XG5AaW1wb3J0IFwiaW5wYWdlLW5hdlwiO1xuXG4uYmxvY2staGVybyB7XG5cdCR0aGlzOiAmO1xuXG5cdG1hcmdpbi10b3A6IDA7XG5cblx0Jl9fdGh1bWJuYWlsIGltZyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblxuXHRcdG9iamVjdC1maXQ6IGNvdmVyO1xuXHRcdG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuXHR9XG5cblx0Ji0tY29udGVudC1pbWFnZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg0Nik7XG5cdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHBhaW50KGFjY2VudCk7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0bWluLWhlaWdodDogcmVtKDY5Nik7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oNzQpO1xuXHRcdH1cblxuXHRcdCN7JHRoaXN9X190aHVtYm5haWwge1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0cGFkZGluZy10b3A6IDcwLjYlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG5cdFx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdGxlZnQ6IDUwLjglO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCN7JHRoaXN9X19jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6IHJlbSgzMCkgMCByZW0oNDgpO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuXHRcdFx0XHRwYWRkaW5nOiByZW0oOTkpIDAgcmVtKDEyMCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3skdGhpc31fX2NvbnRlbnQtYmcge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0XHRtaW4taGVpZ2h0OiAxMDAlO1xuXHRcdFx0b3BhY2l0eTogLjg1O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0Ym90dG9tOiBhdXRvO1xuXHRcdFx0fVxuXG5cdFx0XHQrIC5jb250YWluZXIge1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3skdGhpc31fX3RpdGxlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlc3BvbnNpdmUtdmFsdWVzKDIyLCA0Myk7XG5cdFx0fVxuXG5cdFx0LmMtYnRuLXdyYXBwZXIsXG5cdFx0LmMtYnRuIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jLWJ0bi13cmFwcGVyOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDE3KTtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jLWJ0bi1ncm91cCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oLTE3KTtcblxuXHRcdFx0LmMtYnRuLXdyYXBwZXIge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTcpO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbSg0OSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji0tZnVsbC13aWR0aCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0bWluLWhlaWdodDogcmVzcG9uc2l2ZS12YWx1ZXMoMzI4LCA1MzgpO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgzNyk7XG5cdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQpO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDc0KTtcblx0XHR9XG5cblx0XHQjeyR0aGlzfV9fY29udGVudCB7XG5cdFx0XHR6LWluZGV4OiAzO1xuXHRcdH1cblxuXHRcdCN7JHRoaXN9X190aXRsZSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZXNwb25zaXZlLXZhbHVlcygyMiwgNjApO1xuXHRcdH1cblxuXHRcdCN7JHRoaXN9X190aHVtYm5haWwge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAwLCAwLCAwKSA0Mi43MSUsIHJnYmEoMCwgMCwgMCwgMC40KSAxMDAlKTtcblx0XHRcdH1cblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0b2JqZWN0LXBvc2l0aW9uOiBib3R0b207XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0KyAuaW5wYWdlLW5hdiB7XG5cdFx0XHRtYXJnaW4tdG9wOiByZW0oLTM3KTtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiByZW0oLTc0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLS1zbWFsbC1pbWFnZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg0Nyk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTE1KTtcblx0XHR9XG5cblx0XHQjeyR0aGlzfV9fdGh1bWJuYWlsIGltZyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG5cdFx0I3skdGhpc31fX2NvbnRlbnQge1xuXHRcdFx0cGFkZGluZy10b3A6IHJlbSgxKTtcblx0XHRcdG9yZGVyOiAxO1xuXHRcdFx0bWFyZ2luOiByZW0oNDcpIDAgcmVtKDYpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRcdG1hcmdpbjogcmVtKDk3KSAwIHJlbSgxMyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3skdGhpc31fX3RpdGxlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlc3BvbnNpdmUtdmFsdWVzKDQwLCA2NCk7XG5cdFx0fVxuXG5cdFx0I3skdGhpc31fX3RodW1ibmFpbC13cmFwcGVyIHtcblx0XHRcdG9yZGVyOiAyO1xuXHRcdH1cblxuXHRcdCsgLmlucGFnZS1uYXYge1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtKC00Nyk7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKC0xMTUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYtLW5vLWltYWdlIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oNDQpO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDcwKTtcblx0XHR9XG5cblx0XHQjeyR0aGlzfV9fdGl0bGUge1xuXHRcdFx0bWFyZ2luLXRvcDogcmVzcG9uc2l2ZS12YWx1ZXMoNTksIDExMCk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG5cblx0XHRcdEBpbmNsdWRlIHJlc3BvbnNpdmUtZ3JpZCgxMiwgMTIsIDEwLCA4LCA4KTtcblx0XHR9XG5cblx0XHQrIC5pbnBhZ2UtbmF2IHtcblx0XHRcdG1hcmdpbi10b3A6IHJlbSgtNDQpO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbSgtNzApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy9UaGlzIGZpbGUgaXMgb25seSBmb3IgbWl4aW5zLiBEb24ndCBpbmNsdWRlIGFueSBzdHlsZXMgaW4gdGhpcyBmaWxlIG9yIGVsc2UgdGhleSB3aWxsIHJlcGVhdGVkIGluIGV2ZXJ5IGJsb2NrLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBjZiB7XG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG5cbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xuXHRAcmV0dXJuIG1hdGguZGl2KCRzLCAkdykgKiAxMDAgKyB2dztcbn1cblxuQG1peGluIGhlYWRpbmdzKCAkc3RhcnQ6IDEsICRlbmQ6IDYgKSB7XG5cdCRoZWFkaW5nczogJyc7XG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcblx0XHRAaWYgJGkgIT0gJHN0YXJ0IHtcblx0XHRcdCRoZWFkaW5nczogJyN7ICRoZWFkaW5ncyB9LGgjeyAkaSB9LC5oI3sgJGkgfSc7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkaGVhZGluZ3M6ICdoI3sgJGkgfSwuaCN7ICRpIH0nO1xuXHRcdH1cblx0fVxuXG5cdCN7ICRoZWFkaW5ncyB9IHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gaWNvbi1mb250KCAkY29udGVudDogJycsICRmb250LXNpemU6IDI0cHggKSB7XG5cdGNvbnRlbnQ6ICRjb250ZW50O1xuXHRmb250LWZhbWlseTogJGZvbnQtaWNvbmZvbnQ7XG5cdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuQG1peGluIHJtLWJlZm9yZSgpIHtcblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cbkBtaXhpbiBybS1hZnRlcigpIHtcblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuQG1peGluIHJlc3BvbnNpdmUtZ3JpZCgkc206IDEyLCAkbWQ6IDEyLCAkbGc6IDEyLCAkeGw6IDEyLCAkeHhsOiAxMikge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbldpZHRoKSAqICN7JHNtfSAtIDQwcHgpO1xuICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyRzbX0gLSA0MHB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tY29sdW1uV2lkdGgpICogI3skbWR9IC0gMzBweCk7XG4gICAgICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyRtZH0gLSAzMHB4KTtcbiAgICB9IFxuXG4gICAgQGlmICgkbGcgIT0gJG1kKSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbk1heFdpZHRoKSAqICN7JGxnfSAtIDMwcHgpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbk1heFdpZHRoKSAqICN7JGxnfSAtIDMwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkeGwgIT0gJGxnKSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbldpZHRoKSAqICN7JHhsfSAtIDMwcHgpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbk1heFdpZHRoKSAqICN7JHhsfSAtIDMwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkeHhsICE9ICR4bCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tY29sdW1uV2lkdGgpICogI3skeHhsfSAtIDMwcHgpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbk1heFdpZHRoKSAqICN7JHh4bH0gLSAzMHB4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xuICAgIEByZXR1cm4gbWF0aC5kaXYoJHNpemUsICRyZWwpO1xufVxuXG5AbWl4aW4gZm9udCgkZm9udFNpemU6ICRmb250LXNpemUtYmFzZSxcbiAgICAkbGluZUhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2UsXG4gICAgJGZvbnRXZWlnaHQ6IGZhbHNlLFxuICAgICRsZXR0ZXJTcGFjaW5nOiBmYWxzZSxcbiAgICAkZm9udFN0eWxlOiBmYWxzZSxcbiAgICAkZm9udEZhbWlseTogZmFsc2UpIHtcbiAgICBmb250LXNpemU6IHJlbSgkZm9udFNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiByZWwoJGxpbmVIZWlnaHQsICRmb250U2l6ZSk7XG5cbiAgICBAaWYgJGZvbnRGYW1pbHkge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnRGYW1pbHk7XG4gICAgfVxuXG4gICAgQGlmICRsZXR0ZXJTcGFjaW5nIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyU3BhY2luZyk7XG4gICAgfVxuXG4gICAgQGlmICRmb250V2VpZ2h0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250V2VpZ2h0O1xuICAgIH1cblxuICAgIEBpZiAkZm9udFN0eWxlIHtcbiAgICAgICAgZm9udC1zdHlsZTogJGZvbnRTdHlsZTtcbiAgICB9XG59XG5cbkBtaXhpbiBmbGV4KCR3aWR0aCkge1xuICAgIGZsZXg6IDAgMCAkd2lkdGg7XG5cbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHdpZHRoO1xufVxuIl19 */
