/****************
 * Fonts
 ****************/
/****************
 * Paints
 ****************/
/****************
 * Effects
 ****************/
/****************
 * Grid Settings
 ****************/
/**************
 * Buttons
 **************/
/*
Secondary button border is determined by the text color when inactive,
and bg when hovered.
*/
/****************
 * Blocks
 ****************/
.page-hero > .container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-column-gap: 1.875rem;
  grid-row-gap: 3rem;
}
.page-hero__back {
  grid-column: span 12;
  margin-bottom: clamp(4.125rem, 3.3173076923rem + 2.2435897436vw, 5rem);
}
.page-hero--has-back-link {
  padding-top: 1.875rem;
}
.page-hero--background-image, .page-hero--image-right-dark {
  color: #fff;
}
.page-hero--background-image .c-btn.c-btn-primary, .page-hero--image-right-dark .c-btn.c-btn-primary {
  border-color: #fff;
  background: #fff;
  color: #0078b7;
}
.page-hero--background-image .c-btn.c-btn-primary:hover, .page-hero--background-image .c-btn.c-btn-primary:focus, .page-hero--image-right-dark .c-btn.c-btn-primary:hover, .page-hero--image-right-dark .c-btn.c-btn-primary:focus {
  border-color: #fff;
  background: #fff;
  color: #006499;
}
.page-hero--background-image .c-btn.c-btn-secondary, .page-hero--image-right-dark .c-btn.c-btn-secondary {
  border-color: #fff;
  color: #fff;
  background: transparent;
}
.page-hero--background-image .c-btn.c-btn-secondary:hover, .page-hero--background-image .c-btn.c-btn-secondary:focus, .page-hero--image-right-dark .c-btn.c-btn-secondary:hover, .page-hero--image-right-dark .c-btn.c-btn-secondary:focus {
  background: #fff;
  border-color: #fff;
  color: #006499;
}
.page-hero--background-image .c-btn.c-btn-tertiary, .page-hero--image-right-dark .c-btn.c-btn-tertiary {
  color: #fff;
}
.page-hero--background-image .c-btn.c-btn-tertiary:hover, .page-hero--background-image .c-btn.c-btn-tertiary:focus, .page-hero--image-right-dark .c-btn.c-btn-tertiary:hover, .page-hero--image-right-dark .c-btn.c-btn-tertiary:focus {
  color: #a7aebd;
}
.page-hero__subtitle {
  font-family: "Roboto", sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1rem;
  margin-bottom: 0.5rem;
  padding: 0.25rem 0.5rem;
  display: inline-block;
  border-radius: 2px;
  color: #fff;
  background-color: #071d49;
}
@media (min-width: 48rem) {
  .page-hero__subtitle {
    margin-bottom: 1.25rem;
  }
}
.page-hero__subtitle + h1,
.page-hero__subtitle + .h1,
.page-hero__subtitle + h2,
.page-hero__subtitle + .h2,
.page-hero__subtitle + h3,
.page-hero__subtitle + .h3,
.page-hero__subtitle + h4,
.page-hero__subtitle + .h4,
.page-hero__subtitle + h5,
.page-hero__subtitle + .h5,
.page-hero__subtitle + h6,
.page-hero__subtitle + .h6 {
  margin-top: 0;
}
.page-hero--image-right-dark .page-hero__subtitle, .page-hero--background-image .page-hero__subtitle {
  padding: 0.25rem 0.5rem;
  display: inline-block;
  border-radius: 2px;
  color: #030e25;
  background-color: #fff;
}
.page-hero__title {
  margin-bottom: clamp(1rem, 0.0769230769rem + 2.5641025641vw, 2rem);
}
.page-hero__content {
  grid-column: 1/span 12;
}
@media (min-width: 48rem) {
  .page-hero__content {
    grid-column: 2/span 10;
  }
}
@media (min-width: 62rem) {
  .page-hero__content {
    grid-column: 3/span 8;
  }
}
@media (min-width: 48rem) {
  .page-hero--has-img .page-hero__content {
    grid-column: 1/span 6;
  }
}
@media (min-width: 75rem) {
  .page-hero--has-img .page-hero__content {
    grid-column: 1/span 5;
  }
}
.page-hero--background-image .page-hero__content {
  position: relative;
  z-index: 2;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.5em);
  transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.3s ease-in-out;
  transition-delay: 500ms;
}
.page-has-loaded .page-hero--background-image .page-hero__content {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.page-hero__subcontent {
  margin-top: 2rem;
  color: #dadfe7;
}
@media (max-width: 47.98rem) {
  .page-hero__subcontent {
    display: none;
  }
}
.page-hero__figure {
  grid-column: 1/span 12;
}
@media (min-width: 48rem) {
  .page-hero__figure {
    grid-column: 7/span 6;
  }
}
.page-hero__figure img {
  width: 100%;
  position: relative;
}
@media (min-width: 48rem) {
  .page-hero--image-right-dark .page-hero__figure, .page-hero--image-right-light .page-hero__figure {
    margin-top: 0;
    margin-bottom: auto;
    flex-basis: calc(50% - 70px);
    position: relative;
  }
  .page-hero--image-right-dark .page-hero__figure::before, .page-hero--image-right-light .page-hero__figure::before {
    content: "";
    display: block;
    height: calc(100% + 72px + 72px);
    width: calc(50% + 30px + 68px);
    background: none round center center transparent;
    position: absolute;
    right: -76px;
    top: -65px;
  }
}
@media (min-width: 48rem) {
  .page-hero--image-right-light .page-hero__figure::before {
    /* stylelint-disable-next-line function-url-quotes */
    background-image: url("data:image/svg+xml,%3Csvg width='28' height='28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='3' cy='3' r='3' fill='%23DBDFE7'/%3E%3C/svg%3E");
  }
}
@media (min-width: 48rem) {
  .page-hero--image-right-dark .page-hero__figure::before {
    /* stylelint-disable-next-line function-url-quotes */
    background-image: url("data:image/svg+xml,%3Csvg width='28' height='28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='3' cy='3' r='3' fill='%23414958'/%3E%3C/svg%3E");
  }
}
.page-hero--background-image .page-hero__figure {
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.page-hero--background-image .page-hero__figure::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(82.63deg, #071d49 0%, #04618a 76.3%, #00a9ce 100%);
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  opacity: 0.7;
}
.page-hero__buttons {
  margin: -0.5rem;
}
.page-hero__buttons .c-btn {
  margin: 0.5rem;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9zcmMvX19zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiYWNmLWJsb2Nrcy9wYWdlLWhlcm8vc3JjL3N0eWxlLnNjc3MiLCJjc3Mvc3JjL19fc3R5bGVzL19taXhpbnMuc2NzcyIsImNzcy9zcmMvX19zdHlsZXMvX2ZvbnQtc3R5bGVzLnNjc3MiLCJjc3Mvc3JjL3ZlbmRvci9ib290c3RyYXAvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQWtDQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFrREE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUEyQkE7QUFBQTtBQUFBO0FDdElDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFDQztFQUNBOztBQUdEO0VBQ0M7O0FBR0Q7RUFFQzs7QUMrRUQ7RUFDQyxjRkl1QjtFRUh2QixZRkd1QjtFRUZ2QixPRkd5Qjs7QUVEekI7RUFFQztFQUNBLFlGRDRCO0VFRTVCLE9GRDhCOztBRUtoQztFQUNDLGNGSzJCO0VFSjNCLE9GSTJCO0VFSDNCLFlGRXlCOztBRUF6QjtFQUVDO0VBQ0EsY0ZEOEI7RUVFOUIsT0ZEZ0M7O0FFS2xDO0VBQ0MsT0ZEMEI7O0FFRzFCO0VBRUMsT0ZKK0I7O0FDckdqQztFRXFJQSxhSC9KVztFR2dLWDtFQUNBO0VBQ0E7RUFHQztFQTJCRDtFQUNBO0VBQ0E7RUFHQztFQUNBOztBQzdJRTtFSC9CSDtJRThJRTs7O0FBTUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBWUM7O0FGM0pEO0VFaUtEO0VBQ0E7RUFDQTtFQU1DO0VBQ0E7O0FGbktEO0VBQ0M7O0FBR0Q7RUFDQzs7QUdjRTtFSGZIO0lBSUU7OztBR1dDO0VIZkg7SUFRRTs7O0FHT0M7RUhKRjtJQUdFOzs7QUdDQTtFSEpGO0lBT0U7OztBQUlGO0VBQ0M7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBLFlBQ0M7RUFFRDs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUlGO0VBQ0M7RUFDQTs7QUdsQkU7RUhnQkg7SUFLRTs7O0FBSUY7RUFDQzs7QUd2Q0U7RUhzQ0g7SUFJRTs7O0FBR0Q7RUFDQztFQUNBOztBRy9DQztFSGtERjtJQUlFO0lBQ0E7SUFDQTtJQUNBOztFQUVBO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FHbkVEO0VINEVBO0FBRUM7SUFDQTs7O0FHL0VEO0VIc0ZEO0FBSUU7SUFDQTs7O0FBS0g7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0g7RUFDQzs7QUFFQTtFQUNDIiwiZmlsZSI6ImFjZi1ibG9ja3MvcGFnZS1oZXJvL2Rpc3Qvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKipcbiAqIEZvbnRzXG4gKioqKioqKioqKioqKioqKi9cbiRmb250LWJhc2U6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG5cbi8qKioqKioqKioqKioqKioqXG4gKiBQYWludHNcbiAqKioqKioqKioqKioqKioqL1xuXG4vLyBUT0RPOiBVcGRhdGUgYXZhaWxhYmxlIGJyYW5kIGNvbG9ycyBpbiAvaW5jbHVkZXMvYWNmLWpzLWFwaS9hY2YtanMtYXBpLmpzXG5cbiR3aGl0ZTogI2ZmZjtcbiRibGFjazogIzAwMDtcblxuJHBhaW50czogKFxuXHRhY2NlbnQ6ICMwMDc4YjcsXG5cdGFjY2VudC12YXJpYW50OiAjMDA2NDk5LFxuXHRiZy1kYXJrOiAjMDcxZDQ5LFxuXHRiZy1saWdodDogI2ZmZixcblx0cG1zLTMxMi1jOiAjMDBhOWNlLFxuXHRncmFkaWVudDogbGluZWFyLWdyYWRpZW50KDE2MWRlZywgIzAwYTljZSwgIzAwODJjYyksXG5cdGJnLWRhcmstZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudCg4Ni42MmRlZywgIzA3MUQ0OSAwJSwgIzBCMkM3MCA5OC43NCUpLFxuXHRiZy1kYXJrLXRvLWxpZ2h0LWdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQoODIuNjNkZWcsICMwNzFkNDkgMCUsICMwNDYxOGEgNzYuMyUsICMwMGE5Y2UgMTAwJSksXG5cdHRleHQtZGFyazogIzAzMGUyNSxcblx0dGV4dC1saWdodDogI2ZmZixcblx0Z3JlZW46ICM2N2U0Y2UsXG5cdG5ldXRyYWwtMzA6ICM0MTQ4NTcsXG5cdG5ldXRyYWwtNDU6ICM2MTZkODQsXG5cdG5ldXRyYWwtNzA6ICNhN2FlYmQsXG5cdG5ldXRyYWwtODg6ICNkYWRmZTcsXG5cdG5ldXRyYWwtOTQ6ICNlZGVmZjMsXG5cdG5ldXRyYWwtOTc6ICNmNWY2ZjgsXG5cdGVycm9yOiAjYjAwMDIwLFxuXHR3YXJuaW5nOiAjZjlhNTEzLFxuXHRzdWNjZXNzOiAjMDA4NzM3LFxuXHRpbmZvcm1hdGlvbjogIzAwNmJiMixcblx0YXV0b2ZpbGw6ICNlNmYwZjcsXG4pO1xuXG4vKioqKioqKioqKioqKioqKlxuICogRWZmZWN0c1xuICoqKioqKioqKioqKioqKiovXG5cbiRlZmZlY3RzOiAoXG5cdGRyb3BzaGFkb3c6IDAgNnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpLFxuXHRidXR0b24tZHJvcC1zaGFkb3ctZGVmYXVsdDogMCA0cHggMTBweCByZ2JhKDcsIDI5LCA3MywgMC4xOCksXG5cdGJ1dHRvbi1kcm9wLXNoYWRvdy1ob3ZlcjogMCA0cHggMThweCByZ2JhKDcsIDI5LCA3MywgMC4xOCksXG4pO1xuXG4vKioqKioqKioqKioqKioqKlxuICogR3JpZCBTZXR0aW5nc1xuICoqKioqKioqKioqKioqKiovXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IHJlbSg1NzYpLFxuXHRtZDogcmVtKDc2OCksXG5cdGxnOiByZW0oOTkyKSxcblx0bWVudTogcmVtKDEwMDApLFxuXHR4bDogcmVtKDEyMDApLFxuXHR4eGw6IHJlbSgxNDEwKVxuKTtcbiRjdXN0b20tYnJlYWtwb2ludHM6IChcblx0bW9iaWxlbWVudTogcmVtKDEyMDApXG4pO1xuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG5cdHhzOiByZW0oNTc2KSxcblx0c206IHJlbSg3NjgpLFxuXHRtZDogcmVtKDk5MiksXG5cdGxnOiByZW0oMTIwMCksXG5cdHhsOiByZW0oMTQxMClcbik7XG4kY29udGFpbmVyLXNtLXNwYWNpbmc6IHJlbSgyMCk7XG4kY29udGFpbmVyLW1kLXNwYWNpbmc6IHJlbSg0MCk7XG4kY29udGFpbmVyLWxnLXNwYWNpbmc6IHJlbSg2MCk7XG5cbiRncmlkLWd1dHRlci13aWR0aDogcmVtKDMwKTtcblxuLy8gRm9ybXNcbiRpbnB1dC10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuJGlucHV0LXRleHQtcGxhY2Vob2xkZXI6IHBhaW50KG5ldXRyYWwtNDUpO1xuXG4vLyBUcmFuc2l0aW9uc1xuJHRyYW5zaXRpb24tc3RhbmRhcmQ6IGFsbCAwLjJzIGxpbmVhcjtcblxuLy8gVHlwb2dyYXBoeS5cbiRoci1jb2xvcjogcGFpbnQobmV1dHJhbC00NSk7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiBub25lO1xuXG4vLyBCbG9jayB0aXRsZVxuJGJsb2NrLXRpdGxlLW1iLXNtOiByZW0oNDApO1xuJGJsb2NrLXRpdGxlLW1iLW1kOiByZW0oNjQpO1xuXG4vLyBMaW5rc1xuJGxpbms6IHBhaW50KGFjY2VudCk7XG4kbGluay1ob3ZlcjogcGFpbnQoYWNjZW50LXZhcmlhbnQpO1xuXG4vLyBQYWdlIGhlcm9cbiRwYWdlLWhlcm8tYmc6IHBhaW50KG5ldXRyYWwtOTQpO1xuXG4vKioqKioqKioqKioqKipcbiAqIEJ1dHRvbnNcbiAqKioqKioqKioqKioqKi9cblxuLy8gUHJpbWFyeVxuJGJ1dHRvbi1wcmltYXJ5LWJnOiBwYWludChhY2NlbnQpO1xuJGJ1dHRvbi1wcmltYXJ5LXRleHQ6IHBhaW50KHRleHQtbGlnaHQpO1xuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJnOiBwYWludChhY2NlbnQtdmFyaWFudCk7XG4kYnV0dG9uLXByaW1hcnktaG92ZXItdGV4dDogcGFpbnQodGV4dC1saWdodCk7XG4kZGFyay1idXR0b24tcHJpbWFyeS1iZzogcGFpbnQoYmctbGlnaHQpO1xuJGRhcmstYnV0dG9uLXByaW1hcnktdGV4dDogcGFpbnQoYWNjZW50KTtcbiRkYXJrLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJnOiBwYWludChiZy1saWdodCk7XG4kZGFyay1idXR0b24tcHJpbWFyeS1ob3Zlci10ZXh0OiBwYWludChhY2NlbnQtdmFyaWFudCk7XG5cbi8qXG5TZWNvbmRhcnkgYnV0dG9uIGJvcmRlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB0ZXh0IGNvbG9yIHdoZW4gaW5hY3RpdmUsXG5hbmQgYmcgd2hlbiBob3ZlcmVkLlxuKi9cbiRidXR0b24tc2Vjb25kYXJ5LWJnOiB0cmFuc3BhcmVudDtcbiRidXR0b24tc2Vjb25kYXJ5LXRleHQ6IHBhaW50KGFjY2VudCk7XG4kYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iZzogcGFpbnQoYWNjZW50LXZhcmlhbnQpO1xuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItdGV4dDogcGFpbnQodGV4dC1saWdodCk7XG4kZGFyay1idXR0b24tc2Vjb25kYXJ5LWJnOiB0cmFuc3BhcmVudDtcbiRkYXJrLWJ1dHRvbi1zZWNvbmRhcnktdGV4dDogcGFpbnQodGV4dC1saWdodCk7XG4kZGFyay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJnOiBwYWludChiZy1saWdodCk7XG4kZGFyay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLXRleHQ6IHBhaW50KGFjY2VudC12YXJpYW50KTtcblxuLy8gVGVydGlhcnlcbiRidXR0b24tdGVydGlhcnktdGV4dDogcGFpbnQoYWNjZW50KTtcbiRidXR0b24tdGVydGlhcnktaG92ZXItdGV4dDogcGFpbnQoYWNjZW50LXZhcmlhbnQpO1xuJGRhcmstYnV0dG9uLXRlcnRpYXJ5LXRleHQ6IHBhaW50KHRleHQtbGlnaHQpO1xuJGRhcmstYnV0dG9uLXRlcnRpYXJ5LWhvdmVyLXRleHQ6IHBhaW50KG5ldXRyYWwtNzApO1xuXG4vLyBBY2NvcmRpb25zXG4kYWNjb3JkaW9uLWJvcmRlcjogcGFpbnQobmV1dHJhbC04OCk7XG4kYWNjb3JkaW9uLWhlYWRlci10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuJGFjY29yZGlvbi1oZWFkZXItYmc6IG5vbmU7XG4kYWNjb3JkaW9uLWhlYWRlci1ob3Zlci10ZXh0OiBwYWludChhY2NlbnQpO1xuJGFjY29yZGlvbi1oZWFkZXItaG92ZXItYmc6IHRyYW5zcGFyZW50O1xuJGFjY29yZGlvbi10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuXG4vKioqKioqKioqKioqKioqKlxuICogQmxvY2tzXG4gKioqKioqKioqKioqKioqKi9cblxuLy8gSW1hZ2UgJiBUZXh0IExpbmtzXG4kaW1hZ2UtdGV4dC1saW5rcy10ZXh0OiAkbGluaztcbiRpbWFnZS10ZXh0LWxpbmtzLWhvdmVyLXRleHQ6ICRsaW5rLWhvdmVyO1xuJGltYWdlLXRleHQtbGlua3MtaG92ZXItYmc6IHBhaW50KG5ldXRyYWwtOTQpO1xuJGltYWdlLXRleHQtbGlua3MtYm9yZGVyOiBwYWludChuZXV0cmFsLTg4KTtcblxuLy8gU2xpZGVyc1xuJHNsaWRlci1idG4tYmc6IHBhaW50KGJnLWxpZ2h0KTtcbiRzbGlkZXItYnRuLWhvdmVyLWJnOiBwYWludCh0ZXh0LWxpZ2h0KTtcbiRzbGlkZXItYnRuLXRleHQ6IHBhaW50KGFjY2VudCk7XG4kc2xpZGVyLWJ0bi1ob3Zlci10ZXh0OiBwYWludChhY2NlbnQtdmFyaWFudCk7XG4kc2xpZGVyLWxpZ2h0Ym94LWJnOiAkYmxhY2s7XG4kc2xpZGVyLWxpZ2h0Ym94LXRleHQ6IHBhaW50KGJnLWxpZ2h0KTtcblxuLy8gUG9zdCBCbG9ja3MuXG4kcmVsYXRlZC1wb3N0cy1saW5rOiAkbGluaztcbiRyZWxhdGVkLXBvc3RzLWxpbmstaG92ZXI6ICRsaW5rLWhvdmVyO1xuJHJlbGF0ZWQtcG9zdHMtdGl0bGU6ICRibGFjaztcbiRyZWxhdGVkLXBvc3RzLXRpdGxlLWhvdmVyOiBwYWludChhY2NlbnQpO1xuJHJlbGF0ZWQtcG9zdHMtdGl0bGUtY2F0ZWdvcnk6ICRibGFjaztcbiRyZWxhdGVkLXBvc3RzLWJhY2tncm91bmQtZ3JleTogcGFpbnQobmV1dHJhbC04OCk7XG4kcmVsYXRlZC1wb3N0cy1jYXRlZ29yeTogJGJsYWNrO1xuXG4vLyBDVEFcbiRjdGEtYmc6IHBhaW50KG5ldXRyYWwtODgpO1xuJGN0YS10ZXh0OiBwYWludCh0ZXh0LWRhcmspO1xuJGN0YS1iZy1kYXJrOiBwYWludChiZy1kYXJrLWdyYWRpZW50KTtcbiRjdGEtdGV4dC1kYXJrOiBwYWludCh0ZXh0LWxpZ2h0KTtcblxuLy8gVGVzdGltb25pYWwgU2xpZGVyXG4kdGVzdGltb25pYWwtc2xpZGVyLWJnOiBwYWludChuZXV0cmFsLTg4KTtcblxuLy8gMi4gV09SRFBSRVNTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhLW1hcmdpbjogMzBweDtcbiRtZWRpYS1tYXJnaW4tbW9iaWxlOiAyMHB4O1xuXG4vLyBPdXRsaW5lXG4kb3V0bGluZTogcmVtKDIpIHNvbGlkICM3YWFjZmU7XG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY3NzL3NyYy9saWIvYmFzZS1pbmNsdWRlc1wiO1xuXG4ucGFnZS1oZXJvIHtcblx0JHNlbGY6ICY7XG5cblx0PiAuY29udGFpbmVyIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuXHRcdGdyaWQtY29sdW1uLWdhcDogcmVtKDMwKTtcblx0XHRncmlkLXJvdy1nYXA6IHJlbSg0OCk7XG5cdH1cblxuXHQmX19iYWNrIHtcblx0XHRncmlkLWNvbHVtbjogc3BhbiAxMjtcblx0XHRtYXJnaW4tYm90dG9tOiBydig2NiwgODApO1xuXHR9XG5cblx0Ji0taGFzLWJhY2stbGluayB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSgzMCk7XG5cdH1cblxuXHQmLS1iYWNrZ3JvdW5kLWltYWdlLFxuXHQmLS1pbWFnZS1yaWdodC1kYXJrIHtcblx0XHRjb2xvcjogcGFpbnQodGV4dC1saWdodCk7XG5cblx0XHRAaW5jbHVkZSBkYXJrLWJ1dHRvbnM7XG5cdH1cblxuXHQmX19zdWJ0aXRsZSB7XG5cblx0XHRAaW5jbHVkZSBvdmVybGluZTtcblx0XHRAaW5jbHVkZSBvdmVybGluZS1ib3godHJ1ZSk7XG5cblx0XHQjeyAkc2VsZiB9LS1pbWFnZS1yaWdodC1kYXJrICYsXG5cdFx0I3sgJHNlbGYgfS0tYmFja2dyb3VuZC1pbWFnZSAmIHtcblxuXHRcdFx0QGluY2x1ZGUgb3ZlcmxpbmUtYm94O1xuXHRcdH1cblx0fVxuXG5cdCZfX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiBydigxNiwgMzIpO1xuXHR9XG5cblx0Jl9fY29udGVudCB7XG5cdFx0Z3JpZC1jb2x1bW46IDEgL3NwYW4gMTI7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRncmlkLWNvbHVtbjogMiAvc3BhbiAxMDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0XHRncmlkLWNvbHVtbjogMyAvc3BhbiA4O1xuXHRcdH1cblxuXHRcdCN7ICRzZWxmIH0tLWhhcy1pbWcgJiB7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdFx0Z3JpZC1jb2x1bW46IDEgL3NwYW4gNjtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuXHRcdFx0XHRncmlkLWNvbHVtbjogMSAvc3BhbiA1O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCN7ICRzZWxmIH0tLWJhY2tncm91bmQtaW1hZ2UgJiB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4OiAyO1xuXG5cdFx0XHQvLyBUaXRsZSBhbmltYXRpb24uXG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuNWVtKTtcblx0XHRcdHRyYW5zaXRpb246XG5cdFx0XHRcdHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSksXG5cdFx0XHRcdG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcblx0XHRcdHRyYW5zaXRpb24tZGVsYXk6IDUwMG1zO1xuXHRcdH1cblxuXHRcdC5wYWdlLWhhcy1sb2FkZWQgI3sgJHNlbGYgfS0tYmFja2dyb3VuZC1pbWFnZSAmIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG5cdFx0fVxuXHR9XG5cblx0Jl9fc3ViY29udGVudCB7XG5cdFx0bWFyZ2luLXRvcDogcmVtKDMyKTtcblx0XHRjb2xvcjogcGFpbnQobmV1dHJhbC04OCk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Jl9fZmlndXJlIHtcblx0XHRncmlkLWNvbHVtbjogMSAvc3BhbiAxMjtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRcdGdyaWQtY29sdW1uOiA3IC9zcGFuIDY7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdH1cblxuXHRcdCN7ICRzZWxmIH0tLWltYWdlLXJpZ2h0LWRhcmsgJixcblx0XHQjeyAkc2VsZiB9LS1pbWFnZS1yaWdodC1saWdodCAmIHtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiBhdXRvO1xuXHRcdFx0XHRmbGV4LWJhc2lzOiBjYWxjKDUwJSAtIDcwcHgpO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGhlaWdodDogY2FsYygxMDAlICsgNzJweCArIDcycHgpO1xuXHRcdFx0XHRcdHdpZHRoOiBjYWxjKDUwJSArIDMwcHggKyA2OHB4KTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lIHJvdW5kIGNlbnRlciBjZW50ZXIgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHJpZ2h0OiAtNzZweDtcblx0XHRcdFx0XHR0b3A6IC02NXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3sgJHNlbGYgfS0taW1hZ2UtcmlnaHQtbGlnaHQgJiB7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblxuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdC8vIHNpbmdsZSBkb3Rcblx0XHRcdFx0XHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuY3Rpb24tdXJsLXF1b3RlcyAqL1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI4JyBoZWlnaHQ9JzI4JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDY2lyY2xlIGN4PSczJyBjeT0nMycgcj0nMycgZmlsbD0nJTIzREJERkU3Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0I3sgJHNlbGYgfS0taW1hZ2UtcmlnaHQtZGFyayAmIHtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRcdFx0Ly8gc2luZ2xlIGRvdFxuXHRcdFx0XHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jdGlvbi11cmwtcXVvdGVzICovXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjgnIGhlaWdodD0nMjgnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NjaXJjbGUgY3g9JzMnIGN5PSczJyByPSczJyBmaWxsPSclMjM0MTQ5NTgnLyUzRSUzQy9zdmclM0VcIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQjeyAkc2VsZiB9LS1iYWNrZ3JvdW5kLWltYWdlICYge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODIuNjNkZWcsICMwNzFkNDkgMCUsICMwNDYxOGEgNzYuMyUsICMwMGE5Y2UgMTAwJSk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHR6LWluZGV4OiAxO1xuXHRcdFx0XHRvcGFjaXR5OiAwLjc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jl9fYnV0dG9ucyB7XG5cdFx0bWFyZ2luOiByZW0oLTgpO1xuXG5cdFx0LmMtYnRuIHtcblx0XHRcdG1hcmdpbjogcmVtKDgpO1xuXHRcdH1cblx0fVxufVxuIiwiLy9UaGlzIGZpbGUgaXMgb25seSBmb3IgbWl4aW5zLiBEb24ndCBpbmNsdWRlIGFueSBzdHlsZXMgaW4gdGhpcyBmaWxlIG9yIGVsc2UgdGhleSB3aWxsIHJlcGVhdGVkIGluIGV2ZXJ5IGJsb2NrLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBjZiB7XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcblxuXHRAcmV0dXJuIG1hdGguZGl2KCRzLCAkdykgKiAxMDAgKyB2dztcbn1cblxuQG1peGluIGhlYWRpbmdzKCAkc3RhcnQ6IDEsICRlbmQ6IDYgKSB7XG5cdCRoZWFkaW5nczogXCJcIjtcblxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG5cblx0XHRAaWYgJGkgIT0gJHN0YXJ0IHtcblx0XHRcdCRoZWFkaW5nczogXCIjeyAkaGVhZGluZ3MgfSxoI3sgJGkgfSwuaCN7ICRpIH1cIjtcblx0XHR9IEBlbHNlIHtcblx0XHRcdCRoZWFkaW5nczogXCJoI3sgJGkgfSwuaCN7ICRpIH1cIjtcblx0XHR9XG5cdH1cblxuXHQjeyAkaGVhZGluZ3MgfSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuQG1peGluIGljb24tZm9udCggJGNvbnRlbnQ6IFwiXCIsICRmb250LXNpemU6IDI0cHggKSB7XG5cdGNvbnRlbnQ6ICRjb250ZW50O1xuXHRmb250LWZhbWlseTogJGZvbnQtaWNvbmZvbnQ7XG5cdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuQG1peGluIHJtLWJlZm9yZSgpIHtcblxuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG5AbWl4aW4gcm0tYWZ0ZXIoKSB7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuQG1peGluIHJlc3BvbnNpdmUtZ3JpZCgkc206IDEyLCAkbWQ6IDEyLCAkbGc6IDEyLCAkeGw6IDEyLCAkeHhsOiAxMikge1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5XaWR0aCkgKiAjeyRzbX0gLSA0MHB4KTtcblx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbk1heFdpZHRoKSAqICN7JHNtfSAtIDQwcHgpO1xuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHR3aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5XaWR0aCkgKiAjeyRtZH0gLSAzMHB4KTtcblx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY29sdW1uTWF4V2lkdGgpICogI3skbWR9IC0gMzBweCk7XG5cdH1cblxuXHRAaWYgKCRsZyAhPSAkbWQpIHtcblxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcblx0XHRcdHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbldpZHRoKSAqICN7JGxnfSAtIDMwcHgpO1xuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbk1heFdpZHRoKSAqICN7JGxnfSAtIDMwcHgpO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAoJHhsICE9ICRsZykge1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY29sdW1uV2lkdGgpICogI3skeGx9IC0gMzBweCk7XG5cdFx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY29sdW1uTWF4V2lkdGgpICogI3skeGx9IC0gMzBweCk7XG5cdFx0fVxuXHR9XG5cblx0QGlmICgkeHhsICE9ICR4bCkge1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcblx0XHRcdHdpZHRoOiBjYWxjKHZhcigtLWNvbHVtbldpZHRoKSAqICN7JHh4bH0gLSAzMHB4KTtcblx0XHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jb2x1bW5NYXhXaWR0aCkgKiAjeyR4eGx9IC0gMzBweCk7XG5cdFx0fVxuXHR9XG59XG5cblxuQG1peGluIGRhcmstYnV0dG9ucyB7XG5cblx0LmMtYnRuLmMtYnRuLXByaW1hcnkge1xuXHRcdGJvcmRlci1jb2xvcjogJGRhcmstYnV0dG9uLXByaW1hcnktYmc7XG5cdFx0YmFja2dyb3VuZDogJGRhcmstYnV0dG9uLXByaW1hcnktYmc7XG5cdFx0Y29sb3I6ICRkYXJrLWJ1dHRvbi1wcmltYXJ5LXRleHQ7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkZGFyay1idXR0b24tcHJpbWFyeS1ob3Zlci1iZztcblx0XHRcdGJhY2tncm91bmQ6ICRkYXJrLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJnO1xuXHRcdFx0Y29sb3I6ICRkYXJrLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLXRleHQ7XG5cdFx0fVxuXHR9XG5cblx0LmMtYnRuLmMtYnRuLXNlY29uZGFyeSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkZGFyay1idXR0b24tc2Vjb25kYXJ5LXRleHQ7XG5cdFx0Y29sb3I6ICRkYXJrLWJ1dHRvbi1zZWNvbmRhcnktdGV4dDtcblx0XHRiYWNrZ3JvdW5kOiAkZGFyay1idXR0b24tc2Vjb25kYXJ5LWJnO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQ6ICRkYXJrLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmc7XG5cdFx0XHRib3JkZXItY29sb3I6ICRkYXJrLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmc7XG5cdFx0XHRjb2xvcjogJGRhcmstYnV0dG9uLXNlY29uZGFyeS1ob3Zlci10ZXh0O1xuXHRcdH1cblx0fVxuXG5cdC5jLWJ0bi5jLWJ0bi10ZXJ0aWFyeSB7XG5cdFx0Y29sb3I6ICRkYXJrLWJ1dHRvbi10ZXJ0aWFyeS10ZXh0O1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGNvbG9yOiAkZGFyay1idXR0b24tdGVydGlhcnktaG92ZXItdGV4dDtcblx0XHR9XG5cdH1cbn1cbiIsIkBtaXhpbiBoMSgkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiBydigzNCwgNjApO1xuXHRsaW5lLWhlaWdodDogcnYoNDAsIDY0KTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcnYoMTYsIDMyKTtcblx0XHRtYXJnaW4tdG9wOiBydigzMiwgNDgpO1xuXHR9XG59XG5cbkBtaXhpbiBoMigkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiBydigyNCwgNDIpO1xuXHRsaW5lLWhlaWdodDogcnYoMzIsIDQ4KTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcnYoMTYsIDMyKTtcblx0XHRtYXJnaW4tdG9wOiBydigzMiwgNDgpO1xuXHR9XG59XG5cbkBtaXhpbiBoMygkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiBydigxOCwgMjYpO1xuXHRsaW5lLWhlaWdodDogcnYoMjQsIDMyKTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcnYoOCwgMTYpO1xuXHR9XG59XG5cbkBtaXhpbiBoNCgkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiBydigxNiwgMjApO1xuXHRsaW5lLWhlaWdodDogcmVtKDI0KTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcnYoOCwgMTYpO1xuXHRcdG1hcmdpbi10b3A6IHJ2KDMyLCA0OCk7XG5cdH1cbn1cblxuQG1peGluIGg1KCRtYXJnaW5zOiB0cnVlKSB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IHJ2KDE0LCAxNik7XG5cdGxpbmUtaGVpZ2h0OiBydigxNiwgMjQpO1xuXG5cdEBpZiAoJG1hcmdpbnMpIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oOCk7XG5cdFx0bWFyZ2luLXRvcDogcnYoMjQsIDMyKTtcblx0fVxufVxuXG5AbWl4aW4gaDYoJG1hcmdpbnM6IHRydWUpIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdGZvbnQtc2l6ZTogcnYoMTIsIDE0KTtcblx0bGluZS1oZWlnaHQ6IHJlbSgxNik7XG5cblx0QGlmICgkbWFyZ2lucykge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg4KTtcblx0XHRtYXJnaW4tdG9wOiBydigyNCwgMzIpO1xuXHR9XG59XG5cbkBtaXhpbiBib2R5LTEoJG1hcmdpbnM6IHRydWUpIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtc2l6ZTogcnYoMTYsIDIwKTtcblx0bGluZS1oZWlnaHQ6IHJ2KDI0LCAzMik7XG5cblx0QGlmICgkbWFyZ2lucykge1xuXHRcdG1hcmdpbi1ib3R0b206IHJ2KDE2LCAzMik7XG5cdH1cbn1cblxuQG1peGluIGJvZHktMigkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0Zm9udC1zaXplOiByZW0oMTYpO1xuXHRsaW5lLWhlaWdodDogcmVtKDI0KTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDE2KTtcblx0fVxufVxuXG5AbWl4aW4gbGVhZCgkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0Zm9udC1zaXplOiBydigyMCwgMjgpO1xuXHRsaW5lLWhlaWdodDogcnYoMjQsIDQwKTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcnYoNDgsIDgwKTtcblx0fVxufVxuXG5AbWl4aW4gcXVvdGUoJG1hcmdpbnM6IHRydWUpIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtc2l6ZTogcnYoMjAsIDI4KTtcblx0bGluZS1oZWlnaHQ6IHJ2KDI0LCA0MCk7XG5cblx0QGlmICgkbWFyZ2lucykge1xuXHRcdG1hcmdpbi1ib3R0b206IHJ2KDI0LCAzMik7XG5cdH1cbn1cblxuQG1peGluIHN1YnRpdGxlLTEoJG1hcmdpbnM6IHRydWUpIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtc2l6ZTogcmVtKDE2KTtcblx0bGluZS1oZWlnaHQ6IHJlbSgyNCk7XG5cblx0QGlmICgkbWFyZ2lucykge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNCk7XG5cdH1cbn1cblxuQG1peGluIHN1YnRpdGxlLTIoJG1hcmdpbnM6IHRydWUpIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGZvbnQtc2l6ZTogcmVtKDE0KTtcblx0bGluZS1oZWlnaHQ6IHJlbSgyNCk7XG5cblx0QGlmICgkbWFyZ2lucykge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSgyNCk7XG5cdH1cbn1cblxuQG1peGluIGJ1dHRvbi0xKCRtYXJnaW5zOiB0cnVlKSB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IHJlbSgxNik7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xufVxuXG5AbWl4aW4gYnV0dG9uLTIoJG1hcmdpbnM6IHRydWUpIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGZvbnQtc2l6ZTogcmVtKDE0KTtcblx0bGluZS1oZWlnaHQ6IHJlbSgxNik7XG59XG5cbkBtaXhpbiBjYXB0aW9uKCRtYXJnaW5zOiB0cnVlKSB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXNpemU6IHJlbSgxMik7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMTYpO1xuXG5cdEBpZiAoJG1hcmdpbnMpIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oOCk7XG5cdH1cbn1cblxuQG1peGluIG92ZXJsaW5lKCRtYXJnaW5zOiB0cnVlLCAkcmVtb3ZlX2hlYWRlcl9tYXJnaW5zOiB0cnVlKSB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IHJlbSgxNCk7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMTYpO1xuXG5cdEBpZiAoJG1hcmdpbnMpIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oOCk7XG5cblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuXHRcdH1cblx0fVxuXG5cdEBpZiAoICRyZW1vdmVfaGVhZGVyX21hcmdpbnMgKSB7XG5cblx0XHQrIGgxLFxuXHRcdCsgLmgxLFxuXHRcdCsgaDIsXG5cdFx0KyAuaDIsXG5cdFx0KyBoMyxcblx0XHQrIC5oMyxcblx0XHQrIGg0LFxuXHRcdCsgLmg0LFxuXHRcdCsgaDUsXG5cdFx0KyAuaDUsXG5cdFx0KyBoNixcblx0XHQrIC5oNiB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxufVxuXG5AbWl4aW4gb3ZlcmxpbmUtYm94KCRkYXJrOiBmYWxzZSkge1xuXHRwYWRkaW5nOiByZW0oNCA4KTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cblx0QGlmICggJGRhcmsgKSB7XG5cdFx0Y29sb3I6IHBhaW50KHRleHQtbGlnaHQpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHBhaW50KGJnLWRhcmspO1xuXHR9IEBlbHNlIHtcblx0XHRjb2xvcjogcGFpbnQodGV4dC1kYXJrKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBwYWludChiZy1saWdodCk7XG5cdH1cbn1cblxuQG1peGluIG1lbnUtMSgkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiByZW0oMTYpO1xuXHRsaW5lLWhlaWdodDogcmVtKDI0KTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDE2KTtcblx0fVxufVxuXG5AbWl4aW4gbWVudS0yKCRtYXJnaW5zOiB0cnVlKSB7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXNpemU6IHJlbSgxNik7XG5cdGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xuXG5cdEBpZiAoJG1hcmdpbnMpIHtcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTYpO1xuXHR9XG59XG5cbkBtaXhpbiBmb290ZXItMSgkbWFyZ2luczogdHJ1ZSkge1xuXHRmb250LWZhbWlseTogJGZvbnQtYmFzZTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiByZW0oMTQpO1xuXHRsaW5lLWhlaWdodDogcmVtKDE2KTtcblxuXHRAaWYgKCRtYXJnaW5zKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDE2KTtcblx0fVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iXX0= */
