/* Color */
.ngx-mdc-form-field--fluid {
  display: flex;
  flex: auto;
  flex-direction: column;
}
.ngx-mdc-fab-extended--fluid {
  width: 100%;
}
.ngx-mdc-fab--bottom-right {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
}
@media (min-width: 1024px) {
  .ngx-mdc-fab--bottom-right {
    right: 1.5rem;
    bottom: 1.5rem;
  }
}
.ngx-mdc-fab--bottom-left {
  position: fixed;
  bottom: 1rem;
  left: 1rem;
}
@media (min-width: 1024px) {
  .ngx-mdc-fab--bottom-left {
    bottom: 1.5rem;
    left: 1.5rem;
  }
}
.ngx-mdc-icon--clickable,
a.ngx-mdc-icon {
  outline: none;
  text-decoration: none;
  -webkit-user-select: none;
  user-select: none;
}
.ngx-mdc-icon--inline {
  font-size: inherit;
  height: inherit;
  line-height: inherit;
  width: inherit;
}
.mdc-image-list__item {
  display: block;
}
.mdc-linear-progress {
  display: block;
}
.mdc-list,
.mdc-list-divider {
  display: block;
}
.ngx-mdc-list--border {
  /* Ensure adjacent borders don't collide with one another. */
}
.ngx-mdc-list--border .mdc-list-item {
  /* Add the list side padding padding to the list item. */
  padding: 0 16px;
  /* Add a border around each element. */
  border: 1px solid rgba(0, 0, 0, 0.12);
}
.ngx-mdc-list--border .mdc-list-item:not(:first-child) {
  border-top: none;
}
.mdc-menu-surface--anchor {
  display: inline-block;
}
.mdc-slider {
  display: inline-block;
}
@media (min-width: 480px) {
  .ngx-mdc-snackbar--trailing {
    justify-content: flex-end;
  }
}
.ngx-mdc-tab--disabled {
  cursor: default;
  pointer-events: none;
}
.ngx-mdc-tab--disabled .mdc-tab__text-label {
  color: rgba(0, 0, 0, 0.3);
}
.ngx-mdc-tab--disabled .mdc-tab__icon {
  color: rgba(0, 0, 0, 0.3);
  fill: currentColor;
}
.ngx-mdc-tab--disabled .mdc-tab-indicator .mdc-tab-indicator__content--underline {
  border-color: rgba(0, 0, 0, 0.3);
}
.mdc-tab-bar {
  display: block;
}
.mdc-tab-scroller {
  display: block;
}
.cdk-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.mdc-typography {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-font-family, Roboto, sans-serif);
}
.mdc-typography--headline1 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 6rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline1-font-size, 6rem);
  line-height: 6rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline1-line-height, 6rem);
  font-weight: 300;
  /* @alternate */
  font-weight: var(--mdc-typography-headline1-font-weight, 300);
  letter-spacing: -0.015625em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline1-letter-spacing, -0.015625em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline1-text-transform, inherit);
}
.mdc-typography--headline2 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 3.75rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline2-font-size, 3.75rem);
  line-height: 3.75rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline2-line-height, 3.75rem);
  font-weight: 300;
  /* @alternate */
  font-weight: var(--mdc-typography-headline2-font-weight, 300);
  letter-spacing: -0.0083333333em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline2-letter-spacing, -0.0083333333em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline2-text-transform, inherit);
}
.mdc-typography--headline3 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline3-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 3rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline3-font-size, 3rem);
  line-height: 3.125rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline3-line-height, 3.125rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-headline3-font-weight, 400);
  letter-spacing: normal;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline3-letter-spacing, normal);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline3-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline3-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline3-text-transform, inherit);
}
.mdc-typography--headline4 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline4-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 2.125rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline4-font-size, 2.125rem);
  line-height: 2.5rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline4-line-height, 2.5rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-headline4-font-weight, 400);
  letter-spacing: 0.0073529412em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline4-letter-spacing, 0.0073529412em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline4-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline4-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline4-text-transform, inherit);
}
.mdc-typography--headline5 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline5-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1.5rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline5-font-size, 1.5rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline5-line-height, 2rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-headline5-font-weight, 400);
  letter-spacing: normal;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline5-letter-spacing, normal);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline5-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline5-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline5-text-transform, inherit);
}
.mdc-typography--headline6 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1.25rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline6-font-size, 1.25rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline6-line-height, 2rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-headline6-font-weight, 500);
  letter-spacing: 0.0125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline6-letter-spacing, 0.0125em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline6-text-transform, inherit);
}
.mdc-typography--subtitle1 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle1-font-size, 1rem);
  line-height: 1.75rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle1-line-height, 1.75rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle1-font-weight, 400);
  letter-spacing: 0.009375em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle1-text-transform, inherit);
}
.mdc-typography--subtitle2 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle2-font-size, 0.875rem);
  line-height: 1.375rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle2-line-height, 1.375rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle2-font-weight, 500);
  letter-spacing: 0.0071428571em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle2-letter-spacing, 0.0071428571em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle2-text-transform, inherit);
}
.mdc-typography--body1 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-body1-font-size, 1rem);
  line-height: 1.5rem;
  /* @alternate */
  line-height: var(--mdc-typography-body1-line-height, 1.5rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body1-font-weight, 400);
  letter-spacing: 0.03125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body1-letter-spacing, 0.03125em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body1-text-transform, inherit);
}
.mdc-typography--body2 {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
}
.mdc-typography--caption {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.75rem;
  /* @alternate */
  font-size: var(--mdc-typography-caption-font-size, 0.75rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-caption-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-caption-font-weight, 400);
  letter-spacing: 0.0333333333em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-caption-letter-spacing, 0.0333333333em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
          text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-caption-text-transform, inherit);
}
.mdc-typography--button {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-button-font-size, 0.875rem);
  line-height: 2.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-button-line-height, 2.25rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-button-font-weight, 500);
  letter-spacing: 0.0892857143em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-button-letter-spacing, 0.0892857143em);
  text-decoration: none;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-button-text-decoration, none);
          text-decoration: var(--mdc-typography-button-text-decoration, none);
  text-transform: uppercase;
  /* @alternate */
  text-transform: var(--mdc-typography-button-text-transform, uppercase);
}
.mdc-typography--overline {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-overline-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.75rem;
  /* @alternate */
  font-size: var(--mdc-typography-overline-font-size, 0.75rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-overline-line-height, 2rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-overline-font-weight, 500);
  letter-spacing: 0.1666666667em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-overline-letter-spacing, 0.1666666667em);
  text-decoration: none;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-overline-text-decoration, none);
          text-decoration: var(--mdc-typography-overline-text-decoration, none);
  text-transform: uppercase;
  /* @alternate */
  text-transform: var(--mdc-typography-overline-text-transform, uppercase);
}
.mdc-list {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle1-font-size, 1rem);
  line-height: 1.75rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle1-line-height, 1.75rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle1-font-weight, 400);
  letter-spacing: 0.009375em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle1-text-transform, inherit);
  /* @alternate */
  line-height: 1.5rem;
  margin: 0;
  padding: 8px 0;
  list-style-type: none;
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}
.mdc-list:focus {
  outline: none;
}
.mdc-list-item {
  height: 48px;
}
.mdc-list-item__secondary-text {
  color: rgba(0, 0, 0, 0.54);
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));
}
.mdc-list-item__graphic {
  background-color: transparent;
}
.mdc-list-item__graphic {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38));
}
.mdc-list-item__meta {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38));
}
.mdc-list-group__subheader {
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}
.mdc-list-item--disabled .mdc-list-item__text {
  opacity: 0.38;
}
.mdc-list-item--disabled .mdc-list-item__text,
.mdc-list-item--disabled .mdc-list-item__primary-text,
.mdc-list-item--disabled .mdc-list-item__secondary-text {
  color: #000;
  /* @alternate */
  color: var(--mdc-theme-on-surface, #000);
}
.mdc-list--dense {
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: 0.812rem;
}
.mdc-list-item {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: flex-start;
  padding: 0 16px;
  overflow: hidden;
}
.mdc-list-item:focus {
  outline: none;
}
.mdc-list-item--selected,
.mdc-list-item--activated {
  color: #4ecdc4;
  /* @alternate */
  color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-list-item--selected .mdc-list-item__graphic,
.mdc-list-item--activated .mdc-list-item__graphic {
  color: #4ecdc4;
  /* @alternate */
  color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 32px;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  fill: currentColor;
}
.mdc-list-item[dir=rtl] .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 32px;
  /* @noflip */
  margin-right: 0;
}
.mdc-list .mdc-list-item__graphic {
  display: inline-flex;
}
.mdc-list-item__meta {
  /* @noflip */
  margin-left: auto;
  /* @noflip */
  margin-right: 0;
}
.mdc-list-item__meta:not(.material-icons) {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.75rem;
  /* @alternate */
  font-size: var(--mdc-typography-caption-font-size, 0.75rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-caption-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-caption-font-weight, 400);
  letter-spacing: 0.0333333333em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-caption-letter-spacing, 0.0333333333em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
          text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-caption-text-transform, inherit);
}
.mdc-list-item[dir=rtl] .mdc-list-item__meta, [dir=rtl] .mdc-list-item .mdc-list-item__meta {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: auto;
}
.mdc-list-item__text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.mdc-list-item__text[for] {
  pointer-events: none;
}
.mdc-list-item__primary-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
  display: block;
}
.mdc-list-item__primary-text::before {
  display: inline-block;
  width: 0;
  height: 32px;
  content: "";
  vertical-align: 0;
}
.mdc-list-item__primary-text::after {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: -20px;
}
.mdc-list--dense .mdc-list-item__primary-text {
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
}
.mdc-list--dense .mdc-list-item__primary-text::before {
  display: inline-block;
  width: 0;
  height: 24px;
  content: "";
  vertical-align: 0;
}
.mdc-list--dense .mdc-list-item__primary-text::after {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: -20px;
}
.mdc-list-item__secondary-text {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  display: block;
}
.mdc-list-item__secondary-text::before {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: 0;
}
.mdc-list--dense .mdc-list-item__secondary-text {
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  font-size: inherit;
}
.mdc-list--dense .mdc-list-item__secondary-text::before {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: 0;
}
.mdc-list--dense .mdc-list-item {
  height: 40px;
}
.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 36px;
  width: 20px;
  height: 20px;
}
.mdc-list-item[dir=rtl] .mdc-list--dense .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 36px;
  /* @noflip */
  margin-right: 0;
}
.mdc-list--avatar-list .mdc-list-item {
  height: 56px;
}
.mdc-list--avatar-list .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
}
.mdc-list-item[dir=rtl] .mdc-list--avatar-list .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list--avatar-list .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 16px;
  /* @noflip */
  margin-right: 0;
}
.mdc-list--two-line .mdc-list-item__text {
  align-self: flex-start;
}
.mdc-list--two-line .mdc-list-item {
  height: 72px;
}
.mdc-list--two-line.mdc-list--dense .mdc-list-item,
.mdc-list--avatar-list.mdc-list--dense .mdc-list-item {
  height: 60px;
}
.mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 20px;
  width: 36px;
  height: 36px;
}
.mdc-list-item[dir=rtl] .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 20px;
  /* @noflip */
  margin-right: 0;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {
  cursor: pointer;
}
a.mdc-list-item {
  color: inherit;
  text-decoration: none;
}
.mdc-list-divider {
  height: 0;
  margin: 0;
  border: none;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.mdc-list-divider {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}
.mdc-list-divider--padded {
  margin: 0 16px;
}
.mdc-list-divider--inset {
  /* @noflip */
  margin-left: 72px;
  /* @noflip */
  margin-right: 0;
  width: calc(100% - 72px);
}
.mdc-list-group[dir=rtl] .mdc-list-divider--inset, [dir=rtl] .mdc-list-group .mdc-list-divider--inset {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 72px;
}
.mdc-list-divider--inset.mdc-list-divider--padded {
  width: calc(100% - 72px - 16px);
}
.mdc-list-group .mdc-list {
  padding: 0;
}
.mdc-list-group__subheader {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle1-font-size, 1rem);
  line-height: 1.75rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle1-line-height, 1.75rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle1-font-weight, 400);
  letter-spacing: 0.009375em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle1-text-transform, inherit);
  margin: calc((3rem - 1.5rem) / 2) 16px;
}
@keyframes mdc-ripple-fg-radius-in {
  from {
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  }
  to {
    transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  }
}
@keyframes mdc-ripple-fg-opacity-in {
  from {
    animation-timing-function: linear;
    opacity: 0;
  }
  to {
    opacity: var(--mdc-ripple-fg-opacity, 0);
  }
}
@keyframes mdc-ripple-fg-opacity-out {
  from {
    animation-timing-function: linear;
    opacity: var(--mdc-ripple-fg-opacity, 0);
  }
  to {
    opacity: 0;
  }
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
  background-color: #000;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:hover::before {
  opacity: 0.04;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before {
  opacity: 0.24;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:hover::before {
  opacity: 0.32;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.48;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.48;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.48;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before {
  opacity: 0.16;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:hover::before {
  opacity: 0.24;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.4;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.4;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.4;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
  background-color: #000;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.24;
}
.mdc-elevation--z0 {
  /* @alternate */
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z1 {
  /* @alternate */
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z2 {
  /* @alternate */
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z3 {
  /* @alternate */
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z4 {
  /* @alternate */
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z5 {
  /* @alternate */
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z6 {
  /* @alternate */
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z7 {
  /* @alternate */
  box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z8 {
  /* @alternate */
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z9 {
  /* @alternate */
  box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z10 {
  /* @alternate */
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z11 {
  /* @alternate */
  box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z12 {
  /* @alternate */
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z13 {
  /* @alternate */
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z14 {
  /* @alternate */
  box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z15 {
  /* @alternate */
  box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z16 {
  /* @alternate */
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z17 {
  /* @alternate */
  box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z18 {
  /* @alternate */
  box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z19 {
  /* @alternate */
  box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z20 {
  /* @alternate */
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z21 {
  /* @alternate */
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z22 {
  /* @alternate */
  box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z23 {
  /* @alternate */
  box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);
}
.mdc-elevation--z24 {
  /* @alternate */
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
.mdc-elevation-transition {
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: box-shadow;
}
.mdc-touch-target-wrapper {
  display: inline;
}
.mdc-elevation-overlay {
  position: absolute;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);
  background-color: #fff;
}
.mdc-button {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-button-font-size, 0.875rem);
  line-height: 2.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-button-line-height, 2.25rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-button-font-weight, 500);
  letter-spacing: 0.0892857143em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-button-letter-spacing, 0.0892857143em);
  text-decoration: none;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-button-text-decoration, none);
          text-decoration: var(--mdc-typography-button-text-decoration, none);
  text-transform: uppercase;
  /* @alternate */
  text-transform: var(--mdc-typography-button-text-transform, uppercase);
  padding: 0 8px 0 8px;
  /* @alternate */
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 64px;
  border: none;
  outline: none;
  /* @alternate */
  line-height: inherit;
  -webkit-user-select: none;
          user-select: none;
  -webkit-appearance: none;
  overflow: visible;
  vertical-align: middle;
  border-radius: 4px;
}
.mdc-button .mdc-elevation-overlay {
  width: 100%;
  height: 100%;
  top: 0;
  /* @noflip */
  left: 0;
}
.mdc-button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.mdc-button:active {
  outline: none;
}
.mdc-button:hover {
  cursor: pointer;
}
.mdc-button:disabled {
  cursor: default;
  pointer-events: none;
}
.mdc-button .mdc-button__ripple {
  border-radius: 4px;
}
.mdc-button:not(:disabled) {
  background-color: transparent;
}
.mdc-button:disabled {
  background-color: transparent;
}
.mdc-button .mdc-button__icon {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 8px;
  display: inline-block;
  width: 18px;
  height: 18px;
  font-size: 18px;
  vertical-align: top;
}
[dir=rtl] .mdc-button .mdc-button__icon, .mdc-button .mdc-button__icon[dir=rtl] {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0;
}
.mdc-button .mdc-button__touch {
  position: absolute;
  top: 50%;
  right: 0;
  height: 48px;
  left: 0;
  transform: translateY(-50%);
}
.mdc-button:not(:disabled) {
  color: #4ecdc4;
  /* @alternate */
  color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-button:disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mdc-button__label + .mdc-button__icon {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-button__label + .mdc-button__icon, .mdc-button__label + .mdc-button__icon[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 8px;
}
svg.mdc-button__icon {
  fill: currentColor;
}
.mdc-button--raised .mdc-button__icon,
.mdc-button--unelevated .mdc-button__icon,
.mdc-button--outlined .mdc-button__icon {
  /* @noflip */
  margin-left: -4px;
  /* @noflip */
  margin-right: 8px;
}
[dir=rtl] .mdc-button--raised .mdc-button__icon, .mdc-button--raised .mdc-button__icon[dir=rtl],
[dir=rtl] .mdc-button--unelevated .mdc-button__icon,
.mdc-button--unelevated .mdc-button__icon[dir=rtl],
[dir=rtl] .mdc-button--outlined .mdc-button__icon,
.mdc-button--outlined .mdc-button__icon[dir=rtl] {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: -4px;
}
.mdc-button--raised .mdc-button__label + .mdc-button__icon,
.mdc-button--unelevated .mdc-button__label + .mdc-button__icon,
.mdc-button--outlined .mdc-button__label + .mdc-button__icon {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: -4px;
}
[dir=rtl] .mdc-button--raised .mdc-button__label + .mdc-button__icon, .mdc-button--raised .mdc-button__label + .mdc-button__icon[dir=rtl],
[dir=rtl] .mdc-button--unelevated .mdc-button__label + .mdc-button__icon,
.mdc-button--unelevated .mdc-button__label + .mdc-button__icon[dir=rtl],
[dir=rtl] .mdc-button--outlined .mdc-button__label + .mdc-button__icon,
.mdc-button--outlined .mdc-button__label + .mdc-button__icon[dir=rtl] {
  /* @noflip */
  margin-left: -4px;
  /* @noflip */
  margin-right: 8px;
}
.mdc-button--raised,
.mdc-button--unelevated {
  padding: 0 16px 0 16px;
}
.mdc-button--raised:not(:disabled),
.mdc-button--unelevated:not(:disabled) {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-button--raised:not(:disabled),
.mdc-button--unelevated:not(:disabled) {
  color: #000;
  /* @alternate */
  color: var(--mdc-theme-on-primary, #000);
}
.mdc-button--raised:disabled,
.mdc-button--unelevated:disabled {
  background-color: rgba(0, 0, 0, 0.12);
}
.mdc-button--raised:disabled,
.mdc-button--unelevated:disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mdc-button--raised {
  /* @alternate */
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-button--raised:hover, .mdc-button--raised:focus {
  /* @alternate */
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mdc-button--raised:active {
  /* @alternate */
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mdc-button--raised:disabled {
  /* @alternate */
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mdc-button--outlined {
  padding: 0 15px 0 15px;
  border-width: 1px;
  border-style: solid;
}
.mdc-button--outlined .mdc-button__ripple {
  top: -1px;
  left: -1px;
  border: 1px solid transparent;
}
.mdc-button--outlined:not(:disabled) {
  border-color: rgba(0, 0, 0, 0.12);
}
.mdc-button--outlined:disabled {
  border-color: rgba(0, 0, 0, 0.12);
}
.mdc-button--touch {
  margin-top: 6px;
  margin-bottom: 6px;
}
.mdc-button {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.mdc-button .mdc-button__ripple::before,
.mdc-button .mdc-button__ripple::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.mdc-button .mdc-button__ripple::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.mdc-button.mdc-ripple-upgraded--unbounded .mdc-button__ripple::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.mdc-button.mdc-ripple-upgraded--foreground-activation .mdc-button__ripple::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.mdc-button.mdc-ripple-upgraded--foreground-deactivation .mdc-button__ripple::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-button .mdc-button__ripple::before,
.mdc-button .mdc-button__ripple::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.mdc-button.mdc-ripple-upgraded .mdc-button__ripple::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-button .mdc-button__ripple::before, .mdc-button .mdc-button__ripple::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-button:hover .mdc-button__ripple::before {
  opacity: 0.08;
}
.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before, .mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before {
  transition-duration: 75ms;
  opacity: 0.24;
}
.mdc-button:not(.mdc-ripple-upgraded) .mdc-button__ripple::after {
  transition: opacity 150ms linear;
}
.mdc-button:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after {
  transition-duration: 75ms;
  opacity: 0.24;
}
.mdc-button.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24;
}
.mdc-button .mdc-button__ripple {
  position: absolute;
  box-sizing: content-box;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.mdc-button:not(.mdc-button--outlined) .mdc-button__ripple {
  top: 0;
  left: 0;
}
.mdc-button--raised .mdc-button__ripple::before, .mdc-button--raised .mdc-button__ripple::after,
.mdc-button--unelevated .mdc-button__ripple::before,
.mdc-button--unelevated .mdc-button__ripple::after {
  background-color: #000;
  /* @alternate */
  background-color: var(--mdc-theme-on-primary, #000);
}
.mdc-button--raised:hover .mdc-button__ripple::before,
.mdc-button--unelevated:hover .mdc-button__ripple::before {
  opacity: 0.04;
}
.mdc-button--raised.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before, .mdc-button--raised:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before,
.mdc-button--unelevated.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,
.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-button--raised:not(.mdc-ripple-upgraded) .mdc-button__ripple::after,
.mdc-button--unelevated:not(.mdc-ripple-upgraded) .mdc-button__ripple::after {
  transition: opacity 150ms linear;
}
.mdc-button--raised:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after,
.mdc-button--unelevated:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-button--raised.mdc-ripple-upgraded,
.mdc-button--unelevated.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.mdc-button {
  height: 36px;
}
.button-primary:not(:disabled) {
  background-color: #4ecdc4;
}
.button-primary:not(:disabled) {
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87));
}
.button-primary .mdc-button__ripple::before, .button-primary .mdc-button__ripple::after {
  background-color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  background-color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87));
}
.button-primary:hover .mdc-button__ripple::before {
  opacity: 0.04;
}
.button-primary.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before, .button-primary:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.button-primary:not(.mdc-ripple-upgraded) .mdc-button__ripple::after {
  transition: opacity 150ms linear;
}
.button-primary:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.button-primary.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.button-secondary:not(:disabled) {
  background-color: #ff9f1c;
}
.button-secondary:not(:disabled) {
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87));
}
.button-secondary .mdc-button__ripple::before, .button-secondary .mdc-button__ripple::after {
  background-color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  background-color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87));
}
.button-secondary:hover .mdc-button__ripple::before {
  opacity: 0.04;
}
.button-secondary.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before, .button-secondary:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.button-secondary:not(.mdc-ripple-upgraded) .mdc-button__ripple::after {
  transition: opacity 150ms linear;
}
.button-secondary:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.button-secondary.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.mdc-drawer {
  border-color: rgba(0, 0, 0, 0.12);
  background-color: #fff;
  /* @noflip */
  border-radius: 0 0 0 0;
  z-index: 6;
  width: 256px;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 100%;
  /* @noflip */
  border-right-width: 1px;
  /* @noflip */
  border-right-style: solid;
  overflow: hidden;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-drawer .mdc-drawer__title {
  color: rgba(0, 0, 0, 0.87);
}
.mdc-drawer .mdc-list-group__subheader {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-drawer .mdc-drawer__subtitle {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-drawer .mdc-list-item__graphic {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-drawer .mdc-list-item {
  color: rgba(0, 0, 0, 0.87);
}
.mdc-drawer .mdc-list-item--activated .mdc-list-item__graphic {
  color: #4ecdc4;
}
.mdc-drawer .mdc-list-item--activated {
  color: rgba(78, 205, 196, 0.87);
}
[dir=rtl] .mdc-drawer, .mdc-drawer[dir=rtl] {
  /* @noflip */
  border-radius: 0 0 0 0;
}
.mdc-drawer .mdc-list-item {
  border-radius: 4px;
}
.mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {
  /* @noflip */
  margin-left: 256px;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 256px;
}
[dir=rtl] .mdc-drawer, .mdc-drawer[dir=rtl] {
  /* @noflip */
  border-right-width: 0;
  /* @noflip */
  border-left-width: 1px;
  /* @noflip */
  border-right-style: none;
  /* @noflip */
  border-left-style: solid;
}
.mdc-drawer .mdc-list-item {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle2-font-size, 0.875rem);
  line-height: 1.375rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle2-line-height, 1.375rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle2-font-weight, 500);
  letter-spacing: 0.0071428571em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle2-letter-spacing, 0.0071428571em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle2-text-transform, inherit);
  height: calc(48px - 2 * 4px);
  margin: 8px 8px;
  padding: 0 8px;
}
.mdc-drawer .mdc-list-item:nth-child(1) {
  margin-top: 2px;
}
.mdc-drawer .mdc-list-item:nth-last-child(1) {
  margin-bottom: 0;
}
.mdc-drawer .mdc-list-group__subheader {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin: 0;
  padding: 0 16px;
}
.mdc-drawer .mdc-list-group__subheader::before {
  display: inline-block;
  width: 0;
  height: 24px;
  content: "";
  vertical-align: 0;
}
.mdc-drawer .mdc-list-divider {
  margin: 3px 0 4px;
}
.mdc-drawer .mdc-list-item__text,
.mdc-drawer .mdc-list-item__graphic {
  pointer-events: none;
}
.mdc-drawer--animate {
  transform: translateX(-100%);
}
[dir=rtl] .mdc-drawer--animate, .mdc-drawer--animate[dir=rtl] {
  transform: translateX(100%);
}
.mdc-drawer--opening {
  transform: translateX(0);
  transition-duration: 250ms;
}
[dir=rtl] .mdc-drawer--opening, .mdc-drawer--opening[dir=rtl] {
  transform: translateX(0);
}
.mdc-drawer--closing {
  transform: translateX(-100%);
  transition-duration: 200ms;
}
[dir=rtl] .mdc-drawer--closing, .mdc-drawer--closing[dir=rtl] {
  transform: translateX(100%);
}
.mdc-drawer__header {
  flex-shrink: 0;
  box-sizing: border-box;
  min-height: 64px;
  padding: 0 16px 4px;
}
.mdc-drawer__title {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1.25rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline6-font-size, 1.25rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline6-line-height, 2rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-headline6-font-weight, 500);
  letter-spacing: 0.0125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline6-letter-spacing, 0.0125em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline6-text-transform, inherit);
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
}
.mdc-drawer__title::before {
  display: inline-block;
  width: 0;
  height: 36px;
  content: "";
  vertical-align: 0;
}
.mdc-drawer__title::after {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: -20px;
}
.mdc-drawer__subtitle {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: 0;
}
.mdc-drawer__subtitle::before {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: 0;
}
.mdc-drawer__content {
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mdc-drawer--dismissible {
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  display: none;
  position: absolute;
}
[dir=rtl] .mdc-drawer--dismissible, .mdc-drawer--dismissible[dir=rtl] {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 0;
}
.mdc-drawer--dismissible.mdc-drawer--open {
  display: flex;
}
.mdc-drawer-app-content {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
  position: relative;
}
[dir=rtl] .mdc-drawer-app-content, .mdc-drawer-app-content[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
}
.mdc-drawer--modal {
  /* @alternate */
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  display: none;
  position: fixed;
}
.mdc-drawer--modal + .mdc-drawer-scrim {
  background-color: rgba(0, 0, 0, 0.32);
}
[dir=rtl] .mdc-drawer--modal, .mdc-drawer--modal[dir=rtl] {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 0;
}
.mdc-drawer--modal.mdc-drawer--open {
  display: flex;
}
.mdc-drawer-scrim {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-drawer--open + .mdc-drawer-scrim {
  display: block;
}
.mdc-drawer--animate + .mdc-drawer-scrim {
  opacity: 0;
}
.mdc-drawer--opening + .mdc-drawer-scrim {
  transition-duration: 250ms;
  opacity: 1;
}
.mdc-drawer--closing + .mdc-drawer-scrim {
  transition-duration: 200ms;
  opacity: 0;
}
.mdc-drawer {
  border-color: rgba(0, 0, 0, 0.12);
  background-color: #fff;
  /* @noflip */
  border-radius: 0 0 0 0;
  z-index: 6;
  width: 256px;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 100%;
  /* @noflip */
  border-right-width: 1px;
  /* @noflip */
  border-right-style: solid;
  overflow: hidden;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-drawer .mdc-drawer__title {
  color: rgba(0, 0, 0, 0.87);
}
.mdc-drawer .mdc-list-group__subheader {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-drawer .mdc-drawer__subtitle {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-drawer .mdc-list-item__graphic {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-drawer .mdc-list-item {
  color: rgba(0, 0, 0, 0.87);
}
.mdc-drawer .mdc-list-item--activated .mdc-list-item__graphic {
  color: #4ecdc4;
}
.mdc-drawer .mdc-list-item--activated {
  color: rgba(78, 205, 196, 0.87);
}
[dir=rtl] .mdc-drawer, .mdc-drawer[dir=rtl] {
  /* @noflip */
  border-radius: 0 0 0 0;
}
.mdc-drawer .mdc-list-item {
  border-radius: 4px;
}
.mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {
  /* @noflip */
  margin-left: 256px;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 256px;
}
[dir=rtl] .mdc-drawer, .mdc-drawer[dir=rtl] {
  /* @noflip */
  border-right-width: 0;
  /* @noflip */
  border-left-width: 1px;
  /* @noflip */
  border-right-style: none;
  /* @noflip */
  border-left-style: solid;
}
.mdc-drawer .mdc-list-item {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle2-font-size, 0.875rem);
  line-height: 1.375rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle2-line-height, 1.375rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle2-font-weight, 500);
  letter-spacing: 0.0071428571em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle2-letter-spacing, 0.0071428571em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle2-text-transform, inherit);
  height: calc(48px - 2 * 4px);
  margin: 8px 8px;
  padding: 0 8px;
}
.mdc-drawer .mdc-list-item:nth-child(1) {
  margin-top: 2px;
}
.mdc-drawer .mdc-list-item:nth-last-child(1) {
  margin-bottom: 0;
}
.mdc-drawer .mdc-list-group__subheader {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin: 0;
  padding: 0 16px;
}
.mdc-drawer .mdc-list-group__subheader::before {
  display: inline-block;
  width: 0;
  height: 24px;
  content: "";
  vertical-align: 0;
}
.mdc-drawer .mdc-list-divider {
  margin: 3px 0 4px;
}
.mdc-drawer .mdc-list-item__text,
.mdc-drawer .mdc-list-item__graphic {
  pointer-events: none;
}
.mdc-drawer--animate {
  transform: translateX(-100%);
}
[dir=rtl] .mdc-drawer--animate, .mdc-drawer--animate[dir=rtl] {
  transform: translateX(100%);
}
.mdc-drawer--opening {
  transform: translateX(0);
  transition-duration: 250ms;
}
[dir=rtl] .mdc-drawer--opening, .mdc-drawer--opening[dir=rtl] {
  transform: translateX(0);
}
.mdc-drawer--closing {
  transform: translateX(-100%);
  transition-duration: 200ms;
}
[dir=rtl] .mdc-drawer--closing, .mdc-drawer--closing[dir=rtl] {
  transform: translateX(100%);
}
.mdc-drawer__header {
  flex-shrink: 0;
  box-sizing: border-box;
  min-height: 64px;
  padding: 0 16px 4px;
}
.mdc-drawer__title {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1.25rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline6-font-size, 1.25rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline6-line-height, 2rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-headline6-font-weight, 500);
  letter-spacing: 0.0125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline6-letter-spacing, 0.0125em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline6-text-transform, inherit);
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
}
.mdc-drawer__title::before {
  display: inline-block;
  width: 0;
  height: 36px;
  content: "";
  vertical-align: 0;
}
.mdc-drawer__title::after {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: -20px;
}
.mdc-drawer__subtitle {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: 0;
}
.mdc-drawer__subtitle::before {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: 0;
}
.mdc-drawer__content {
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mdc-drawer--dismissible {
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  display: none;
  position: absolute;
}
[dir=rtl] .mdc-drawer--dismissible, .mdc-drawer--dismissible[dir=rtl] {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 0;
}
.mdc-drawer--dismissible.mdc-drawer--open {
  display: flex;
}
.mdc-drawer-app-content {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
  position: relative;
}
[dir=rtl] .mdc-drawer-app-content, .mdc-drawer-app-content[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
}
.mdc-drawer--modal {
  /* @alternate */
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  display: none;
  position: fixed;
}
.mdc-drawer--modal + .mdc-drawer-scrim {
  background-color: rgba(0, 0, 0, 0.32);
}
[dir=rtl] .mdc-drawer--modal, .mdc-drawer--modal[dir=rtl] {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 0;
}
.mdc-drawer--modal.mdc-drawer--open {
  display: flex;
}
.mdc-drawer-scrim {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-drawer--open + .mdc-drawer-scrim {
  display: block;
}
.mdc-drawer--animate + .mdc-drawer-scrim {
  opacity: 0;
}
.mdc-drawer--opening + .mdc-drawer-scrim {
  transition-duration: 250ms;
  opacity: 1;
}
.mdc-drawer--closing + .mdc-drawer-scrim {
  transition-duration: 200ms;
  opacity: 0;
}
.mdc-list {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle1-font-size, 1rem);
  line-height: 1.75rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle1-line-height, 1.75rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle1-font-weight, 400);
  letter-spacing: 0.009375em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle1-text-transform, inherit);
  /* @alternate */
  line-height: 1.5rem;
  margin: 0;
  padding: 8px 0;
  list-style-type: none;
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}
.mdc-list:focus {
  outline: none;
}
.mdc-list-item {
  height: 48px;
}
.mdc-list-item__secondary-text {
  color: rgba(0, 0, 0, 0.54);
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));
}
.mdc-list-item__graphic {
  background-color: transparent;
}
.mdc-list-item__graphic {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38));
}
.mdc-list-item__meta {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38));
}
.mdc-list-group__subheader {
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
}
.mdc-list-item--disabled .mdc-list-item__text {
  opacity: 0.38;
}
.mdc-list-item--disabled .mdc-list-item__text,
.mdc-list-item--disabled .mdc-list-item__primary-text,
.mdc-list-item--disabled .mdc-list-item__secondary-text {
  color: #000;
  /* @alternate */
  color: var(--mdc-theme-on-surface, #000);
}
.mdc-list--dense {
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: 0.812rem;
}
.mdc-list-item {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: flex-start;
  padding: 0 16px;
  overflow: hidden;
}
.mdc-list-item:focus {
  outline: none;
}
.mdc-list-item--selected,
.mdc-list-item--activated {
  color: #4ecdc4;
  /* @alternate */
  color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-list-item--selected .mdc-list-item__graphic,
.mdc-list-item--activated .mdc-list-item__graphic {
  color: #4ecdc4;
  /* @alternate */
  color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 32px;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  fill: currentColor;
}
.mdc-list-item[dir=rtl] .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 32px;
  /* @noflip */
  margin-right: 0;
}
.mdc-list .mdc-list-item__graphic {
  display: inline-flex;
}
.mdc-list-item__meta {
  /* @noflip */
  margin-left: auto;
  /* @noflip */
  margin-right: 0;
}
.mdc-list-item__meta:not(.material-icons) {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.75rem;
  /* @alternate */
  font-size: var(--mdc-typography-caption-font-size, 0.75rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-caption-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-caption-font-weight, 400);
  letter-spacing: 0.0333333333em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-caption-letter-spacing, 0.0333333333em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
          text-decoration: var(--mdc-typography-caption-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-caption-text-transform, inherit);
}
.mdc-list-item[dir=rtl] .mdc-list-item__meta, [dir=rtl] .mdc-list-item .mdc-list-item__meta {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: auto;
}
.mdc-list-item__text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.mdc-list-item__text[for] {
  pointer-events: none;
}
.mdc-list-item__primary-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
  display: block;
}
.mdc-list-item__primary-text::before {
  display: inline-block;
  width: 0;
  height: 32px;
  content: "";
  vertical-align: 0;
}
.mdc-list-item__primary-text::after {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: -20px;
}
.mdc-list--dense .mdc-list-item__primary-text {
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
}
.mdc-list--dense .mdc-list-item__primary-text::before {
  display: inline-block;
  width: 0;
  height: 24px;
  content: "";
  vertical-align: 0;
}
.mdc-list--dense .mdc-list-item__primary-text::after {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: -20px;
}
.mdc-list-item__secondary-text {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  display: block;
}
.mdc-list-item__secondary-text::before {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: 0;
}
.mdc-list--dense .mdc-list-item__secondary-text {
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  font-size: inherit;
}
.mdc-list--dense .mdc-list-item__secondary-text::before {
  display: inline-block;
  width: 0;
  height: 20px;
  content: "";
  vertical-align: 0;
}
.mdc-list--dense .mdc-list-item {
  height: 40px;
}
.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 36px;
  width: 20px;
  height: 20px;
}
.mdc-list-item[dir=rtl] .mdc-list--dense .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 36px;
  /* @noflip */
  margin-right: 0;
}
.mdc-list--avatar-list .mdc-list-item {
  height: 56px;
}
.mdc-list--avatar-list .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
}
.mdc-list-item[dir=rtl] .mdc-list--avatar-list .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list--avatar-list .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 16px;
  /* @noflip */
  margin-right: 0;
}
.mdc-list--two-line .mdc-list-item__text {
  align-self: flex-start;
}
.mdc-list--two-line .mdc-list-item {
  height: 72px;
}
.mdc-list--two-line.mdc-list--dense .mdc-list-item,
.mdc-list--avatar-list.mdc-list--dense .mdc-list-item {
  height: 60px;
}
.mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 20px;
  width: 36px;
  height: 36px;
}
.mdc-list-item[dir=rtl] .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic, [dir=rtl] .mdc-list-item .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 20px;
  /* @noflip */
  margin-right: 0;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {
  cursor: pointer;
}
a.mdc-list-item {
  color: inherit;
  text-decoration: none;
}
.mdc-list-divider {
  height: 0;
  margin: 0;
  border: none;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.mdc-list-divider {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}
.mdc-list-divider--padded {
  margin: 0 16px;
}
.mdc-list-divider--inset {
  /* @noflip */
  margin-left: 72px;
  /* @noflip */
  margin-right: 0;
  width: calc(100% - 72px);
}
.mdc-list-group[dir=rtl] .mdc-list-divider--inset, [dir=rtl] .mdc-list-group .mdc-list-divider--inset {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 72px;
}
.mdc-list-divider--inset.mdc-list-divider--padded {
  width: calc(100% - 72px - 16px);
}
.mdc-list-group .mdc-list {
  padding: 0;
}
.mdc-list-group__subheader {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle1-font-size, 1rem);
  line-height: 1.75rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle1-line-height, 1.75rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle1-font-weight, 400);
  letter-spacing: 0.009375em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle1-letter-spacing, 0.009375em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle1-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle1-text-transform, inherit);
  margin: calc((3rem - 1.5rem) / 2) 16px;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
  background-color: #000;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:hover::before {
  opacity: 0.04;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before {
  opacity: 0.24;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:hover::before {
  opacity: 0.32;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.48;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.48;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.48;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before {
  opacity: 0.16;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:hover::before {
  opacity: 0.24;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.4;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.4;
}
:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.4;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
  background-color: #000;
}
:not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--background-focused::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.24;
}
.mdc-card {
  border-radius: 4px;
  background-color: #fff;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #fff);
  /* @alternate */
  position: relative;
  /* @alternate */
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.mdc-card .mdc-elevation-overlay {
  width: 100%;
  height: 100%;
  top: 0;
  /* @noflip */
  left: 0;
}
.mdc-card--outlined {
  /* @alternate */
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  border-width: 1px;
  border-style: solid;
  border-color: #e0e0e0;
}
.mdc-card__media {
  position: relative;
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.mdc-card__media::before {
  display: block;
  content: "";
}
.mdc-card__media:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.mdc-card__media:last-child {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}
.mdc-card__media--square::before {
  margin-top: 100%;
}
.mdc-card__media--16-9::before {
  margin-top: 56.25%;
}
.mdc-card__media-content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}
.mdc-card__primary-action {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  position: relative;
  outline: none;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
}
.mdc-card__primary-action:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.mdc-card__primary-action:last-child {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}
.mdc-card__actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
  min-height: 52px;
  padding: 8px;
}
.mdc-card__actions--full-bleed {
  padding: 0;
}
.mdc-card__action-buttons,
.mdc-card__action-icons {
  display: flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
}
.mdc-card__action-icons {
  color: rgba(0, 0, 0, 0.6);
  flex-grow: 1;
  justify-content: flex-end;
}
.mdc-card__action-buttons + .mdc-card__action-icons {
  /* @noflip */
  margin-left: 16px;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-card__action-buttons + .mdc-card__action-icons, .mdc-card__action-buttons + .mdc-card__action-icons[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 16px;
}
.mdc-card__action {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
  justify-content: center;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}
.mdc-card__action:focus {
  outline: none;
}
.mdc-card__action--button {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 8px;
  padding: 0 8px;
}
[dir=rtl] .mdc-card__action--button, .mdc-card__action--button[dir=rtl] {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0;
}
.mdc-card__action--button:last-child {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-card__action--button:last-child, .mdc-card__action--button:last-child[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
}
.mdc-card__actions--full-bleed .mdc-card__action--button {
  justify-content: space-between;
  width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 8px 16px;
  /* @noflip */
  text-align: left;
}
[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button, .mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl] {
  /* @noflip */
  text-align: right;
}
.mdc-card__action--icon {
  margin: -6px 0;
  padding: 12px;
}
.mdc-card__action--icon:not(:disabled) {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-card__primary-action {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.mdc-card__primary-action::before, .mdc-card__primary-action::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.mdc-card__primary-action::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.mdc-card__primary-action.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-card__primary-action.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.mdc-card__primary-action.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.mdc-card__primary-action.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.mdc-card__primary-action.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-card__primary-action::before, .mdc-card__primary-action::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.mdc-card__primary-action.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-card__primary-action::before, .mdc-card__primary-action::after {
  background-color: #000;
}
.mdc-card__primary-action:hover::before {
  opacity: 0.04;
}
.mdc-card__primary-action.mdc-ripple-upgraded--background-focused::before, .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-card__primary-action:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.mdc-card__primary-action:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-card__primary-action.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.mdc-card {
  border-radius: 4px;
  background-color: #fff;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #fff);
  /* @alternate */
  position: relative;
  /* @alternate */
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.mdc-card .mdc-elevation-overlay {
  width: 100%;
  height: 100%;
  top: 0;
  /* @noflip */
  left: 0;
}
.mdc-card--outlined {
  /* @alternate */
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  border-width: 1px;
  border-style: solid;
  border-color: #e0e0e0;
}
.mdc-card__media {
  position: relative;
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.mdc-card__media::before {
  display: block;
  content: "";
}
.mdc-card__media:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.mdc-card__media:last-child {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}
.mdc-card__media--square::before {
  margin-top: 100%;
}
.mdc-card__media--16-9::before {
  margin-top: 56.25%;
}
.mdc-card__media-content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
}
.mdc-card__primary-action {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  position: relative;
  outline: none;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
}
.mdc-card__primary-action:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.mdc-card__primary-action:last-child {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}
.mdc-card__actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
  min-height: 52px;
  padding: 8px;
}
.mdc-card__actions--full-bleed {
  padding: 0;
}
.mdc-card__action-buttons,
.mdc-card__action-icons {
  display: flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
}
.mdc-card__action-icons {
  color: rgba(0, 0, 0, 0.6);
  flex-grow: 1;
  justify-content: flex-end;
}
.mdc-card__action-buttons + .mdc-card__action-icons {
  /* @noflip */
  margin-left: 16px;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-card__action-buttons + .mdc-card__action-icons, .mdc-card__action-buttons + .mdc-card__action-icons[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 16px;
}
.mdc-card__action {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
  justify-content: center;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}
.mdc-card__action:focus {
  outline: none;
}
.mdc-card__action--button {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 8px;
  padding: 0 8px;
}
[dir=rtl] .mdc-card__action--button, .mdc-card__action--button[dir=rtl] {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0;
}
.mdc-card__action--button:last-child {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
}
[dir=rtl] .mdc-card__action--button:last-child, .mdc-card__action--button:last-child[dir=rtl] {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
}
.mdc-card__actions--full-bleed .mdc-card__action--button {
  justify-content: space-between;
  width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 8px 16px;
  /* @noflip */
  text-align: left;
}
[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button, .mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl] {
  /* @noflip */
  text-align: right;
}
.mdc-card__action--icon {
  margin: -6px 0;
  padding: 12px;
}
.mdc-card__action--icon:not(:disabled) {
  color: rgba(0, 0, 0, 0.6);
}
.mdc-card__primary-action {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.mdc-card__primary-action::before, .mdc-card__primary-action::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.mdc-card__primary-action::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.mdc-card__primary-action.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-card__primary-action.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.mdc-card__primary-action.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.mdc-card__primary-action.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.mdc-card__primary-action.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-card__primary-action::before, .mdc-card__primary-action::after {
  top: calc(50% - 100%);
  /* @noflip */
  left: calc(50% - 100%);
  width: 200%;
  height: 200%;
}
.mdc-card__primary-action.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-card__primary-action::before, .mdc-card__primary-action::after {
  background-color: #000;
}
.mdc-card__primary-action:hover::before {
  opacity: 0.04;
}
.mdc-card__primary-action.mdc-ripple-upgraded--background-focused::before, .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-card__primary-action:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.mdc-card__primary-action:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-card__primary-action.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.card-thick-outline {
  border-width: 2px;
  border-style: solid;
  border-color: lightgrey;
}
.mdc-data-table__content {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
}
.mdc-data-table {
  background-color: #fff;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #fff);
  border-radius: 4px;
  border-width: 1px;
  border-style: solid;
  border-color: rgba(0, 0, 0, 0.12);
  -webkit-overflow-scrolling: touch;
  display: inline-flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow-x: auto;
}
.mdc-data-table__row {
  background-color: inherit;
}
.mdc-data-table__header-row {
  background-color: inherit;
}
.mdc-data-table__row--selected {
  background-color: rgba(78, 205, 196, 0.04);
}
.mdc-data-table__row {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mdc-data-table__row {
  border-top-width: 1px;
  border-top-style: solid;
}
.mdc-data-table__row:not(.mdc-data-table__row--selected):hover {
  background-color: rgba(0, 0, 0, 0.04);
}
.mdc-data-table__header-cell {
  color: rgba(0, 0, 0, 0.87);
}
.mdc-data-table__cell {
  color: rgba(0, 0, 0, 0.87);
}
.mdc-data-table__cell {
  height: 52px;
}
.mdc-data-table__header-cell {
  height: 56px;
}
.mdc-data-table__cell,
.mdc-data-table__header-cell {
  padding-right: 16px;
  padding-left: 16px;
}
.mdc-data-table__header-cell--checkbox,
.mdc-data-table__cell--checkbox {
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 0;
}
[dir=rtl] .mdc-data-table__header-cell--checkbox, .mdc-data-table__header-cell--checkbox[dir=rtl],
[dir=rtl] .mdc-data-table__cell--checkbox,
.mdc-data-table__cell--checkbox[dir=rtl] {
  /* @noflip */
  padding-left: 0;
  /* @noflip */
  padding-right: 16px;
}
.mdc-data-table__table {
  min-width: 100%;
  border: 0;
  white-space: nowrap;
  border-collapse: collapse;
  /**
   * With table-layout:fixed, table and column widths are defined by the width
   * of the first row of cells. Cells in subsequent rows do not affect column
   * widths. This results in a predictable table layout and may also speed up
   * rendering.
   */
  table-layout: fixed;
}
.mdc-data-table__cell {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-body2-font-size, 0.875rem);
  line-height: 1.25rem;
  /* @alternate */
  line-height: var(--mdc-typography-body2-line-height, 1.25rem);
  font-weight: 400;
  /* @alternate */
  font-weight: var(--mdc-typography-body2-font-weight, 400);
  letter-spacing: 0.0178571429em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-body2-letter-spacing, 0.0178571429em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-body2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-body2-text-transform, inherit);
  box-sizing: border-box;
  text-overflow: ellipsis;
  overflow: hidden;
}
.mdc-data-table__cell--numeric {
  text-align: right;
}
[dir=rtl] .mdc-data-table__cell--numeric, .mdc-data-table__cell--numeric[dir=rtl] {
  /* @noflip */
  text-align: left;
}
.mdc-data-table__header-cell {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 0.875rem;
  /* @alternate */
  font-size: var(--mdc-typography-subtitle2-font-size, 0.875rem);
  line-height: 1.375rem;
  /* @alternate */
  line-height: var(--mdc-typography-subtitle2-line-height, 1.375rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-subtitle2-font-weight, 500);
  letter-spacing: 0.0071428571em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-subtitle2-letter-spacing, 0.0071428571em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
          text-decoration: var(--mdc-typography-subtitle2-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-subtitle2-text-transform, inherit);
  box-sizing: border-box;
  text-align: left;
  text-overflow: ellipsis;
  overflow: hidden;
}
[dir=rtl] .mdc-data-table__header-cell, .mdc-data-table__header-cell[dir=rtl] {
  /* @noflip */
  text-align: right;
}
.mdc-data-table__header-cell--numeric {
  text-align: right;
}
[dir=rtl] .mdc-data-table__header-cell--numeric, .mdc-data-table__header-cell--numeric[dir=rtl] {
  /* @noflip */
  text-align: left;
}
.mdc-data-table__header-row-checkbox .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background::before,
.mdc-data-table__header-row-checkbox .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background::before,
.mdc-data-table__row-checkbox .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background::before,
.mdc-data-table__row-checkbox .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background::before {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before, .mdc-data-table__header-row-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after,
.mdc-data-table__row-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before,
.mdc-data-table__row-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before,
.mdc-data-table__row-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before {
  opacity: 0.08;
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before, .mdc-data-table__header-row-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before,
.mdc-data-table__row-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,
.mdc-data-table__row-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before {
  transition-duration: 75ms;
  opacity: 0.24;
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after,
.mdc-data-table__row-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after {
  transition: opacity 150ms linear;
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after,
.mdc-data-table__row-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after {
  transition-duration: 75ms;
  opacity: 0.24;
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded,
.mdc-data-table__row-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24;
}
.mdc-data-table__header-row-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,
.mdc-data-table__header-row-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after,
.mdc-data-table__row-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,
.mdc-data-table__row-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
.mdc-data-table__header-row-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {
  border-color: rgba(0, 0, 0, 0.54);
  background-color: transparent;
}
.mdc-data-table__header-row-checkbox .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
.mdc-data-table__header-row-checkbox .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox .mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {
  border-color: #4ecdc4;
  /* @alternate */
  border-color: var(--mdc-theme-primary, #4ecdc4);
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
}
@keyframes mdc-checkbox-fade-in-background-8A000000primary00000000primary {
  0% {
    border-color: rgba(0, 0, 0, 0.54);
    background-color: transparent;
  }
  50% {
    border-color: #4ecdc4;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #4ecdc4);
    background-color: #4ecdc4;
    /* @alternate */
    background-color: var(--mdc-theme-primary, #4ecdc4);
  }
}
@keyframes mdc-checkbox-fade-out-background-8A000000primary00000000primary {
  0%, 80% {
    border-color: #4ecdc4;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #4ecdc4);
    background-color: #4ecdc4;
    /* @alternate */
    background-color: var(--mdc-theme-primary, #4ecdc4);
  }
  100% {
    border-color: rgba(0, 0, 0, 0.54);
    background-color: transparent;
  }
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-data-table__header-row-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  animation-name: mdc-checkbox-fade-in-background-8A000000primary00000000primary;
}
.mdc-data-table__header-row-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-data-table__header-row-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background,
.mdc-data-table__row-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  animation-name: mdc-checkbox-fade-out-background-8A000000primary00000000primary;
}
.mdc-top-app-bar {
  background-color: #4ecdc4;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #4ecdc4);
  color: rgba(0, 0, 0, 0.87);
  display: flex;
  position: fixed;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  z-index: 4;
}
.mdc-top-app-bar .mdc-top-app-bar__action-item,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon {
  color: #000;
  /* @alternate */
  color: var(--mdc-theme-on-primary, #000);
}
.mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {
  background-color: #000;
  /* @alternate */
  background-color: var(--mdc-theme-on-primary, #000);
}
.mdc-top-app-bar .mdc-top-app-bar__action-item:hover::before,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:hover::before {
  opacity: 0.04;
}
.mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded--background-focused::before, .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):focus::before,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--background-focused::before,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded)::after,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):active::after,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded,
.mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
.mdc-top-app-bar__row {
  display: flex;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 64px;
}
.mdc-top-app-bar__section {
  display: inline-flex;
  flex: 1 1 auto;
  align-items: center;
  min-width: 0;
  padding: 8px 12px;
  z-index: 1;
}
.mdc-top-app-bar__section--align-start {
  justify-content: flex-start;
  order: -1;
}
.mdc-top-app-bar__section--align-end {
  justify-content: flex-end;
  order: 1;
}
.mdc-top-app-bar__title {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: Roboto, sans-serif;
  /* @alternate */
  font-family: var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));
  font-size: 1.25rem;
  /* @alternate */
  font-size: var(--mdc-typography-headline6-font-size, 1.25rem);
  line-height: 2rem;
  /* @alternate */
  line-height: var(--mdc-typography-headline6-line-height, 2rem);
  font-weight: 500;
  /* @alternate */
  font-weight: var(--mdc-typography-headline6-font-weight, 500);
  letter-spacing: 0.0125em;
  /* @alternate */
  letter-spacing: var(--mdc-typography-headline6-letter-spacing, 0.0125em);
  text-decoration: inherit;
  /* @alternate */
  -webkit-text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
          text-decoration: var(--mdc-typography-headline6-text-decoration, inherit);
  text-transform: inherit;
  /* @alternate */
  text-transform: var(--mdc-typography-headline6-text-transform, inherit);
  /* @noflip */
  padding-left: 20px;
  /* @noflip */
  padding-right: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  z-index: 1;
}
[dir=rtl] .mdc-top-app-bar__title, .mdc-top-app-bar__title[dir=rtl] {
  /* @noflip */
  padding-left: 0;
  /* @noflip */
  padding-right: 20px;
}
.mdc-top-app-bar--short-collapsed {
  /* @noflip */
  border-radius: 0 0 24px 0;
}
[dir=rtl] .mdc-top-app-bar--short-collapsed, .mdc-top-app-bar--short-collapsed[dir=rtl] {
  /* @noflip */
  border-radius: 0 0 0 24px;
}
.mdc-top-app-bar--short {
  top: 0;
  /* @noflip */
  right: auto;
  /* @noflip */
  left: 0;
  width: 100%;
  transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1);
}
[dir=rtl] .mdc-top-app-bar--short, .mdc-top-app-bar--short[dir=rtl] {
  /* @noflip */
  right: 0;
  /* @noflip */
  left: auto;
}
.mdc-top-app-bar--short .mdc-top-app-bar__row {
  height: 56px;
}
.mdc-top-app-bar--short .mdc-top-app-bar__section {
  padding: 4px;
}
.mdc-top-app-bar--short .mdc-top-app-bar__title {
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 1;
}
.mdc-top-app-bar--short-collapsed {
  /* @alternate */
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  width: 56px;
  transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-top-app-bar--short-collapsed .mdc-top-app-bar__title {
  display: none;
}
.mdc-top-app-bar--short-collapsed .mdc-top-app-bar__action-item {
  transition: padding 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
.mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item {
  width: 112px;
}
.mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end {
  /* @noflip */
  padding-left: 0;
  /* @noflip */
  padding-right: 12px;
}
[dir=rtl] .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end[dir=rtl] {
  /* @noflip */
  padding-left: 12px;
  /* @noflip */
  padding-right: 0;
}
.mdc-top-app-bar--dense .mdc-top-app-bar__row {
  height: 48px;
}
.mdc-top-app-bar--dense .mdc-top-app-bar__section {
  padding: 0 4px;
}
.mdc-top-app-bar--dense .mdc-top-app-bar__title {
  /* @noflip */
  padding-left: 12px;
  /* @noflip */
  padding-right: 0;
}
[dir=rtl] .mdc-top-app-bar--dense .mdc-top-app-bar__title, .mdc-top-app-bar--dense .mdc-top-app-bar__title[dir=rtl] {
  /* @noflip */
  padding-left: 0;
  /* @noflip */
  padding-right: 12px;
}
.mdc-top-app-bar--prominent .mdc-top-app-bar__row {
  height: 128px;
}
.mdc-top-app-bar--prominent .mdc-top-app-bar__title {
  align-self: flex-end;
  padding-bottom: 2px;
}
.mdc-top-app-bar--prominent .mdc-top-app-bar__action-item,
.mdc-top-app-bar--prominent .mdc-top-app-bar__navigation-icon {
  align-self: flex-start;
}
.mdc-top-app-bar--fixed {
  transition: box-shadow 200ms linear;
}
.mdc-top-app-bar--fixed-scrolled {
  /* @alternate */
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  transition: box-shadow 200ms linear;
}
.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__row {
  height: 96px;
}
.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__section {
  padding: 0 12px;
}
.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title {
  /* @noflip */
  padding-left: 20px;
  /* @noflip */
  padding-right: 0;
  padding-bottom: 9px;
}
[dir=rtl] .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title, .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title[dir=rtl] {
  /* @noflip */
  padding-left: 0;
  /* @noflip */
  padding-right: 20px;
}
.mdc-top-app-bar--fixed-adjust {
  padding-top: 64px;
}
.mdc-top-app-bar--dense-fixed-adjust {
  padding-top: 48px;
}
.mdc-top-app-bar--short-fixed-adjust {
  padding-top: 56px;
}
.mdc-top-app-bar--prominent-fixed-adjust {
  padding-top: 128px;
}
.mdc-top-app-bar--dense-prominent-fixed-adjust {
  padding-top: 96px;
}
@media (max-width: 599px) {
  .mdc-top-app-bar__row {
    height: 56px;
  }

  .mdc-top-app-bar__section {
    padding: 4px;
  }

  .mdc-top-app-bar--short {
    transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1);
  }

  .mdc-top-app-bar--short-collapsed {
    transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1);
  }
  .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end {
    /* @noflip */
    padding-left: 0;
    /* @noflip */
    padding-right: 12px;
  }
  [dir=rtl] .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end[dir=rtl] {
    /* @noflip */
    padding-left: 12px;
    /* @noflip */
    padding-right: 0;
  }

  .mdc-top-app-bar--prominent .mdc-top-app-bar__title {
    padding-bottom: 6px;
  }

  .mdc-top-app-bar--fixed-adjust {
    padding-top: 56px;
  }
}
.mdc-icon-button {
  display: inline-block;
  position: relative;
  box-sizing: border-box;
  border: none;
  outline: none;
  background-color: transparent;
  fill: currentColor;
  color: inherit;
  font-size: 24px;
  text-decoration: none;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  width: 48px;
  height: 48px;
  padding: 12px;
}
.mdc-icon-button svg,
.mdc-icon-button img {
  width: 24px;
  height: 24px;
}
.mdc-icon-button:disabled {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));
}
.mdc-icon-button:disabled {
  cursor: default;
  pointer-events: none;
}
.mdc-icon-button__icon {
  display: inline-block;
}
.mdc-icon-button__icon.mdc-icon-button__icon--on {
  display: none;
}
.mdc-icon-button--on .mdc-icon-button__icon {
  display: none;
}
.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on {
  display: inline-block;
}
.mdc-icon-button {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.mdc-icon-button::before, .mdc-icon-button::after {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
}
.mdc-icon-button::before {
  transition: opacity 15ms linear, background-color 15ms linear;
  z-index: 1;
}
.mdc-icon-button.mdc-ripple-upgraded::before {
  transform: scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-icon-button.mdc-ripple-upgraded::after {
  top: 0;
  /* @noflip */
  left: 0;
  transform: scale(0);
  transform-origin: center center;
}
.mdc-icon-button.mdc-ripple-upgraded--unbounded::after {
  top: var(--mdc-ripple-top, 0);
  /* @noflip */
  left: var(--mdc-ripple-left, 0);
}
.mdc-icon-button.mdc-ripple-upgraded--foreground-activation::after {
  animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
}
.mdc-icon-button.mdc-ripple-upgraded--foreground-deactivation::after {
  animation: mdc-ripple-fg-opacity-out 150ms;
  transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
}
.mdc-icon-button::before, .mdc-icon-button::after {
  top: calc(50% - 50%);
  /* @noflip */
  left: calc(50% - 50%);
  width: 100%;
  height: 100%;
}
.mdc-icon-button.mdc-ripple-upgraded::before, .mdc-icon-button.mdc-ripple-upgraded::after {
  top: var(--mdc-ripple-top, calc(50% - 50%));
  /* @noflip */
  left: var(--mdc-ripple-left, calc(50% - 50%));
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-icon-button.mdc-ripple-upgraded::after {
  width: var(--mdc-ripple-fg-size, 100%);
  height: var(--mdc-ripple-fg-size, 100%);
}
.mdc-icon-button::before, .mdc-icon-button::after {
  background-color: #000;
}
.mdc-icon-button:hover::before {
  opacity: 0.04;
}
.mdc-icon-button.mdc-ripple-upgraded--background-focused::before, .mdc-icon-button:not(.mdc-ripple-upgraded):focus::before {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-icon-button:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear;
}
.mdc-icon-button:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.12;
}
.mdc-icon-button.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.12;
}
/* You can add global styles to this file, and also import other style files */
/* Color */
html, body {
  height: 100%;
}
body {
  background-color: #f7fffe;
  font-family: "Roboto";
  margin: 0;
  padding-top: 0.1px;
}
button:focus {
  outline: none;
  box-shadow: none;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uXFxzdHlsZXNcXF92YXJpYWJsZXMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1mb3JtLWZpZWxkLnNjc3MiLCIuLlxcc3R5bGVzLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtZmFiLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxmYWJcXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1pY29uLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtaW1hZ2UtbGlzdC5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWxpbmVhci1wcm9ncmVzcy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBhbmd1bGFyLW1kY1xcdGhlbWVcXGV4dGVuZFxcbWRjLWxpc3Quc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy1tZW51LnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtc2xpZGVyLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtc25hY2tiYXIuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy10YWIuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRhYlxcX21peGlucy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGhlbWVcXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRhYi1pbmRpY2F0b3JcXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAYW5ndWxhci1tZGNcXHRoZW1lXFxleHRlbmRcXG1kYy10YWItYmFyLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxtZGMtdGFiLXNjcm9sbGVyLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQGFuZ3VsYXItbWRjXFx0aGVtZVxcZXh0ZW5kXFxjZGsuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHR5cG9ncmFwaHlcXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGxpc3RcXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGxpc3RcXF92YXJpYWJsZXMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHJ0bFxcX21peGlucy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxccmlwcGxlXFxfa2V5ZnJhbWVzLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxhbmltYXRpb25cXF92YXJpYWJsZXMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHJpcHBsZVxcX21peGlucy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxccmlwcGxlXFxfdmFyaWFibGVzLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxlbGV2YXRpb25cXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGVsZXZhdGlvblxcX3ZhcmlhYmxlcy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdG91Y2gtdGFyZ2V0XFxfbWl4aW5zLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxidXR0b25cXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNoYXBlXFxfbWl4aW5zLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0b3VjaC10YXJnZXRcXF92YXJpYWJsZXMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGJ1dHRvblxcX3ZhcmlhYmxlcy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZHJhd2VyXFxfbWl4aW5zLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxkcmF3ZXJcXF92YXJpYWJsZXMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGNhcmRcXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGNhcmRcXF92YXJpYWJsZXMuc2NzcyIsIi4uXFxzdHlsZXNcXF9jYXJkLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxkYXRhLXRhYmxlXFxfbWl4aW5zLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxkYXRhLXRhYmxlXFxfdmFyaWFibGVzLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxjaGVja2JveFxcX21peGlucy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcY2hlY2tib3hcXF9rZXlmcmFtZXMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRvcC1hcHAtYmFyXFxtZGMtdG9wLWFwcC1iYXIuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRvcC1hcHAtYmFyXFxfbWl4aW5zLnNjc3MiLCIuLlxcLi5cXG5vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0b3AtYXBwLWJhclxcX3ZhcmlhYmxlcy5zY3NzIiwiLi5cXC4uXFxub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcaWNvbi1idXR0b25cXF9taXhpbnMuc2NzcyIsIi4uXFwuLlxcbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGljb24tYnV0dG9uXFxfdmFyaWFibGVzLnNjc3MiLCIuLlxcc3R5bGVzXFxfYm9keS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQUE7QUNBQTtFQUNFLGFBQUE7RUFDQSxVQUFBO0VBQ0Esc0JBQUE7QUNFRjtBQ0hBO0VDOEtJLFdBQUE7QUZ2S0o7QUNIQTtFQUNFLGVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBRE1GO0FDSEE7RUFDRTtJQUNFLGFBQUE7SUFDQSxjQUFBO0VETUY7QUFDRjtBQ0hBO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0FES0Y7QUNGQTtFQUNFO0lBQ0UsY0FBQTtJQUNBLFlBQUE7RURLRjtBQUNGO0FHbENBOztFQUVFLGFBQUE7RUFDQSxxQkFBQTtFQUNBLHlCQUFBO0VBR0EsaUJBQUE7QUhvQ0Y7QUdqQ0E7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7QUhvQ0Y7QUlsREE7RUFDRSxjQUFBO0FKcURGO0FLdERBO0VBQ0UsY0FBQTtBTHlERjtBTTFEQTs7RUFFRSxjQUFBO0FONkRGO0FNMURBO0VBU0UsNERBQUE7QU5xREY7QU03REU7RUFDRSx3REFBQTtFQUNBLGVBQUE7RUFFQSxzQ0FBQTtFQUNBLHFDQUFBO0FOOERKO0FNMURFO0VBQ0UsZ0JBQUE7QU40REo7QU81RUE7RUFDRSxxQkFBQTtBUCtFRjtBUWhGQTtFQUNFLHFCQUFBO0FSbUZGO0FTakZFO0VBREY7SUFFSSx5QkFBQTtFVHFGRjtBQUNGO0FVdkZBO0VBUUUsZUFBQTtFQUNBLG9CQUFBO0FWbUZGO0FXaUNFO0VDcERFLHlCQUFBO0Fac0JKO0FXd0NFO0VDOURFLHlC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RTtBdkJrOEhWO0F1QjM3SEk7RUFFSSwwQ0FBQTtFQUtBLGdHQUFBO0F2Qnc3SFI7QXVCcnNIRTtFQUdJLG9CQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0VBQ0EsV0FUSztFQVVMLFlBVks7QXZCK3NIWDtBdUJoc0hJO0VBR0ksMkNBQUE7RUFDQSxZQUFBO0VBQ0EsNkNBQUE7RUFDQSxzQ0FBQTtFQUNBLHVDQUFBO0F2QmdzSFI7QXVCNXJISTtFQUVJLHNDQUFBO0VBQ0EsdUNBQUE7QXZCNnJIUjtBdUJoOEhFO0VYMUdFLHNCQUFBO0FaNmlJSjtBdUIzNUhJO0VBR0ksYUEwT007QXZCaXJIZDtBdUJ6M0hNO0VBZUYseUJBQUE7RUFJQSxhQXlMVTtBdkJpckhkO0F1QjkxSEk7RUFFSSxnQ0FBQTtBdkIrMUhSO0F1QjExSE07RUFFSSx5QkNyUlM7RUQwUlQsYUFxS0k7QXZCa3JIZDtBdUJqMUhFO0VBRUksNkJBQUE7QXZCazFITjtBQTFvSUEsOEVBQUE7QUZBQSxVQUFBO0FnREVBO0VBQ0UsWUFBQTtBOUM2b0lGO0E4QzFvSUE7RUFDRSx5QmhES3FCO0VnREpyQixxQkFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtBOUM2b0lGO0FBNW5JQTtFQUNFLGFBQUE7RUFDQSxnQkFBQTtBQStuSUYiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBDb2xvciAqL1xyXG4vLyBUbyBjaGFuZ2UgeW91ciB0aGVtZSdzIGNvbG9yIHNjaGVtZSwgcmVwbGFjZSB0aGUgZXhpc3RpbmcgSEVYIGNvbG9yIHZhbHVlcyB3aXRoIGN1c3RvbSBIRVggY29sb3IgdmFsdWVzLiBVc2Ugb3VyIGNvbG9yIHBhbGV0dGUgZ2VuZXJhdG9yIHRvIGhlbHAgY29tZSB1cCB3aXRoIHBhaXJpbmdzIGFuZCBjaGVjayB5b3VyIGNvbG9yIGNvbnRyYXN0LiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb2xvci90aGUtY29sb3Itc3lzdGVtLmh0bWwjdG9vbHMtZm9yLXBpY2tpbmctY29sb3JzXHJcblxyXG4vLyBQcmltYXJ5IGNvbG9ycyAoJG1kYy10aGVtZS1wcmltYXJ5KSBtYXAgdG8gY29tcG9uZW50cyBzdWNoIGFzIGFwcCBiYXJzIGFuZCBidXR0b25zLCB3aGlsZSBzZWNvbmRhcnkgY29sb3JzICgkbWRjLXRoZW1lLXNlY29uZGFyeSkgYXJlIHVzZWQgYXMgYWNjZW50cyBvbiBjb21wb25lbnRzIHN1Y2ggYXMgRkFCcyBhbmQgc2VsZWN0aW9uIGNvbnRyb2xzLlxyXG5cclxuJG1kYy10aGVtZS1wcmltYXJ5OiAjNGVjZGM0O1xyXG4kbWRjLXRoZW1lLXNlY29uZGFyeTogI2ZmOWYxYztcclxuXHJcblxyXG4vLyBUaGVtZSBiYWNrZ3JvdW5kICgkbWRjLXRoZW1lLWJhY2tncm91bmQpIGFwcGVhcnMgYmVoaW5kIHNjcm9sbGFibGUgY29udGVudC4gU3VyZmFjZSBjb2xvciAoJG1kYy10aGVtZS1zdXJmYWNlKSBpcyBtYXBwZWQgdG8gdGhlIHN1cmZhY2Ugb2YgY29tcG9uZW50cyBzdWNoIGFzIGNhcmRzLCBzaGVldHMsIGFuZCBtZW51cy4gRXJyb3IgY29sb3IgKCRtZGMtdGhlbWUtZXJyb3IpIGlzIHVzZWQgdG8gaW5kaWNhdGUgYW4gZXJyb3Igc3RhdGUgZm9yIGNvbXBvbmVudHMgc3VjaCBhcyB0ZXh0IGZpZWxkcyBwcm92aWRlZCB3aXRoIGluYWNjdXJhdGUgaW5wdXQuXHJcblxyXG4kbWRjLXRoZW1lLXN1cmZhY2U6ICNmZmY7XHJcbiRtZGMtdGhlbWUtYmFja2dyb3VuZDogI2Y3ZmZmZTtcclxuJG1kYy10aGVtZS1lcnJvcjogI2ZmNTk1ZTtcclxuXHJcblxyXG4vLyDigJxPbi3igJ0gY29sb3JzIGRlZmluZSBob3cgdGV4dCwgaWNvbnMsIGFuZCBzdHJva2VzIGFyZSBjb2xvcmVkIGluIHJlbGF0aW9uIHRvIHRoZSBzdXJmYWNlIG9uIHdoaWNoIHRoZXkgYXBwZWFyLiBJZiB5b3UgYXJlIHVwZGF0aW5nIHRoZXNlIG1hbnVhbGx5LCBiZSBzdXJlIHRvIGNvbnNpZGVyIGFjY2Vzc2libGUgY29sb3IgY29udHJhc3QgZm9yIHRoZSB2YWx1ZSBwYWlycy5cclxuXHJcbiRtZGMtdGhlbWUtb24tcHJpbWFyeTogIzAwMDtcclxuJG1kYy10aGVtZS1vbi1zZWNvbmRhcnk6ICMwMDA7XHJcbiRtZGMtdGhlbWUtb24tZXJyb3I6ICMwMDA7XHJcbiRtZGMtdGhlbWUtb24tc3VyZmFjZTogIzAwMDtcclxuXHJcbiRtZGMtaG9zdC1lbGV2YXRpb246IDY7IiwiLm5neC1tZGMtZm9ybS1maWVsZC0tZmx1aWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleDogYXV0bztcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcbiIsIi8qIENvbG9yICovXG4ubmd4LW1kYy1mb3JtLWZpZWxkLS1mbHVpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IGF1dG87XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5uZ3gtbWRjLWZhYi1leHRlbmRlZC0tZmx1aWQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm5neC1tZGMtZmFiLS1ib3R0b20tcmlnaHQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxcmVtO1xuICBib3R0b206IDFyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm5neC1tZGMtZmFiLS1ib3R0b20tcmlnaHQge1xuICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgYm90dG9tOiAxLjVyZW07XG4gIH1cbn1cbi5uZ3gtbWRjLWZhYi0tYm90dG9tLWxlZnQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMXJlbTtcbiAgbGVmdDogMXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubmd4LW1kYy1mYWItLWJvdHRvbS1sZWZ0IHtcbiAgICBib3R0b206IDEuNXJlbTtcbiAgICBsZWZ0OiAxLjVyZW07XG4gIH1cbn1cbi5uZ3gtbWRjLWljb24tLWNsaWNrYWJsZSxcbmEubmd4LW1kYy1pY29uIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubmd4LW1kYy1pY29uLS1pbmxpbmUge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHdpZHRoOiBpbmhlcml0O1xufVxuXG4ubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1kYy1saXN0LFxuLm1kYy1saXN0LWRpdmlkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5neC1tZGMtbGlzdC0tYm9yZGVyIHtcbiAgLyogRW5zdXJlIGFkamFjZW50IGJvcmRlcnMgZG9uJ3QgY29sbGlkZSB3aXRoIG9uZSBhbm90aGVyLiAqL1xufVxuLm5neC1tZGMtbGlzdC0tYm9yZGVyIC5tZGMtbGlzdC1pdGVtIHtcbiAgLyogQWRkIHRoZSBsaXN0IHNpZGUgcGFkZGluZyBwYWRkaW5nIHRvIHRoZSBsaXN0IGl0ZW0uICovXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgLyogQWRkIGEgYm9yZGVyIGFyb3VuZCBlYWNoIGVsZW1lbnQuICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubmd4LW1kYy1saXN0LS1ib3JkZXIgLm1kYy1saXN0LWl0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4ubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubWRjLXNsaWRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5uZ3gtbWRjLXNuYWNrYmFyLS10cmFpbGluZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxufVxuXG4ubmd4LW1kYy10YWItLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5uZ3gtbWRjLXRhYi0tZGlzYWJsZWQgLm1kYy10YWJfX3RleHQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLm5neC1tZGMtdGFiLS1kaXNhYmxlZCAubWRjLXRhYl9faWNvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cbi5uZ3gtbWRjLXRhYi0tZGlzYWJsZWQgLm1kYy10YWItaW5kaWNhdG9yIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5tZGMtdGFiLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpO1xufVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lMSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTEtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiA2cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUxLWZvbnQtc2l6ZSwgNnJlbSk7XG4gIGxpbmUtaGVpZ2h0OiA2cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTEtbGluZS1oZWlnaHQsIDZyZW0pO1xuICBmb250LXdlaWdodDogMzAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTEtZm9udC13ZWlnaHQsIDMwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMTU2MjVlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUxLWxldHRlci1zcGFjaW5nLCAtMC4wMTU2MjVlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lMS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUxLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMy43NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lMi1mb250LXNpemUsIDMuNzVyZW0pO1xuICBsaW5lLWhlaWdodDogMy43NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUyLWxpbmUtaGVpZ2h0LCAzLjc1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUyLWZvbnQtd2VpZ2h0LCAzMDApO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDA4MzMzMzMzM2VtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTItbGV0dGVyLXNwYWNpbmcsIC0wLjAwODMzMzMzMzNlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lMi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTMge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUzLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lMy1mb250LXNpemUsIDNyZW0pO1xuICBsaW5lLWhlaWdodDogMy4xMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lMy1saW5lLWhlaWdodCwgMy4xMjVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTMtZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lMy1sZXR0ZXItc3BhY2luZywgbm9ybWFsKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmUzLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTMtdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xufVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lNCB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTQtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAyLjEyNXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNC1mb250LXNpemUsIDIuMTI1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU0LWxpbmUtaGVpZ2h0LCAyLjVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTQtZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwNzM1Mjk0MTJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU0LWxldHRlci1zcGFjaW5nLCAwLjAwNzM1Mjk0MTJlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNC10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU0LXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTUge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU1LWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU1LWZvbnQtc2l6ZSwgMS41cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNS1saW5lLWhlaWdodCwgMnJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNS1mb250LXdlaWdodCwgNDAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU1LWxldHRlci1zcGFjaW5nLCBub3JtYWwpO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTUtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNS10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG59XG5cbi5tZGMtdHlwb2dyYXBoeS0taGVhZGxpbmU2IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtZm9udC1zaXplLCAxLjI1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1saW5lLWhlaWdodCwgMnJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1mb250LXdlaWdodCwgNTAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtbGV0dGVyLXNwYWNpbmcsIDAuMDEyNWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xufVxuXG4ubWRjLXR5cG9ncmFwaHktLXN1YnRpdGxlMSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtc2l6ZSwgMXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGluZS1oZWlnaHQsIDEuNzVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGV0dGVyLXNwYWNpbmcsIDAuMDA5Mzc1ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG59XG5cbi5tZGMtdHlwb2dyYXBoeS0tc3VidGl0bGUyIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtc2l6ZSwgMC44NzVyZW0pO1xuICBsaW5lLWhlaWdodDogMS4zNzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1saW5lLWhlaWdodCwgMS4zNzVyZW0pO1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItZm9udC13ZWlnaHQsIDUwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwNzE0Mjg1NzFlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWxldHRlci1zcGFjaW5nLCAwLjAwNzE0Mjg1NzFlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5LS1ib2R5MSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDFyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS1mb250LXNpemUsIDFyZW0pO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS1saW5lLWhlaWdodCwgMS41cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTEtZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMTI1ZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkxLWxldHRlci1zcGFjaW5nLCAwLjAzMTI1ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5MS10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTEtdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xufVxuXG4ubWRjLXR5cG9ncmFwaHktLWJvZHkyIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDAuODc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAxLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5LS1jYXB0aW9uIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUsIDAuNzVyZW0pO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodCwgMS4yNXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzMzMzMzNlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1sZXR0ZXItc3BhY2luZywgMC4wMzMzMzMzMzMzZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy10eXBvZ3JhcGh5LS1idXR0b24ge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC1zaXplLCAwLjg3NXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tbGluZS1oZWlnaHQsIDIuMjVyZW0pO1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxNDNlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjA4OTI4NTcxNDNlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi10ZXh0LWRlY29yYXRpb24sIG5vbmUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tdGV4dC10cmFuc2Zvcm0sIHVwcGVyY2FzZSk7XG59XG5cbi5tZGMtdHlwb2dyYXBoeS0tb3ZlcmxpbmUge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktb3ZlcmxpbmUtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktb3ZlcmxpbmUtZm9udC1zaXplLCAwLjc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LW92ZXJsaW5lLWxpbmUtaGVpZ2h0LCAycmVtKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktb3ZlcmxpbmUtZm9udC13ZWlnaHQsIDUwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2NjY2NjY2NjdlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktb3ZlcmxpbmUtbGV0dGVyLXNwYWNpbmcsIDAuMTY2NjY2NjY2N2VtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktb3ZlcmxpbmUtdGV4dC1kZWNvcmF0aW9uLCBub25lKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktb3ZlcmxpbmUtdGV4dC10cmFuc2Zvcm0sIHVwcGVyY2FzZSk7XG59XG5cbi5tZGMtbGlzdCB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtc2l6ZSwgMXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGluZS1oZWlnaHQsIDEuNzVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGV0dGVyLXNwYWNpbmcsIDAuMDA5Mzc1ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHggMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKTtcbn1cbi5tZGMtbGlzdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA0OHB4O1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC41NCkpO1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpO1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1oaW50LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpO1xufVxuXG4ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpO1xufVxuXG4ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3RleHQge1xuICBvcGFjaXR5OiAwLjM4O1xufVxuXG4ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3RleHQsXG4ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCxcbi5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICBjb2xvcjogIzAwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMwMDApO1xufVxuXG4ubWRjLWxpc3QtLWRlbnNlIHtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgZm9udC1zaXplOiAwLjgxMnJlbTtcbn1cblxuLm1kYy1saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1kYy1saXN0LWl0ZW06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQsXG4ubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIHtcbiAgY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbn1cbi5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyxcbi5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBjb2xvcjogIzRlY2RjNDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cbi5tZGMtbGlzdC1pdGVtW2Rpcj1ydGxdIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLCBbZGlyPXJ0bF0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG4ubWRjLWxpc3QtaXRlbV9fbWV0YTpub3QoLm1hdGVyaWFsLWljb25zKSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1zaXplLCAwLjc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQsIDEuMjVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtd2VpZ2h0LCA0MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzMzMzMzMzMzZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tbGV0dGVyLXNwYWNpbmcsIDAuMDMzMzMzMzMzM2VtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG59XG4ubWRjLWxpc3QtaXRlbVtkaXI9cnRsXSAubWRjLWxpc3QtaXRlbV9fbWV0YSwgW2Rpcj1ydGxdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZGMtbGlzdC1pdGVtX190ZXh0W2Zvcl0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAtMjBweDtcbn1cbi5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xufVxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgdmVydGljYWwtYWxpZ246IC0yMHB4O1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtc2l6ZSwgMC44NzVyZW0pO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGluZS1oZWlnaHQsIDEuMjVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXdlaWdodCwgNDAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTQyOWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1sZXR0ZXItc3BhY2luZywgMC4wMTc4NTcxNDI5ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgdmVydGljYWwtYWxpZ246IDA7XG59XG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cbi5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0OjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuXG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuXG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDM2cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ubWRjLWxpc3QtaXRlbVtkaXI9cnRsXSAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLCBbZGlyPXJ0bF0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDM2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA1NnB4O1xufVxuXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5tZGMtbGlzdC1pdGVtW2Rpcj1ydGxdIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMsIFtkaXI9cnRsXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW1fX3RleHQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4ubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA3MnB4O1xufVxuXG4ubWRjLWxpc3QtLXR3by1saW5lLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSxcbi5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuLm1kYy1saXN0LWl0ZW1bZGlyPXJ0bF0gLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMsIFtkaXI9cnRsXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hLm1kYy1saXN0LWl0ZW0ge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWRjLWxpc3QtZGl2aWRlciB7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG59XG5cbi5tZGMtbGlzdC1kaXZpZGVyIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1saXN0LWRpdmlkZXItLXBhZGRlZCB7XG4gIG1hcmdpbjogMCAxNnB4O1xufVxuXG4ubWRjLWxpc3QtZGl2aWRlci0taW5zZXQge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA3MnB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDcycHgpO1xufVxuLm1kYy1saXN0LWdyb3VwW2Rpcj1ydGxdIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldCwgW2Rpcj1ydGxdIC5tZGMtbGlzdC1ncm91cCAubWRjLWxpc3QtZGl2aWRlci0taW5zZXQge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogNzJweDtcbn1cblxuLm1kYy1saXN0LWRpdmlkZXItLWluc2V0Lm1kYy1saXN0LWRpdmlkZXItLXBhZGRlZCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA3MnB4IC0gMTZweCk7XG59XG5cbi5tZGMtbGlzdC1ncm91cCAubWRjLWxpc3Qge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtc2l6ZSwgMXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGluZS1oZWlnaHQsIDEuNzVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3NWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtbGV0dGVyLXNwYWNpbmcsIDAuMDA5Mzc1ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG4gIG1hcmdpbjogY2FsYygoM3JlbSAtIDEuNXJlbSkgLyAyKSAxNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydCwgMCkpIHNjYWxlKDEpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHtcbiAgZnJvbSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IHZhcigtLW1kYy1yaXBwbGUtZmctb3BhY2l0eSwgMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgei1pbmRleDogMTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjphZnRlciB7XG4gIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICB3aWR0aDogMjAwJTtcbiAgaGVpZ2h0OiAyMDAlO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDQ7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4yNDtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRlY2RjNDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzRlY2RjNCk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMzI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjQ4O1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC40ODtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuNDg7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4xNjtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC40O1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC40O1xufVxuXG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gIHotaW5kZXg6IDE7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkcztcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmFmdGVyIHtcbiAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gIHdpZHRoOiAyMDAlO1xuICBoZWlnaHQ6IDIwMCU7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG5cbi5tZGMtZWxldmF0aW9uLS16MCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejEge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtZWxldmF0aW9uLS16MiB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXozIHtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejQge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejUge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejYge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXo3IHtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtZWxldmF0aW9uLS16OCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejkge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxMCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxMSB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxMiB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxMyB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxNCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxNSB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxNiB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtZWxldmF0aW9uLS16MTcge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejE4IHtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoxOSB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM2cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtZWxldmF0aW9uLS16MjAge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoyMSB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi0tejIyIHtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtZWxldmF0aW9uLS16MjMge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1lbGV2YXRpb24tLXoyNCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB3aWxsLWNoYW5nZTogYm94LXNoYWRvdztcbn1cblxuLm1kYy10b3VjaC10YXJnZXQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLm1kYy1lbGV2YXRpb24tb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLm1kYy1idXR0b24ge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC1zaXplLCAwLjg3NXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tbGluZS1oZWlnaHQsIDIuMjVyZW0pO1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4OTI4NTcxNDNlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjA4OTI4NTcxNDNlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJ1dHRvbi10ZXh0LWRlY29yYXRpb24sIG5vbmUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1idXR0b24tdGV4dC10cmFuc2Zvcm0sIHVwcGVyY2FzZSk7XG4gIHBhZGRpbmc6IDAgOHB4IDAgOHB4O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5tZGMtYnV0dG9uIC5tZGMtZWxldmF0aW9uLW92ZXJsYXkge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbn1cbi5tZGMtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuLm1kYy1idXR0b246YWN0aXZlIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5tZGMtYnV0dG9uOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm1kYy1idXR0b246ZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5tZGMtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubWRjLWJ1dHRvbjpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbltkaXI9cnRsXSAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX2ljb25bZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3RvdWNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNDhweDtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICBjb2xvcjogIzRlY2RjNDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuLm1kYy1idXR0b246ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuW2Rpcj1ydGxdIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbltkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbnN2Zy5tZGMtYnV0dG9uX19pY29uIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuW2Rpcj1ydGxdIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2ljb24sIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2ljb25bZGlyPXJ0bF0sXG5bZGlyPXJ0bF0gLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9faWNvbltkaXI9cnRsXSxcbltkaXI9cnRsXSAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb25bZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xufVxuLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cbltkaXI9cnRsXSAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1ydGxdLFxuW2Rpcj1ydGxdIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPXJ0bF0sXG5bZGlyPXJ0bF0gLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogLTRweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLm1kYy1idXR0b24tLXJhaXNlZCxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIHtcbiAgcGFkZGluZzogMCAxNnB4IDAgMTZweDtcbn1cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KDpkaXNhYmxlZCksXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuLm1kYy1idXR0b24tLXJhaXNlZDpub3QoOmRpc2FibGVkKSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6ICMwMDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjMDAwKTtcbn1cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6ZGlzYWJsZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWRjLWJ1dHRvbi0tcmFpc2VkOmRpc2FibGVkLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1kYy1idXR0b24tLXJhaXNlZCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLm1kYy1idXR0b24tLXJhaXNlZDpob3ZlciwgLm1kYy1idXR0b24tLXJhaXNlZDpmb2N1cyB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWRjLWJ1dHRvbi0tcmFpc2VkOmFjdGl2ZSB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1kYy1idXR0b24tLXJhaXNlZDpkaXNhYmxlZCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICBwYWRkaW5nOiAwIDE1cHggMCAxNXB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9fcmlwcGxlIHtcbiAgdG9wOiAtMXB4O1xuICBsZWZ0OiAtMXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5tZGMtYnV0dG9uLS1vdXRsaW5lZDpub3QoOmRpc2FibGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tZGMtYnV0dG9uLS1vdXRsaW5lZDpkaXNhYmxlZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1kYy1idXR0b24tLXRvdWNoIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5tZGMtYnV0dG9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4ubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsXG4ubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gIHotaW5kZXg6IDE7XG59XG4ubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbn1cbi5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbiAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzO1xufVxuLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb24gLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbn1cbi5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSxcbi5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gIHdpZHRoOiAyMDAlO1xuICBoZWlnaHQ6IDIwMCU7XG59XG4ubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbn1cbi5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSwgLm1kYy1idXR0b24gLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGVjZGM0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbn1cbi5tZGMtYnV0dG9uOmhvdmVyIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7XG59XG4ubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLCAubWRjLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG4ubWRjLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG4ubWRjLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZSAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG4ubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7XG59XG4ubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9fcmlwcGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tZGMtYnV0dG9uOm5vdCgubWRjLWJ1dHRvbi0tb3V0bGluZWQpIC5tZGMtYnV0dG9uX19yaXBwbGUge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjMDAwKTtcbn1cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6aG92ZXIgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6aG92ZXIgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wNDtcbn1cbi5tZGMtYnV0dG9uLS1yYWlzZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSwgLm1kYy1idXR0b24tLXJhaXNlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzIC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCkgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG4ubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmUgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuLm1kYy1idXR0b24tLXJhaXNlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyO1xufVxuXG4ubWRjLWJ1dHRvbiB7XG4gIGhlaWdodDogMzZweDtcbn1cblxuLmJ1dHRvbi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRlY2RjNDtcbn1cbi5idXR0b24tcHJpbWFyeTpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuODcpKTtcbn1cbi5idXR0b24tcHJpbWFyeSAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsIC5idXR0b24tcHJpbWFyeSAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjg3KSk7XG59XG4uYnV0dG9uLXByaW1hcnk6aG92ZXIgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wNDtcbn1cbi5idXR0b24tcHJpbWFyeS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlLCAuYnV0dG9uLXByaW1hcnk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuLmJ1dHRvbi1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCkgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjtcbn1cbi5idXR0b24tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZSAubWRjLWJ1dHRvbl9fcmlwcGxlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4uYnV0dG9uLXByaW1hcnkubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyO1xufVxuXG4uYnV0dG9uLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjlmMWM7XG59XG4uYnV0dG9uLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuODcpKTtcbn1cbi5idXR0b24tc2Vjb25kYXJ5IC5tZGMtYnV0dG9uX19yaXBwbGU6OmJlZm9yZSwgLmJ1dHRvbi1zZWNvbmRhcnkgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC44NykpO1xufVxuLmJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wNDtcbn1cbi5idXR0b24tc2Vjb25kYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWJ1dHRvbl9fcmlwcGxlOjpiZWZvcmUsIC5idXR0b24tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1idXR0b25fX3JpcHBsZTo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4xMjtcbn1cbi5idXR0b24tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCkgLm1kYy1idXR0b25fX3JpcHBsZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjtcbn1cbi5idXR0b24tc2Vjb25kYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlIC5tZGMtYnV0dG9uX19yaXBwbGU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4xMjtcbn1cbi5idXR0b24tc2Vjb25kYXJ5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjtcbn1cblxuLm1kYy1kcmF3ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbiAgei1pbmRleDogNjtcbiAgd2lkdGg6IDI1NnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4ubWRjLWRyYXdlciAubWRjLWRyYXdlcl9fdGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtZHJhd2VyX19zdWJ0aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4ubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4ubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGNvbG9yOiAjNGVjZGM0O1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gIGNvbG9yOiByZ2JhKDc4LCAyMDUsIDE5NiwgMC44Nyk7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXIsIC5tZGMtZHJhd2VyW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0ge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubWRjLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDI1NnB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbltkaXI9cnRsXSAubWRjLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCwgLm1kYy1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnRbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMjU2cHg7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXIsIC5tZGMtZHJhd2VyW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0ge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItZm9udC1zaXplLCAwLjg3NXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWxpbmUtaGVpZ2h0LCAxLjM3NXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1mb250LXdlaWdodCwgNTAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MTQyODU3MWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItbGV0dGVyLXNwYWNpbmcsIDAuMDA3MTQyODU3MWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xuICBoZWlnaHQ6IGNhbGMoNDhweCAtIDIgKiA0cHgpO1xuICBtYXJnaW46IDhweCA4cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW06bnRoLWNoaWxkKDEpIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW06bnRoLWxhc3QtY2hpbGQoMSkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtc2l6ZSwgMC44NzVyZW0pO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGluZS1oZWlnaHQsIDEuMjVyZW0pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXdlaWdodCwgNDAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODU3MTQyOWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1sZXR0ZXItc3BhY2luZywgMC4wMTc4NTcxNDI5ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWRpdmlkZXIge1xuICBtYXJnaW46IDNweCAwIDRweDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtX190ZXh0LFxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1kYy1kcmF3ZXItLWFuaW1hdGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuW2Rpcj1ydGxdIC5tZGMtZHJhd2VyLS1hbmltYXRlLCAubWRjLWRyYXdlci0tYW5pbWF0ZVtkaXI9cnRsXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cblxuLm1kYy1kcmF3ZXItLW9wZW5pbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xufVxuW2Rpcj1ydGxdIC5tZGMtZHJhd2VyLS1vcGVuaW5nLCAubWRjLWRyYXdlci0tb3BlbmluZ1tkaXI9cnRsXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLm1kYy1kcmF3ZXItLWNsb3Npbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtcztcbn1cbltkaXI9cnRsXSAubWRjLWRyYXdlci0tY2xvc2luZywgLm1kYy1kcmF3ZXItLWNsb3NpbmdbZGlyPXJ0bF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG5cbi5tZGMtZHJhd2VyX19oZWFkZXIge1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNjRweDtcbiAgcGFkZGluZzogMCAxNnB4IDRweDtcbn1cblxuLm1kYy1kcmF3ZXJfX3RpdGxlIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtZm9udC1zaXplLCAxLjI1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1saW5lLWhlaWdodCwgMnJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1mb250LXdlaWdodCwgNTAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtbGV0dGVyLXNwYWNpbmcsIDAuMDEyNWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbn1cbi5tZGMtZHJhd2VyX190aXRsZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cbi5tZGMtZHJhd2VyX190aXRsZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAtMjBweDtcbn1cblxuLm1kYy1kcmF3ZXJfX3N1YnRpdGxlIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDAuODc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAxLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5tZGMtZHJhd2VyX19zdWJ0aXRsZTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cblxuLm1kYy1kcmF3ZXJfX2NvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlLCAubWRjLWRyYXdlci0tZGlzbWlzc2libGVbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IGluaXRpYWw7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IDA7XG59XG4ubWRjLWRyYXdlci0tZGlzbWlzc2libGUubWRjLWRyYXdlci0tb3BlbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbltkaXI9cnRsXSAubWRjLWRyYXdlci1hcHAtY29udGVudCwgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnRbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1kYy1kcmF3ZXItLW1vZGFsIHtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4ubWRjLWRyYXdlci0tbW9kYWwgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXItLW1vZGFsLCAubWRjLWRyYXdlci0tbW9kYWxbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IGluaXRpYWw7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IDA7XG59XG4ubWRjLWRyYXdlci0tbW9kYWwubWRjLWRyYXdlci0tb3BlbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5tZGMtZHJhd2VyLXNjcmltIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLm1kYy1kcmF3ZXItLW9wZW4gKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1kYy1kcmF3ZXItLWFuaW1hdGUgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gIG9wYWNpdHk6IDA7XG59XG4ubWRjLWRyYXdlci0tb3BlbmluZyArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gIG9wYWNpdHk6IDE7XG59XG4ubWRjLWRyYXdlci0tY2xvc2luZyArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5tZGMtZHJhd2VyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7XG4gIHotaW5kZXg6IDY7XG4gIHdpZHRoOiAyNTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTAwJTtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1kcmF3ZXJfX3RpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWRjLWRyYXdlciAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4ubWRjLWRyYXdlciAubWRjLWRyYXdlcl9fc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBjb2xvcjogIzRlY2RjNDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICBjb2xvcjogcmdiYSg3OCwgMjA1LCAxOTYsIDAuODcpO1xufVxuW2Rpcj1ydGxdIC5tZGMtZHJhd2VyLCAubWRjLWRyYXdlcltkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm1kYy1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAyNTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tZGMtZHJhd2VyLm1kYy1kcmF3ZXItLW9wZW46bm90KC5tZGMtZHJhd2VyLS1jbG9zaW5nKSArIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50W2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDI1NnB4O1xufVxuW2Rpcj1ydGxdIC5tZGMtZHJhd2VyLCAubWRjLWRyYXdlcltkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtc2l6ZSwgMC44NzVyZW0pO1xuICBsaW5lLWhlaWdodDogMS4zNzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1saW5lLWhlaWdodCwgMS4zNzVyZW0pO1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItZm9udC13ZWlnaHQsIDUwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwNzE0Mjg1NzFlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWxldHRlci1zcGFjaW5nLCAwLjAwNzE0Mjg1NzFlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbiAgaGVpZ2h0OiBjYWxjKDQ4cHggLSAyICogNHB4KTtcbiAgbWFyZ2luOiA4cHggOHB4O1xuICBwYWRkaW5nOiAwIDhweDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtOm50aC1jaGlsZCgxKSB7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDAuODc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAxLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG4ubWRjLWRyYXdlciAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcjo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1kaXZpZGVyIHtcbiAgbWFyZ2luOiAzcHggMCA0cHg7XG59XG4ubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbV9fdGV4dCxcbi5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tZGMtZHJhd2VyLS1hbmltYXRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cbltkaXI9cnRsXSAubWRjLWRyYXdlci0tYW5pbWF0ZSwgLm1kYy1kcmF3ZXItLWFuaW1hdGVbZGlyPXJ0bF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG5cbi5tZGMtZHJhd2VyLS1vcGVuaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcztcbn1cbltkaXI9cnRsXSAubWRjLWRyYXdlci0tb3BlbmluZywgLm1kYy1kcmF3ZXItLW9wZW5pbmdbZGlyPXJ0bF0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi5tZGMtZHJhd2VyLS1jbG9zaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXItLWNsb3NpbmcsIC5tZGMtZHJhd2VyLS1jbG9zaW5nW2Rpcj1ydGxdIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4ubWRjLWRyYXdlcl9faGVhZGVyIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7XG4gIHBhZGRpbmc6IDAgMTZweCA0cHg7XG59XG5cbi5tZGMtZHJhd2VyX190aXRsZSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWZvbnQtc2l6ZSwgMS4yNXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtbGluZS1oZWlnaHQsIDJyZW0pO1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtZm9udC13ZWlnaHQsIDUwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxMjVlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWxldHRlci1zcGFjaW5nLCAwLjAxMjVlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi10ZXh0LWRlY29yYXRpb24sIGluaGVyaXQpO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG59XG4ubWRjLWRyYXdlcl9fdGl0bGU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMzZweDtcbiAgY29udGVudDogXCJcIjtcbiAgdmVydGljYWwtYWxpZ246IDA7XG59XG4ubWRjLWRyYXdlcl9fdGl0bGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTIwcHg7XG59XG5cbi5tZGMtZHJhd2VyX19zdWJ0aXRsZSB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1zaXplLCAwLjg3NXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1saW5lLWhlaWdodCwgMS4yNXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtd2VpZ2h0LCA0MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNDI5ZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxldHRlci1zcGFjaW5nLCAwLjAxNzg1NzE0MjllbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubWRjLWRyYXdlcl9fc3VidGl0bGU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgdmVydGljYWwtYWxpZ246IDA7XG59XG5cbi5tZGMtZHJhd2VyX19jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuW2Rpcj1ydGxdIC5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZSwgLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBpbml0aWFsO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiAwO1xufVxuLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlLm1kYy1kcmF3ZXItLW9wZW4ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWRjLWRyYXdlci1hcHAtY29udGVudCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5bZGlyPXJ0bF0gLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50W2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tZGMtZHJhd2VyLS1tb2RhbCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLm1kYy1kcmF3ZXItLW1vZGFsICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzIpO1xufVxuW2Rpcj1ydGxdIC5tZGMtZHJhd2VyLS1tb2RhbCwgLm1kYy1kcmF3ZXItLW1vZGFsW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBpbml0aWFsO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiAwO1xufVxuLm1kYy1kcmF3ZXItLW1vZGFsLm1kYy1kcmF3ZXItLW9wZW4ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWRjLWRyYXdlci1zY3JpbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiA1O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5tZGMtZHJhd2VyLS1vcGVuICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5tZGMtZHJhd2VyLS1hbmltYXRlICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICBvcGFjaXR5OiAwO1xufVxuLm1kYy1kcmF3ZXItLW9wZW5pbmcgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zO1xuICBvcGFjaXR5OiAxO1xufVxuLm1kYy1kcmF3ZXItLWNsb3NpbmcgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubWRjLWxpc3Qge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LXNpemUsIDFyZW0pO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWxpbmUtaGVpZ2h0LCAxLjc1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtd2VpZ2h0LCA0MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWxldHRlci1zcGFjaW5nLCAwLjAwOTM3NWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSk7XG59XG4ubWRjLWxpc3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNDhweDtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKTtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKTtcbn1cblxuLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKTtcbn1cblxuLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgb3BhY2l0eTogMC4zODtcbn1cblxuLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX190ZXh0LFxuLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQsXG4ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgY29sb3I6ICMwMDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMDAwKTtcbn1cblxuLm1kYy1saXN0LS1kZW5zZSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIGZvbnQtc2l6ZTogMC44MTJyZW07XG59XG5cbi5tZGMtbGlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tZGMtbGlzdC1pdGVtOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLFxuLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gIGNvbG9yOiAjNGVjZGM0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzRlY2RjNCk7XG59XG4ubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMsXG4ubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMzJweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG4ubWRjLWxpc3QtaXRlbVtkaXI9cnRsXSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYywgW2Rpcj1ydGxdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMzJweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLm1kYy1saXN0LWl0ZW1fX21ldGE6bm90KC5tYXRlcmlhbC1pY29ucykge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSwgMC43NXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0LCAxLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCwgNDAwKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzMzMzMzM2VtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nLCAwLjAzMzMzMzMzMzNlbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWNhcHRpb24tdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xufVxuLm1kYy1saXN0LWl0ZW1bZGlyPXJ0bF0gLm1kYy1saXN0LWl0ZW1fX21ldGEsIFtkaXI9cnRsXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWRjLWxpc3QtaXRlbV9fdGV4dFtmb3JdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cbi5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQ6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTIwcHg7XG59XG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbn1cbi5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cbi5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAtMjBweDtcbn1cblxuLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDAuODc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAxLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0OjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBjb250ZW50OiBcIlwiO1xuICB2ZXJ0aWNhbC1hbGlnbjogMDtcbn1cblxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAzNnB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLm1kYy1saXN0LWl0ZW1bZGlyPXJ0bF0gLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYywgW2Rpcj1ydGxdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAzNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNTZweDtcbn1cblxuLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4ubWRjLWxpc3QtaXRlbVtkaXI9cnRsXSAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLCBbZGlyPXJ0bF0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLm1kYy1saXN0LS10d28tbGluZSAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNzJweDtcbn1cblxuLm1kYy1saXN0LS10d28tbGluZS5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0sXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNjBweDtcbn1cblxuLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbn1cbi5tZGMtbGlzdC1pdGVtW2Rpcj1ydGxdIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLCBbZGlyPXJ0bF0gLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LS1hdmF0YXItbGlzdC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYS5tZGMtbGlzdC1pdGVtIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1kYy1saXN0LWRpdmlkZXIge1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xufVxuXG4ubWRjLWxpc3QtZGl2aWRlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xuICBtYXJnaW46IDAgMTZweDtcbn1cblxuLm1kYy1saXN0LWRpdmlkZXItLWluc2V0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogNzJweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA3MnB4KTtcbn1cbi5tZGMtbGlzdC1ncm91cFtkaXI9cnRsXSAubWRjLWxpc3QtZGl2aWRlci0taW5zZXQsIFtkaXI9cnRsXSAubWRjLWxpc3QtZ3JvdXAgLm1kYy1saXN0LWRpdmlkZXItLWluc2V0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDcycHg7XG59XG5cbi5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldC5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNzJweCAtIDE2cHgpO1xufVxuXG4ubWRjLWxpc3QtZ3JvdXAgLm1kYy1saXN0IHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMS1mb250LXNpemUsIDFyZW0pO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWxpbmUtaGVpZ2h0LCAxLjc1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWZvbnQtd2VpZ2h0LCA0MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzNzVlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLWxldHRlci1zcGFjaW5nLCAwLjAwOTM3NWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUxLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTEtdGV4dC10cmFuc2Zvcm0sIGluaGVyaXQpO1xuICBtYXJnaW46IGNhbGMoKDNyZW0gLSAxLjVyZW0pIC8gMikgMTZweDtcbn1cblxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gIHotaW5kZXg6IDE7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YWZ0ZXIge1xuICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgd2lkdGg6IDIwMCU7XG4gIGhlaWdodDogMjAwJTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA0O1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjMyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC40ODtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuNDg7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjQ4O1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMTY7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGVjZGM0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjI0O1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjQ7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuNDtcbn1cblxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICB6LWluZGV4OiAxO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7XG59XG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjphZnRlciB7XG4gIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICB3aWR0aDogMjAwJTtcbiAgaGVpZ2h0OiAyMDAlO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xufVxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbjpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0O1xufVxuXG4ubWRjLWNhcmQge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNmZmYpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1kYy1jYXJkIC5tZGMtZWxldmF0aW9uLW92ZXJsYXkge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbn1cblxuLm1kYy1jYXJkLS1vdXRsaW5lZCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZTBlMGUwO1xufVxuXG4ubWRjLWNhcmRfX21lZGlhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG4ubWRjLWNhcmRfX21lZGlhOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1kYy1jYXJkX19tZWRpYTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ubWRjLWNhcmRfX21lZGlhOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbn1cblxuLm1kYy1jYXJkX19tZWRpYS0tc3F1YXJlOjpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiAxMDAlO1xufVxuXG4ubWRjLWNhcmRfX21lZGlhLS0xNi05OjpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiA1Ni4yNSU7XG59XG5cbi5tZGMtY2FyZF9fbWVkaWEtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbn1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyxcbi5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuW2Rpcj1ydGxdIC5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucywgLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1kYy1jYXJkX19hY3Rpb246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgcGFkZGluZzogMCA4cHg7XG59XG5bZGlyPXJ0bF0gLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiwgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbltkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG4ubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGQge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbltkaXI9cnRsXSAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGQsIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b246bGFzdC1jaGlsZFtkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuW2Rpcj1ydGxdIC5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uLCAubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbltkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9uLS1pY29uIHtcbiAgbWFyZ2luOiAtNnB4IDA7XG4gIHBhZGRpbmc6IDEycHg7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9uLS1pY29uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gIHotaW5kZXg6IDE7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbn1cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbn1cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YWZ0ZXIge1xuICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgd2lkdGg6IDIwMCU7XG4gIGhlaWdodDogMjAwJTtcbn1cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA0O1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7XG59XG5cbi5tZGMtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWRjLWNhcmQgLm1kYy1lbGV2YXRpb24tb3ZlcmxheSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xufVxuXG4ubWRjLWNhcmQtLW91dGxpbmVkIHtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNlMGUwZTA7XG59XG5cbi5tZGMtY2FyZF9fbWVkaWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbi5tZGMtY2FyZF9fbWVkaWE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWRjLWNhcmRfX21lZGlhOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG59XG5cbi5tZGMtY2FyZF9fbWVkaWE6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ubWRjLWNhcmRfX21lZGlhLS1zcXVhcmU6OmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IDEwMCU7XG59XG5cbi5tZGMtY2FyZF9fbWVkaWEtLTE2LTk6OmJlZm9yZSB7XG4gIG1hcmdpbi10b3A6IDU2LjI1JTtcbn1cblxuLm1kYy1jYXJkX19tZWRpYS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNTJweDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG4ubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zLFxuLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5bZGlyPXJ0bF0gLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zLCAubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zICsgLm1kYy1jYXJkX19hY3Rpb24taWNvbnNbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMTZweDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ubWRjLWNhcmRfX2FjdGlvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBwYWRkaW5nOiAwIDhweDtcbn1cbltkaXI9cnRsXSAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uLCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b246bGFzdC1jaGlsZCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuW2Rpcj1ydGxdIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b246bGFzdC1jaGlsZCwgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbjpsYXN0LWNoaWxkW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5bZGlyPXJ0bF0gLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24sIC5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb24tLWljb24ge1xuICBtYXJnaW46IC02cHggMDtcbiAgcGFkZGluZzogMTJweDtcbn1cblxuLm1kYy1jYXJkX19hY3Rpb24tLWljb246bm90KDpkaXNhYmxlZCkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjpiZWZvcmUsIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgei1pbmRleDogMTtcbn1cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjphZnRlciB7XG4gIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICB3aWR0aDogMjAwJTtcbiAgaGVpZ2h0OiAyMDAlO1xufVxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjpiZWZvcmUsIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDQ7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjtcbn1cblxuLmNhcmQtdGhpY2stb3V0bGluZSB7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IGxpZ2h0Z3JleTtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX19jb250ZW50IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC1zaXplOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LXNpemUsIDAuODc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxpbmUtaGVpZ2h0LCAxLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC13ZWlnaHQsIDQwMCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg1NzE0MjllbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItbGV0dGVyLXNwYWNpbmcsIDAuMDE3ODU3MTQyOWVtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtdHJhbnNmb3JtLCBpbmhlcml0KTtcbn1cblxuLm1kYy1kYXRhLXRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2ZmZik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cbi5tZGMtZGF0YS10YWJsZV9fcm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItcm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX19yb3ctLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3OCwgMjA1LCAxOTYsIDAuMDQpO1xufVxuXG4ubWRjLWRhdGEtdGFibGVfX3JvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tZGMtZGF0YS10YWJsZV9fcm93IHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX19yb3c6bm90KC5tZGMtZGF0YS10YWJsZV9fcm93LS1zZWxlY3RlZCk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tZGMtZGF0YS10YWJsZV9fY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWRjLWRhdGEtdGFibGVfX2NlbGwge1xuICBoZWlnaHQ6IDUycHg7XG59XG5cbi5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGwge1xuICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5tZGMtZGF0YS10YWJsZV9fY2VsbCxcbi5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGwge1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG59XG5cbi5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGwtLWNoZWNrYm94LFxuLm1kYy1kYXRhLXRhYmxlX19jZWxsLS1jaGVja2JveCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5bZGlyPXJ0bF0gLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbC0tY2hlY2tib3gsIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGwtLWNoZWNrYm94W2Rpcj1ydGxdLFxuW2Rpcj1ydGxdIC5tZGMtZGF0YS10YWJsZV9fY2VsbC0tY2hlY2tib3gsXG4ubWRjLWRhdGEtdGFibGVfX2NlbGwtLWNoZWNrYm94W2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMTZweDtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX190YWJsZSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAvKipcbiAgICogV2l0aCB0YWJsZS1sYXlvdXQ6Zml4ZWQsIHRhYmxlIGFuZCBjb2x1bW4gd2lkdGhzIGFyZSBkZWZpbmVkIGJ5IHRoZSB3aWR0aFxuICAgKiBvZiB0aGUgZmlyc3Qgcm93IG9mIGNlbGxzLiBDZWxscyBpbiBzdWJzZXF1ZW50IHJvd3MgZG8gbm90IGFmZmVjdCBjb2x1bW5cbiAgICogd2lkdGhzLiBUaGlzIHJlc3VsdHMgaW4gYSBwcmVkaWN0YWJsZSB0YWJsZSBsYXlvdXQgYW5kIG1heSBhbHNvIHNwZWVkIHVwXG4gICAqIHJlbmRlcmluZy5cbiAgICovXG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbi5tZGMtZGF0YS10YWJsZV9fY2VsbCB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1mb250LWZhbWlseSwgdmFyKC0tbWRjLXR5cG9ncmFwaHktZm9udC1mYW1pbHksIFJvYm90bywgc2Fucy1zZXJpZikpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tbWRjLXR5cG9ncmFwaHktYm9keTItZm9udC1zaXplLCAwLjg3NXJlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi1saW5lLWhlaWdodCwgMS4yNXJlbSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgZm9udC13ZWlnaHQ6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWZvbnQtd2VpZ2h0LCA0MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NTcxNDI5ZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLWxldHRlci1zcGFjaW5nLCAwLjAxNzg1NzE0MjllbSk7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHZhcigtLW1kYy10eXBvZ3JhcGh5LWJvZHkyLXRleHQtZGVjb3JhdGlvbiwgaW5oZXJpdCk7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1ib2R5Mi10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWRjLWRhdGEtdGFibGVfX2NlbGwtLW51bWVyaWMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbltkaXI9cnRsXSAubWRjLWRhdGEtdGFibGVfX2NlbGwtLW51bWVyaWMsIC5tZGMtZGF0YS10YWJsZV9fY2VsbC0tbnVtZXJpY1tkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbCB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItZm9udC1mYW1pbHksIHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCBSb2JvdG8sIHNhbnMtc2VyaWYpKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1mb250LXNpemUsIDAuODc1cmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItbGluZS1oZWlnaHQsIDEuMzc1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktc3VidGl0bGUyLWZvbnQtd2VpZ2h0LCA1MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDcxNDI4NTcxZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi1sZXR0ZXItc3BhY2luZywgMC4wMDcxNDI4NTcxZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1zdWJ0aXRsZTItdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LXN1YnRpdGxlMi10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuW2Rpcj1ydGxdIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGwsIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLWNlbGxbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxsLS1udW1lcmljIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5bZGlyPXJ0bF0gLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbC0tbnVtZXJpYywgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbC0tbnVtZXJpY1tkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItcm93LWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUsXG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSxcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUsXG4ubWRjLWRhdGEtdGFibGVfX3Jvdy1jaGVja2JveCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRlY2RjNDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzRlY2RjNCk7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1zZWxlY3RlZCAubWRjLWNoZWNrYm94X19yaXBwbGU6OmJlZm9yZSwgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItcm93LWNoZWNrYm94Lm1kYy1jaGVja2JveC0tc2VsZWN0ZWQgLm1kYy1jaGVja2JveF9fcmlwcGxlOjphZnRlcixcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94Lm1kYy1jaGVja2JveC0tc2VsZWN0ZWQgLm1kYy1jaGVja2JveF9fcmlwcGxlOjpiZWZvcmUsXG4ubWRjLWRhdGEtdGFibGVfX3Jvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkIC5tZGMtY2hlY2tib3hfX3JpcHBsZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGVjZGM0O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbn1cbi5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkOmhvdmVyIC5tZGMtY2hlY2tib3hfX3JpcHBsZTo6YmVmb3JlLFxuLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1zZWxlY3RlZDpob3ZlciAubWRjLWNoZWNrYm94X19yaXBwbGU6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXMgLm1kYy1jaGVja2JveF9fcmlwcGxlOjpiZWZvcmUsXG4ubWRjLWRhdGEtdGFibGVfX3Jvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19yaXBwbGU6OmJlZm9yZSxcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94Lm1kYy1jaGVja2JveC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyAubWRjLWNoZWNrYm94X19yaXBwbGU6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIC5tZGMtY2hlY2tib3hfX3JpcHBsZTo6YWZ0ZXIsXG4ubWRjLWRhdGEtdGFibGVfX3Jvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCkgLm1kYy1jaGVja2JveF9fcmlwcGxlOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyO1xufVxuLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItcm93LWNoZWNrYm94Lm1kYy1jaGVja2JveC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmUgLm1kYy1jaGVja2JveF9fcmlwcGxlOjphZnRlcixcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94Lm1kYy1jaGVja2JveC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmUgLm1kYy1jaGVja2JveF9fcmlwcGxlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMjQ7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLFxuLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLm1kYy1jaGVja2JveC0tc2VsZWN0ZWQgLm1kYy1jaGVja2JveF9fcmlwcGxlOjpiZWZvcmUsXG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLm1kYy1jaGVja2JveC0tc2VsZWN0ZWQgLm1kYy1jaGVja2JveF9fcmlwcGxlOjphZnRlcixcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZC5tZGMtY2hlY2tib3gtLXNlbGVjdGVkIC5tZGMtY2hlY2tib3hfX3JpcHBsZTo6YmVmb3JlLFxuLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkLm1kYy1jaGVja2JveC0tc2VsZWN0ZWQgLm1kYy1jaGVja2JveF9fcmlwcGxlOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItcm93LWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKTpub3QoOmluZGV0ZXJtaW5hdGUpIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbi5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvdy1jaGVja2JveCAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3ggLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbi5tZGMtZGF0YS10YWJsZV9fcm93LWNoZWNrYm94IC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBib3JkZXItY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzRlY2RjNCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xufVxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLThBMDAwMDAwcHJpbWFyeTAwMDAwMDAwcHJpbWFyeSB7XG4gIDAlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgNTAlIHtcbiAgICBib3JkZXItY29sb3I6ICM0ZWNkYzQ7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbiAgfVxufVxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC04QTAwMDAwMHByaW1hcnkwMDAwMDAwMHByaW1hcnkge1xuICAwJSwgODAlIHtcbiAgICBib3JkZXItY29sb3I6ICM0ZWNkYzQ7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjNGVjZGM0KTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbi5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4ubWRjLWRhdGEtdGFibGVfX3Jvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4ubWRjLWRhdGEtdGFibGVfX3Jvdy1jaGVja2JveC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBhbmltYXRpb24tbmFtZTogbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC04QTAwMDAwMHByaW1hcnkwMDAwMDAwMHByaW1hcnk7XG59XG4ubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLCAubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3gubWRjLWNoZWNrYm94LS1hbmltLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYW5pbWF0aW9uLW5hbWU6IG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLThBMDAwMDAwcHJpbWFyeTAwMDAwMDAwcHJpbWFyeTtcbn1cblxuLm1kYy10b3AtYXBwLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZWNkYzQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICM0ZWNkYzQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xufVxuLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbi5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uIHtcbiAgY29sb3I6ICMwMDA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjMDAwKTtcbn1cbi5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YWZ0ZXIsXG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlLFxuLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgIzAwMCk7XG59XG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOmhvdmVyOjpiZWZvcmUsXG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMC4wNDtcbn1cbi5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLFxuLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUsXG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjEyO1xufVxuLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlcixcbi5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlcixcbi5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQsXG4ubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDY0cHg7XG59XG4ubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICB6LWluZGV4OiAxO1xufVxuLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG9yZGVyOiAtMTtcbn1cbi5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG9yZGVyOiAxO1xufVxuLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWZvbnQtZmFtaWx5LCB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgUm9ib3RvLCBzYW5zLXNlcmlmKSk7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXNpemU6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1mb250LXNpemUsIDEuMjVyZW0pO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWxpbmUtaGVpZ2h0LCAycmVtKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBmb250LXdlaWdodDogdmFyKC0tbWRjLXR5cG9ncmFwaHktaGVhZGxpbmU2LWZvbnQtd2VpZ2h0LCA1MDApO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi1sZXR0ZXItc3BhY2luZywgMC4wMTI1ZW0pO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1oZWFkbGluZTYtdGV4dC1kZWNvcmF0aW9uLCBpbmhlcml0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgdGV4dC10cmFuc2Zvcm06IHZhcigtLW1kYy10eXBvZ3JhcGh5LWhlYWRsaW5lNi10ZXh0LXRyYW5zZm9ybSwgaW5oZXJpdCk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xufVxuW2Rpcj1ydGxdIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlLCAubWRjLXRvcC1hcHAtYmFyX190aXRsZVtkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJhZGl1czogMCAwIDI0cHggMDtcbn1cbltkaXI9cnRsXSAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZFtkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMjRweDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICB0b3A6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5bZGlyPXJ0bF0gLm1kYy10b3AtYXBwLWJhci0tc2hvcnQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0W2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBhdXRvO1xufVxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgaGVpZ2h0OiA1NnB4O1xufVxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDRweDtcbn1cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB3aWR0aDogNTZweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ge1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSB7XG4gIHdpZHRoOiAxMTJweDtcbn1cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuW2Rpcj1ydGxdIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQsIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmRbZGlyPXJ0bF0ge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICBoZWlnaHQ6IDQ4cHg7XG59XG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgcGFkZGluZzogMCA0cHg7XG59XG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5bZGlyPXJ0bF0gLm1kYy10b3AtYXBwLWJhci0tZGVuc2UgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUsIC5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlW2Rpcj1ydGxdIHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMTJweDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gIGhlaWdodDogMTI4cHg7XG59XG4ubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1zY3JvbGxlZCB7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICBoZWlnaHQ6IDk2cHg7XG59XG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgcGFkZGluZzogMCAxMnB4O1xufVxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xufVxuW2Rpcj1ydGxdIC5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlLCAubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZVtkaXI9cnRsXSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiA2NHB4O1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogNDhweDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDU2cHg7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogMTI4cHg7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogOTZweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZzogNHB4O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgfVxuICBbZGlyPXJ0bF0gLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCwgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZFtkaXI9cnRsXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLWFkanVzdCB7XG4gICAgcGFkZGluZy10b3A6IDU2cHg7XG4gIH1cbn1cbi5tZGMtaWNvbi1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDEycHg7XG59XG4ubWRjLWljb24tYnV0dG9uIHN2Zyxcbi5tZGMtaWNvbi1idXR0b24gaW1nIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbi5tZGMtaWNvbi1idXR0b246ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpO1xufVxuLm1kYy1pY29uLWJ1dHRvbjpkaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tZGMtaWNvbi1idXR0b25fX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubWRjLWljb24tYnV0dG9uX19pY29uLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWRjLWljb24tYnV0dG9uLS1vbiAubWRjLWljb24tYnV0dG9uX19pY29uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5tZGMtaWNvbi1idXR0b24tLW9uIC5tZGMtaWNvbi1idXR0b25fX2ljb24ubWRjLWljb24tYnV0dG9uX19pY29uLS1vbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1kYy1pY29uLWJ1dHRvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLm1kYy1pY29uLWJ1dHRvbjo6YmVmb3JlLCAubWRjLWljb24tYnV0dG9uOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5tZGMtaWNvbi1idXR0b246OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gIHotaW5kZXg6IDE7XG59XG4ubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xufVxuLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHRvcDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbn1cbi5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzO1xufVxuLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbn1cbi5tZGMtaWNvbi1idXR0b246OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbjo6YWZ0ZXIge1xuICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBjYWxjKDUwJSAtIDUwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xufVxuLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG59XG4ubWRjLWljb24tYnV0dG9uOjpiZWZvcmUsIC5tZGMtaWNvbi1idXR0b246OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi5tZGMtaWNvbi1idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDQ7XG59XG4ubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLCAubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG59XG4ubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gIG9wYWNpdHk6IDAuMTI7XG59XG4ubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjtcbn1cblxuLyogWW91IGNhbiBhZGQgZ2xvYmFsIHN0eWxlcyB0byB0aGlzIGZpbGUsIGFuZCBhbHNvIGltcG9ydCBvdGhlciBzdHlsZSBmaWxlcyAqL1xuLyogQ29sb3IgKi9cbmh0bWwsIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmZmZlO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLXRvcDogMC4xcHg7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59IiwiQHVzZSAnQG1hdGVyaWFsL2ZhYi9taXhpbnMnO1xyXG5cclxuLm5neC1tZGMtZmFiLWV4dGVuZGVkLS1mbHVpZCB7XHJcbiAgQGluY2x1ZGUgbWl4aW5zLmV4dGVuZGVkLWZsdWlkO1xyXG59XHJcblxyXG4ubmd4LW1kYy1mYWItLWJvdHRvbS1yaWdodCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHJpZ2h0OiAxcmVtO1xyXG4gIGJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xyXG4gIC5uZ3gtbWRjLWZhYi0tYm90dG9tLXJpZ2h0IHtcclxuICAgIHJpZ2h0OiAxLjVyZW07XHJcbiAgICBib3R0b206IDEuNXJlbTtcclxuICB9XHJcbn1cclxuXHJcbi5uZ3gtbWRjLWZhYi0tYm90dG9tLWxlZnQge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBib3R0b206IDFyZW07XHJcbiAgbGVmdDogMXJlbTtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xyXG4gIC5uZ3gtbWRjLWZhYi0tYm90dG9tLWxlZnQge1xyXG4gICAgYm90dG9tOiAxLjVyZW07XHJcbiAgICBsZWZ0OiAxLjVyZW07XHJcbiAgfVxyXG59XHJcbiIsIi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCIgYXMgYW5pbWF0aW9uLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiIGFzIGVsZXZhdGlvbi1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2VsZXZhdGlvbi92YXJpYWJsZXNcIiBhcyBlbGV2YXRpb24tdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiIGFzIHJpcHBsZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3JpcHBsZS92YXJpYWJsZXNcIiBhcyB2YXJpYWJsZXMyO1xuQHVzZSBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCIgYXMgcnRsLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCIgYXMgc2hhcGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9mdW5jdGlvbnNcIiBhcyBzaGFwZS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL2Z1bmN0aW9uc1wiIGFzIHRoZW1lLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90b3VjaC10YXJnZXQvbWl4aW5zXCIgYXMgdG91Y2gtdGFyZ2V0LW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIiBhcyB0eXBvZ3JhcGh5LW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG4kcmlwcGxlLXRhcmdldDogXCIubWRjLWZhYl9fcmlwcGxlXCI7XG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSB3aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUoJHF1ZXJ5KTtcbn1cblxuQG1peGluIHdpdGhvdXQtcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGZhYlxuXG4gIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1taXhpbnMud3JhcHBlcigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLm92ZXJsYXktY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLm1kYy1mYWIge1xuICAgIEBpbmNsdWRlIGJhc2VfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBjb250YWluZXItY29sb3Ioc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaWNvbi1zaXplKDI0cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpbmstY29sb3Iob24tc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWZhYi0tbWluaSB7XG4gICAgQGluY2x1ZGUgbWluaV8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWItLWV4dGVuZGVkIHtcbiAgICBAaW5jbHVkZSBleHRlbmRlZF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWItLXRvdWNoIHtcbiAgICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtbWl4aW5zLm1hcmdpbihcbiAgICAgICRjb21wb25lbnQtaGVpZ2h0OiB2YXJpYWJsZXMuJG1pbmktaGVpZ2h0LFxuICAgICAgJGNvbXBvbmVudC13aWR0aDogdmFyaWFibGVzLiRtaW5pLWhlaWdodCxcbiAgICAgICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIC5tZGMtZmFiX190b3VjaCB7XG4gICAgICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtbWl4aW5zLnRvdWNoLXRhcmdldCgkc2V0LXdpZHRoOiB0cnVlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1mYWJfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIGljb25fKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIEluY3JlYXNlIHNwZWNpZmljaXR5IGZvciBGQUIgaWNvbiBzdHlsZXMgdGhhdCBuZWVkIHRvIG92ZXJyaWRlIHN0eWxlcyBkZWZpbmVkIGZvciAubWF0ZXJpYWwtaWNvbnNcbiAgLy8gKHdoaWNoIGlzIGxvYWRlZCBzZXBhcmF0ZWx5IHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90IGd1YXJhbnRlZWQpXG4gIC5tZGMtZmFiIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBpY29uLW92ZXJyaWRlc18oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWItLWV4aXRlZCB7XG4gICAgQGluY2x1ZGUgZXhpdGVkXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZmFiXG5cbiAgLm1kYy1mYWIge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZShcbiAgICAgICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMucmFkaXVzLWJvdW5kZWQoXG4gICAgICAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcyhcbiAgICAgIG9uLXNlY29uZGFyeSwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy50YXJnZXQtY29tbW9uKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIGFjY2Vzc2libGUoJGNvbnRhaW5lci1jb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyLWNvbG9yKCRjb250YWluZXItY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAkZmlsbC10b25lOiB0aGVtZS1mdW5jdGlvbnMudG9uZSgkY29udGFpbmVyLWNvbG9yKTtcblxuICBAaWYgKCRmaWxsLXRvbmUgPT0gXCJkYXJrXCIpIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcyhcbiAgICAgIHRleHQtcHJpbWFyeS1vbi1kYXJrLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgICAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoXG4gICAgICB0ZXh0LXByaW1hcnktb24tbGlnaHQsXG4gICAgICAkcXVlcnk6ICRxdWVyeSxcbiAgICAgICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuQG1peGluIGNvbnRhaW5lci1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIGljb24tc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBleHRlbmRlZC1mbHVpZCgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZXh0ZW5kZWQtcGFkZGluZygkaWNvbi1wYWRkaW5nLCAkbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZXh0ZW5kZWQtbGFiZWwtcGFkZGluZygkbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC8vIE9mZnNldHMgdGhlIG91dGVyIGxhYmVsIHBhZGRpbmcgYnkgZGVkdWN0aW5nIGl0IGZyb20gaWNvbiBwYWRkaW5nLlxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sICRpY29uLXBhZGRpbmcgLSAkbGFiZWwtcGFkZGluZywgJGljb24tcGFkZGluZyk7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9yIEV4dGVuZGVkIEZBQiB3aXRoIHRleHQgbGFiZWwgZm9sbG93ZWQgYnkgaWNvbi5cbiAgLm1kYy1mYWJfX2xhYmVsICsgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAkaWNvbi1wYWRkaW5nLCAkaWNvbi1wYWRkaW5nIC0gJGxhYmVsLXBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZXh0ZW5kZWQtbGFiZWwtcGFkZGluZygkbGFiZWwtcGFkZGluZywgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcGFkZGluZzogMCAkbGFiZWwtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJjpub3QoLm1kYy1mYWItLWV4dGVuZGVkKSB7XG4gICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZXh0ZW5kZWQtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cyhcbiAgICBzaGFwZS1mdW5jdGlvbnMucmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cyh2YXJpYWJsZXMuJGV4dGVuZGVkLWhlaWdodCwgJHJhZGl1cyksXG4gICAgJHJ0bC1yZWZsZXhpdmUsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcblxuICAjeyRyaXBwbGUtdGFyZ2V0fSB7XG4gICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cyhcbiAgICAgIHNoYXBlLWZ1bmN0aW9ucy5yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKHZhcmlhYmxlcy4kZXh0ZW5kZWQtaGVpZ2h0LCAkcmFkaXVzKSxcbiAgICAgICRydGwtcmVmbGV4aXZlLFxuICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICApO1xuICB9XG59XG5cbiRpY29uLWVudGVyLWRlbGF5XzogOTBtcztcbiRpY29uLWVudGVyLWR1cmF0aW9uXzogMTgwbXM7XG5cbkBtaXhpbiBiYXNlXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLm92ZXJsYXktc3VyZmFjZS1wb3NpdGlvbigkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMub3ZlcmxheS1kaW1lbnNpb25zKDEwMCUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oNiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBzaGFwZS1yYWRpdXMoNTAlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IHZhcmlhYmxlcy4kaGVpZ2h0O1xuICAgIGhlaWdodDogdmFyaWFibGVzLiRoZWlnaHQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvLyBFdmVuIHRob3VnaCBgdmlzaWJsZWAgaXMgdGhlIGRlZmF1bHQsIElFIDExIGNvbXB1dGVzIHRoZSBwcm9wZXJ0eSBhc1xuICAgIC8vIGBoaWRkZW5gIGluIHNvbWUgY2FzZXMsIHVubGVzcyBpdCdzIGV4cGxpY2l0bHkgZGVmaW5lZCBoZXJlLlxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGJveC1zaGFkb3cgZWxldmF0aW9uLXZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiBlbGV2YXRpb24tdmFyaWFibGVzLiR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbixcbiAgICAgIG9wYWNpdHkgMTVtcyBsaW5lYXIgMzBtcyxcbiAgICAgIGFuaW1hdGlvbi1mdW5jdGlvbnMuZW50ZXIodHJhbnNmb3JtLCAkaWNvbi1lbnRlci1kdXJhdGlvbl8gKyAkaWNvbi1lbnRlci1kZWxheV8pO1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigxMiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIC8vIFRPRE8oYWNkdm9yYWspOiBTaG91bGQgdGhpcyBiZSBwYWlyZWQgd2l0aCBzdGF0ZXMgYW5kL29yIHJpcHBsZT8gV2UgZG9uJ3Qgd2FudCB0byBkaXNhYmxlIG91dGxpbmVcbiAgICAvLyAoYW4gYWNjZXNzaWJpbGl0eS91c2FiaWxpdHkgZmVhdHVyZSkgdW5sZXNzIHdlJ3JlIGNvbmZpZGVudCB0aGF0IHRoZXJlIGlzIGFsc28gYSB2aXN1YWwgaW5kaWNhdGlvbiB0aGF0IHRoZVxuICAgIC8vIGVsZW1lbnQgaGFzIGZvY3VzLiBJZiB0aGUgY2xpZW50IGhhcyBjdXN0b21pemVkIHRoZSBET00gaW4gc29tZSB1bmV4cGVjdGVkIHdheSwgYW5kIGlzIGNlcnRhaW4gdGhhdCBhbm90aGVyXG4gICAgLy8gZWxlbWVudCB3aWxsIHJlY2VpdmUgZm9jdXMgaW5zdGVhZCwgdGhleSBjYW4gYWx3YXlzIG92ZXJyaWRlIHRoaXMgcHJvcGVydHkgbWFudWFsbHkgaW4gdGhlaXIgQ1NTLlxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIGFsbG93cyBmb3IgdXNpbmcgU1ZHcyB3aXRoaW4gdGhlbSB0byBhbGlnbiBwcm9wZXJseSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIENhbiByZW1vdmUgb25jZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDUxNSBpcyByZXNvbHZlZC5cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICA+IHN2ZyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxufVxuXG5AbWl4aW4gbWluaV8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6IHZhcmlhYmxlcy4kbWluaS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiB2YXJpYWJsZXMuJG1pbmktaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBleHRlbmRlZF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShidXR0b24sICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZXh0ZW5kZWQtc2hhcGUtcmFkaXVzKDUwJSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBleHRlbmRlZC1wYWRkaW5nKHZhcmlhYmxlcy4kZXh0ZW5kZWQtaWNvbi1wYWRkaW5nLCB2YXJpYWJsZXMuJGV4dGVuZGVkLWxhYmVsLXBhZGRpbmcsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiB2YXJpYWJsZXMuJGV4dGVuZGVkLWhlaWdodDtcbiAgICAvLyBUaGlzIGFsbG93cyB0aGUgdGV4dCB3aXRoaW4gdGhlIGV4dGVuZGVkIGZhYiB0byBiZSBjZW50ZXJlZCBmb3IgdmFyeWluZyBmb250IHNpemVzLlxuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG59XG5cbkBtaXhpbiBpY29uXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogYW5pbWF0aW9uLWZ1bmN0aW9ucy5lbnRlcih0cmFuc2Zvcm0sICRpY29uLWVudGVyLWR1cmF0aW9uXywgJGljb24tZW50ZXItZGVsYXlfKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG59XG5cbkBtaXhpbiBsYWJlbF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbn1cblxuQG1peGluIGljb24tb3ZlcnJpZGVzXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbkBtaXhpbiBleGl0ZWRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgb3BhY2l0eSAxNW1zIGxpbmVhciAxNTBtcyxcbiAgICAgIGFuaW1hdGlvbi1mdW5jdGlvbnMuZXhpdC1wZXJtYW5lbnQodHJhbnNmb3JtLCAxODBtcyk7XG4gIH1cblxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogYW5pbWF0aW9uLWZ1bmN0aW9ucy5leGl0LXBlcm1hbmVudCh0cmFuc2Zvcm0sIDEzNW1zKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5uZ3gtbWRjLWljb24tLWNsaWNrYWJsZSxcclxuYS5uZ3gtbWRjLWljb24ge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuXHJcbi5uZ3gtbWRjLWljb24tLWlubGluZSB7XHJcbiAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIGhlaWdodDogaW5oZXJpdDtcclxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB3aWR0aDogaW5oZXJpdDtcclxufVxyXG4iLCIubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbiIsIi5tZGMtbGluZWFyLXByb2dyZXNzIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4iLCIubWRjLWxpc3QsXHJcbi5tZGMtbGlzdC1kaXZpZGVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLm5neC1tZGMtbGlzdC0tYm9yZGVyIHtcclxuICAubWRjLWxpc3QtaXRlbSB7XHJcbiAgICAvKiBBZGQgdGhlIGxpc3Qgc2lkZSBwYWRkaW5nIHBhZGRpbmcgdG8gdGhlIGxpc3QgaXRlbS4gKi9cclxuICAgIHBhZGRpbmc6IDAgMTZweDtcclxuXHJcbiAgICAvKiBBZGQgYSBib3JkZXIgYXJvdW5kIGVhY2ggZWxlbWVudC4gKi9cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgLjEyKTtcclxuICB9XHJcblxyXG4gIC8qIEVuc3VyZSBhZGphY2VudCBib3JkZXJzIGRvbid0IGNvbGxpZGUgd2l0aCBvbmUgYW5vdGhlci4gKi9cclxuICAubWRjLWxpc3QtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gIH1cclxufVxyXG4iLCIubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9yIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuIiwiLm1kYy1zbGlkZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG4iLCJAdXNlICdAbWF0ZXJpYWwvc25hY2tiYXIvdmFyaWFibGVzJztcclxuXHJcbi5uZ3gtbWRjLXNuYWNrYmFyLS10cmFpbGluZyB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IHZhcmlhYmxlcy4kbW9iaWxlLWJyZWFrcG9pbnQpIHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgfVxyXG59XHJcbiIsIkB1c2UgJ0BtYXRlcmlhbC90YWIvbWl4aW5zJztcclxuQHVzZSAnQG1hdGVyaWFsL3RhYi1pbmRpY2F0b3IvbWl4aW5zJyBhcyBpbmRpY2F0b3ItbWl4aW5zO1xyXG5cclxuLm5neC1tZGMtdGFiLS1kaXNhYmxlZCB7XHJcbiAgQGluY2x1ZGUgbWl4aW5zLnRleHQtbGFiZWwtY29sb3IocmdiYShibGFjaywgLjMpKTtcclxuICBAaW5jbHVkZSBtaXhpbnMuaWNvbi1jb2xvcihyZ2JhKGJsYWNrLCAuMykpO1xyXG5cclxuICAubWRjLXRhYi1pbmRpY2F0b3Ige1xyXG4gICAgQGluY2x1ZGUgaW5kaWNhdG9yLW1peGlucy51bmRlcmxpbmUtY29sb3IocmdiYShibGFjaywgLjMpKTtcclxuICB9XHJcblxyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCIgYXMgcmlwcGxlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiIGFzIHR5cG9ncmFwaHktbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCIgYXMgcnRsLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGFiLWluZGljYXRvci9taXhpbnNcIiBhcyB0YWItaW5kaWNhdG9yLW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSB3aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlc1xuLy8gZnJvbSB0aGUgb3RoZXIgdGFoIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXRhYi1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiB3aXRob3V0LXJpcHBsZSgkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGFiXG5cbiAgLm1kYy10YWIge1xuICAgIEBpbmNsdWRlIGJhc2VfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXRhYi0tbWluLXdpZHRoIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGFiX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBjb250ZW50XygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy10YWJfX3RleHQtbGFiZWwge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogMTUwbXMgY29sb3IgbGluZWFyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgLy8gU2V0dGluZyBsaW5lLWhlaWdodCBoZXJlIG92ZXJyaWRlcyB0aGUgbGluZS1oZWlnaHQgZnJvbSB0aGUgdHlwb2dyYXBoeVxuICAgICAgLy8gbWl4aW4gYWJvdmUuIFRoZSBsaW5lLWhlaWdodCBuZWVkcyB0byBiZSBvdmVycmlkZGVuIHNvIHRoYXQgdGhlIHNwYWNpbmdcbiAgICAgIC8vIGJldHdlZW4gdGhlIHRleHQgbGFiZWwgYW5kIHRoZSBpY29uIGFzIHdlbGwgYXMgdGhlIHRleHQgbGFiZWwgYW5kIHRoZVxuICAgICAgLy8gYm90dG9tIG9mIHRoZSB0YWIgcmVtYWluIHRoZSBzYW1lLlxuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246IDE1MG1zIGNvbG9yIGxpbmVhcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgICAgIGhlaWdodDogdmFyaWFibGVzLiRpY29uLXNpemU7XG4gICAgICBmb250LXNpemU6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cblxuICAubWRjLXRhYi0tc3RhY2tlZCB7XG4gICAgQGluY2x1ZGUgc3RhY2tlZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtdGFiLS1hY3RpdmUge1xuICAgIEBpbmNsdWRlIGFjdGl2ZV8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24gKyAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gocGFkZGluZywgbGVmdCwgOHB4KTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzXG4vLyBmcm9tIHRoZSBvdGhlciB0YWggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtdGFiLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIHJpcHBsZSgkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLmNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC5tZGMtdGFiX19yaXBwbGUge1xuICAgIEBpbmNsdWRlIHJpcHBsZV8oJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gaG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiB0ZXh0LWxhYmVsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtdGFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG5cbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN0YXRlcy1jb2xvcigkY29sb3IsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC5tZGMtdGFiX19yaXBwbGUge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBpbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgc3RhdGVzLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgdGV4dC1sYWJlbC1jb2xvcigkY29sb3IsICRxdWVyeSk7XG59XG5cbkBtaXhpbiBhY3RpdmUtdGV4dC1sYWJlbC1jb2xvcigkY29sb3IsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICYubWRjLXRhYi0tYWN0aXZlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWxhYmVsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gYWN0aXZlLWljb24tY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAmLm1kYy10YWItLWFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgaWNvbi1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGFjdGl2ZS1zdGF0ZXMtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAmLm1kYy10YWItLWFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgc3RhdGVzLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gcGFyZW50LXBvc2l0aW9uaW5nKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG5AbWl4aW4gZml4ZWQtd2lkdGgoJHdpZHRoLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBmbGV4OiAwIDEgJHdpZHRoO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGFiIGhlaWdodFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgSGVpZ2h0IHZhbHVlIGluIGBweGAuXG4vLy9cbkBtaXhpbiBoZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGFiIHRleHQgdHJhbnNmb3JtXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRyYW5zZm9ybSBUaGUgdGV4dC10cmFuc2Zvcm0gcHJvcGVydHkgdG8gYXBwbHkuXG4vLy9cbkBtaXhpbiB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIGJhc2VfKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoYnV0dG9uLCAkcXVlcnkpO1xuICBAaW5jbHVkZSB0ZXh0LWxhYmVsLWNvbG9yKHZhcmlhYmxlcy4kdGV4dC1sYWJlbC1jb2xvci1kZWZhdWx0LCAkcXVlcnkpO1xuICBAaW5jbHVkZSBpY29uLWNvbG9yKHZhcmlhYmxlcy4kaWNvbi1jb2xvci1kZWZhdWx0LCAkcXVlcnkpO1xuICBAaW5jbHVkZSBob3Jpem9udGFsLXBhZGRpbmcodmFyaWFibGVzLiRob3Jpem9udGFsLXBhZGRpbmcsICRxdWVyeSk7XG4gIEBpbmNsdWRlIHRhYi1pbmRpY2F0b3ItbWl4aW5zLnN1cmZhY2UoJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gRXhwbGljaXRseSBzZXR0aW5nIG1hcmdpbiB0byAwIGlzIHRvIG92ZXJyaWRlIHNhZmFyaSBkZWZhdWx0IG1hcmdpbiBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgei1pbmRleDogMTtcblxuICAgIC8vIEZpcmVmb3ggc3RpbGwgZHJhd3MgYSBkb3R0ZWQgYm9yZGVyIGFyb3VuZCBmb2N1c2VkIGJ1dHRvbnMgdW5sZXNzIHNwZWNpZmljYWxseSBvdmVycmlkZGVuLlxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJpcHBsZV8oJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdXJmYWNlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMucmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcygkY29sb3I6IHByaW1hcnksICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuQG1peGluIGNvbnRlbnRfKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHRhYi1pbmRpY2F0b3ItbWl4aW5zLnN1cmZhY2UoJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBzdGFja2VkXygkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAubWRjLXRhYl9fY29udGVudCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYWN0aXZlXygkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcblxuICBAaW5jbHVkZSB0ZXh0LWxhYmVsLWNvbG9yKHZhcmlhYmxlcy4kdGV4dC1sYWJlbC1jb2xvci1hY3RpdmUsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGljb24tY29sb3IodmFyaWFibGVzLiRpY29uLWNvbG9yLWFjdGl2ZSwgJHF1ZXJ5KTtcblxuICAubWRjLXRhYl9fdGV4dC1sYWJlbCxcbiAgLm1kYy10YWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcbkB1c2UgXCIuL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIDpyb290IHtcbiAgICBAaW5jbHVkZSBtaXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGVhY2ggJHN0eWxlIGluIG1hcC5rZXlzKHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzKSB7XG4gICAgICAgIC0tbWRjLXRoZW1lLSN7JHN0eWxlfTogI3ttYXAuZ2V0KHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkc3R5bGUgaW4gbWFwLmtleXModmFyaWFibGVzLiRwcm9wZXJ0eS12YWx1ZXMpIHtcbiAgICBAaWYgJHN0eWxlICE9IFwiYmFja2dyb3VuZFwiIGFuZCAkc3R5bGUgIT0gXCJzdXJmYWNlXCIge1xuICAgICAgLm1kYy10aGVtZS0tI3skc3R5bGV9IHtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgICBAaW5jbHVkZSBwcm9wKGNvbG9yLCAkc3R5bGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAubWRjLXRoZW1lLS0jeyRzdHlsZX0ge1xuICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAgIEBpbmNsdWRlIHByb3AoYmFja2dyb3VuZC1jb2xvciwgJHN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENTUyBydWxlcyBmb3IgdXNpbmcgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IChwbHVzIGxpZ2h0L2RhcmsgdmFyaWFudHMpIGFzIGJhY2tncm91bmQgY29sb3JzLlxuICBAZWFjaCAkc3R5bGUgaW4gKFwicHJpbWFyeVwiLCBcInNlY29uZGFyeVwiKSB7XG4gICAgLm1kYy10aGVtZS0tI3skc3R5bGV9LWJnIHtcbiAgICAgIEBpbmNsdWRlIG1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIHByb3AoYmFja2dyb3VuZC1jb2xvciwgJHN0eWxlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCB0aGVtZSBjb2xvciBzdHlsZSB0byB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LlxuLy8gJHByb3BlcnR5IGlzIHR5cGljYWxseSBjb2xvciBvciBiYWNrZ3JvdW5kLWNvbG9yLCBidXQgY2FuIGJlIGFueSBDU1MgcHJvcGVydHkgdGhhdCBhY2NlcHRzIGNvbG9yIHZhbHVlcy5cbi8vICRzdHlsZSBzaG91bGQgYmUgb25lIG9mIHRoZSBtYXAga2V5cyBpbiAkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyAoX3ZhcmlhYmxlcy5zY3NzKSwgb3IgYSBjb2xvciB2YWx1ZS5cbkBtaXhpbiBwcm9wKCRwcm9wZXJ0eSwgJHN0eWxlLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICAkaW1wb3J0YW50LXJ1bGU6IGlmKCRpbXBvcnRhbnQsIFwiIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICBAaWYgZnVuY3Rpb25zLmlzLXZhci13aXRoLWZhbGxiYWNrXygkc3R5bGUpIHtcbiAgICAjeyRwcm9wZXJ0eX06IGZ1bmN0aW9ucy5nZXQtdmFyLWZhbGxiYWNrXygkc3R5bGUpICN7JGltcG9ydGFudC1ydWxlfTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgI3skcHJvcGVydHl9OiBmdW5jdGlvbnMudmFyXygkc3R5bGUpICN7JGltcG9ydGFudC1ydWxlfTtcbiAgfSBAZWxzZSBpZiB2YXJpYWJsZXMuaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gICAgI3skcHJvcGVydHl9OiAkc3R5bGUgI3skaW1wb3J0YW50LXJ1bGV9O1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90IG1hcC5oYXMta2V5KHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpIHtcbiAgICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGU6ICcjeyRzdHlsZX0nLiBDaG9vc2Ugb25lIG9mOiAje21hcC5rZXlzKHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzKX1cIjtcbiAgICB9XG4gICAgJHZhbHVlOiBtYXAuZ2V0KHZhcmlhYmxlcy4kcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpO1xuXG4gICAgI3skcHJvcGVydHl9OiAkdmFsdWUgI3skaW1wb3J0YW50LXJ1bGV9O1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAjeyRwcm9wZXJ0eX06IHZhcigtLW1kYy10aGVtZS0jeyRzdHlsZX0sICR2YWx1ZSkgI3skaW1wb3J0YW50LXJ1bGV9O1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC1hbmltYXRpb246IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0YWItaW5kaWNhdG9yXG5cbiAgLm1kYy10YWItaW5kaWNhdG9yIHtcbiAgICBAaW5jbHVkZSBiYXNlXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtdGFiLWluZGljYXRvci0tYWN0aXZlIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNsaWRlIGJ5IGRlZmF1bHRcbiAgLm1kYy10YWItaW5kaWNhdG9yIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAyNTBtcyB0cmFuc2Zvcm0gdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgfVxuICB9XG5cbiAgLy8gLS1uby10cmFuc2l0aW9uIGlzIGFwcGxpZWQgaW4gY2FzZXMgd2hlcmUgc3R5bGVzIG5lZWQgdG8gYmUgYXBwbGllZCBpbW1lZGlhdGVseSB0byBzZXQgdXAgYSB0cmFuc2l0aW9uXG4gIC5tZGMtdGFiLWluZGljYXRvci0tbm8tdHJhbnNpdGlvbiAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246IDE1MG1zIG9wYWNpdHkgbGluZWFyO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtdGFiLWluZGljYXRvci0tYWN0aXZlLm1kYy10YWItaW5kaWNhdG9yLS1mYWRlIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxMDBtcztcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gc3VyZmFjZSgkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuQG1peGluIHVuZGVybGluZS1jb2xvcigkY29sb3IsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVuZGVybGluZS1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHVuZGVybGluZS10b3AtY29ybmVyLXJhZGl1cygkcmFkaXVzLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaWNvbi1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIGZvbnQtc2l6ZTogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBiYXNlXygkcXVlcnkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgdW5kZXJsaW5lLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gIEBpbmNsdWRlIGljb24tY29sb3Ioc2Vjb25kYXJ5LCAkcXVlcnkpO1xuICBAaW5jbHVkZSB1bmRlcmxpbmUtaGVpZ2h0KDJweCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaWNvbi1oZWlnaHQoMzRweCwgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuIiwiLm1kYy10YWItYmFyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4iLCIubWRjLXRhYi1zY3JvbGxlciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIiwiLmNkay12aXN1YWxseS1oaWRkZW4ge1xyXG4gIGJvcmRlcjogMDtcclxuICBjbGlwOiByZWN0KDAgMCAwIDApO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG1hcmdpbjogLTFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxcHg7XHJcblxyXG4gIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxyXG4gIG91dGxpbmU6IDA7XHJcblxyXG4gIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCJzYXNzOnN0cmluZ1wiO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAubWRjLXR5cG9ncmFwaHkge1xuICAgIEBpbmNsdWRlIGJhc2UoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGVhY2ggJHN0eWxlIGluIG1hcC5rZXlzKHZhcmlhYmxlcy4kc3R5bGVzKSB7XG4gICAgLm1kYy10eXBvZ3JhcGh5LS0jeyRzdHlsZX0ge1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeSgkc3R5bGUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJhc2UoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtdHlwb2dyYXBoeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcblxuICBAaW5jbHVkZSBzbW9vdGgtZm9udCgkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChmb250LWZhbWlseSwgKFxuICAgICAgdmFybmFtZTogLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSxcbiAgICAgIGZhbGxiYWNrOiBtYXAuZ2V0KHZhcmlhYmxlcy4kYmFzZSwgJ2ZvbnQtZmFtaWx5JylcbiAgICApKTtcbiAgfVxufVxuXG5AbWl4aW4gdHlwb2dyYXBoeSgkc3R5bGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkZXhjbHVkZS1wcm9wczogKCkpIHtcbiAgJGZlYXQtdHlwb2dyYXBoeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcbiAgJHN0eWxlLXByb3BzOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc3R5bGVzLCAkc3R5bGUpO1xuXG4gIEBpZiBub3QgbWFwLmhhcy1rZXkodmFyaWFibGVzLiRzdHlsZXMsICRzdHlsZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISAjeyRzdHlsZX0gZG9lc24ndCBleGlzdC4gQ2hvb3NlIG9uZSBvZiAje21hcC5rZXlzKHZhcmlhYmxlcy4kc3R5bGVzKX1cIjtcbiAgfVxuXG4gIEBpbmNsdWRlIHNtb290aC1mb250KCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkc3R5bGUtcHJvcHMge1xuICAgICAgQGlmIGxpc3QuaW5kZXgoJGV4Y2x1ZGUtcHJvcHMsICRrZXkpID09IG51bGwge1xuICAgICAgICAkZmFsbGJhY2s6ICR2YWx1ZTtcbiAgICAgICAgQGlmICRrZXkgPT0gXCJmb250LWZhbWlseVwiIHtcbiAgICAgICAgICAvLyBFYWNoIHN0eWxlIGhhcyBpdHMgb3duIGZvbnQtZmFtaWx5IGN1c3RvbSBwcm9wZXJ0eSwgYnV0IHNob3VsZFxuICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIGEgZ2VuZXJpYyBmb250LWZhbWlseSBwcm9wZXJ0eS4gVGhpcyBhbGxvd3NcbiAgICAgICAgICAvLyBjdXN0b21pemluZyB0aGUgZm9udC1mYW1pbHkgZm9yIGFsbCBzdHlsZXMgb3Igb25seSBzcGVjaWZpYyBvbmVzLlxuICAgICAgICAgICRmYWxsYmFjazogKFxuICAgICAgICAgICAgdmFybmFtZTogLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSxcbiAgICAgICAgICAgIGZhbGxiYWNrOiAkZmFsbGJhY2tcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoJGtleSwgKFxuICAgICAgICAgIHZhcm5hbWU6IC0tbWRjLXR5cG9ncmFwaHktI3skc3R5bGV9LSN7JGtleX0sXG4gICAgICAgICAgZmFsbGJhY2s6ICRmYWxsYmFja1xuICAgICAgICApKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgYW50aWFsaWFzaW5nIHZpYSBmb250LXNtb290aGluZyB0byB0ZXh0LlxuQG1peGluIHNtb290aC1mb250KCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH1cbn1cblxuLy8gRWxlbWVudCBtdXN0IGJlIGBkaXNwbGF5OiBibG9ja2Agb3IgYGRpc3BsYXk6IGlubGluZS1ibG9ja2AgZm9yIHRoaXMgdG8gd29yay5cbkBtaXhpbiBvdmVyZmxvdy1lbGxpcHNpcygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuQG1peGluIGJhc2VsaW5lLXRvcCgkZGlzdGFuY2UsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgYmFzZWxpbmUtc3RydXRfKCRkaXN0YW5jZSk7XG5cbiAgICAgIHZlcnRpY2FsLWFsaWduOiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmFzZWxpbmUtYm90dG9tKCRkaXN0YW5jZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTEgKiAkZGlzdGFuY2U7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBiYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKTtcblxuICAgICAgdmVydGljYWwtYWxpZ246IC0xICogJGRpc3RhbmNlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmFzZWxpbmUtc3RydXRfKCRkaXN0YW5jZSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6ICRkaXN0YW5jZTtcbiAgY29udGVudDogXCJcIjtcbn1cbiIsIi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2RlbnNpdHkvZnVuY3Rpb25zXCIgYXMgZGVuc2l0eS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIiBhcyBydGwtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiIGFzIHNoYXBlLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCIgYXMgc2hhcGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCIgYXMgcmlwcGxlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvZnVuY3Rpb25zXCIgYXMgdGhlbWUtZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiIGFzIHR5cG9ncmFwaHktbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L3ZhcmlhYmxlc1wiIGFzIHR5cG9ncmFwaHktdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvZnVuY3Rpb25zXCIgYXMgcmlwcGxlLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCIgYXMgdGhlbWUtdmFyaWFibGVzO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcmlwcGxlKCRxdWVyeSk7XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGxpc3Qgc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtbGlzdC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiB3aXRob3V0LXJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC10eXBvZ3JhcGh5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xuXG4gICRpdGVtLXByaW1hcnktdGV4dC1iYXNlbGluZS1oZWlnaHQ6IDMycHg7XG4gICRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodDogMjBweDtcbiAgJGRlbnNlLWl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodDogMjRweDtcbiAgJGRpdmlkZXItY29sb3I6IGlmKFxuICAgIHRoZW1lLWZ1bmN0aW9ucy50b25lKHRoZW1lLXZhcmlhYmxlcy4kYmFja2dyb3VuZCkgPT0gXCJkYXJrXCIsXG4gICAgdmFyaWFibGVzLiRkaXZpZGVyLWNvbG9yLW9uLWRhcmstYmcsXG4gICAgdmFyaWFibGVzLiRkaXZpZGVyLWNvbG9yLW9uLWxpZ2h0LWJnXG4gICk7XG5cbiAgLm1kYy1saXN0IHtcbiAgICBAaW5jbHVkZSBiYXNlXygkcXVlcnkpO1xuICB9XG5cbiAgQGluY2x1ZGUgc2luZ2xlLWxpbmUtZGVuc2l0eSh2YXJpYWJsZXMuJHNpbmdsZS1saW5lLWRlbnNpdHktc2NhbGUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaXRlbS1zZWNvbmRhcnktdGV4dC1pbmstY29sb3IodGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaXRlbS1ncmFwaGljLWZpbGwtY29sb3IodHJhbnNwYXJlbnQsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGl0ZW0tZ3JhcGhpYy1pbmstY29sb3IodGV4dC1pY29uLW9uLWJhY2tncm91bmQsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGl0ZW0tbWV0YS1pbmstY29sb3IodGV4dC1oaW50LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGl0ZW0tZGlzYWJsZWQtdGV4dC1vcGFjaXR5KHZhcmlhYmxlcy4kdGV4dC1kaXNhYmxlZC1vcGFjaXR5LCAkcXVlcnkpO1xuICBAaW5jbHVkZSBpdGVtLWRpc2FibGVkLXRleHQtY29sb3IodmFyaWFibGVzLiR0ZXh0LWRpc2FibGVkLWNvbG9yLCAkcXVlcnkpO1xuXG4gIC5tZGMtbGlzdC0tZGVuc2Uge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICBmb250LXNpemU6IC44MTJyZW07XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgaXRlbS1iYXNlXztcbiAgICB9XG4gIH1cblxuICAvLyBcIlNlbGVjdGVkXCIgaXMgZXBoZW1lcmFsIGFuZCBsaWtlbHkgdG8gY2hhbmdlIHNvb24uIEUuZy4sIHNlbGVjdGluZyBvbmUgb3IgbW9yZSBwaG90b3MgdG8gc2hhcmUgaW4gR29vZ2xlIFBob3Rvcy5cbiAgLy8gXCJBY3RpdmF0ZWRcIiBpcyBtb3JlIHBlcm1hbmVudC4gRS5nLiwgdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBuYXZpZ2F0aW9uIGRlc3RpbmF0aW9uIGluIGEgZHJhd2VyLlxuICAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQsXG4gIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICAgIEBpbmNsdWRlIGl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tZ3JhcGhpYy1pbmstY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGdyYXBoaWMtc2l6ZV8oMjRweCk7XG5cbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEV4dHJhIHNwZWNpZmljaXR5IGlzIHRvIG92ZXJyaWRlIC5tYXRlcmlhbC1pY29ucyBkaXNwbGF5IHN0eWxlIGlmIHVzZWQgaW5cbiAgLy8gY29uanVuY3Rpb24gd2l0aCBtZGMtbGlzdC1pdGVtX19ncmFwaGljXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuICB9XG4gIC8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG5cbiAgLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLWNsYXNzLXBhdHRlcm5cbiAgICAmOm5vdCgubWF0ZXJpYWwtaWNvbnMpIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoY2FwdGlvbiwgJHF1ZXJ5KTtcbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1jbGFzcy1wYXR0ZXJuXG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgYXV0bywgMCwgXCIubWRjLWxpc3QtaXRlbVwiKTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMub3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIERpc2FibGUgaW50ZXJhY3Rpb24gb24gbGFiZWwgZWxlbWVudHMgdGhhdCBtYXkgYXV0b21hdGljYWxseVxuICAvLyB0b2dnbGUgY29ycmVzcG9uZGluZyBjaGVja2JveCAvIHJhZGlvIGlucHV0LlxuICAubWRjLWxpc3QtaXRlbV9fdGV4dFtmb3JdIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLm92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMuYmFzZWxpbmUtdG9wKCRpdGVtLXByaW1hcnktdGV4dC1iYXNlbGluZS1oZWlnaHQsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMuYmFzZWxpbmUtYm90dG9tKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgLm1kYy1saXN0LS1kZW5zZSAmIHtcbiAgICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLmJhc2VsaW5lLXRvcCgkZGVuc2UtaXRlbS1wcmltYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xuICAgICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMuYmFzZWxpbmUtYm90dG9tKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgfVxuXG4gIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy5vdmVyZmxvdy1lbGxpcHNpcygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLmJhc2VsaW5lLXRvcCgkaXRlbS1zZWNvbmRhcnktdGV4dC1iYXNlbGluZS1oZWlnaHQsICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgIC5tZGMtbGlzdC0tZGVuc2UgJiB7XG4gICAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy5iYXNlbGluZS10b3AoJGl0ZW0tc2Vjb25kYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xuXG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgZ3JhcGhpYy1zaXplXygyMHB4KTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGhlaWdodDogNTZweDtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGdyYXBoaWMtc2l6ZV8oNDBweCk7XG5cbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtLXR3by1saW5lIC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LS10d28tbGluZSAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6IDcycHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LS10d28tbGluZS5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0sXG4gIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBncmFwaGljLXNpemVfKDM2cHgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9ubHkgY2hhbmdlIG1vdXNlIGN1cnNvciBmb3IgaW50ZXJhY3RpdmUgbGlzdCBpdGVtcyB3aGljaCBhcmUgbm90IGRpc2FibGVkLlxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVycmlkZSBhbmNob3IgdGFnIHN0eWxlcyBmb3IgdGhlIHVzZS1jYXNlIG9mIGEgbGlzdCBiZWluZyB1c2VkIGZvciBuYXZpZ2F0aW9uXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlLHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuICBhLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG4gIC8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXR5cGUsc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5cbiAgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gTm90ZTogaWRlYWxseSB3ZSdkIGJlIGFibGUgdG8gaG9pc3QgdGhpcyB0byB0aGUgdG9wLWxldmVsIGAkZmVhdC1jb2xvcmAsIGJ1dCBkb2luZyBzb1xuICAvLyB3aWxsIGNhdXNlIHRoZSBgYm9yZGVyYCBkZWNsYXJhdGlvbiBvbiBgLm1kYy1saXN0LWRpdmlkZXJgIGFib3ZlIHRvIG92ZXJyaWRlIGl0LlxuICBAaW5jbHVkZSBkaXZpZGVyLWNvbG9yKCRkaXZpZGVyLWNvbG9yLCAkcXVlcnkpO1xuXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gTGVhdmUgZ2FwcyBvbiBlYWNoIHNpZGUgdG8gbWF0Y2ggdGhlIHBhZGRpbmcgb24gbGlzdCBpdGVtc1xuICAgICAgbWFyZ2luOiAwIHZhcmlhYmxlcy4kc2lkZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCB2YXJpYWJsZXMuJHRleHQtb2Zmc2V0LCBcIi5tZGMtbGlzdC1ncm91cFwiKTtcblxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7dmFyaWFibGVzLiR0ZXh0LW9mZnNldH0pO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldC5tZGMtbGlzdC1kaXZpZGVyLS1wYWRkZWQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7dmFyaWFibGVzLiR0ZXh0LW9mZnNldH0gLSAje3ZhcmlhYmxlcy4kc2lkZS1wYWRkaW5nfSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWdyb3VwIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIENhbmNlbCB0b3AvYm90dG9tIHBhZGRpbmcgb24gaW5kaXZpZHVhbCBsaXN0cyB3aXRoaW4gZ3JvdXBcbiAgICAgIC5tZGMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICAgICRtZGMtbGlzdC1zdWJoZWFkZXItdmlydHVhbC1oZWlnaHQ6IDNyZW07XG4gICAgJG1kYy1saXN0LXN1YmhlYWRlci1sZWFkaW5nOiBtYXAuZ2V0KG1hcC5nZXQodHlwb2dyYXBoeS12YXJpYWJsZXMuJHN0eWxlcywgYm9keTEpLCBsaW5lLWhlaWdodCk7XG4gICAgJG1kYy1saXN0LXN1YmhlYWRlci1tYXJnaW46IGNhbGMoKCN7JG1kYy1saXN0LXN1YmhlYWRlci12aXJ0dWFsLWhlaWdodH0gLSAjeyRtZGMtbGlzdC1zdWJoZWFkZXItbGVhZGluZ30pIC8gMik7XG5cbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy50eXBvZ3JhcGh5KHN1YnRpdGxlMSwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luOiAkbWRjLWxpc3Qtc3ViaGVhZGVyLW1hcmdpbiB2YXJpYWJsZXMuJHNpZGUtcGFkZGluZztcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gbGlzdCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1saXN0LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIHJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLmNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC8vIExpc3QgaXRlbXMgc2hvdWxkIHN1cHBvcnQgc3RhdGVzIGJ5IGRlZmF1bHQsIGJ1dCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gb3B0IG91dC5cbiAgLy8gRGlyZWN0IGNoaWxkIGNvbWJpbmF0b3IgaXMgbmVjZXNzYXJ5IGZvciBub24taW50ZXJhY3RpdmUgbW9kaWZpZXIgb24gcGFyZW50IHRvIG5vdFxuICAvLyBtYXRjaCB0aGlzIHNlbGVjdG9yLlxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBpdGVtLWludGVyYWN0aXZlLXJpcHBsZV8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIFNldCBzdHlsZXMgb25seSBmb3IgZm9jdXMgc3RhdGUgb24gZGlzYWJsZWQgbGlzdCBpdGVtLlxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcy1iYXNlLWNvbG9yKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMtZm9jdXMtb3BhY2l0eShyaXBwbGUtZnVuY3Rpb25zLnN0YXRlcy1vcGFjaXR5KHByaW1hcnksIGZvY3VzKSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBpdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gaXRlbS1zZWNvbmRhcnktdGV4dC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpdGVtLWdyYXBoaWMtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpdGVtLWdyYXBoaWMtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpdGVtLW1ldGEtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgc2hhcGUgcmFkaXVzIChyb3VuZGVkKSB0byBzaW5nbGUgbGluZSBsaXN0IHZhcmlhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IExpc3Q8TnVtYmVyPn0gJHJhZGl1cyBSYWRpdXMgc2l6ZSBpbiBgcHhgIG9yIHBlcmNlbnRhZ2UuIEl0IGNhbiBiZSA0IHZhbHVlIGNvcm5lciBvciBzaW5nbGUgcmFkaXVzLlxuLy8vICAgICBTZXQgdG8gYDUwJWAgZm9yIHJvdW5kZWQgc2hhcGUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcnRsLXJlZmxleGl2ZSBTZXQgdG8gdHJ1ZSB0byBmbGlwIGJvcmRlciByYWRpdXMgaW4gUlRMIGNvbnRleHQuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZW5zaXR5LXNjYWxlIERlbnNpdHkgc2NhbGUgb2Ygc2luZ2xlIGxpbmUgbGlzdC4gU2V0IHRoaXMgb25seSB3aGVuIGN1c3RvbSBkZW5zaXR5IGlzIGFwcGxpZWQuXG4vLy8gICAgIERlZmF1bHRzIHRvIGAkbWRjLWxpc3Qtc2luZ2xlLWxpbmUtZGVuc2l0eS1zY2FsZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vXG5AbWl4aW4gc2luZ2xlLWxpbmUtc2hhcGUtcmFkaXVzKFxuICAkcmFkaXVzLFxuICAkcnRsLXJlZmxleGl2ZTogZmFsc2UsXG4gICRkZW5zaXR5LXNjYWxlOiB2YXJpYWJsZXMuJHNpbmdsZS1saW5lLWRlbnNpdHktc2NhbGUsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG5cbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kc2luZ2xlLWxpbmUtZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHQsXG4gICk7XG5cbiAgJHJlc29sdmVkLXJhZGl1czogc2hhcGUtZnVuY3Rpb25zLnJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJGhlaWdodCwgJHJhZGl1cyk7XG5cbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gZGl2aWRlci1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJvcmRlci1ib3R0b20tY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBncm91cC1zdWJoZWFkZXItaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBpdGVtLWRpc2FibGVkLXRleHQtb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaXRlbS1kaXNhYmxlZC10ZXh0LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gICAgLm1kYy1saXN0LWl0ZW1fX3RleHQsXG4gICAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCxcbiAgICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgZGVuc2l0eSBzY2FsZSB0byBzaW5nbGUgbGluZSBsaXN0IHZhcmlhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlbnNpdHktc2NhbGUgRGVuc2l0eSBzY2FsZSBmb3IgbGlzdC4gU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGVzIGFyZSBgLTRgLCBgLTNgLCBgLTJgLCBgLTFgIGFuZCAgYDBgLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuQG1peGluIHNpbmdsZS1saW5lLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRoZWlnaHQ6IGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJHNpbmdsZS1saW5lLWRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuXG4gIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBzaW5nbGUtbGluZS1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgaGVpZ2h0IHRvIHNpbmdsZSBsaW5lIGxpc3QgdmFyaWFudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IEhlaWdodCB2YWx1ZSBpbiBgcHhgLlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vL1xuQG1peGluIHNpbmdsZS1saW5lLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBiYXNlXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC10eXBvZ3JhcGh5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHR5cG9ncmFwaHkpO1xuXG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIG1vY2tzIGFuZCBzdGlja2Vyc2hlZXQsIHRoZSBsaW5lLWhlaWdodCBpc1xuICAgIC8vIGFkanVzdGVkIHRvIDI0cHggZm9yIHRleHQgY29udGVudCwgc2FtZSBhcyBmb3IgYm9keTEuXG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBtYXAuZ2V0KG1hcC5nZXQodHlwb2dyYXBoeS12YXJpYWJsZXMuJHN0eWxlcywgYm9keTEpLCBsaW5lLWhlaWdodCk7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcbn1cblxuQG1peGluIGl0ZW0tYmFzZV8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMCB2YXJpYWJsZXMuJHNpZGUtcGFkZGluZztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi8vIFJpcHBsZSBzdHlsZXMgZm9yIGFuIGludGVyYWN0aXZlIGxpc3QgaXRlbSAob25lIHRoYXQgaXMgZW5hYmxlZCBhbmQgaW5zaWRlIGFuIGludGVyYWN0aXZlIGxpc3QpLlxuQG1peGluIGl0ZW0taW50ZXJhY3RpdmUtcmlwcGxlXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN1cmZhY2UoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBmYWxzZSwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMtYWN0aXZhdGVkKHByaW1hcnksIGZhbHNlLCAkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcy1zZWxlY3RlZChwcmltYXJ5LCBmYWxzZSwgJHF1ZXJ5KTtcbn1cblxuLy8gU2V0cyB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgZ3JhcGhpYyBlbGVtZW50LCBhcyB3ZWxsIGFzIGNhbGN1bGF0ZXMgdGhlIG1hcmdpbnMgZm9yXG4vLyB0aGUgZ3JhcGhpYyBlbGVtZW50IHN1Y2ggdGhhdCB0aGUgdGV4dCBpcyBhbHdheXMgb2Zmc2V0IGJ5IDcycHgsIHdoaWNoIGlzIGRlZmluZWQgd2l0aGluXG4vLyB0aGUgc3BlYy5cbkBtaXhpbiBncmFwaGljLXNpemVfKCRzaXplKSB7XG4gICR0ZXh0LW9mZnNldDogNzJweDtcbiAgJHNpZGUtcGFkZGluZzogdmFyaWFibGVzLiRzaWRlLXBhZGRpbmc7XG4gICRtYXJnaW4tdmFsdWU6ICR0ZXh0LW9mZnNldCAtICRzaWRlLXBhZGRpbmcgLSAkc2l6ZTtcblxuICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgJG1hcmdpbi12YWx1ZSwgXCIubWRjLWxpc3QtaXRlbVwiKTtcblxuICB3aWR0aDogJHNpemU7XG4gIGhlaWdodDogJHNpemU7XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkB1c2UgXCJAbWF0ZXJpYWwvZGVuc2l0eS92YXJpYWJsZXNcIiBhcyBkZW5zaXR5LXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCIgYXMgdGhlbWUtdmFyaWFibGVzO1xuXG4kZGl2aWRlci1jb2xvci1vbi1saWdodC1iZzogcmdiYSgwLCAwLCAwLCAuMTIpICFkZWZhdWx0O1xuJGRpdmlkZXItY29sb3Itb24tZGFyay1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMikgIWRlZmF1bHQ7XG4kc2lkZS1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJHRleHQtb2Zmc2V0OiA3MnB4ICFkZWZhdWx0O1xuJHRleHQtZGlzYWJsZWQtb3BhY2l0eTogdGhlbWUtdmFyaWFibGVzLnRleHQtZW1waGFzaXMoZGlzYWJsZWQpICFkZWZhdWx0O1xuJHRleHQtZGlzYWJsZWQtY29sb3I6IG9uLXN1cmZhY2UgIWRlZmF1bHQ7XG5cbiRzaW5nbGUtbGluZS1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kc2luZ2xlLWxpbmUtbWluaW11bS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG4kc2luZ2xlLWxpbmUtbWF4aW11bS1oZWlnaHQ6ICRzaW5nbGUtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kc2luZ2xlLWxpbmUtZGVuc2l0eS1zY2FsZTogZGVuc2l0eS12YXJpYWJsZXMuJGRlZmF1bHQtc2NhbGUgIWRlZmF1bHQ7XG4kc2luZ2xlLWxpbmUtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJHNpbmdsZS1saW5lLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkc2luZ2xlLWxpbmUtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJHNpbmdsZS1saW5lLW1pbmltdW0taGVpZ2h0LFxuICApLFxuKSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuLy8gQ3JlYXRlcyBhIHJ1bGUgdGhhdCB3aWxsIGJlIGFwcGxpZWQgd2hlbiBhbiBNREMgV2ViIGNvbXBvbmVudCBpcyB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYW4gUlRMIGxheW91dC5cbi8vXG4vLyBVc2FnZSBFeGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAwO1xuLy9cbi8vICAgQGluY2x1ZGUgcnRsIHtcbi8vICAgICBsZWZ0OiBhdXRvO1xuLy8gICAgIHJpZ2h0OiAwO1xuLy8gICB9XG4vL1xuLy8gICAmX19iYXIge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4vLyAgICAgQGluY2x1ZGUgcnRsKFwiLm1kYy1mb29cIikge1xuLy8gICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyAubWRjLWZvby0tbW9kIHtcbi8vICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBydGwge1xuLy8gICAgIHBhZGRpbmctbGVmdDogYXV0bztcbi8vICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIG1peGluIHdvcmtzIGJ5IGNoZWNraW5nIGZvciBhbiBhbmNlc3RvciBlbGVtZW50IHdpdGggYFtkaXI9XCJydGxcIl1gLlxuLy8gQXMgYSByZXN1bHQsIG5lc3RlZCBgZGlyYCB2YWx1ZXMgYXJlIG5vdCBzdXBwb3J0ZWQ6XG4vL1xuLy8gYGBgaHRtbFxuLy8gPGh0bWwgZGlyPVwicnRsXCI+XG4vLyAgIDwhLS0gLi4uIC0tPlxuLy8gICA8ZGl2IGRpcj1cImx0clwiPlxuLy8gICAgIDxkaXYgY2xhc3M9XCJtZGMtZm9vXCI+U3R5bGVkIGluY29ycmVjdGx5IGFzIFJUTCE8L2Rpdj5cbi8vICAgPC9kaXY+XG4vLyA8L2h0bWw+XG4vLyBgYGBcbi8vXG4vLyBJbiB0aGUgZnV0dXJlLCBzZWxlY3RvcnMgc3VjaCBhcyB0aGUgYDpkaXJgIHBzZXVkby1jbGFzcyAoaHR0cDovL21kbi5pby9jc3MvOmRpcikgd2lsbCBoZWxwIHVzIG1pdGlnYXRlIHRoaXMuXG5AbWl4aW4gcnRsKCRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAodmFyaWFibGVzLiRpbmNsdWRlKSB7XG4gICAgQGlmICgkcm9vdC1zZWxlY3Rvcikge1xuICAgICAgQGF0LXJvb3Qge1xuICAgICAgICAjeyRyb290LXNlbGVjdG9yfVtkaXI9XCJydGxcIl0gJixcbiAgICAgICAgW2Rpcj1cInJ0bFwiXSAjeyRyb290LXNlbGVjdG9yfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgW2Rpcj1cInJ0bFwiXSAmLFxuICAgICAgJltkaXI9XCJydGxcIl0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGFrZXMgYSBiYXNlIGJveC1tb2RlbCBwcm9wZXJ0eSBuYW1lIChgbWFyZ2luYCwgYGJvcmRlcmAsIGBwYWRkaW5nYCwgZXRjLikgYWxvbmcgd2l0aCBhXG4vLyBkZWZhdWx0IGRpcmVjdGlvbiAoYGxlZnRgIG9yIGByaWdodGApIGFuZCB2YWx1ZSwgYW5kIGVtaXRzIHJ1bGVzIHdoaWNoIGFwcGx5IHRoZSBnaXZlbiB2YWx1ZSB0byB0aGVcbi8vIHNwZWNpZmllZCBkaXJlY3Rpb24gYnkgZGVmYXVsdCBhbmQgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBpbiBSVEwuXG4vL1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IDhweDtcbi8vICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy9cbi8vICAgQGluY2x1ZGUgcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gd2hlcmVhczpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIHJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IDA7XG4vLyAgIG1hcmdpbi1yaWdodDogOHB4O1xuLy9cbi8vICAgQGluY2x1ZGUgcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogOHB4O1xuLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gWW91IGNhbiBhbHNvIHBhc3MgYW4gb3B0aW9uYWwgNHRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgd2hpY2ggd2lsbCBiZSBmb3J3YXJkZWQgdG8gYG1kYy1ydGxgLFxuLy8gZS5nLiBgQGluY2x1ZGUgcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgsIFwiLm1kYy1jb21wb25lbnRcIilgLlxuLy9cbi8vIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIHplcm8gb3V0IHRoZSBvcmlnaW5hbCB2YWx1ZSBpbiBhbiBSVEwgY29udGV4dC5cbi8vIElmIHlvdSdyZSB0cnlpbmcgdG8gZmxpcCB0aGUgdmFsdWVzLCB1c2UgYG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KClgIGluc3RlYWQuXG5AbWl4aW4gcmVmbGV4aXZlLWJveCgkYmFzZS1wcm9wZXJ0eSwgJGRlZmF1bHQtZGlyZWN0aW9uLCAkdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAobGlzdC5pbmRleCgocmlnaHQsIGxlZnQpLCAkZGVmYXVsdC1kaXJlY3Rpb24pID09IG51bGwpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIGRlZmF1bHQgZGlyZWN0aW9uOiAnI3skZGVmYXVsdC1kaXJlY3Rpb259Jy4gUGxlYXNlIHNwZWNpZml5IGVpdGhlciAncmlnaHQnIG9yICdsZWZ0Jy5cIjtcbiAgfVxuXG4gICRsZWZ0LXZhbHVlOiAkdmFsdWU7XG4gICRyaWdodC12YWx1ZTogMDtcblxuICBAaWYgKCRkZWZhdWx0LWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgICRsZWZ0LXZhbHVlOiAwO1xuICAgICRyaWdodC12YWx1ZTogJHZhbHVlO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVmbGV4aXZlLXByb3BlcnR5KCRiYXNlLXByb3BlcnR5LCAkbGVmdC12YWx1ZSwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIGEgYmFzZSBwcm9wZXJ0eSBhbmQgZW1pdHMgcnVsZXMgdGhhdCBhc3NpZ24gPGJhc2UtcHJvcGVydHk+LWxlZnQgdG8gPGxlZnQtdmFsdWU+IGFuZFxuLy8gPGJhc2UtcHJvcGVydHk+LXJpZ2h0IHRvIDxyaWdodC12YWx1ZT4gaW4gYSBMVFIgY29udGV4dCwgYW5kIHZpY2UgdmVyc2EgaW4gYSBSVEwgY29udGV4dC5cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIGF1dG8sIDEycHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4vL1xuLy8gICBAaW5jbHVkZSBydGwge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gQW4gb3B0aW9uYWwgNHRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgY2FuIGJlIGdpdmVuLCB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gcmVmbGV4aXZlLXByb3BlcnR5KCRiYXNlLXByb3BlcnR5LCAkbGVmdC12YWx1ZSwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3RvcjogbnVsbCkge1xuICAkcHJvcC1sZWZ0OiAjeyRiYXNlLXByb3BlcnR5fS1sZWZ0O1xuICAkcHJvcC1yaWdodDogI3skYmFzZS1wcm9wZXJ0eX0tcmlnaHQ7XG5cbiAgQGluY2x1ZGUgcmVmbGV4aXZlKCRwcm9wLWxlZnQsICRsZWZ0LXZhbHVlLCAkcHJvcC1yaWdodCwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIGFuIGFyZ3VtZW50IHNwZWNpZnlpbmcgYSBob3Jpem9udGFsIHBvc2l0aW9uIHByb3BlcnR5IChlaXRoZXIgXCJsZWZ0XCIgb3IgXCJyaWdodFwiKSBhcyB3ZWxsXG4vLyBhcyBhIHZhbHVlLCBhbmQgYXBwbGllcyB0aGF0IHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gYSBMVFIgY29udGV4dCwgYW5kIGZsaXBzIGl0IGluIGFcbi8vIFJUTCBjb250ZXh0LiBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIHJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgMCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbGVmdDogMDtcbi8vICAgcmlnaHQ6IGluaXRpYWw7XG4vL1xuLy8gICBAaW5jbHVkZSBydGwge1xuLy8gICAgIGxlZnQ6IGluaXRpYWw7XG4vLyAgICAgcmlnaHQ6IDA7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIHRoaXJkICRyb290LXNlbGVjdG9yIGFyZ3VtZW50IG1heSBhbHNvIGJlIGdpdmVuLCB3aGljaCBpcyBwYXNzZWQgdG8gYG1kYy1ydGxgLlxuQG1peGluIHJlZmxleGl2ZS1wb3NpdGlvbigkcG9zaXRpb24tcHJvcGVydHksICR2YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgQGlmIChsaXN0LmluZGV4KChyaWdodCwgbGVmdCksICRwb3NpdGlvbi1wcm9wZXJ0eSkgPT0gbnVsbCkge1xuICAgIEBlcnJvciBcIkludmFsaWQgcG9zaXRpb24gI3twb3NpdGlvbi1wcm9wZXJ0eX0uIFBsZWFzZSBzcGVjaWZpeSBlaXRoZXIgcmlnaHQgb3IgbGVmdFwiO1xuICB9XG5cbiAgLy8gVE9ETzogXCJpbml0aWFsXCIgaXMgbm90IHN1cHBvcnRlZCBpbiBJRSAxMS4gaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtaW5pdGlhbC12YWx1ZVxuICAkbGVmdC12YWx1ZTogJHZhbHVlO1xuICAkcmlnaHQtdmFsdWU6IGluaXRpYWw7XG5cbiAgQGlmICgkcG9zaXRpb24tcHJvcGVydHkgPT0gcmlnaHQpIHtcbiAgICAkcmlnaHQtdmFsdWU6ICR2YWx1ZTtcbiAgICAkbGVmdC12YWx1ZTogaW5pdGlhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlZmxleGl2ZShsZWZ0LCAkbGVmdC12YWx1ZSwgcmlnaHQsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3IpO1xufVxuXG4vLyBUYWtlcyBwYWlyIG9mIHByb3BlcnRpZXMgd2l0aCB2YWx1ZXMgYXMgYXJndW1lbnRzIGFuZCBmbGlwcyBpdCBpbiBSVEwgY29udGV4dC5cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgcnRsLXJlZmxleGl2ZShsZWZ0LCAycHgsIHJpZ2h0LCA1cHgpO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIGxlZnQ6IDJweDtcbi8vICAgcmlnaHQ6IDVweDtcbi8vXG4vLyAgIEBpbmNsdWRlIHJ0bCB7XG4vLyAgICAgcmlnaHQ6IDJweDtcbi8vICAgICBsZWZ0OiA1cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIGZpZnRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgbWF5IGFsc28gYmUgZ2l2ZW4sIHdoaWNoIGlzIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gcmVmbGV4aXZlKFxuICAkbGVmdC1wcm9wZXJ0eSxcbiAgJGxlZnQtdmFsdWUsXG4gICRyaWdodC1wcm9wZXJ0eSxcbiAgJHJpZ2h0LXZhbHVlLFxuICAkcm9vdC1zZWxlY3RvcjogbnVsbFxuKSB7XG4gIEBpbmNsdWRlIHByb3BlcnR5XygkbGVmdC1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUpO1xuICBAaW5jbHVkZSBwcm9wZXJ0eV8oJHJpZ2h0LXByb3BlcnR5LCAkcmlnaHQtdmFsdWUpO1xuXG4gIEBpbmNsdWRlIHJ0bCgkcm9vdC1zZWxlY3Rvcikge1xuICAgIEBpbmNsdWRlIHByb3BlcnR5XygkbGVmdC1wcm9wZXJ0eSwgJHJpZ2h0LXZhbHVlKTtcbiAgICBAaW5jbHVkZSBwcm9wZXJ0eV8oJHJpZ2h0LXByb3BlcnR5LCAkbGVmdC12YWx1ZSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gQWRkcyBgQG5vZmxpcGAgYW5ub3RhdGlvbiB3aGVuIGAkbWRjLXJ0bC1pbmNsdWRlYCBpcyB0cnVlLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIHByb3BlcnR5XygkcHJvcGVydHksICR2YWx1ZSkge1xuICBAaWYgdmFyaWFibGVzLiRpbmNsdWRlIHtcbiAgICAvKiBAbm9mbGlwICovXG4gIH1cblxuICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBNREMgUmlwcGxlIGtleWZyYW1lcyBhcmUgc3BsaXQgaW50byB0aGVpciBvd24gZmlsZSBzbyB0aGF0IF9taXhpbnMuc2NzcyBjYW4gcmVseSBvbiB0aGVtLlxuXG5AdXNlIFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiIGFzIHZhcmlhYmxlczI7XG5cbkBtaXhpbiBrZXlmcmFtZXNfIHtcbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXJpYWJsZXMuJHN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIC8vIE5PVEU6IEZvciB0aGVzZSBrZXlmcmFtZXMsIHdlIGRvIG5vdCBuZWVkIGN1c3RvbSBwcm9wZXJ0eSBmYWxsYmFja3MgYmVjYXVzZSB0aGV5IGFyZSBvbmx5XG4gICAgICAvLyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYC5tZGMtcmlwcGxlLXVwZ3JhZGVkYC4gU2luY2UgTURDUmlwcGxlRm91bmRhdGlvbiBjaGVja3MgdG8gZW5zdXJlXG4gICAgICAvLyB0aGF0IGN1c3RvbSBwcm9wZXJ0aWVzIGFyZSBzdXBwb3J0ZWQgd2l0aGluIHRoZSBicm93c2VyIGJlZm9yZSBhZGRpbmcgdGhpcyBjbGFzcywgd2UgY2FuXG4gICAgICAvLyBzYWZlbHkgdXNlIHRoZW0gd2l0aG91dCBhIGZhbGxiYWNrLlxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQsIDApKSBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4ge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJGRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAuMiwgMSkgIWRlZmF1bHQ7XG4kc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAhZGVmYXVsdDtcbiRhY2NlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuJHNoYXJwLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAuNiwgMSkgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6Y29sb3JcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCIgYXMgZnVuY3Rpb25zMjtcbkB1c2UgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiIGFzIHZhcmlhYmxlczI7XG5AdXNlIFwiQG1hdGVyaWFsL2Jhc2UvbWl4aW5zXCIgYXMgYmFzZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiLi9mdW5jdGlvbnNcIjtcbkB1c2UgXCIuL2tleWZyYW1lc1wiO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiIGFzIHRoZW1lLXZhcmlhYmxlcztcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHJpcHBsZS1zdXJmYWNlXG5cbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICZbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ge1xuICAgICAgQGluY2x1ZGUgcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIHN0YXRlcyhwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgJi0tYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIHN0YXRlcyhzZWNvbmRhcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gY29tbW9uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0eWxlcyBuZWVkZWQgYnkgYW55IGNvbXBvbmVudCB1c2luZyBNREMgUmlwcGxlIGFyZSBlbWl0dGVkLCBidXQgb25seSBvbmNlLlxuICAvLyAoRXZlcnkgY29tcG9uZW50IHVzaW5nIE1EQyBSaXBwbGUgaW1wb3J0cyB0aGVzZSBtaXhpbnMsIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGltcG9ydFxuICAvLyBtZGMtcmlwcGxlLnNjc3MuKVxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICBAaW5jbHVkZSBiYXNlLW1peGlucy5lbWl0LW9uY2UoXCJtZGMtcmlwcGxlL2NvbW1vbi9hbmltYXRpb25cIikge1xuICAgICAgQGluY2x1ZGUga2V5ZnJhbWVzLmtleWZyYW1lc187XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzdXJmYWNlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAgIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAgIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG5cbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgLy8gISFETyBOT1QgUkVNT1ZFISEgbWRjLXJpcHBsZS13aWxsLWNoYW5nZS1yZXBsYWNlclxuICB9XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAvLyBBbHNvIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciB0byBhdm9pZCB1bm5hdHVyYWwgY29sb3IgZmxhc2hlcyB3aGVuIHRvZ2dsaW5nIGFjdGl2YXRlZC9zZWxlY3RlZCBzdGF0ZVxuICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSB2YXJpYWJsZXMuJHN0YXRlcy13YXNoLWR1cmF0aW9uIGxpbmVhcixcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXJpYWJsZXMuJHN0YXRlcy13YXNoLWR1cmF0aW9uIGxpbmVhcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHotaW5kZXg6IDE7IC8vIEVuc3VyZSB0aGF0IHRoZSByaXBwbGUgd2FzaCBmb3IgaG92ZXIvZm9jdXMgc3RhdGVzIGlzIGRpc3BsYXllZCBvbiB0b3Agb2YgcG9zaXRpb25lZCBjaGlsZCBlbGVtZW50c1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbW1vbiBzdHlsZXMgZm9yIHVwZ3JhZGVkIHN1cmZhY2VzIChzb21lIG9mIHRoZXNlIGRlcGVuZCBvbiBjdXN0b20gcHJvcGVydGllcyBzZXQgdmlhIEpTIG9yIG90aGVyIG1peGlucylcblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbiB7XG4gICAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICBhbmltYXRpb246XG4gICAgICAgICAgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gdmFyaWFibGVzLiR0cmFuc2xhdGUtZHVyYXRpb24gZm9yd2FyZHMsXG4gICAgICAgICAgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIHZhcmlhYmxlcy4kZmFkZS1pbi1kdXJhdGlvbiBmb3J3YXJkcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB2YXJpYWJsZXMuJGZhZGUtb3V0LWR1cmF0aW9uO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gUmV0YWluIHRyYW5zZm9ybSBmcm9tIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIGFjdGl2YXRpb25cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc3RhdGVzLWJhc2UtY29sb3IoXG4gICRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksICRyaXBwbGUtdGFyZ2V0OiBcIiZcIikge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGlmIGNvbG9yLmFscGhhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvcikpID4gMCB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgYSBjb2xvciB3aXRoIDAgYWxwaGEgaXMgc3BlY2lmaWVkLCBkb24ndCByZW5kZXIgdGhlIHJpcHBsZSBwc2V1ZG8tZWxlbWVudHMgYXQgYWxsLlxuICAgICAgICAvLyBUaGlzIGF2b2lkcyB1bm5lY2Vzc2FyeSB0cmFuc2l0aW9ucyBhbmQgb3ZlcmZsb3cuXG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIEN1c3RvbWl6ZXMgcmlwcGxlIG9wYWNpdGllcyBpbiBgaG92ZXJgLCBgZm9jdXNgLCBvciBgcHJlc3NgIHN0YXRlc1xuLy8vIEBwYXJhbSB7bWFwfSAkb3BhY2l0eS1tYXAgLSBtYXAgc3BlY2lmeWluZyBjdXN0b20gb3BhY2l0eSBvZiB6ZXJvIG9yIG1vcmUgc3RhdGVzXG4vLy8gQHBhcmFtIHtib29sfSAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCAtIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBjb250YWlucyBhIGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSByb290XG4vLy9cbkBtaXhpbiBzdGF0ZXMtb3BhY2l0aWVzKCRvcGFjaXR5LW1hcDogKCksICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLy8gRW5zdXJlIHN1ZmZpY2llbnQgc3BlY2lmaWNpdHkgdG8gb3ZlcnJpZGUgYmFzZSBzdGF0ZSBvcGFjaXRpZXNcbiAgQGlmIG1hcC5oYXMta2V5KCRvcGFjaXR5LW1hcCwgaG92ZXIpIHtcbiAgICBAaW5jbHVkZSBzdGF0ZXMtaG92ZXItb3BhY2l0eShtYXAuZ2V0KCRvcGFjaXR5LW1hcCwgaG92ZXIpLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaWYgbWFwLmhhcy1rZXkoJG9wYWNpdHktbWFwLCBmb2N1cykge1xuICAgIEBpbmNsdWRlIHN0YXRlcy1mb2N1cy1vcGFjaXR5KG1hcC5nZXQoJG9wYWNpdHktbWFwLCBmb2N1cyksICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaWYgbWFwLmhhcy1rZXkoJG9wYWNpdHktbWFwLCBwcmVzcykge1xuICAgIEBpbmNsdWRlIHN0YXRlcy1wcmVzcy1vcGFjaXR5KG1hcC5nZXQoJG9wYWNpdHktbWFwLCBwcmVzcyksICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gc3RhdGVzLWhvdmVyLW9wYWNpdHkoXG4gICRvcGFjaXR5LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSwgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBCYWNrZ3JvdW5kIHdhc2ggc3R5bGVzLCBmb3IgYm90aCBDU1Mtb25seSBhbmQgdXBncmFkZWQgc3RhdGVmdWwgc3VyZmFjZXNcbiAgJjpob3ZlciB7XG4gICAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN0YXRlcy1mb2N1cy1vcGFjaXR5KFxuICAkb3BhY2l0eSxcbiAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSxcbiAgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG5cbiAgLy8gRm9jdXMgb3ZlcnJpZGVzIGhvdmVyIGJ5IHJldXNpbmcgdGhlIDo6YmVmb3JlIHBzZXVkby1lbGVtZW50LlxuICAvLyA6Zm9jdXMtd2l0aGluIGdlbmVyYWxseSB3b3JrcyBvbiBub24tTVMgYnJvd3NlcnMgYW5kIG1hdGNoZXMgd2hlbiBhICpjaGlsZCogb2YgdGhlIGVsZW1lbnQgaGFzIGZvY3VzLlxuICAvLyBJdCBpcyB1c2VmdWwgZm9yIGNhc2VzIHdoZXJlIGEgY29tcG9uZW50IGhhcyBhIGZvY3VzYWJsZSBlbGVtZW50IHdpdGhpbiB0aGUgcm9vdCBub2RlLCBlLmcuIHRleHQgZmllbGQsXG4gIC8vIGJ1dCB1bmRlc2lyYWJsZSBpbiBnZW5lcmFsIGluIGNhc2Ugb2YgbmVzdGVkIHN0YXRlZnVsIGNvbXBvbmVudHMuXG4gIC8vIFdlIHVzZSBhIG1vZGlmaWVyIGNsYXNzIGZvciBKUy1lbmFibGVkIHN1cmZhY2VzIHRvIHN1cHBvcnQgYWxsIHVzZSBjYXNlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIEBpZiAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCB7XG4gICAgLy8gSlMtZW5hYmxlZCBzZWxlY3RvcnMuXG4gICAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQsXG4gICAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkOmZvY3VzLXdpdGhpbixcbiAgICAvLyBDU1Mtb25seSBzZWxlY3RvcnMuXG4gICAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLFxuICAgICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cy13aXRoaW4ge1xuICAgICAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHN0YXRlcy1mb2N1cy1vcGFjaXR5LXByb3BlcnRpZXNfKFxuICAgICAgICAgICRvcGFjaXR5OiAkb3BhY2l0eSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gSlMtZW5hYmxlZCBzZWxlY3RvcnMuXG4gICAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQsXG4gICAgLy8gQ1NTLW9ubHkgc2VsZWN0b3JzLlxuICAgICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1cyB7XG4gICAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgc3RhdGVzLWZvY3VzLW9wYWNpdHktcHJvcGVydGllc18oXG4gICAgICAgICAgJG9wYWNpdHk6ICRvcGFjaXR5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzdGF0ZXMtZm9jdXMtb3BhY2l0eS1wcm9wZXJ0aWVzXygkb3BhY2l0eSwgJHF1ZXJ5KSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBOb3RlIHRoYXQgdGhpcyBkdXJhdGlvbiBpcyBvbmx5IGVmZmVjdGl2ZSBvbiBmb2N1cywgbm90IGJsdXJcbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIH1cbn1cblxuQG1peGluIHN0YXRlcy1wcmVzcy1vcGFjaXR5KCRvcGFjaXR5LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSwgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLy8gU3R5bGVzIGZvciBub24tdXBncmFkZWQgKENTUy1vbmx5KSBzdGF0ZWZ1bCBzdXJmYWNlc1xuXG4gICY6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKSB7XG4gICAgLy8gQXBwbHkgcHJlc3MgYWRkaXRpdmVseSBieSB1c2luZyB0aGUgOjphZnRlciBwc2V1ZG8tZWxlbWVudFxuICAgICN7JHJpcHBsZS10YXJnZXR9OjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXJpYWJsZXMuJGZhZGUtb3V0LWR1cmF0aW9uIGxpbmVhcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXJpYWJsZXMuJGZhZGUtaW4tZHVyYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudCBpbiB0eXBpY2FsIHVzYWdlXG4gICAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogI3skb3BhY2l0eX07XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbXBsZSBtaXhpbiBmb3IgYmFzZSBzdGF0ZXMgd2hpY2ggYXV0b21hdGljYWxseSBzZWxlY3RzIG9wYWNpdHkgdmFsdWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGluayBjb2xvciBpc1xuLy8gbGlnaHQgb3IgZGFyay5cbkBtaXhpbiBzdGF0ZXMoXG4gICRjb2xvcjogdGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSksXG4gICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiBmYWxzZSxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksXG4gICRyaXBwbGUtdGFyZ2V0OiBcIiZcIixcbikge1xuICBAaW5jbHVkZSBzdGF0ZXMtaW50ZXJhY3Rpb25zXyhcbiAgICAkY29sb3I6ICRjb2xvcixcbiAgICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBhY3RpdmF0ZWQgc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gc3RhdGVzLWFjdGl2YXRlZChcbiAgJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkYWN0aXZhdGVkLW9wYWNpdHk6IGZ1bmN0aW9ucy5zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIGFjdGl2YXRlZCk7XG5cbiAgJi0tYWN0aXZhdGVkIHtcbiAgICAvLyBTdHlsZWxpbnQgc2VlbXMgdG8gdGhpbmsgdGhhdCAnJicgcXVhbGlmaWVzIGFzIGEgdHlwZSBzZWxlY3RvciBoZXJlP1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUge1xuICAgICAgLy8gT3BhY2l0eSBmYWxscyB1bmRlciBjb2xvciBiZWNhdXNlIHRoZSBjaG9zZW4gb3BhY2l0eSBpcyBjb2xvci1kZXBlbmRlbnQuXG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkYWN0aXZhdGVkLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc3RhdGVzLWludGVyYWN0aW9uc18oXG4gICAgICAkY29sb3I6ICRjb2xvcixcbiAgICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCxcbiAgICAgICRvcGFjaXR5LW1vZGlmaWVyOiAkYWN0aXZhdGVkLW9wYWNpdHksXG4gICAgICAkcXVlcnk6ICRxdWVyeSxcbiAgICAgICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBzZWxlY3RlZCBzdGF0ZXMgd2hpY2ggYXV0b21hdGljYWxseSBzZWxlY3RzIG9wYWNpdHkgdmFsdWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGluayBjb2xvciBpc1xuLy8gbGlnaHQgb3IgZGFyay5cbkBtaXhpbiBzdGF0ZXMtc2VsZWN0ZWQoXG4gICRjb2xvcixcbiAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSxcbiAgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJHNlbGVjdGVkLW9wYWNpdHk6IGZ1bmN0aW9ucy5zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIHNlbGVjdGVkKTtcblxuICAmLS1zZWxlY3RlZCB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudC5cbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIG9wYWNpdHk6ICRzZWxlY3RlZC1vcGFjaXR5O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHN0YXRlcy1pbnRlcmFjdGlvbnNfKFxuICAgICAgJGNvbG9yOiAkY29sb3IsXG4gICAgICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgICAkb3BhY2l0eS1tb2RpZmllcjogJHNlbGVjdGVkLW9wYWNpdHksXG4gICAgICAkcXVlcnk6ICRxdWVyeSxcbiAgICAgICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuQG1peGluIHJhZGl1cy1ib3VuZGVkKFxuICAkcmFkaXVzOiAxMDAlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSwgJHJpcHBsZS10YXJnZXQ6IFwiJlwiKSB7XG4gICRmZWF0LXN0cnV0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgI3skcmlwcGxlLXRhcmdldH06OmJlZm9yZSxcbiAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1dHVyZSkge1xuICAgICAgdG9wOiBjYWxjKDUwJSAtICN7JHJhZGl1c30pO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRyYWRpdXN9KTtcbiAgICAgIHdpZHRoOiAkcmFkaXVzICogMjtcbiAgICAgIGhlaWdodDogJHJhZGl1cyAqIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGl1cy11bmJvdW5kZWQoXG4gICRyYWRpdXM6IDEwMCUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpLCAkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgJGZlYXQtc3RydXR1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAjeyRyaXBwbGUtdGFyZ2V0fTo6YmVmb3JlLFxuICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSk7XG4gICAgICB3aWR0aDogJHJhZGl1cztcbiAgICAgIGhlaWdodDogJHJhZGl1cztcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgICN7JHJpcHBsZS10YXJnZXR9OjpiZWZvcmUsXG4gICAgI3skcmlwcGxlLXRhcmdldH06OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pKTtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyaXBwbGUtdGFyZ2V0fTo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgJHJhZGl1cyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN0YXRlcy1pbnRlcmFjdGlvbnNfKFxuICAkY29sb3IsXG4gICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAkb3BhY2l0eS1tb2RpZmllcjogMCxcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCksXG4gICRyaXBwbGUtdGFyZ2V0OiBcIiZcIixcbikge1xuICBAaW5jbHVkZSB0YXJnZXQtc2VsZWN0b3IoJHJpcHBsZS10YXJnZXQpIHtcbiAgICBAaW5jbHVkZSBzdGF0ZXMtYmFzZS1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdGF0ZXMtaG92ZXItb3BhY2l0eShcbiAgICAkb3BhY2l0eTogZnVuY3Rpb25zLnN0YXRlcy1vcGFjaXR5KCRjb2xvciwgaG92ZXIpICsgJG9wYWNpdHktbW9kaWZpZXIsXG4gICAgJHF1ZXJ5OiAkcXVlcnksXG4gICAgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgQGluY2x1ZGUgc3RhdGVzLWZvY3VzLW9wYWNpdHkoXG4gICAgJG9wYWNpdHk6IGZ1bmN0aW9ucy5zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIGZvY3VzKSArICRvcGFjaXR5LW1vZGlmaWVyLFxuICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50OiAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCxcbiAgICAkcXVlcnk6ICRxdWVyeSxcbiAgICAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQsXG4gICk7XG4gIEBpbmNsdWRlIHN0YXRlcy1wcmVzcy1vcGFjaXR5KFxuICAgICRvcGFjaXR5OiBmdW5jdGlvbnMuc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBwcmVzcykgKyAkb3BhY2l0eS1tb2RpZmllcixcbiAgICAkcXVlcnk6ICRxdWVyeSxcbiAgICAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xufVxuXG4vLyBXcmFwcyBjb250ZW50IGluIHRoZSBgcmlwcGxlLXRhcmdldGAgc2VsZWN0b3IgaWYgaXQgZXhpc3RzLlxuQG1peGluIHRhcmdldC1zZWxlY3RvcigkcmlwcGxlLXRhcmdldDogXCImXCIpIHtcbiAgQGlmICRyaXBwbGUtdGFyZ2V0ID09IFwiJlwiIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSB7XG4gICAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIENvbW1vbiBzdHlsZXMgZm9yIGEgcmlwcGxlIHRhcmdldCBlbGVtZW50LlxuLy8gVXNlZCBmb3IgY29tcG9uZW50cyB3aGljaCBoYXZlIGFuIGlubmVyIHJpcHBsZSB0YXJnZXQgZWxlbWVudC5cbkBtaXhpbiB0YXJnZXQtY29tbW9uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gTmVjZXNzYXJ5IGZvciBjbGlja3Mgb24gb3RoZXIgaW5uZXIgZWxlbWVudHMgKGUuZy4gY2xvc2UgaWNvbiBpbiBjaGlwKVxuICAgIC8vIHRvIGdvIHRocm91Z2guXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kZmFkZS1pbi1kdXJhdGlvbjogNzVtcyAhZGVmYXVsdDtcbiRmYWRlLW91dC1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG4kdHJhbnNsYXRlLWR1cmF0aW9uOiAyMjVtcyAhZGVmYXVsdDtcbiRzdGF0ZXMtd2FzaC1kdXJhdGlvbjogMTVtcyAhZGVmYXVsdDtcblxuLy8gTm90ZXMgb24gc3RhdGVzOlxuLy8gKiBmb2N1cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaG92ZXIgKGkuZS4gaWYgYW4gZWxlbWVudCBpcyBib3RoIGZvY3VzZWQgYW5kIGhvdmVyZWQsIG9ubHkgZm9jdXMgdmFsdWUgYXBwbGllcylcbi8vICogcHJlc3Mgc3RhdGUgYXBwbGllcyB0byBhIHNlcGFyYXRlIHBzZXVkby1lbGVtZW50LCBzbyBpdCBoYXMgYW4gYWRkaXRpdmUgZWZmZWN0IG9uIHRvcCBvZiBvdGhlciBzdGF0ZXNcbi8vICogc2VsZWN0ZWQvYWN0aXZhdGVkIGFyZSBhcHBsaWVkIGFkZGl0aXZlbHkgdG8gaG92ZXIvZm9jdXMgdmlhIGNhbGN1bGF0aW9ucyBhdCBwcmVwcm9jZXNzaW5nIHRpbWVcblxuJGRhcmstaW5rLW9wYWNpdGllczogKFxuICBob3ZlcjogLjA0LFxuICBmb2N1czogLjEyLFxuICBwcmVzczogLjEyLFxuICBzZWxlY3RlZDogLjA4LFxuICBhY3RpdmF0ZWQ6IC4xMlxuKSAhZGVmYXVsdDtcblxuJGxpZ2h0LWluay1vcGFjaXRpZXM6IChcbiAgaG92ZXI6IC4wOCxcbiAgZm9jdXM6IC4yNCxcbiAgcHJlc3M6IC4yNCxcbiAgc2VsZWN0ZWQ6IC4xNixcbiAgYWN0aXZhdGVkOiAuMjRcbikgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuXG4kcHJlc3NlZC1kYXJrLWluay1vcGFjaXR5OiAuMTYgIWRlZmF1bHQ7XG4kcHJlc3NlZC1saWdodC1pbmstb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcInNhc3M6bWV0YVwiO1xuQHVzZSBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiIGFzIGJhc2UtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIiBhcyB0aGVtZS12YXJpYWJsZXM7XG5AdXNlIFwiLi9mdW5jdGlvbnNcIjtcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBmb3IgJHotdmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC5tZGMtZWxldmF0aW9uLS16I3skei12YWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgZWxldmF0aW9uKCR6LXZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiBmdW5jdGlvbnMudHJhbnNpdGlvbi12YWx1ZSgpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lsbC1jaGFuZ2U6IHZhcmlhYmxlcy4kcHJvcGVydHk7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIENhbGxlZCBvbmNlIHBlciBhcHBsaWNhdGlvbiB0byBzZXQgdXAgdGhlIGdsb2JhbCBkZWZhdWx0IGVsZXZhdGlvbiBzdHlsZXMuXG4vLy9cbkBtaXhpbiBvdmVybGF5LWNvbW1vbigkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgYmFzZS1taXhpbnMuZW1pdC1vbmNlKFwibWRjLWVsZXZhdGlvbi9jb21tb24vc3RydWN0dXJlXCIpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIEBpbmNsdWRlIGJhc2UtbWl4aW5zLmVtaXQtb25jZShcIm1kYy1lbGV2YXRpb24vY29tbW9uL2FuaW1hdGlvblwiKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGZ1bmN0aW9ucy5vdmVybGF5LXRyYW5zaXRpb24tdmFsdWUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYXNlLW1peGlucy5lbWl0LW9uY2UoXCJtZGMtZWxldmF0aW9uL2NvbW1vbi9jb2xvclwiKSB7XG4gICAgICBAaW5jbHVkZSBvdmVybGF5LWZpbGwtY29sb3IodmFyaWFibGVzLiRvdmVybGF5LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIHNoYWRvdyBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYm94LXNoYWRvdyAtIFRoZSBzaGFkb3cgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbkBtaXhpbiBzaGFkb3coJGJveC1zaGFkb3csICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBzdXJmYWNlIHJlcXVpcmVkIHBvc2l0aW9uaW5nLlxuLy8vXG5AbWl4aW4gb3ZlcmxheS1zdXJmYWNlLXBvc2l0aW9uKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXksIGluY2x1ZGluZyBwb3NpdGlvbmluZyBhbmQgc2l6aW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXlcbi8vLyBAcGFyYW0ge051bWJlcn0gWyRoZWlnaHRdIC0gVGhlIGhlaWdodCBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXlcbi8vLyBAcGFyYW0ge0Jvb2xlYW59IFskaGFzLWNvbnRlbnQtc2l6aW5nXSAtIFNldCB0byBmYWxzZSBpZiB0aGUgY29udGFpbmVyIGhhcyBubyBjb250ZW50IHNpemluZ1xuLy8vXG5AbWl4aW4gb3ZlcmxheS1kaW1lbnNpb25zKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoLCAkaGFzLWNvbnRlbnQtc2l6aW5nOiB0cnVlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBvdmVybGF5LXNlbGVjdG9yXyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuXG4gICAgICBAaWYgJGhhcy1jb250ZW50LXNpemluZyB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGVsZXZhdGlvbiBvdmVybGF5IGZpbGwgY29sb3IuXG4vLy8gRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IG9uIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBlbGV2YXRpb24gb3ZlcmxheS5cbi8vL1xuQG1peGluIG92ZXJsYXktZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZWxldmF0aW9uIG92ZXJsYXkgb3BhY2l0eS5cbi8vLyBFeHBlY3RlZCB0byBiZSBjYWxsZWQgZnJvbSBhIHBhcmVudCBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcGFjaXR5IC0gVGhlIG9wYWNpdHkgb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5LlxuLy8vXG5AbWl4aW4gb3ZlcmxheS1vcGFjaXR5KCRvcGFjaXR5LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBDU1MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6LXZhbHVlLlxuLy8gVGhlICR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbi8vIElmICRjb2xvciBoYXMgYW4gYWxwaGEgY2hhbm5lbCwgaXQgd2lsbCBiZSBpZ25vcmVkIGFuZCBvdmVycmlkZGVuLiBUbyBpbmNyZWFzZSB0aGUgb3BhY2l0eSBvZiB0aGUgc2hhZG93LCB1c2Vcbi8vICRvcGFjaXR5LWJvb3N0LlxuQG1peGluIGVsZXZhdGlvbigkei12YWx1ZSwgJGNvbG9yOiB2YXJpYWJsZXMuJGJhc2VsaW5lLWNvbG9yLCAkb3BhY2l0eS1ib29zdDogMCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkei12YWx1ZSkgIT0gbnVtYmVyIG9yIG5vdCBtYXRoLmlzLXVuaXRsZXNzKCR6LXZhbHVlKSB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gIEBpZiAkei12YWx1ZSA8IDAgb3IgJHotdmFsdWUgPiAyNCB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICRjb2xvcjogdGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKTtcblxuICAkdW1icmEtei12YWx1ZTogbWFwLmdldCh2YXJpYWJsZXMuJHVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkcGVudW1icmEtei12YWx1ZTogbWFwLmdldCh2YXJpYWJsZXMuJHBlbnVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkYW1iaWVudC16LXZhbHVlOiBtYXAuZ2V0KHZhcmlhYmxlcy4kYW1iaWVudC1tYXAsICR6LXZhbHVlKTtcblxuICAkdW1icmEtY29sb3I6IHJnYmEoJGNvbG9yLCB2YXJpYWJsZXMuJHVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRwZW51bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsIHZhcmlhYmxlcy4kcGVudW1icmEtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcbiAgJGFtYmllbnQtY29sb3I6IHJnYmEoJGNvbG9yLCB2YXJpYWJsZXMuJGFtYmllbnQtb3BhY2l0eSArICRvcGFjaXR5LWJvb3N0KTtcblxuICAkYm94LXNoYWRvdzogKFxuICAgICN7XCIjeyR1bWJyYS16LXZhbHVlfSAjeyR1bWJyYS1jb2xvcn1cIn0sXG4gICAgI3tcIiN7JHBlbnVtYnJhLXotdmFsdWV9ICN7JHBlbnVtYnJhLWNvbG9yfVwifSxcbiAgICAjeyRhbWJpZW50LXotdmFsdWV9ICRhbWJpZW50LWNvbG9yLFxuICApO1xuXG4gIEBpbmNsdWRlIHNoYWRvdygkYm94LXNoYWRvdywgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLyBQcml2YXRlXG5cbi8vL1xuLy8vIFNldHMgdGhlIGVsZXZhdGlvbiBvdmVybGF5IHRyYW5zaXRpb24gdmFsdWUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZWFzaW5nIC0gVGhlIGVhc2luZyBmdW5jdGlvbiBmb3IgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHJldHVybiB7U3RyaW5nfVxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAubWRjLWVsZXZhdGlvbi1vdmVybGF5IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuXG4kYmFzZWxpbmUtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHVtYnJhLW9wYWNpdHk6IC4yICFkZWZhdWx0O1xuJHBlbnVtYnJhLW9wYWNpdHk6IC4xNCAhZGVmYXVsdDtcbiRhbWJpZW50LW9wYWNpdHk6IC4xMiAhZGVmYXVsdDtcblxuJHVtYnJhLW1hcDogKFxuICAwOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAxOiBcIjBweCAycHggMXB4IC0xcHhcIixcbiAgMjogXCIwcHggM3B4IDFweCAtMnB4XCIsXG4gIDM6IFwiMHB4IDNweCAzcHggLTJweFwiLFxuICA0OiBcIjBweCAycHggNHB4IC0xcHhcIixcbiAgNTogXCIwcHggM3B4IDVweCAtMXB4XCIsXG4gIDY6IFwiMHB4IDNweCA1cHggLTFweFwiLFxuICA3OiBcIjBweCA0cHggNXB4IC0ycHhcIixcbiAgODogXCIwcHggNXB4IDVweCAtM3B4XCIsXG4gIDk6IFwiMHB4IDVweCA2cHggLTNweFwiLFxuICAxMDogXCIwcHggNnB4IDZweCAtM3B4XCIsXG4gIDExOiBcIjBweCA2cHggN3B4IC00cHhcIixcbiAgMTI6IFwiMHB4IDdweCA4cHggLTRweFwiLFxuICAxMzogXCIwcHggN3B4IDhweCAtNHB4XCIsXG4gIDE0OiBcIjBweCA3cHggOXB4IC00cHhcIixcbiAgMTU6IFwiMHB4IDhweCA5cHggLTVweFwiLFxuICAxNjogXCIwcHggOHB4IDEwcHggLTVweFwiLFxuICAxNzogXCIwcHggOHB4IDExcHggLTVweFwiLFxuICAxODogXCIwcHggOXB4IDExcHggLTVweFwiLFxuICAxOTogXCIwcHggOXB4IDEycHggLTZweFwiLFxuICAyMDogXCIwcHggMTBweCAxM3B4IC02cHhcIixcbiAgMjE6IFwiMHB4IDEwcHggMTNweCAtNnB4XCIsXG4gIDIyOiBcIjBweCAxMHB4IDE0cHggLTZweFwiLFxuICAyMzogXCIwcHggMTFweCAxNHB4IC03cHhcIixcbiAgMjQ6IFwiMHB4IDExcHggMTVweCAtN3B4XCJcbikgIWRlZmF1bHQ7XG5cbiRwZW51bWJyYS1tYXA6IChcbiAgMDogXCIwcHggMHB4IDBweCAwcHhcIixcbiAgMTogXCIwcHggMXB4IDFweCAwcHhcIixcbiAgMjogXCIwcHggMnB4IDJweCAwcHhcIixcbiAgMzogXCIwcHggM3B4IDRweCAwcHhcIixcbiAgNDogXCIwcHggNHB4IDVweCAwcHhcIixcbiAgNTogXCIwcHggNXB4IDhweCAwcHhcIixcbiAgNjogXCIwcHggNnB4IDEwcHggMHB4XCIsXG4gIDc6IFwiMHB4IDdweCAxMHB4IDFweFwiLFxuICA4OiBcIjBweCA4cHggMTBweCAxcHhcIixcbiAgOTogXCIwcHggOXB4IDEycHggMXB4XCIsXG4gIDEwOiBcIjBweCAxMHB4IDE0cHggMXB4XCIsXG4gIDExOiBcIjBweCAxMXB4IDE1cHggMXB4XCIsXG4gIDEyOiBcIjBweCAxMnB4IDE3cHggMnB4XCIsXG4gIDEzOiBcIjBweCAxM3B4IDE5cHggMnB4XCIsXG4gIDE0OiBcIjBweCAxNHB4IDIxcHggMnB4XCIsXG4gIDE1OiBcIjBweCAxNXB4IDIycHggMnB4XCIsXG4gIDE2OiBcIjBweCAxNnB4IDI0cHggMnB4XCIsXG4gIDE3OiBcIjBweCAxN3B4IDI2cHggMnB4XCIsXG4gIDE4OiBcIjBweCAxOHB4IDI4cHggMnB4XCIsXG4gIDE5OiBcIjBweCAxOXB4IDI5cHggMnB4XCIsXG4gIDIwOiBcIjBweCAyMHB4IDMxcHggM3B4XCIsXG4gIDIxOiBcIjBweCAyMXB4IDMzcHggM3B4XCIsXG4gIDIyOiBcIjBweCAyMnB4IDM1cHggM3B4XCIsXG4gIDIzOiBcIjBweCAyM3B4IDM2cHggM3B4XCIsXG4gIDI0OiBcIjBweCAyNHB4IDM4cHggM3B4XCJcbikgIWRlZmF1bHQ7XG5cbiRhbWJpZW50LW1hcDogKFxuICAwOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAxOiBcIjBweCAxcHggM3B4IDBweFwiLFxuICAyOiBcIjBweCAxcHggNXB4IDBweFwiLFxuICAzOiBcIjBweCAxcHggOHB4IDBweFwiLFxuICA0OiBcIjBweCAxcHggMTBweCAwcHhcIixcbiAgNTogXCIwcHggMXB4IDE0cHggMHB4XCIsXG4gIDY6IFwiMHB4IDFweCAxOHB4IDBweFwiLFxuICA3OiBcIjBweCAycHggMTZweCAxcHhcIixcbiAgODogXCIwcHggM3B4IDE0cHggMnB4XCIsXG4gIDk6IFwiMHB4IDNweCAxNnB4IDJweFwiLFxuICAxMDogXCIwcHggNHB4IDE4cHggM3B4XCIsXG4gIDExOiBcIjBweCA0cHggMjBweCAzcHhcIixcbiAgMTI6IFwiMHB4IDVweCAyMnB4IDRweFwiLFxuICAxMzogXCIwcHggNXB4IDI0cHggNHB4XCIsXG4gIDE0OiBcIjBweCA1cHggMjZweCA0cHhcIixcbiAgMTU6IFwiMHB4IDZweCAyOHB4IDVweFwiLFxuICAxNjogXCIwcHggNnB4IDMwcHggNXB4XCIsXG4gIDE3OiBcIjBweCA2cHggMzJweCA1cHhcIixcbiAgMTg6IFwiMHB4IDdweCAzNHB4IDZweFwiLFxuICAxOTogXCIwcHggN3B4IDM2cHggNnB4XCIsXG4gIDIwOiBcIjBweCA4cHggMzhweCA3cHhcIixcbiAgMjE6IFwiMHB4IDhweCA0MHB4IDdweFwiLFxuICAyMjogXCIwcHggOHB4IDQycHggN3B4XCIsXG4gIDIzOiBcIjBweCA5cHggNDRweCA4cHhcIixcbiAgMjQ6IFwiMHB4IDlweCA0NnB4IDhweFwiXG4pICFkZWZhdWx0O1xuXG4vLyBUaGUgY3NzIHByb3BlcnR5IHVzZWQgZm9yIGVsZXZhdGlvbi4gSW4gbW9zdCBjYXNlcyB0aGlzIHNob3VsZCBub3QgYmUgY2hhbmdlZC4gSXQgaXMgZXhwb3NlZFxuLy8gYXMgYSB2YXJpYWJsZSBmb3IgYWJzdHJhY3Rpb24gLyBlYXN5IHVzZSB3aGVuIG5lZWRpbmcgdG8gcmVmZXJlbmNlIHRoZSBwcm9wZXJ0eSBkaXJlY3RseSwgZm9yXG4vLyBleGFtcGxlIGluIGEgYHdpbGwtY2hhbmdlYCBydWxlLlxuJHByb3BlcnR5OiBib3gtc2hhZG93ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgdGhlIGVsZXZhdGlvbiBvdmVybGF5LlxuJG92ZXJsYXktY29sb3I6ICNmZmY7XG5cbi8vIFRoZSBjc3MgcHJvcGVydHkgdXNlZCBmb3IgZWxldmF0aW9uIG92ZXJsYXkgdHJhbnNpdGlvbnMuIEluIG1vc3QgY2FzZXMgdGhpcyBzaG91bGQgbm90IGJlIGNoYW5nZWQuIEl0IGlzIGV4cG9zZWRcbi8vIGFzIGEgdmFyaWFibGUgZm9yIGFic3RyYWN0aW9uIC8gZWFzeSB1c2Ugd2hlbiBuZWVkaW5nIHRvIHJlZmVyZW5jZSB0aGUgcHJvcGVydHkgZGlyZWN0bHksIGZvclxuLy8gZXhhbXBsZSBpbiBhIGB3aWxsLWNoYW5nZWAgcnVsZS5cbiRvdmVybGF5LXByb3BlcnR5OiBvcGFjaXR5ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBkdXJhdGlvbiB2YWx1ZSBmb3IgZWxldmF0aW9uIHRyYW5zaXRpb25zLlxuJHRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTkgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiIGFzIGJhc2UtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5cbi8vLyBTdHlsZXMgYXBwbGllZCB0byB0aGUgY29tcG9uZW50J3MgdG91Y2ggdGFyZ2V0IHdyYXBwZXIgZWxlbWVudC5cbkBtaXhpbiB3cmFwcGVyKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtdG91Y2gtdGFyZ2V0LXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gRW5zdXJlIHRoYXQgc3R5bGVzIGFyZSBvbmx5IGVtaXR0ZWQgb25jZSBhY3Jvc3MgYWxsIGNvbXBvbmVudHMgdGhhdFxuICAgICAgLy8gaGF2ZSBpbmNyZWFzZWQgdG91Y2ggdGFyZ2V0cy5cbiAgICAgIEBpbmNsdWRlIGJhc2UtbWl4aW5zLmVtaXQtb25jZShcIm1kYy10b3VjaC10YXJnZXQvd3JhcHBlclwiKSB7XG4gICAgICAgIC8vIE5PVEU6IFdpbGwgY2hhbmdlIHRvIGBpbmxpbmUtYmxvY2tgIGluIHRoZSBmdXR1cmUsIGJ1dCBrZWVwaW5nIGFzIGlzXG4gICAgICAgIC8vIHRlbXBvcmFyaWx5IGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS5cbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3R5bGVzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudCdzIGlubmVyIHRvdWNoIHRhcmdldCBlbGVtZW50LlxuLy8vIEJ5IGRlZmF1bHQsIG9ubHkgc2V0cyB0aGUgaW5uZXIgZWxlbWVudCBoZWlnaHQgdG8gdGhlIG1pbmltdW0gdG91Y2ggdGFyZ2V0XG4vLy8gaGVpZ2h0ICgkbWRjLXRvdWNoLXRhcmdldC1oZWlnaHQpLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNldC13aWR0aCBbZmFsc2VdIC0gU2V0cyB0aGUgaW5uZXIgZWxlbWVudCB3aWR0aCB0byB0aGVcbi8vLyAgICAgbWluaW11bSB0b3VjaCB0YXJnZXQgd2lkdGggKCRtZGMtdG91Y2gtdGFyZ2V0LXdpZHRoKS5cbkBtaXhpbiB0b3VjaC10YXJnZXQoJHNldC13aWR0aDogZmFsc2UsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kaGVpZ2h0O1xuICB9XG5cbiAgQGlmICRzZXQtd2lkdGgge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgd2lkdGg6IHZhcmlhYmxlcy4kd2lkdGg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgbWFyZ2luIHRvIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgaW5jcmVhc2VkIHRvdWNoIHRhcmdldCxcbi8vLyB0byBjb21wZW5zYXRlIGZvciB0aGUgdG91Y2ggdGFyZ2V0LlxuQG1peGluIG1hcmdpbigkY29tcG9uZW50LWhlaWdodCwgJGNvbXBvbmVudC13aWR0aDogbnVsbCwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJHZlcnRpY2FsLW1hcmdpbi12YWx1ZTogKHZhcmlhYmxlcy4kaGVpZ2h0IC0gJGNvbXBvbmVudC1oZWlnaHQpIC8gMjtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBtYXJnaW4tdG9wOiAkdmVydGljYWwtbWFyZ2luLXZhbHVlO1xuICAgIG1hcmdpbi1ib3R0b206ICR2ZXJ0aWNhbC1tYXJnaW4tdmFsdWU7XG4gIH1cblxuICBAaWYgJGNvbXBvbmVudC13aWR0aCB7XG4gICAgJGhvcml6b250YWwtbWFyZ2luLXZhbHVlOiAodmFyaWFibGVzLiR3aWR0aCAtICRjb21wb25lbnQtd2lkdGgpIC8gMjtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkaG9yaXpvbnRhbC1tYXJnaW4tdmFsdWU7XG4gICAgICBtYXJnaW4tbGVmdDogJGhvcml6b250YWwtbWFyZ2luLXZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiIGFzIGVsZXZhdGlvbi1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCIgYXMgcmlwcGxlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL2Z1bmN0aW9uc1wiIGFzIHRoZW1lLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90b3VjaC10YXJnZXQvbWl4aW5zXCIgYXMgdG91Y2gtdGFyZ2V0LW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIiBhcyB0eXBvZ3JhcGh5LW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCIgYXMgc2hhcGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9mdW5jdGlvbnNcIiBhcyBzaGFwZS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2RlbnNpdHkvZnVuY3Rpb25zXCIgYXMgZGVuc2l0eS1mdW5jdGlvbnM7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL2Z1bmN0aW9uc1wiIGFzIGVsZXZhdGlvbi1mdW5jdGlvbnM7XG5cbiRyaXBwbGUtdGFyZ2V0OiBcIi5tZGMtYnV0dG9uX19yaXBwbGVcIjtcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIHdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIHJpcHBsZSgkcXVlcnkpO1xufVxuXG5AbWl4aW4gdGhlbWUtYmFzZWxpbmUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLm1kYy1idXR0b24ge1xuICAgIEBpbmNsdWRlIGRlbnNpdHkodmFyaWFibGVzLiRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gYnV0dG9uIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWJ1dHRvbi1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiB3aXRob3V0LXJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1taXhpbnMud3JhcHBlcigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLm92ZXJsYXktY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgYnV0dG9uXG4gIC5tZGMtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBiYXNlXygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHNoYXBlLXJhZGl1cyhzbWFsbCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGRpc2FibGVkLWNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnkpO1xuICAgIC8vIFRoZSBpY29uIENTUyBjbGFzcyBvdmVycmlkZXMgc3R5bGVzIGRlZmluZWQgaW4gdGhlIC5tYXRlcmlhbC1pY29ucyBDU1NcbiAgICAvLyBjbGFzcywgd2hpY2ggaXMgbG9hZGVkIHNlcGFyYXRlbHkgc28gdGhlIG9yZGVyIG9mIENTUyBkZWZpbml0aW9ucyBpcyBub3RcbiAgICAvLyBndWFyYW50ZWVkLiBUaGVyZWZvcmUsIGluY3JlYXNlIHNwZWNpZml0eSBieSBuZXN0aW5nIHRoaXMgY2xhc3MgdG8gZW5zdXJlXG4gICAgLy8gb3ZlcnJpZGVzIGFwcGx5LlxuICAgIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBpY29uXztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWJ1dHRvbl9fdG91Y2gge1xuICAgICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0LW1peGlucy50b3VjaC10YXJnZXQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGluay1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGRpc2FibGVkLWluay1jb2xvcih2YXJpYWJsZXMuJGRpc2FibGVkLWluay1jb2xvciwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGljb24tdHJhaWxpbmdfO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgc3ZnLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgaWNvbi1zdmdfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQsXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkLFxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQge1xuICAgIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAvLyBJY29ucyBpbnNpZGUgY29udGFpbmVkIGJ1dHRvbnMgaGF2ZSBkaWZmZXJlbnQgc3R5bGVzIGR1ZSB0byBpbmNyZWFzZWQgYnV0dG9uIHBhZGRpbmdcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1jb250YWluZWRfO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWNvbnRhaW5lZC10cmFpbGluZ187XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICAgIEBpbmNsdWRlIGZpbGxlZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQge1xuICAgIEBpbmNsdWRlIHJhaXNlZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gICAgQGluY2x1ZGUgb3V0bGluZWRfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tdG91Y2gge1xuICAgIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1taXhpbnMubWFyZ2luKFxuICAgICAgJGNvbXBvbmVudC1oZWlnaHQ6IHZhcmlhYmxlcy4kaGVpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gYnV0dG9uIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWJ1dHRvbi1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiByaXBwbGUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5jb21tb24oJHF1ZXJ5KTsgLy8gQ09QWUJBUkFfQ09NTUVOVF9USElTX0xJTkVcblxuICAubWRjLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMucmFkaXVzLWJvdW5kZWQoXG4gICAgICAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcyhcbiAgICAgICRjb2xvcjogcHJpbWFyeSwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG5cbiAgICAjeyRyaXBwbGUtdGFyZ2V0fSB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAvLyBSaXBwbGUgbmVlZHMgY29udGVudC1ib3ggYXMgdGhlIGJveCBzaXppbmcgYW5kIGJveC1zaXppbmc6IGJvcmRlci1ib3hcbiAgICAgICAgLy8gaXMgb2Z0ZW4gc2V0IGFzIGEgZGVmYXVsdCwgc28gd2Ugb3ZlcnJpZGUgdGhhdCBoZXJlLlxuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSaXBwbGUgdGFyZ2V0cyBpbnNpZGUgb3V0bGluZWQgYnV0dG9ucyBzZXQgdGhlaXIgb3duIGB0b3BgL2BsZWZ0YCxcbiAgICAvLyBkZXBlbmRpbmcgb24gdGhlIGJvcmRlciB3aWR0aC5cbiAgICAmOm5vdCgubWRjLWJ1dHRvbi0tb3V0bGluZWQpICN7JHJpcHBsZS10YXJnZXR9IHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzKFxuICAgICAgJGNvbG9yOiBvbi1wcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxufVxuXG5AbWl4aW4gZmlsbGVkLWFjY2Vzc2libGUoJGNvbnRhaW5lci1maWxsLWNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmlsbC10b25lOiB0aGVtZS1mdW5jdGlvbnMudG9uZSgkY29udGFpbmVyLWZpbGwtY29sb3IpO1xuXG4gIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yKCRjb250YWluZXItZmlsbC1jb2xvciwgJHF1ZXJ5KTtcblxuICBAaWYgKCRmaWxsLXRvbmUgPT0gXCJkYXJrXCIpIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoXG4gICAgICAkY29sb3I6IHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcyhcbiAgICAgICRjb2xvcjogdGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBjb250YWluZXIgZmlsbCBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgZm9yIGFuIGVuYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGNvbnRhaW5lciBmaWxsIGNvbG9yLlxuLy8vXG5AbWl4aW4gY29udGFpbmVyLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAvLyA6bm90KDpkaXNhYmxlZCkgaXMgdXNlZCB0byBzdXBwb3J0IGxpbmsgc3R5bGVkIGFzIGJ1dHRvblxuICAvLyBhcyBsaW5rIGRvZXMgbm90IHN1cHBvcnQgOmVuYWJsZWQgc3R5bGVcbiAgJjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyLWZpbGwtY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGNvbnRhaW5lciBmaWxsIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgY29udGFpbmVyIGZpbGwgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1jb250YWluZXItZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBvdXRsaW5lIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYW4gZW5hYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgb3V0bGluZSBjb2xvci5cbi8vL1xuQG1peGluIG91dGxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBvdXRsaW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBvdXRsaW5lIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgb3V0bGluZSBjb2xvci5cbi8vL1xuQG1peGluIGRpc2FibGVkLW91dGxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBvdXRsaW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpY29uIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYW4gZW5hYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgaWNvbiBjb2xvci5cbi8vL1xuQG1peGluIGljb24tY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBpY29uLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpY29uIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgaWNvbiBjb2xvci5cbi8vL1xuQG1peGluIGRpc2FibGVkLWljb24tY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBpY29uLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpbmsgY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yIGZvciBhbiBlbmFibGVkIGJ1dHRvbixcbi8vLyBhbmQgc2V0cyB0aGUgaWNvbiBjb2xvciB0byB0aGUgZ2l2ZW4gY29sb3IgdW5sZXNzIGBtZGMtYnV0dG9uLWljb24tY29sb3JgXG4vLy8gaXMgYWxzbyB1c2VkLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGluayBjb2xvci5cbi8vL1xuQG1peGluIGluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICY6bm90KDpkaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaW5rIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvciBmb3IgYSBkaXNhYmxlZCBidXR0b24sXG4vLy8gYW5kIHNldHMgdGhlIGljb24gY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yIHVubGVzcyBgbWRjLWJ1dHRvbi1pY29uLWNvbG9yYFxuLy8vIGlzIGFsc28gdXNlZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgZGVzaXJlZCBpbmsgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgZGVuc2l0eSBzY2FsZSBmb3IgYnV0dG9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgfCBTdHJpbmd9ICRkZW5zaXR5LXNjYWxlIC0gRGVuc2l0eSBzY2FsZSB2YWx1ZSBmb3IgY29tcG9uZW50LiBTdXBwb3J0ZWQgZGVuc2l0eSBzY2FsZSB2YWx1ZXMgYC0zYCxcbi8vLyAgICAgYC0yYCwgYC0xYCwgYDBgLlxuLy8vXG5AbWl4aW4gZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcblxuICAkaGVpZ2h0OiBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogdmFyaWFibGVzLiRkZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IGhlaWdodCxcbiAgKTtcblxuICBAaW5jbHVkZSBoZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBpZiAkZGVuc2l0eS1zY2FsZSAhPSAwIHtcbiAgICBAaW5jbHVkZSB0b3VjaC10YXJnZXQtcmVzZXRfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLy9cbi8vLyBSZXNldHMgdG91Y2ggdGFyZ2V0LXJlbGF0ZWQgc3R5bGVzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIHRoZSBkZW5zaXR5IG1peGluIHRvXG4vLy8gYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGluY3JlYXNlZCB0b3VjaCB0YXJnZXQsIHNpbmNlIGRlbnNlIGNvbXBvbmVudHNcbi8vLyBkb24ndCBoYXZlIHRoZSBzYW1lIGRlZmF1bHQgYTExeSByZXF1aXJlbWVudHMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiB0b3VjaC10YXJnZXQtcmVzZXRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uX190b3VjaCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIGN1c3RvbSBoZWlnaHQgZm9yIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCAtIEhlaWdodCBvZiBidXR0b24gaW4gYHB4YC5cbi8vL1xuQG1peGluIGhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIHNoYXBlLXJhZGl1cygkcmFkaXVzLFxuJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLFxuJGRlbnNpdHktc2NhbGU6IHZhcmlhYmxlcy4kZGVuc2l0eS1zY2FsZSxcbiRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG5cbiAgJGhlaWdodDogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBoZWlnaHQsXG4gICk7XG4gICRyZXNvbHZlZC1yYWRpdXM6IHNoYXBlLWZ1bmN0aW9ucy5yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRoZWlnaHQsICRyYWRpdXMpO1xuXG4gIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoJHJlc29sdmVkLXJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAjeyRyaXBwbGUtdGFyZ2V0fSB7XG4gICAgQGluY2x1ZGUgc2hhcGUtbWl4aW5zLnJhZGl1cygkcmVzb2x2ZWQtcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgaG9yaXpvbnRhbCBwYWRkaW5nIHRvIHRoZSBnaXZlbiBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nXG4vLy9cbkBtaXhpbiBob3Jpem9udGFsLXBhZGRpbmcoJHBhZGRpbmcsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vICRwYWRkaW5nIHNob3VsZCBiZSBhIHNpbmdsZSB2YWx1ZTsgZW5mb3JjZSBpdCBieSBzcGVjaWZ5aW5nIGFsbCA0IHNpZGVzIGluIHRoZSBvdXRwdXRcbiAgICBwYWRkaW5nOiAwICRwYWRkaW5nIDAgJHBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIG91dGxpbmUtd2lkdGgoXG4gICRvdXRsaW5lLXdpZHRoLFxuICAkcGFkZGluZzogdmFyaWFibGVzLiRjb250YWluZWQtaG9yaXpvbnRhbC1wYWRkaW5nLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAvLyBOb3RlOiBBZGp1c3QgcGFkZGluZyB0byBtYWludGFpbiBjb25zaXN0ZW50IHdpZHRoIHdpdGggbm9uLW91dGxpbmVkIGJ1dHRvbnNcbiAgJHBhZGRpbmctdmFsdWU6IG1hdGgubWF4KCRwYWRkaW5nIC0gJG91dGxpbmUtd2lkdGgsIDApO1xuXG4gIEBpbmNsdWRlIGhvcml6b250YWwtcGFkZGluZygkcGFkZGluZy12YWx1ZSwgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItd2lkdGg6ICRvdXRsaW5lLXdpZHRoO1xuICB9XG5cbiAgI3skcmlwcGxlLXRhcmdldH0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiAtJG91dGxpbmUtd2lkdGg7XG4gICAgICBsZWZ0OiAtJG91dGxpbmUtd2lkdGg7XG4gICAgICBib3JkZXI6ICRvdXRsaW5lLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBidXR0b24gbGFiZWwgdG8gb3ZlcmZsb3cgYXMgZWxsaXBzaXNcbi8vL1xuQG1peGluIGxhYmVsLW92ZXJsb3ctZWxsaXBzaXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgLm1kYy1idXR0b25fX2xhYmVsIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy5vdmVyZmxvdy1lbGxpcHNpcygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGJhc2VfKCRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoYnV0dG9uLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBob3Jpem9udGFsLXBhZGRpbmcodmFyaWFibGVzLiRob3Jpem9udGFsLXBhZGRpbmcsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMub3ZlcmxheS1zdXJmYWNlLXBvc2l0aW9uKCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5vdmVybGF5LWRpbWVuc2lvbnMoMTAwJSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTsgYWxyZWFkeSBzZXQgaW4gbWRjLWVsZXZhdGlvbi1vdmVybGF5LXN1cmZhY2UtcG9zaXRpb25cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiA2NHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLy8gRXZlbiB0aG91Z2ggYHZpc2libGVgIGlzIHRoZSBkZWZhdWx0LCBJRSAxMSBjb21wdXRlcyB0aGUgcHJvcGVydHkgYXNcbiAgICAvLyBgaGlkZGVuYCBpbiBzb21lIGNhc2VzLCB1bmxlc3MgaXQncyBleHBsaWNpdGx5IGRlZmluZWQgaGVyZS5cbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGljb25fIHtcbiAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbkBtaXhpbiBpY29uLXRyYWlsaW5nXyB7XG4gIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCk7XG59XG5cbkBtaXhpbiBpY29uLXN2Z18ge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbkBtaXhpbiBpY29uLWNvbnRhaW5lZF8ge1xuICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIC00cHgsIDhweCk7XG59XG5cbkBtaXhpbiBpY29uLWNvbnRhaW5lZC10cmFpbGluZ18ge1xuICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sIDhweCwgLTRweCk7XG59XG5cbkBtaXhpbiBvdXRsaW5lZF8oJHF1ZXJ5KSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG91dGxpbmUtd2lkdGgodmFyaWFibGVzLiRvdXRsaW5lZC1ib3JkZXItd2lkdGgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgb3V0bGluZS1jb2xvcih2YXJpYWJsZXMuJG91dGxpbmUtY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIGRpc2FibGVkLW91dGxpbmUtY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1jb250YWluZXItY29sb3IsICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG5AbWl4aW4gZmlsbGVkXygkcXVlcnkpIHtcbiAgQGluY2x1ZGUgaG9yaXpvbnRhbC1wYWRkaW5nKHZhcmlhYmxlcy4kY29udGFpbmVkLWhvcml6b250YWwtcGFkZGluZywgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgY29udGFpbmVyLWZpbGwtY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaW5rLWNvbG9yKG9uLXByaW1hcnksICRxdWVyeSk7XG4gIEBpbmNsdWRlIGRpc2FibGVkLWNvbnRhaW5lci1maWxsLWNvbG9yKHZhcmlhYmxlcy4kZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBkaXNhYmxlZC1pbmstY29sb3IodmFyaWFibGVzLiRkaXNhYmxlZC1pbmstY29sb3IsICRxdWVyeSk7XG59XG5cbkBtaXhpbiByYWlzZWRfKCRxdWVyeSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDIsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbig0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oOCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogZWxldmF0aW9uLWZ1bmN0aW9ucy50cmFuc2l0aW9uLXZhbHVlKCk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgY29udGFpbmVyIGZpbGwgY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yLiBUaGlzIG1peGluIHNob3VsZCBiZVxuLy8vIHdyYXBwZWQgaW4gYSBzZWxlY3RvciB0aGF0IHF1YWxpZmllcyBidXR0b24gc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBjb250YWluZXItZmlsbC1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIG91dGxpbmUgY29sb3IgdG8gdGhlIGdpdmVuIGNvbG9yLiBUaGlzIG1peGluIHNob3VsZCBiZVxuLy8vIHdyYXBwZWQgaW4gYSBzZWxlY3RvciB0aGF0IHF1YWxpZmllcyBidXR0b24gc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBvdXRsaW5lLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBpY29uIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvci4gVGhpcyBtaXhpbiBzaG91bGQgYmVcbi8vLyB3cmFwcGVkIGluIGEgc2VsZWN0b3IgdGhhdCBxdWFsaWZpZXMgYnV0dG9uIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWNvbi1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaW5rIGNvbG9yIHRvIHRoZSBnaXZlbiBjb2xvci4gVGhpcyBtaXhpbiBzaG91bGQgYmVcbi8vLyB3cmFwcGVkIGluIGEgc2VsZWN0b3IgdGhhdCBxdWFsaWZpZXMgYnV0dG9uIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bGlzdFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcbkB1c2UgXCIuL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgLy8gRXZlbiBpZiAkcnRsLXJlZmxleGl2ZSBpcyB0cnVlLCBvbmx5IGVtaXQgUlRMIHN0eWxlcyBpZiB3ZSBjYW4ndCBlYXNpbHkgdGVsbCB0aGF0IHRoZSBnaXZlbiByYWRpdXMgaXMgc3ltbWV0cmljYWxcbiAgICAkbmVlZHMtZmxpcDogJHJ0bC1yZWZsZXhpdmUgYW5kIGxpc3QubGVuZ3RoKCRyYWRpdXMpID4gMTtcblxuICAgIEBpZiAoJG5lZWRzLWZsaXApIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICB9XG5cbiAgICBib3JkZXItcmFkaXVzOiBmdW5jdGlvbnMucHJvcC12YWx1ZSgkcmFkaXVzKTtcblxuICAgIEBpZiAoJG5lZWRzLWZsaXApIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucnRsIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiBmdW5jdGlvbnMuZmxpcC1yYWRpdXMoZnVuY3Rpb25zLnByb3AtdmFsdWUoJHJhZGl1cykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRoZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kd2lkdGg6ICRoZWlnaHQgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L3ZhcmlhYmxlc1wiIGFzIGRlbnNpdHktdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIiBhcyB0aGVtZS12YXJpYWJsZXM7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZVxuXG4kaGVpZ2h0OiAzNnB4ICFkZWZhdWx0O1xuJGhvcml6b250YWwtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuJGNvbnRhaW5lZC1ob3Jpem9udGFsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG5cbiRtaW5pbXVtLWhlaWdodDogMjRweCAhZGVmYXVsdDtcbiRtYXhpbXVtLWhlaWdodDogJGhlaWdodCAhZGVmYXVsdDtcbiRkZW5zaXR5LXNjYWxlOiBkZW5zaXR5LXZhcmlhYmxlcy4kZGVmYXVsdC1zY2FsZSAhZGVmYXVsdDtcbiRkZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWluaW11bS1oZWlnaHQsXG4gICksXG4pICFkZWZhdWx0O1xuXG4kb3V0bGluZWQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kb3V0bGluZS1jb2xvcjogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjEyKSAhZGVmYXVsdDtcbiRzaGFwZS1yYWRpdXM6IHNtYWxsICFkZWZhdWx0O1xuXG4kZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMTIpICFkZWZhdWx0O1xuJGRpc2FibGVkLWluay1jb2xvcjogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM4KSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIiBhcyBmdW5jdGlvbnMyO1xuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCIgYXMgYW5pbWF0aW9uLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiIGFzIHJ0bC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCIgYXMgdHlwb2dyYXBoeS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvdmFyaWFibGVzXCIgYXMgdmFyaWFibGVzMjtcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIiBhcyB0aGVtZS12YXJpYWJsZXM7XG5AdXNlIFwiQG1hdGVyaWFsL2xpc3QvbWl4aW5zXCIgYXMgbGlzdC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIiBhcyByaXBwbGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIiBhcyBzaGFwZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9taXhpbnNcIiBhcyBlbGV2YXRpb24tbWl4aW5zO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZHJhd2VyXG4gIC5tZGMtZHJhd2VyIHtcbiAgICBAaW5jbHVkZSB0aXRsZS1pbmstY29sb3IodmFyaWFibGVzLiR0aXRsZS1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBzdWJ0aXRsZS1pbmstY29sb3IodmFyaWFibGVzLiRzdWJ0aXRsZS1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBib3JkZXItY29sb3IodmFyaWFibGVzLiRkaXZpZGVyLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgc3VyZmFjZS1maWxsLWNvbG9yKHZhcmlhYmxlcy4kc3VyZmFjZS1maWxsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaXRlbS1pY29uLWluay1jb2xvcih2YXJpYWJsZXMuJGl0ZW0taW5hY3RpdmUtaW5rLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaXRlbS10ZXh0LWluay1jb2xvcih2YXJpYWJsZXMuJGl0ZW0taW5hY3RpdmUtaW5rLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgaXRlbS1hY3RpdmF0ZWQtaWNvbi1pbmstY29sb3IodmFyaWFibGVzLiRpdGVtLWFjdGl2YXRlZC1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBpdGVtLWFjdGl2YXRlZC10ZXh0LWluay1jb2xvcih2YXJpYWJsZXMuJGl0ZW0tYWN0aXZhdGVkLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHNoYXBlLXJhZGl1cyhsYXJnZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGl0ZW0tc2hhcGUtcmFkaXVzKDRweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHotaW5kZXgodmFyaWFibGVzLiR6LWluZGV4LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgd2lkdGgodmFyaWFibGVzLiR3aWR0aCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucnRsIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGFuaW1hdGlvbi12YXJpYWJsZXMuJHN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaXN0LWl0ZW1fKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWRyYXdlci0tYW5pbWF0ZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuXG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJ0bCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRyYXdlci0tb3BlbmluZyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG5cbiAgICAgIC8vIFJlcXVpcmVkIHRvIGxldmVsIHRoZSBzcGVjaWZpY2l0eSB3aXRoIGFuaW1hdGUgY2xhc3MuXG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJ0bCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcmlhYmxlcy4kYW5pbWF0aW9uLWVudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZHJhd2VyLS1jbG9zaW5nIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG5cbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucnRsIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyaWFibGVzLiRhbmltYXRpb24tZXhpdDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRyYXdlcl9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1pbi1oZWlnaHQ6IDY0cHg7IC8vIHNhbWUgYXMgJG1kYy10b3AtYXBwLWJhci1yb3ctaGVpZ2h0XG4gICAgICBwYWRkaW5nOiAwIHZhcmlhYmxlcy4kc3VyZmFjZS1wYWRkaW5nIDRweDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRyYXdlcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLnR5cG9ncmFwaHkoaGVhZGxpbmU2LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMuYmFzZWxpbmUtdG9wKDM2cHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy5iYXNlbGluZS1ib3R0b20oMjBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1kcmF3ZXJfX3N1YnRpdGxlIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy50eXBvZ3JhcGh5KGJvZHkyLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMuYmFzZWxpbmUtdG9wKDIwcHgsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRyYXdlcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbkBtaXhpbiBkaXNtaXNzaWJsZS1jb3JlLXN0eWxlcygkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWRyYXdlci0tZGlzbWlzc2libGUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgMCk7XG5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICYubWRjLWRyYXdlci0tb3BlbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMCk7XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1vZGFsLWNvcmUtc3R5bGVzKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC1hbmltYXRpb246IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcblxuICAubWRjLWRyYXdlci0tbW9kYWwge1xuICAgIEBpbmNsdWRlIHNjcmltLWZpbGwtY29sb3IodmFyaWFibGVzLiRtb2RhbC1zY3JpbS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKHZhcmlhYmxlcy4kbW9kYWwtZWxldmF0aW9uLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cblxuICAgICYubWRjLWRyYXdlci0tb3BlbiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgei1pbmRleDogdmFyaWFibGVzLiR6LWluZGV4IC0gMTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogYW5pbWF0aW9uLXZhcmlhYmxlcy4kc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIH1cblxuICAgIC5tZGMtZHJhd2VyLS1vcGVuICsgJiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kcmF3ZXItLWFuaW1hdGUgKyAmIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZHJhd2VyLS1vcGVuaW5nICsgJiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyaWFibGVzLiRhbmltYXRpb24tZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZHJhd2VyLS1jbG9zaW5nICsgJiB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyaWFibGVzLiRhbmltYXRpb24tZXhpdDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhY3RpdmF0ZWQtb3ZlcmxheS1jb2xvcigkY29sb3IsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3RhdGVzLWFjdGl2YXRlZCgkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkdmFsdWU6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKSwgdmFyaWFibGVzLiRkaXZpZGVyLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBpdGVtLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgbGlzdC1taXhpbnMuc2luZ2xlLWxpbmUtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBzaGFwZS1yYWRpdXMoJHJhZGl1cywgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGlmIGxpc3QubGVuZ3RoKCRyYWRpdXMpID4gMiB7XG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xuICB9IEBlbHNlIGlmIGxpc3QubGVuZ3RoKCRyYWRpdXMpID09IDIge1xuICAgICRyYWRpdXM6IDAgbGlzdC5udGgoJHJhZGl1cywgMSkgbGlzdC5udGgoJHJhZGl1cywgMikgMDtcbiAgfSBAZWxzZSB7XG4gICAgJHJhZGl1czogMCAkcmFkaXVzICRyYWRpdXMgMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IHRydWUsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIGRpdmlkZXItY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkdmFsdWU6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKSwgdmFyaWFibGVzLiRkaXZpZGVyLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIGxpc3QtbWl4aW5zLmRpdmlkZXItY29sb3IoJHZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiB0aXRsZS1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICR2YWx1ZTogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZSgkY29sb3IpLCB2YXJpYWJsZXMuJHRpdGxlLWluay1vcGFjaXR5KTtcblxuICAubWRjLWRyYXdlcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN1YnRpdGxlLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJHZhbHVlOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvciksIHZhcmlhYmxlcy4kc3VidGl0bGUtaW5rLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIGxpc3QtbWl4aW5zLmdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IoJHZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLm1kYy1kcmF3ZXJfX3N1YnRpdGxlIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICR2YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmaWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkYWNjZXNzaWJsZUNvbG9yOiB0aGVtZS12YXJpYWJsZXMuYWNjZXNzaWJsZS1pbmstY29sb3IoJGNvbG9yKTtcblxuICBAaW5jbHVkZSB0aXRsZS1pbmstY29sb3IoJGFjY2Vzc2libGVDb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBzdWJ0aXRsZS1pbmstY29sb3IoJGFjY2Vzc2libGVDb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBpdGVtLXRleHQtaW5rLWNvbG9yKCRhY2Nlc3NpYmxlQ29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaXRlbS1pY29uLWluay1jb2xvcigkYWNjZXNzaWJsZUNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIHN1cmZhY2UtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIGl0ZW0taWNvbi1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkdmFsdWU6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKSwgdmFyaWFibGVzLiRpdGVtLWluYWN0aXZlLWljb24taW5rLW9wYWNpdHkpO1xuXG4gIEBpbmNsdWRlIGxpc3QtbWl4aW5zLml0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJHZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBpdGVtLWFjdGl2YXRlZC1pY29uLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICR2YWx1ZTogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZSgkY29sb3IpLCB2YXJpYWJsZXMuJGl0ZW0tYWN0aXZlLWljb24taW5rLW9wYWNpdHkpO1xuXG4gIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICAgIEBpbmNsdWRlIGxpc3QtbWl4aW5zLml0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJHZhbHVlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGl0ZW0tYWN0aXZhdGVkLXRleHQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJHZhbHVlOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvciksIHZhcmlhYmxlcy4kaXRlbS1hY3RpdmUtdGV4dC1pbmstb3BhY2l0eSk7XG5cbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gICAgQGluY2x1ZGUgbGlzdC1taXhpbnMuaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKCR2YWx1ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBpdGVtLXRleHQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJHZhbHVlOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvciksIHZhcmlhYmxlcy4kaXRlbS1pbmFjdGl2ZS10ZXh0LWluay1vcGFjaXR5KTtcblxuICAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbGlzdC1taXhpbnMuaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKCR2YWx1ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBzdXJmYWNlLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICR2YWx1ZTogdGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUoJGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIHNjcmltLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICR2YWx1ZTogcmdiYSh0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZSgkY29sb3IpLCB2YXJpYWJsZXMuJG1vZGFsLXNjcmltLW9wYWNpdHkpO1xuXG4gICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkdmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gei1pbmRleCgkdmFsdWUsICRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHotaW5kZXg6ICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gd2lkdGgoJHdpZHRoLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9XG5cbiAgJi5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCAkd2lkdGgpO1xuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cbkBtaXhpbiBsaXN0LWl0ZW1fKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy50eXBvZ3JhcGh5KHN1YnRpdGxlMiwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDhweCAtIDIgKiAje3ZhcmlhYmxlcy4kbGlzdC1pdGVtLXNwYWNpbmd9KTtcbiAgICAgIC8vIFRvIGFjY29tb2RhdGUgbWFyZ2luIGNvbmZsaWN0LlxuICAgICAgbWFyZ2luOiAodmFyaWFibGVzLiRsaXN0LWl0ZW0tc3BhY2luZyAqIDIpIDhweDtcbiAgICAgIHBhZGRpbmc6IDAgdmFyaWFibGVzLiRzdXJmYWNlLXBhZGRpbmcgLyAyO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtbGlzdC1pdGVtOm50aC1jaGlsZCgxKSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWl0ZW06bnRoLWxhc3QtY2hpbGQoMSkge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHR5cG9ncmFwaHktbWl4aW5zLmJhc2VsaW5lLXRvcCgyNHB4LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDAgdmFyaWFibGVzLiRzdXJmYWNlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luOiAzcHggMCA0cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudHMgbGlzdCBpdGVtIGNoaWxkcmVuIGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gdGhlIGNsaWNrIHRhcmdldC5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWl0ZW1fX3RleHQsXG4gIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbi8vIENvbG9yc1xuJHRpdGxlLWluay1jb2xvcjogdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kc3VidGl0bGUtaW5rLWNvbG9yOiB2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRpdGVtLWluYWN0aXZlLWluay1jb2xvcjogdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kaXRlbS1hY3RpdmF0ZWQtaW5rLWNvbG9yOiB2YXJpYWJsZXMucHJvcC12YWx1ZShwcmltYXJ5KSAhZGVmYXVsdDtcbiRkaXZpZGVyLWNvbG9yOiB2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRzdXJmYWNlLWZpbGwtY29sb3I6IHZhcmlhYmxlcy5wcm9wLXZhbHVlKHN1cmZhY2UpICFkZWZhdWx0O1xuXG4vLyBPcGFjaXR5XG4kdGl0bGUtaW5rLW9wYWNpdHk6IHZhcmlhYmxlcy50ZXh0LWVtcGhhc2lzKGhpZ2gpICFkZWZhdWx0O1xuJHN1YnRpdGxlLWluay1vcGFjaXR5OiB2YXJpYWJsZXMudGV4dC1lbXBoYXNpcyhtZWRpdW0pICFkZWZhdWx0O1xuJGl0ZW0taW5hY3RpdmUtaWNvbi1pbmstb3BhY2l0eTogdmFyaWFibGVzLnRleHQtZW1waGFzaXMobWVkaXVtKSAhZGVmYXVsdDtcbiRpdGVtLWluYWN0aXZlLXRleHQtaW5rLW9wYWNpdHk6IHZhcmlhYmxlcy50ZXh0LWVtcGhhc2lzKGhpZ2gpICFkZWZhdWx0O1xuJGl0ZW0tYWN0aXZlLWljb24taW5rLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kaXRlbS1hY3RpdmUtdGV4dC1pbmstb3BhY2l0eTogdmFyaWFibGVzLnRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kZGl2aWRlci1vcGFjaXR5OiAuMTIgIWRlZmF1bHQ7XG5cbi8vIFdpZHRoc1xuJHdpZHRoOiAyNTZweCAhZGVmYXVsdDtcbiRsaXN0LWl0ZW0tc3BhY2luZzogNHB4ICFkZWZhdWx0O1xuJHN1cmZhY2UtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcblxuLy8gQW5pbWF0aW9uc1xuJGFuaW1hdGlvbi1lbnRlcjogMjUwbXMgIWRlZmF1bHQ7XG4kYW5pbWF0aW9uLWV4aXQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vLyBTY3JpbVxuJG1vZGFsLXNjcmltLWNvbG9yOiB2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtb2RhbC1zY3JpbS1vcGFjaXR5OiAuMzIgIWRlZmF1bHQ7XG5cbiR6LWluZGV4OiA2ICFkZWZhdWx0O1xuJG1vZGFsLWVsZXZhdGlvbjogMTYgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCIgYXMgZWxldmF0aW9uLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiIGFzIHJpcHBsZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIiBhcyBydGwtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIiBhcyBzaGFwZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIiBhcyB0aGVtZS12YXJpYWJsZXM7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBjb3JlLXN0eWxlcygkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSB3aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSByaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gY2FyZCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1jYXJkLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIHdpdGhvdXQtcmlwcGxlKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGNhcmRcblxuICAkZmVhdC1jb2xvcjogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMub3ZlcmxheS1jb21tb24oJHF1ZXJ5KTsgLy8gQ09QWUJBUkFfQ09NTUVOVF9USElTX0xJTkVcblxuICAubWRjLWNhcmQge1xuICAgIEBpbmNsdWRlIHNoYXBlLXJhZGl1cyhtZWRpdW0sICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBmaWxsLWNvbG9yKHN1cmZhY2UsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5vdmVybGF5LXN1cmZhY2UtcG9zaXRpb24oJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMub3ZlcmxheS1kaW1lbnNpb25zKDEwMCUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBlbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigxLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci1sYXlvdXRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZC0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDAsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBvdXRsaW5lKHZhcmlhYmxlcy4kb3V0bGluZS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy9cbiAgLy8gTWVkaWFcbiAgLy9cblxuICAubWRjLWNhcmRfX21lZGlhIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gQ2hpbGQgZWxlbWVudCBgX19tZWRpYS1jb250ZW50YCBoYXMgYHBvc2l0aW9uOiBhYnNvbHV0ZWBcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWE6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWE6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYS0tc3F1YXJlIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1hc3BlY3QtcmF0aW8oMSwgMSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWEtLTE2LTkge1xuICAgIEBpbmNsdWRlIG1lZGlhLWFzcGVjdC1yYXRpbygxNiwgOSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWEtY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIFByaW1hcnkgYWN0aW9uXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBjb250YWluZXItbGF5b3V0XztcblxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBOZWVkZWQgdG8gcHJldmVudCB0aGUgcmlwcGxlIHdhc2ggZnJvbSBvdmVyZmxvd2luZyB0aGUgY29udGFpbmVyIGluIElFIGFuZCBFZGdlXG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gQWN0aW9uIHJvd1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9ucyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBhY3Rpb25zLWxheW91dF87XG5cbiAgICAgIG1pbi1oZWlnaHQ6IDUycHg7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyxcbiAgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgYWN0aW9ucy1sYXlvdXRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsIHZhcmlhYmxlcy4kYWN0aW9uLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zICsgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMTZweCk7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gQWN0aW9uIGl0ZW1zXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19hY3Rpb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgYWN0aW9ucy1sYXlvdXRfKGlubGluZS1mbGV4KTtcblxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiBidXR0b25zXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcblxuICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucnRsIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiBpY29uc1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLS1pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIEljb24gYnV0dG9ucyBhcmUgdGFsbGVyIHRoYW4gYnV0dG9ucywgc28gd2UgbmVlZCB0byBhZGp1c3QgdGhlaXIgbWFyZ2lucyB0byBwcmV2ZW50IHRoZSBhY3Rpb24gcm93IGZyb21cbiAgICAgIC8vIGV4cGFuZGluZy5cbiAgICAgIG1hcmdpbjogLTZweCAwO1xuXG4gICAgICAvLyBTYW1lIHBhZGRpbmcgYXMgbWRjLWljb24tYnV0dG9uLlxuICAgICAgcGFkZGluZzogMTJweDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX2FjdGlvbi0taWNvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCB2YXJpYWJsZXMuJGFjdGlvbi1pY29uLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjYXJkIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNhcmQtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gcmlwcGxlKCRxdWVyeTogZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuY29tbW9uKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbiB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdXJmYWNlKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5yYWRpdXMtYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBmaWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gb3V0bGluZSgkY29sb3IsICR0aGlja25lc3M6IHZhcmlhYmxlcy4kb3V0bGluZS13aWR0aCwgJHF1ZXJ5OiBmdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItd2lkdGg6ICR0aGlja25lc3M7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0aGVtZS12YXJpYWJsZXMucHJvcC12YWx1ZSgkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBzaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBzaGFwZS1taXhpbnMucmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZWRpYS1hc3BlY3QtcmF0aW8oJHgsICR5LCAkcXVlcnk6IGZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gVGhpcyBjbGV2ZXIgdHJpY2sgYnJvdWdodCB0byB5b3UgYnk6IGh0dHA6Ly93d3cubWFkZW15ZGF5LmRlL2Nzcy1oZWlnaHQtZXF1YWxzLXdpZHRoLXdpdGgtcHVyZS1jc3MuaHRtbFxuICAgICAgbWFyZ2luLXRvcDogbWF0aC5wZXJjZW50YWdlKCR5IC8gJHgpO1xuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIGNvbnRhaW5lci1sYXlvdXRfIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuQG1peGluIGFjdGlvbnMtbGF5b3V0XygkZGlzcGxheTogZmxleCkge1xuICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2Fzczpjb2xvclwiO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRhY3Rpb24taWNvbi1jb2xvcjogcmdiYSh2YXJpYWJsZXMucHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgdmFyaWFibGVzLnRleHQtZW1waGFzaXMobWVkaXVtKSkgIWRlZmF1bHQ7XG4kb3V0bGluZS1jb2xvcjogY29sb3IubWl4KHZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCB2YXJpYWJsZXMucHJvcC12YWx1ZShzdXJmYWNlKSwgMTIlKSAhZGVmYXVsdDtcbiRvdXRsaW5lLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4iLCJAdXNlICdAbWF0ZXJpYWwvY2FyZC9tZGMtY2FyZCc7XHJcbkB1c2UgJ0BtYXRlcmlhbC9jYXJkJztcclxuQHVzZSAnQG1hdGVyaWFsL3RoZW1lJztcclxuXHJcbkBpbmNsdWRlIGNhcmQuY29yZS1zdHlsZXM7XHJcblxyXG4uY2FyZC10aGljay1vdXRsaW5lIHtcclxuICAgIEBpbmNsdWRlIGNhcmQub3V0bGluZShsaWdodGdyZXksIDJweClcclxufSIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvY2hlY2tib3gvbWl4aW5zXCIgYXMgY2hlY2tib3gtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L2Z1bmN0aW9uc1wiIGFzIGRlbnNpdHktZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCIgYXMgcnRsLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCIgYXMgc2hhcGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIiBhcyB0aGVtZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiIGFzIHZhcmlhYmxlczI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZS5cbkB1c2UgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIiBhcyB0eXBvZ3JhcGh5LW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LXR5cG9ncmFwaHk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZGF0YS10YWJsZVxuXG4gIC5tZGMtZGF0YS10YWJsZV9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1kYXRhLXRhYmxlIHtcbiAgICBAaW5jbHVkZSBmaWxsLWNvbG9yKHZhcmlhYmxlcy4kZmlsbC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHNoYXBlLXJhZGl1cyh2YXJpYWJsZXMuJHNoYXBlLXJhZGl1cywgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIHN0cm9rZS1zaXplKHZhcmlhYmxlcy4kc3Ryb2tlLXNpemUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBzdHJva2UtY29sb3IodmFyaWFibGVzLiRzdHJva2UtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIHJvdy1maWxsLWNvbG9yKHZhcmlhYmxlcy4kcm93LWZpbGwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICAgIEBpbmNsdWRlIGhlYWRlci1yb3ctZmlsbC1jb2xvcih2YXJpYWJsZXMuJGhlYWRlci1yb3ctZmlsbC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgQGluY2x1ZGUgc2VsZWN0ZWQtcm93LWZpbGwtY29sb3IodmFyaWFibGVzLiRzZWxlY3RlZC1yb3ctZmlsbC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgQGluY2x1ZGUgZGl2aWRlci1jb2xvcih2YXJpYWJsZXMuJGRpdmlkZXItY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICAgIEBpbmNsdWRlIGRpdmlkZXItc2l6ZSh2YXJpYWJsZXMuJGRpdmlkZXItc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgQGluY2x1ZGUgcm93LWhvdmVyLWZpbGwtY29sb3IodmFyaWFibGVzLiRyb3ctaG92ZXItZmlsbC1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgICAgQGluY2x1ZGUgaGVhZGVyLXJvdy10ZXh0LWNvbG9yKHZhcmlhYmxlcy4kaGVhZGVyLXJvdy10ZXh0LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICBAaW5jbHVkZSByb3ctdGV4dC1jb2xvcih2YXJpYWJsZXMuJHJvdy10ZXh0LWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICBAaW5jbHVkZSBkZW5zaXR5KHZhcmlhYmxlcy4kZGVmYXVsdC1kZW5zaXR5LXNjYWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgICBAaW5jbHVkZSBjZWxsLXBhZGRpbmcoXG4gICAgICAgICRsZWFkaW5nLXBhZGRpbmc6IHZhcmlhYmxlcy4kY2VsbC1sZWFkaW5nLXBhZGRpbmcsXG4gICAgICAgICR0cmFpbGluZy1wYWRkaW5nOiB2YXJpYWJsZXMuJGNlbGwtdHJhaWxpbmctcGFkZGluZyxcbiAgICAgICAgJHF1ZXJ5OiAkcXVlcnlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IC8vIExldHMgaXQgc2Nyb2xsIGxhenkgKGlPUylcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGF0YS10YWJsZV9fdGFibGUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWluLXdpZHRoOiAxMDAlOyAvLyBNYWtlcyB0YWJsZSBmdWxsLXdpZHRoIG9mIGl0cyBjb250YWluZXIgKEZpcmVmb3ggLyBJRTExKVxuICAgICAgYm9yZGVyOiAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAvKipcbiAgICAgICAqIFdpdGggdGFibGUtbGF5b3V0OmZpeGVkLCB0YWJsZSBhbmQgY29sdW1uIHdpZHRocyBhcmUgZGVmaW5lZCBieSB0aGUgd2lkdGhcbiAgICAgICAqIG9mIHRoZSBmaXJzdCByb3cgb2YgY2VsbHMuIENlbGxzIGluIHN1YnNlcXVlbnQgcm93cyBkbyBub3QgYWZmZWN0IGNvbHVtblxuICAgICAgICogd2lkdGhzLiBUaGlzIHJlc3VsdHMgaW4gYSBwcmVkaWN0YWJsZSB0YWJsZSBsYXlvdXQgYW5kIG1heSBhbHNvIHNwZWVkIHVwXG4gICAgICAgKiByZW5kZXJpbmcuXG4gICAgICAgKi9cbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kYXRhLXRhYmxlX19jZWxsIHtcbiAgICBAaW5jbHVkZSB0eXBvZ3JhcGh5LW1peGlucy50eXBvZ3JhcGh5KGJvZHkyLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kYXRhLXRhYmxlX19jZWxsLS1udW1lcmljIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbCB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShzdWJ0aXRsZTIsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucnRsIHtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxsLS1udW1lcmljIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmaWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoXCJiYWNrZ3JvdW5kLWNvbG9yXCIsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIGhlYWRlci1yb3ctZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRhdGEtdGFibGVfX2hlYWRlci1yb3cge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChcImJhY2tncm91bmQtY29sb3JcIiwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJvdy1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGF0YS10YWJsZV9fcm93IHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoXCJiYWNrZ3JvdW5kLWNvbG9yXCIsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzZWxlY3RlZC1yb3ctZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRhdGEtdGFibGVfX3Jvdy0tc2VsZWN0ZWQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChcImJhY2tncm91bmQtY29sb3JcIiwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNoZWNrZWQtaWNvbi1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC5tZGMtZGF0YS10YWJsZV9faGVhZGVyLXJvdy1jaGVja2JveCxcbiAgLm1kYy1kYXRhLXRhYmxlX19yb3ctY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIGNoZWNrYm94LW1peGlucy5mb2N1cy1pbmRpY2F0b3ItY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgY2hlY2tib3gtbWl4aW5zLmNvbnRhaW5lci1jb2xvcnMoJG1hcmtlZC1zdHJva2UtY29sb3I6ICRjb2xvciwgJG1hcmtlZC1maWxsLWNvbG9yOiAkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gZGl2aWRlci1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRhdGEtdGFibGVfX3JvdyB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpdmlkZXItc2l6ZSgkc2l6ZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1kYXRhLXRhYmxlX19yb3cge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogJHNpemU7XG4gICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJvdy1ob3Zlci1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGF0YS10YWJsZV9fcm93Om5vdCgubWRjLWRhdGEtdGFibGVfX3Jvdy0tc2VsZWN0ZWQpOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoXCJiYWNrZ3JvdW5kLWNvbG9yXCIsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBoZWFkZXItcm93LXRleHQtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKFwiY29sb3JcIiwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJvdy10ZXh0LWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtZGF0YS10YWJsZV9fY2VsbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKFwiY29sb3JcIiwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuQG1peGluIHN0cm9rZS1zaXplKCRzaXplLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3JkZXItd2lkdGg6ICRzaXplO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuQG1peGluIHN0cm9rZS1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBoZWFkZXItY2VsbC1oZWlnaHQoJGhlaWdodCwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBjZWxsLWhlaWdodCgkaGVpZ2h0LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWRhdGEtdGFibGVfX2NlbGwge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY2VsbC1wYWRkaW5nKFxuICAkbGVhZGluZy1wYWRkaW5nOiB2YXJpYWJsZXMuJGNlbGwtbGVhZGluZy1wYWRkaW5nLFxuICAkdHJhaWxpbmctcGFkZGluZzogdmFyaWFibGVzLiRjZWxsLXRyYWlsaW5nLXBhZGRpbmcsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZGF0YS10YWJsZV9fY2VsbCxcbiAgLm1kYy1kYXRhLXRhYmxlX19oZWFkZXItY2VsbCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkdHJhaWxpbmctcGFkZGluZztcbiAgICAgIHBhZGRpbmctbGVmdDogJGxlYWRpbmctcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAubWRjLWRhdGEtdGFibGVfX2hlYWRlci1jZWxsLS1jaGVja2JveCxcbiAgLm1kYy1kYXRhLXRhYmxlX19jZWxsLS1jaGVja2JveCB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBydGwtbWl4aW5zLnJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkbGVhZGluZy1wYWRkaW5nLCAwKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNvbHVtbi13aWR0aHMoJHdpZHRoLWxpc3QsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGlzdC5sZW5ndGgoJHdpZHRoLWxpc3QpIHtcbiAgICAubWRjLWRhdGEtdGFibGVfX3JvdyA+IDpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB3aWR0aDogbGlzdC5udGgoJHdpZHRoLWxpc3QsICRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBkZW5zaXR5IHNjYWxlIGZvciBkYXRhIHRhYmxlLiBVc2UgY29ycmVzcG9uZGluZyBkZW5zaXR5IG1peGlucyBvZiBjaGlsZCBjb21wb25lbnRzIChzdWNoIGFzIENoZWNrYm94KSB0byBhcHBseVxuLy8vIGRlbnNpdHkgc2NhbGVzIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIGRhdGEgdGFibGUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZ30gJGRlbnNpdHktc2NhbGUgLSBEZW5zaXR5IHNjYWxlIHZhbHVlIGZvciBjb21wb25lbnQuIFN1cHBvcnRlZCBkZW5zaXR5IHNjYWxlIHZhbHVlcyBgLTRgLFxuLy8vICAgICBgLTNgLCBgLTJgLCBgLTFgLCBgMGAuXG4vLy9cbkBtaXhpbiBkZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuXG4gICRoZWlnaHQ6IGRlbnNpdHktZnVuY3Rpb25zLnByb3AtdmFsdWUoXG4gICAgJGRlbnNpdHktY29uZmlnOiB2YXJpYWJsZXMuJGRlbnNpdHktY29uZmlnLFxuICAgICRkZW5zaXR5LXNjYWxlOiAkZGVuc2l0eS1zY2FsZSxcbiAgICAkcHJvcGVydHktbmFtZTogaGVpZ2h0LFxuICApO1xuXG4gIEBpbmNsdWRlIGNlbGwtaGVpZ2h0KCRoZWlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgaGVhZGVyLWNlbGwtaGVpZ2h0KHZhcmlhYmxlcy5nZXQtaGVhZGVyLWNlbGwtaGVpZ2h0KCRoZWlnaHQpLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiB0aGVtZS1iYXNlbGluZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBjaGVja2VkLWljb24tY29sb3IodmFyaWFibGVzLiRjaGVja2VkLWljb24tY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiIGFzIHRoZW1lLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvZGVuc2l0eS92YXJpYWJsZXNcIiBhcyBkZW5zaXR5LXZhcmlhYmxlcztcblxuJGZpbGwtY29sb3I6IHN1cmZhY2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXJvdy1maWxsLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuJHJvdy1maWxsLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuJHNlbGVjdGVkLXJvdy1maWxsLWNvbG9yOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKHByaW1hcnkpLCAuMDQpICFkZWZhdWx0O1xuXG4kY2hlY2tlZC1pY29uLWNvbG9yOiBwcmltYXJ5ICFkZWZhdWx0O1xuJGRpdmlkZXItY29sb3I6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xMikgIWRlZmF1bHQ7XG4kZGl2aWRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kcm93LWhvdmVyLWZpbGwtY29sb3I6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSksIC4wNCkgIWRlZmF1bHQ7XG4kY2hlY2tib3gtdG91Y2gtZGltZW5zaW9uOiA0OHB4ICFkZWZhdWx0O1xuXG4kaGVhZGVyLXJvdy10ZXh0LWNvbG9yOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuJHJvdy10ZXh0LWNvbG9yOiByZ2JhKHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuXG4kc2hhcGUtcmFkaXVzOiBtZWRpdW0gIWRlZmF1bHQ7XG4kc3Ryb2tlLXNpemU6IDFweCAhZGVmYXVsdDtcbiRzdHJva2UtY29sb3I6IHJnYmEodGhlbWUtdmFyaWFibGVzLnByb3AtdmFsdWUob24tc3VyZmFjZSksIC4xMikgIWRlZmF1bHQ7XG5cbiRjZWxsLWhlaWdodDogNTJweCAhZGVmYXVsdDtcbiRoZWFkZXItY2VsbC1oZWlnaHQ6IGdldC1oZWFkZXItY2VsbC1oZWlnaHQoJGNlbGwtaGVpZ2h0KSAhZGVmYXVsdDtcbiRjZWxsLWxlYWRpbmctcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRjZWxsLXRyYWlsaW5nLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG5cbiRtaW5pbXVtLWNlbGwtaGVpZ2h0OiAzNnB4ICFkZWZhdWx0O1xuJG1heGltdW0tY2VsbC1oZWlnaHQ6ICRjZWxsLWhlaWdodCAhZGVmYXVsdDtcbiRkZWZhdWx0LWRlbnNpdHktc2NhbGU6IGRlbnNpdHktdmFyaWFibGVzLiRkZWZhdWx0LXNjYWxlICFkZWZhdWx0O1xuJGRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIG1heGltdW06ICRjZWxsLWhlaWdodCxcbiAgICBkZWZhdWx0OiAkY2VsbC1oZWlnaHQsXG4gICAgbWluaW11bTogJG1pbmltdW0tY2VsbC1oZWlnaHQsXG4gIClcbik7XG5cbkBmdW5jdGlvbiBnZXQtaGVhZGVyLWNlbGwtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgQHJldHVybiAkaGVpZ2h0ICsgNHB4O1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiIGFzIGZ1bmN0aW9uczI7XG5AdXNlIFwiQG1hdGVyaWFsL2RlbnNpdHkvZnVuY3Rpb25zXCIgYXMgZGVuc2l0eS1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCIgYXMgcmlwcGxlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdG91Y2gtdGFyZ2V0L21peGluc1wiIGFzIHRvdWNoLXRhcmdldC1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL2Z1bmN0aW9uc1wiIGFzIHRoZW1lLWZ1bmN0aW9ucztcbkB1c2UgXCIuL2Z1bmN0aW9uc1wiO1xuQHVzZSBcIi4va2V5ZnJhbWVzXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90b3VjaC10YXJnZXQvdmFyaWFibGVzXCIgYXMgdG91Y2gtdGFyZ2V0LXZhcmlhYmxlcztcblxuLy9cbi8vIFB1YmxpY1xuLy9cblxuJHJpcHBsZS10YXJnZXQ6IFwiLm1kYy1jaGVja2JveF9fcmlwcGxlXCI7XG5cbi8vL1xuLy8vIENoZWNrYm94IGNvcmUgc3R5bGVzLlxuLy8vXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcmlwcGxlKCRxdWVyeSk7XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGNoZWNrYm94IHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNoZWNrYm94LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIHdpdGhvdXQtcmlwcGxlKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGNoZWNrYm94XG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0LW1peGlucy53cmFwcGVyKCRxdWVyeSk7IC8vIENPUFlCQVJBX0NPTU1FTlRfVEhJU19MSU5FXG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgQGluY2x1ZGUga2V5ZnJhbWVzLm1hcmsta2V5ZnJhbWVzXztcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgYmFzZV87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZm9jdXMtaW5kaWNhdG9yLWNvbG9yKHZhcmlhYmxlcy4kYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBkZW5zaXR5KHZhcmlhYmxlcy4kZGVuc2l0eS1zY2FsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGluY2x1ZGUgY29udGFpbmVyLWNvbG9ycygkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGRpc2FibGVkLWNvbnRhaW5lci1jb2xvcnMoJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBpbmstY29sb3IodmFyaWFibGVzLiRtYXJrLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIGRpc2FibGVkLWluay1jb2xvcih2YXJpYWJsZXMuJG1hcmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkLWNvbnRhaW5lci1jb2xvcnMoXG4gICAgICAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yOiBHcmF5VGV4dCxcbiAgICAgICR1bm1hcmtlZC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudCxcbiAgICAgICRtYXJrZWQtc3Ryb2tlLWNvbG9yOiBHcmF5VGV4dCxcbiAgICAgICRtYXJrZWQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gICAgQGluY2x1ZGUgZGlzYWJsZWQtaW5rLWNvbG9yKEdyYXlUZXh0LCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG1hcmdpbjogMCAxcHg7IC8vIEV4dHJhIGhvcml6b250YWwgc3BhY2UgYXJvdW5kIG1peGVkbWFyayBzeW1ib2wuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTmVlZGVkIHRvIGRpc2FibGUgaG92ZXIgZWZmZWN0cyBvbiBDU1Mtb25seSAobm9uLUpTKSBjaGVja2JveGVzXG4gIC5tZGMtY2hlY2tib3gtLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGVkXztcbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICBAaW5jbHVkZSBjaGVja21hcmtfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgQGluY2x1ZGUgY2hlY2ttYXJrLXBhdGhfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgIEBpbmNsdWRlIG1peGVkbWFya18oJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIEpTIGNoZWNrYm94XG4gIC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIHtcbiAgICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayxcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCxcbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIEBpbmNsdWRlIGNoaWxkLS11cGdyYWRlZF87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGVja2JveC0tYW5pbSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBAaW5jbHVkZSBhbmltXztcbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC0tbWFya2VkXztcbiAgICB9XG5cbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgY2hlY2ttYXJrLXBhdGgtLW1hcmtlZF87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIGZyYW1lJ3MgOjpiZWZvcmUgZWxlbWVudCBpcyB1c2VkIGFzIGEgZm9jdXMgaW5kaWNhdG9yIGZvciB0aGUgY2hlY2tib3hcbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBmb2N1cy1pbmRpY2F0b3JfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpmb2N1cyB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZm9jdXMtaW5kaWNhdG9yLS1mb2N1c2VkXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbmF0aXZlLWNvbnRyb2xfO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIGRpc2FibGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94LS10b3VjaCB7XG4gICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0LW1peGlucy5tYXJnaW4oXG4gICAgICAkY29tcG9uZW50LWhlaWdodDogdmFyaWFibGVzLiRyaXBwbGUtc2l6ZSxcbiAgICAgICRjb21wb25lbnQtd2lkdGg6IHZhcmlhYmxlcy4kcmlwcGxlLXNpemUsXG4gICAgICAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgdG91Y2gtdGFyZ2V0KHRvdWNoLXRhcmdldC12YXJpYWJsZXMuJGhlaWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBAaW5jbHVkZSBjaGVja21hcmstLWNoZWNrZWRfKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtaXhlZG1hcmstLWNoZWNrZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgQGluY2x1ZGUgY2hlY2ttYXJrLS1pbmRldGVybWluYXRlXygkcXVlcnkpO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWl4ZWRtYXJrLS1pbmRldGVybWluYXRlXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjaGVja2JveCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1jaGVja2JveC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiByaXBwbGUoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5jb21tb24oJHF1ZXJ5KTsgLy8gQ09QWUJBUkFfQ09NTUVOVF9USElTX0xJTkVcblxuICAubWRjLWNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN1cmZhY2UoJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoJGNvbG9yOiBvbi1zdXJmYWNlLCAkcXVlcnk6ICRxdWVyeSwgJHJpcHBsZS10YXJnZXQ6ICRyaXBwbGUtdGFyZ2V0KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cblxuICAjeyRyaXBwbGUtdGFyZ2V0fSB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy50YXJnZXQtY29tbW9uKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgZGVuc2l0eSBzY2FsZSBmb3IgY2hlY2tib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZ30gJGRlbnNpdHktc2NhbGUgLSBEZW5zaXR5IHNjYWxlIHZhbHVlIGZvciBjb21wb25lbnQuIFN1cHBvcnRlZCBkZW5zaXR5IHNjYWxlIHZhbHVlc1xuLy8vICAgICBgLTNgLCBgLTJgLCBgLTFgLCBgMGAuXG4vLy9cbkBtaXhpbiBkZW5zaXR5KCRkZW5zaXR5LXNjYWxlLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkc2l6ZTogZGVuc2l0eS1mdW5jdGlvbnMucHJvcC12YWx1ZShcbiAgICAkZGVuc2l0eS1jb25maWc6IHZhcmlhYmxlcy4kZGVuc2l0eS1jb25maWcsXG4gICAgJGRlbnNpdHktc2NhbGU6ICRkZW5zaXR5LXNjYWxlLFxuICAgICRwcm9wZXJ0eS1uYW1lOiBzaXplLFxuICApO1xuXG4gIEBpbmNsdWRlIHJpcHBsZS1zaXplKCRzaXplLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGlmICRkZW5zaXR5LXNjYWxlICE9IDAge1xuICAgIEBpbmNsdWRlIHRvdWNoLXRhcmdldC1yZXNldF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiByaXBwbGUtc2l6ZSgkcmlwcGxlLXNpemUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkY2hlY2tib3gtcGFkZGluZzogKCRyaXBwbGUtc2l6ZSAtIHZhcmlhYmxlcy4kaWNvbi1zaXplKSAvIDI7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcGFkZGluZzogJGNoZWNrYm94LXBhZGRpbmc7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRvcDogJGNoZWNrYm94LXBhZGRpbmc7XG4gICAgICBsZWZ0OiAkY2hlY2tib3gtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiAtKHZhcmlhYmxlcy4kYm9yZGVyLXdpZHRoKSAtICRjaGVja2JveC1wYWRkaW5nO1xuICAgICAgbGVmdDogLSh2YXJpYWJsZXMuJGJvcmRlci13aWR0aCkgLSAkY2hlY2tib3gtcGFkZGluZztcbiAgICAgIHdpZHRoOiAkcmlwcGxlLXNpemU7XG4gICAgICBoZWlnaHQ6ICRyaXBwbGUtc2l6ZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0b3VjaC10YXJnZXQoJHJpcHBsZS1zaXplLCAkcmlwcGxlLXNpemU6ICRyaXBwbGUtc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLy9cbi8vLyBTZXRzIHN0cm9rZSAmIGZpbGwgY29sb3JzIGZvciBib3RoIG1hcmtlZCBhbmQgdW5tYXJrZWQgc3RhdGUgb2YgZW5hYmxlZCBjaGVja2JveC5cbi8vLyBTZXQgJGdlbmVyYXRlLWtleWZyYW1lcyB0byBmYWxzZSB0byBwcmV2ZW50IHRoZSBtaXhpbiBmcm9tIGdlbmVyYXRpbmcgQGtleWZyYW1lc1xuLy8vIEBwYXJhbSB7Q29sb3J9ICR1bm1hcmtlZC1zdHJva2UtY29sb3IgLSBUaGUgZGVzaXJlZCBzdHJva2UgY29sb3IgZm9yIHRoZSB1bm1hcmtlZCBzdGF0ZVxuLy8vIEBwYXJhbSB7Q29sb3J9ICR1bm1hcmtlZC1maWxsLWNvbG9yIC0gVGhlIGRlc2lyZWQgZmlsbCBjb2xvciBmb3IgdGhlIHVubWFya2VkIHN0YXRlXG4vLy8gQHBhcmFtIHtDb2xvcn0gJG1hcmtlZC1zdHJva2UtY29sb3IgLSBUaGUgZGVzaXJlZCBzdHJva2UgY29sb3IgZm9yIHRoZSBtYXJrZWQgc3RhdGVcbi8vLyBAcGFyYW0ge0NvbG9yfSAkbWFya2VkLWZpbGwtY29sb3IgLSBUaGUgZGVzaXJlZCBmaWxsIGNvbG9yIGZvciB0aGUgbWFya2VkIHN0YXRlXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ2VuZXJhdGUta2V5ZnJhbWVzIFt0cnVlXSAtIFdoZXRoZXIgYW5pbWF0aW9uIGtleWZyYW1lcyBzaG91bGQgYmUgZ2VuZXJhdGVkXG4vLy9cbkBtaXhpbiBjb250YWluZXItY29sb3JzKFxuICAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yOiB2YXJpYWJsZXMuJGJvcmRlci1jb2xvcixcbiAgJHVubWFya2VkLWZpbGwtY29sb3I6IHRyYW5zcGFyZW50LFxuICAkbWFya2VkLXN0cm9rZS1jb2xvcjogdmFyaWFibGVzLiRiYXNlbGluZS10aGVtZS1jb2xvcixcbiAgJG1hcmtlZC1maWxsLWNvbG9yOiB2YXJpYWJsZXMuJGJhc2VsaW5lLXRoZW1lLWNvbG9yLFxuICAkZ2VuZXJhdGUta2V5ZnJhbWVzOiB0cnVlLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKVxuKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgaWYtdW5tYXJrZWQtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1jb2xvcnNfKCR1bm1hcmtlZC1zdHJva2UtY29sb3IsICR1bm1hcmtlZC1maWxsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBpZi1tYXJrZWQtZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1jb2xvcnNfKCRtYXJrZWQtc3Ryb2tlLWNvbG9yLCAkbWFya2VkLWZpbGwtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIEBpZiAkZ2VuZXJhdGUta2V5ZnJhbWVzIHtcbiAgICAkdWlkOiB0aGVtZS1mdW5jdGlvbnMuY29sb3ItaGFzaCgkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yKSArXG4gICAgICB0aGVtZS1mdW5jdGlvbnMuY29sb3ItaGFzaCgkbWFya2VkLXN0cm9rZS1jb2xvcikgK1xuICAgICAgdGhlbWUtZnVuY3Rpb25zLmNvbG9yLWhhc2goJHVubWFya2VkLWZpbGwtY29sb3IpICtcbiAgICAgIHRoZW1lLWZ1bmN0aW9ucy5jb2xvci1oYXNoKCRtYXJrZWQtZmlsbC1jb2xvcik7XG5cbiAgICAkYW5pbS1zZWxlY3RvcjogaWYoJiwgXCImLm1kYy1jaGVja2JveC0tYW5pbVwiLCBcIi5tZGMtY2hlY2tib3gtLWFuaW1cIik7XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24sICRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBrZXlmcmFtZXMuY29udGFpbmVyLWtleWZyYW1lc18oXG4gICAgICAgICRmcm9tLXN0cm9rZS1jb2xvcjogJHVubWFya2VkLXN0cm9rZS1jb2xvcixcbiAgICAgICAgJHRvLXN0cm9rZS1jb2xvcjogJG1hcmtlZC1zdHJva2UtY29sb3IsXG4gICAgICAgICRmcm9tLWZpbGwtY29sb3I6ICR1bm1hcmtlZC1maWxsLWNvbG9yLFxuICAgICAgICAkdG8tZmlsbC1jb2xvcjogJG1hcmtlZC1maWxsLWNvbG9yLFxuICAgICAgICAkdWlkOiAjeyR1aWR9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoXG5cbiAgICAjeyRhbmltLXNlbGVjdG9yfSB7XG4gICAgICAmLXVuY2hlY2tlZC1jaGVja2VkLFxuICAgICAgJi11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSB7XG4gICAgICAgIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLSN7JHVpZH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtY2hlY2tlZC11bmNoZWNrZWQsXG4gICAgICAmLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIHtcbiAgICAgICAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgICAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLSN7JHVpZH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgc3Ryb2tlICYgZmlsbCBjb2xvcnMgZm9yIGJvdGggbWFya2VkIGFuZCB1bm1hcmtlZCBzdGF0ZSBvZiBkaXNhYmxlZCBjaGVja2JveC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yIC0gVGhlIGRlc2lyZWQgc3Ryb2tlIGNvbG9yIGZvciB0aGUgdW5tYXJrZWQgc3RhdGVcbi8vLyBAcGFyYW0ge0NvbG9yfSAkdW5tYXJrZWQtZmlsbC1jb2xvciAtIFRoZSBkZXNpcmVkIGZpbGwgY29sb3IgZm9yIHRoZSB1bm1hcmtlZCBzdGF0ZVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRtYXJrZWQtc3Ryb2tlLWNvbG9yIC0gVGhlIGRlc2lyZWQgc3Ryb2tlIGNvbG9yIGZvciB0aGUgbWFya2VkIHN0YXRlXG4vLy8gQHBhcmFtIHtDb2xvcn0gJG1hcmtlZC1maWxsLWNvbG9yIC0gVGhlIGRlc2lyZWQgZmlsbCBjb2xvciBmb3IgdGhlIG1hcmtlZCBzdGF0ZVxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtY29udGFpbmVyLWNvbG9ycyhcbiAgJHVubWFya2VkLXN0cm9rZS1jb2xvcjogdmFyaWFibGVzLiRkaXNhYmxlZC1jb2xvcixcbiAgJHVubWFya2VkLWZpbGwtY29sb3I6IHRyYW5zcGFyZW50LFxuICAkbWFya2VkLXN0cm9rZS1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICRtYXJrZWQtZmlsbC1jb2xvcjogdmFyaWFibGVzLiRkaXNhYmxlZC1jb2xvcixcbiAgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKClcbikge1xuICBAaW5jbHVkZSBpZi11bm1hcmtlZC1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lci1jb2xvcnNfKCR1bm1hcmtlZC1zdHJva2UtY29sb3IsICR1bm1hcmtlZC1maWxsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBpZi1tYXJrZWQtZGlzYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXItY29sb3JzXygkbWFya2VkLXN0cm9rZS1jb2xvciwgJG1hcmtlZC1maWxsLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgaW5rIGNvbG9yIG9mIHRoZSBjaGVja2VkIGFuZCBpbmRldGVybWluYXRlIGljb25zIGZvciBhbiBlbmFibGVkIGNoZWNrYm94XG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgaW5rIGNvbG9yIGluIGVuYWJsZWQgc3RhdGVcbi8vL1xuQG1peGluIGluay1jb2xvcigkY29sb3IsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gIEBpbmNsdWRlIGlmLWVuYWJsZWRfIHtcbiAgICBAaW5jbHVkZSBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGluayBjb2xvciBvZiB0aGUgY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZSBpY29ucyBmb3IgYSBkaXNhYmxlZCBjaGVja2JveFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGluayBjb2xvciBpbiBkaXNhYmxlZCBzdGF0ZVxuLy8vXG5AbWl4aW4gZGlzYWJsZWQtaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGlmLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUsXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLWNoZWNrYm94LS1zZWxlY3RlZCB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoJGNvbG9yOiAkY29sb3IsICRxdWVyeTogJHF1ZXJ5LCAkcmlwcGxlLXRhcmdldDogJHJpcHBsZS10YXJnZXQpO1xuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQubWRjLWNoZWNrYm94LS1zZWxlY3RlZCB7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMtYmFzZS1jb2xvcigkY29sb3I6ICRjb2xvciwgJHF1ZXJ5OiAkcXVlcnksICRyaXBwbGUtdGFyZ2V0OiAkcmlwcGxlLXRhcmdldCk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyBjaGVja2JveCB0b3VjaCB0YXJnZXQgc2l6ZSB3aGljaCBjYW4gYmUgbW9yZSB0aGFuIHRoZSByaXBwbGUgc2l6ZS4gUGFyYW0gYCRyaXBwbGUtc2l6ZWAgaXMgcmVxdWlyZWQgZm9yIGN1c3RvbVxuLy8vIHJpcHBsZSBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFNpemUgb2YgdG91Y2ggdGFyZ2V0IChOYXRpdmUgaW5wdXQpIGluIGBweGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaXBwbGUtc2l6ZSBTaXplIG9mIHJpcHBsZSBpbiBgcHhgLiBSZXF1aXJlZCBvbmx5IGZvciBjdXN0b20gcmlwcGxlIHNpemUuXG4vLy9cbkBtaXhpbiB0b3VjaC10YXJnZXQoXG4gICRzaXplOiB2YXJpYWJsZXMuJHJpcHBsZS1zaXplLFxuICAkcmlwcGxlLXNpemU6IHZhcmlhYmxlcy4kcmlwcGxlLXNpemUsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkb2Zmc2V0OiAoJHJpcHBsZS1zaXplIC0gJHNpemUpIC8gMjtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbCB7XG4gICAgICB0b3A6ICRvZmZzZXQ7XG4gICAgICByaWdodDogJG9mZnNldDtcbiAgICAgIGxlZnQ6ICRvZmZzZXQ7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgICBoZWlnaHQ6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuQG1peGluIGJhc2VfIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHdpZHRoOiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgaGVpZ2h0OiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuQG1peGluIGRpc2FibGVkXyB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtaXhpbiBjaGlsZC0tdXBncmFkZWRfIHtcbiAgLy8gRHVlIHRvIHRoZSBteXJpYWQgb2Ygc2VsZWN0b3IgY29tYm9zIHVzZWQgdG8gcHJvcGVybHkgc3R5bGUgYSBDU1Mtb25seSBjaGVja2JveCwgYWxsIG9mXG4gIC8vIHdoaWNoIGhhdmUgdmFyeWluZyBzZWxlY3RvciBwcmVjZWRlbmNlIGFuZCBtYWtlIHVzZSBvZiB0cmFuc2l0aW9ucywgaXQgaXMgY2xlYW5lciBhbmQgbW9yZVxuICAvLyBlZmZpY2llbnQgaGVyZSB0byBzaW1wbHkgdXNlICFpbXBvcnRhbnQsIHNpbmNlIHRoZSBtZGMtY2hlY2tib3gtLWFuaW0tKiBjbGFzc2VzIHdpbGwgdGFrZVxuICAvLyBvdmVyIGZyb20gaGVyZS5cbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBBbmltYXRpb25cblxuQG1peGluIGFuaW1fIHtcbiAgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl86IDUwMG1zO1xuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlXG5cbiAgJi11bmNoZWNrZWQtY2hlY2tlZCxcbiAgJi11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSxcbiAgJi1jaGVja2VkLXVuY2hlY2tlZCxcbiAgJi1pbmRldGVybWluYXRlLXVuY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDI7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgfVxuICB9XG5cbiAgJi11bmNoZWNrZWQtY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgICAgLy8gSW5zdGVhZCBvZiBkZWxheWluZyB0aGUgYW5pbWF0aW9uLCB3ZSBzaW1wbHkgbXVsdGlwbHkgaXRzIGxlbmd0aCBieSAyIGFuZCBiZWdpbiB0aGVcbiAgICAgIC8vIGFuaW1hdGlvbiBhdCA1MCUgaW4gb3JkZXIgdG8gcHJldmVudCBhIGZsYXNoIG9mIHN0eWxlcyBhcHBsaWVkIHRvIGEgY2hlY2tlZCBjaGVja21hcmtcbiAgICAgIC8vIGFzIHRoZSBiYWNrZ3JvdW5kIGlzIGZhZGluZyBpbiBiZWZvcmUgdGhlIGFuaW1hdGlvbiBiZWdpbnMuXG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aCB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gKiAyIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSB7XG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWNoZWNrZWQtdW5jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmsgdmFyaWFibGVzLiR0cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgdmFyaWFibGVzLiR0cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1pbmRldGVybWluYXRlLWNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmsgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl8gbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyXG4gICAgICBhbmltYXRpb246XG4gICAgICAgIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsgJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoYW5nZS1kdXJhdGlvbl8gKiAuNiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbWF4LXR5cGVcbn1cblxuLy8gQmFja2dyb3VuZFxuXG4vLy9cbi8vLyBIZWxwcyBzZWxlY3QgdGhlIGNoZWNrYm94IGJhY2tncm91bmQgb25seSB3aGVuIGl0cyBuYXRpdmUgY29udHJvbCBpcyBpblxuLy8vIGVuYWJsZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi1lbmFibGVkXyB7XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQgfiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSBjaGVja2JveCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW5cbi8vLyBkaXNhYmxlZCBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGlmLWRpc2FibGVkXyB7XG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmRpc2FibGVkIH4ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vL1xuLy8vIEhlbHBzIHNlbGVjdCB0aGUgY2hlY2tib3ggYmFja2dyb3VuZCBvbmx5IHdoZW4gaXRzIG5hdGl2ZSBjb250cm9sIGlzIGluXG4vLy8gdW5tYXJrZWQgJiBlbmFibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtdW5tYXJrZWQtZW5hYmxlZF8ge1xuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy9cbi8vLyBIZWxwcyBzZWxlY3QgdGhlIGNoZWNrYm94IGJhY2tncm91bmQgb25seSB3aGVuIGl0cyBuYXRpdmUgY29udHJvbCBpcyBpblxuLy8vIHVubWFya2VkICYgZGlzYWJsZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi11bm1hcmtlZC1kaXNhYmxlZF8ge1xuICAvLyBOb3RlOiB3ZSBtdXN0IHVzZSBgW2Rpc2FibGVkXWAgaW5zdGVhZCBvZiBgOmRpc2FibGVkYCBiZWxvdyBiZWNhdXNlIEVkZ2UgZG9lcyBub3QgYWx3YXlzIHJlY2FsY3VsYXRlIHRoZSBzdHlsZVxuICAvLyBwcm9wZXJ0eSB3aGVuIHRoZSBgOmRpc2FibGVkYCBwc2V1ZG8tY2xhc3MgaXMgZm9sbG93ZWQgYnkgYSBzaWJsaW5nIGNvbWJpbmF0b3IuIFNlZTpcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTEyOTUyMzEvXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sW2Rpc2FibGVkXTpub3QoOmNoZWNrZWQpOm5vdCg6aW5kZXRlcm1pbmF0ZSkgfiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc2VsZWN0IHRoZSBjaGVja2JveCBiYWNrZ3JvdW5kIG9ubHkgd2hlbiBpdHMgbmF0aXZlIGNvbnRyb2wgaXMgaW5cbi8vLyBtYXJrZWQgJiBlbmFibGVkIHN0YXRlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG5AbWl4aW4gaWYtbWFya2VkLWVuYWJsZWRfIHtcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGUge1xuICAgIH4ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIEhlbHBzIHNlbGVjdCB0aGUgY2hlY2tib3ggYmFja2dyb3VuZCBvbmx5IHdoZW4gaXRzIG5hdGl2ZSBjb250cm9sIGlzIGluXG4vLy8gbWFya2VkICYgZGlzYWJsZWQgc3RhdGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpZi1tYXJrZWQtZGlzYWJsZWRfIHtcbiAgLy8gTm90ZTogd2UgbXVzdCB1c2UgYFtkaXNhYmxlZF1gIGluc3RlYWQgb2YgYDpkaXNhYmxlZGAgYmVsb3cgYmVjYXVzZSBFZGdlIGRvZXMgbm90IGFsd2F5cyByZWNhbGN1bGF0ZSB0aGUgc3R5bGVcbiAgLy8gcHJvcGVydHkgd2hlbiB0aGUgYDpkaXNhYmxlZGAgcHNldWRvLWNsYXNzIGlzIGZvbGxvd2VkIGJ5IGEgc2libGluZyBjb21iaW5hdG9yLiBTZWU6XG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzExMjk1MjMxL1xuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkaXNhYmxlZF06Y2hlY2tlZCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOmluZGV0ZXJtaW5hdGUge1xuICAgIH4ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kaWNvbi1zaXplO1xuICAgIC8vIGJvcmRlci1jb2xvciBpcyBvdmVycmlkZGVuIGJ5IHRoZSBtZGMtY2hlY2tib3gtdW5tYXJrZWQtc3Ryb2tlLWNvbG9yKCkgbWl4aW5cbiAgICBib3JkZXI6IHZhcmlhYmxlcy4kYm9yZGVyLXdpZHRoIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsIG9uLXN1cmZhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KGJhY2tncm91bmQtY29sb3IpLFxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZXhpdChib3JkZXItY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLS1tYXJrZWRfIHtcbiAgdHJhbnNpdGlvbjpcbiAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1lbnRlcihib3JkZXItY29sb3IpLFxuICAgIGZ1bmN0aW9ucy50cmFuc2l0aW9uLWVudGVyKGJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBzdHJva2UgJiBmaWxsIGNvbG9ycyBmb3IgdGhlIGNoZWNrYm94LlxuLy8vIFRoaXMgbWl4aW4gc2hvdWxkIGJlIHdyYXBwZWQgaW4gYSBtaXhpbiB0aGF0IHF1YWxpZmllcyBzdGF0ZSBzdWNoIGFzXG4vLy8gYG1kYy1jaGVja2JveC1pZi11bm1hcmtlZC1lbmFibGVkX2AuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBjb250YWluZXItY29sb3JzXygkc3Ryb2tlLWNvbG9yLCAkZmlsbC1jb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChib3JkZXItY29sb3IsICRzdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZpbGwtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBGb2N1cyBpbmRpY2F0b3JcblxuQG1peGluIGZvY3VzLWluZGljYXRvcl8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KG9wYWNpdHkpLFxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZXhpdCh0cmFuc2Zvcm0pO1xuICB9XG59XG5cbkBtaXhpbiBmb2N1cy1pbmRpY2F0b3ItLWZvY3VzZWRfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IHZhcmlhYmxlcy4kZm9jdXMtaW5kaWNhdG9yLW9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZW50ZXIob3BhY2l0eSwgMG1zLCA4MG1zKSxcbiAgICAgIGZ1bmN0aW9ucy50cmFuc2l0aW9uLWVudGVyKHRyYW5zZm9ybSwgMG1zLCA4MG1zKTtcbiAgfVxufVxuXG4vLyBOYXRpdmUgaW5wdXRcblxuQG1peGluIG5hdGl2ZS1jb250cm9sXyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvcGFjaXR5OiAwO1xuICBjdXJzb3I6IGluaGVyaXQ7XG59XG5cbi8vIENoZWNrIG1hcmtcblxuQG1peGluIGNoZWNrbWFya18oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IGZ1bmN0aW9ucy50cmFuc2l0aW9uLWV4aXQob3BhY2l0eSwgMG1zLCB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24gKiAyKTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkICYge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNoZWNrbWFyay0tY2hlY2tlZF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1lbnRlcihvcGFjaXR5LCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpLFxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZW50ZXIodHJhbnNmb3JtLCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWl4aW4gY2hlY2ttYXJrLS1pbmRldGVybWluYXRlXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgZnVuY3Rpb25zLnRyYW5zaXRpb24tZXhpdChvcGFjaXR5LCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSwgMG1zLCB2YXJpYWJsZXMuJHRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGluayBjb2xvciBvZiB0aGUgY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZSBpY29ucyBmb3IgYSBjaGVja2JveC5cbi8vLyBUaGlzIG1peGluIHNob3VsZCBiZSB3cmFwcGVkIGluIGEgbWl4aW4gdGhhdCBxdWFsaWZpZXMgc3RhdGUgc3VjaCBhc1xuLy8vIGBtZGMtY2hlY2tib3gtaWYtdW5tYXJrZWRfYC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIENoZWNrIG1hcmsgcGF0aFxuXG5AbWl4aW4gY2hlY2ttYXJrLXBhdGhfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KHN0cm9rZS1kYXNob2Zmc2V0LCAwbXMsIHZhcmlhYmxlcy4kdHJhbnNpdGlvbi1kdXJhdGlvbiAqIDIpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gICAgc3Ryb2tlLXdpZHRoOiB2YXJpYWJsZXMuJG1hcmstc3Ryb2tlLXNpemUgKiAxLjM7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IHZhcmlhYmxlcy4kbWFyay1wYXRoLWxlbmd0aF87XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogdmFyaWFibGVzLiRtYXJrLXBhdGgtbGVuZ3RoXztcbiAgfVxufVxuXG5AbWl4aW4gY2hlY2ttYXJrLXBhdGgtLW1hcmtlZF8ge1xuICBzdHJva2UtZGFzaG9mZnNldDogMDtcbn1cblxuLy8gTWl4ZWQgbWFya1xuXG5AbWl4aW4gbWl4ZWRtYXJrXygkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHJvdGF0ZSgwZGVnKTtcbiAgICBib3JkZXItd2lkdGg6IG1hdGguZmxvb3IodmFyaWFibGVzLiRtYXJrLXN0cm9rZS1zaXplKSAvIDI7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGZ1bmN0aW9ucy50cmFuc2l0aW9uLWV4aXQob3BhY2l0eSksXG4gICAgICBmdW5jdGlvbnMudHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSk7XG4gIH1cbn1cblxuQG1peGluIG1peGVkbWFyay0tY2hlY2tlZF8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuQG1peGluIG1peGVkbWFyay0taW5kZXRlcm1pbmF0ZV8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8vL1xuLy8vIFJlc2V0cyB0b3VjaCB0YXJnZXQtcmVsYXRlZCBzdHlsZXMuIFRoaXMgaXMgY2FsbGVkIGZyb20gdGhlIGRlbnNpdHkgbWl4aW4gdG9cbi8vLyBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgaW5jcmVhc2VkIHRvdWNoIHRhcmdldCwgc2luY2UgZGVuc2UgY29tcG9uZW50c1xuLy8vIGRvbid0IGhhdmUgdGhlIHNhbWUgZGVmYXVsdCBhMTF5IHJlcXVpcmVtZW50cy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIHRvdWNoLXRhcmdldC1yZXNldF8oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCIgYXMgYW5pbWF0aW9uLXZhcmlhYmxlcztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIGNvbnRhaW5lci1rZXlmcmFtZXNfKFxuICAkZnJvbS1zdHJva2UtY29sb3IsXG4gICR0by1zdHJva2UtY29sb3IsXG4gICRmcm9tLWZpbGwtY29sb3IsXG4gICR0by1maWxsLWNvbG9yLFxuICAkdWlkKSB7XG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC0jeyR1aWR9IHtcbiAgICAwJSB7XG4gICAgICBAaW5jbHVkZSBtaXhpbnMucHJvcChib3JkZXItY29sb3IsICRmcm9tLXN0cm9rZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBtaXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkZnJvbS1maWxsLWNvbG9yKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkdG8tc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICR0by1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLSN7JHVpZH0ge1xuICAgIDAlLFxuICAgIDgwJSB7XG4gICAgICBAaW5jbHVkZSBtaXhpbnMucHJvcChib3JkZXItY29sb3IsICR0by1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJHRvLWZpbGwtY29sb3IpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYm9yZGVyLWNvbG9yLCAkZnJvbS1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLnByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZyb20tZmlsbC1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXJrLWtleWZyYW1lc18ge1xuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC11bmNoZWNrZWQtY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gICAgMCUsXG4gICAgNTAlIHtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiB2YXJpYWJsZXMuJG1hcmstcGF0aC1sZW5ndGhfO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBhbmltYXRpb24tdmFyaWFibGVzLiRkZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIHtcbiAgICAwJSxcbiAgICA2OC4yJSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB9XG5cbiAgICA2OC4yJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBhbmltYXRpb24tdmFyaWFibGVzLiRhY2NlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogdmFyaWFibGVzLiRtYXJrLXBhdGgtbGVuZ3RoXyAqIC0xO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogYW5pbWF0aW9uLXZhcmlhYmxlcy4kZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyaWFibGVzLiRpbmRldGVybWluYXRlLWNoZWNrZWQtZWFzaW5nLWZ1bmN0aW9uXztcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFyayB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXJpYWJsZXMuJGluZGV0ZXJtaW5hdGUtY2hlY2tlZC1lYXNpbmctZnVuY3Rpb25fO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkLW1peGVkbWFyayB7XG4gICAgMCUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDMyLjglLFxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiIGFzIGVsZXZhdGlvbi1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIiBhcyBhbmltYXRpb24tdmFyaWFibGVzO1xuQHVzZSBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCIgYXMgcnRsLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIiBhcyB0eXBvZ3JhcGh5LW1peGlucztcbkB1c2UgXCIuL21peGluc1wiO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRvcC1hcHAtYmFyXG4ubWRjLXRvcC1hcHAtYmFyIHtcbiAgQGluY2x1ZGUgbWl4aW5zLmZpbGwtY29sb3ItYWNjZXNzaWJsZShwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWl4aW5zLmljb24taW5rLWNvbG9yKG9uLXByaW1hcnkpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogNDtcblxuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiB2YXJpYWJsZXMuJHJvdy1oZWlnaHQ7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiB2YXJpYWJsZXMuJHNlY3Rpb24tdmVydGljYWwtcGFkZGluZyB2YXJpYWJsZXMuJHNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAmLS1hbGlnbi1zdGFydCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuXG4gICAgJi0tYWxpZ24tZW5kIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeS1taXhpbnMudHlwb2dyYXBoeShoZWFkbGluZTYpO1xuICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChwYWRkaW5nLCBsZWZ0LCB2YXJpYWJsZXMuJHRpdGxlLWxlZnQtcGFkZGluZyk7XG5cbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuXG5AYXQtcm9vdCB7XG4gIEBpbmNsdWRlIG1peGlucy5zaG9ydC1zaGFwZS1yYWRpdXMoMjRweCk7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0IHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyBhbmltYXRpb24tdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgQGluY2x1ZGUgcnRsLW1peGlucy5ydGwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiB2YXJpYWJsZXMuJG1vYmlsZS1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZzogdmFyaWFibGVzLiRtb2JpbGUtc2VjdGlvbi1wYWRkaW5nO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgYW5pbWF0aW9uLXZhcmlhYmxlcy4kc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIHtcbiAgQGluY2x1ZGUgZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oNCk7XG5cbiAgd2lkdGg6IHZhcmlhYmxlcy4kc2hvcnQtY29sbGFwc2VkLXdpZHRoO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBhbmltYXRpb24tdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSB7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAxNTBtcyBhbmltYXRpb24tdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gIH1cbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtaGFzLWFjdGlvbi1pdGVtIHtcbiAgd2lkdGg6IHZhcmlhYmxlcy4kc2hvcnQtY29sbGFwc2VkLXdpZHRoICogMjtcblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChwYWRkaW5nLCByaWdodCwgMTJweCk7XG4gIH1cbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2Uge1xuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGhlaWdodDogdmFyaWFibGVzLiRkZW5zZS1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMCB2YXJpYWJsZXMuJGRlbnNlLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIHJ0bC1taXhpbnMucmVmbGV4aXZlLWJveChwYWRkaW5nLCBsZWZ0LCB2YXJpYWJsZXMuJGRlbnNlLXRpdGxlLWxlZnQtcGFkZGluZyk7XG4gIH1cbn1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kcHJvbWluZW50LXJvdy1oZWlnaHQ7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcmlhYmxlcy4kcHJvbWluZW50LXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0sXG4gIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgfVxufVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1zY3JvbGxlZCB7XG4gIEBpbmNsdWRlIGVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDQpO1xuXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4vLyBTcGVjaWZpYyBzdHlsZXMgZm9yIGRlbnNlIGFuZCBwcm9taW5lbnQgc3R5bGVkIHRvcCBhcHAgYmFyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6IHZhcmlhYmxlcy4kZGVuc2Utcm93LWhlaWdodCAqIDI7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwIHZhcmlhYmxlcy4kc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsIHZhcmlhYmxlcy4kdGl0bGUtbGVmdC1wYWRkaW5nKTtcblxuICAgIHBhZGRpbmctYm90dG9tOiB2YXJpYWJsZXMuJGRlbnNlLXByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgfVxufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IHZhcmlhYmxlcy4kcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IHZhcmlhYmxlcy4kZGVuc2Utcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IHZhcmlhYmxlcy4kbW9iaWxlLXJvdy1oZWlnaHQ7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogdmFyaWFibGVzLiRwcm9taW5lbnQtcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtcHJvbWluZW50LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiB2YXJpYWJsZXMuJGRlbnNlLXJvdy1oZWlnaHQgKiAyO1xufVxuXG4vLyBNb2JpbGUgU3R5bGVzXG5AaW5jbHVkZSBtaXhpbnMubW9iaWxlLWJyZWFrcG9pbnRfO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiIGFzIGFuaW1hdGlvbi12YXJpYWJsZXM7XG5AdXNlIFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIiBhcyByaXBwbGUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIiBhcyB0aGVtZS12YXJpYWJsZXM7IC8vIGZvciBtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3JcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCIgYXMgdGhlbWUtbWl4aW5zO1xuQHVzZSBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIiBhcyBzaGFwZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQHVzZSBcIi4vdmFyaWFibGVzXCI7XG5AdXNlIFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIiBhcyBydGwtbWl4aW5zO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gaW5rLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIGZpbGwtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHRoZW1lLW1peGlucy5wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBmaWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIGZpbGwtY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgaW5rLWNvbG9yKHRoZW1lLXZhcmlhYmxlcy5hY2Nlc3NpYmxlLWluay1jb2xvcigkY29sb3IpKTtcbn1cblxuQG1peGluIGljb24taW5rLWNvbG9yKCRjb2xvcikge1xuICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbiAgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uIHtcbiAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBzaG9ydC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IHRydWUpIHtcbiAgQGlmIGxpc3QubGVuZ3RoKCRyYWRpdXMpID4gMSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xuICB9XG5cbiAgJHJhZGl1czogMCAwICRyYWRpdXMgMDtcblxuICAkc2VsZWN0b3I6IGlmKCYsIFwiJi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZFwiLCBcIi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZFwiKTtcblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHNoYXBlLW1peGlucy5yYWRpdXMoXG4gICAgICBmdW5jdGlvbnMucmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cyh2YXJpYWJsZXMuJGRlbnNlLXJvdy1oZWlnaHQsICRyYWRpdXMpLFxuICAgICAgJHJ0bC1yZWZsZXhpdmVcbiAgICApO1xuICB9XG59XG5cbi8vXG4vLyBQcml2YXRlXG4vL1xuXG5AbWl4aW4gbW9iaWxlLWJyZWFrcG9pbnRfKCRtb2JpbGUtYnJlYWtwb2ludDogdmFyaWFibGVzLiRtb2JpbGUtYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogJG1vYmlsZS1icmVha3BvaW50KSB7XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICAgIGhlaWdodDogdmFyaWFibGVzLiRtb2JpbGUtcm93LWhlaWdodDtcbiAgICB9XG5cbiAgICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kbW9iaWxlLXNlY3Rpb24tcGFkZGluZztcbiAgICB9XG5cbiAgICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCB7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAyMDBtcyBhbmltYXRpb24tdmFyaWFibGVzLiRzdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIHtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGFuaW1hdGlvbi12YXJpYWJsZXMuJHN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcblxuICAgICAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICAgICAgQGluY2x1ZGUgcnRsLW1peGlucy5yZWZsZXhpdmUtYm94KHBhZGRpbmcsIHJpZ2h0LCB2YXJpYWJsZXMuJHNob3J0LWNvbGxhcHNlZC1yaWdodC1pY29uLXBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCB7XG4gICAgICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXJpYWJsZXMuJHByb21pbmVudC1tb2JpbGUtdGl0bGUtYm90dG9tLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtYWRqdXN0IHtcbiAgICAgIHBhZGRpbmctdG9wOiB2YXJpYWJsZXMuJG1vYmlsZS1yb3ctaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIERlZmF1bHQgc3R5bGVzXG4kcm93LWhlaWdodDogNjRweCAhZGVmYXVsdDtcbiR0aXRsZS1sZWZ0LXBhZGRpbmc6IDIwcHggIWRlZmF1bHQ7XG4kc2VjdGlvbi12ZXJ0aWNhbC1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4kc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG5cbiRtb2JpbGUtYnJlYWtwb2ludDogNTk5cHggIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgbW9iaWxlIHN0eWxlc1xuJG1vYmlsZS1yb3ctaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuJG1vYmlsZS1zZWN0aW9uLXBhZGRpbmc6IDRweCAhZGVmYXVsdDtcblxuLy8gU2hvcnQgdG9wIGFwcCBiYXJcbiRzaG9ydC1jb2xsYXBzZWQtYm9yZGVyLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJHNob3J0LWNvbGxhcHNlZC13aWR0aDogNTZweCAhZGVmYXVsdDtcbiRzaG9ydC1jb2xsYXBzZWQtcmlnaHQtaWNvbi1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuXG4vLyBQcm9taW5lbnQgc3R5bGVzXG4kcHJvbWluZW50LXJvdy1oZWlnaHQ6IDEyOHB4ICFkZWZhdWx0O1xuJHByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZzogMnB4ICFkZWZhdWx0O1xuXG4vLyBQcm9taW5lbnQgbW9iaWxlIHN0eWxlc1xuJHByb21pbmVudC1tb2JpbGUtdGl0bGUtYm90dG9tLXBhZGRpbmc6IDZweCAhZGVmYXVsdDtcblxuLy8gRGVuc2Ugc3R5bGVzXG4kZGVuc2Utcm93LWhlaWdodDogNDhweCAhZGVmYXVsdDtcbiRkZW5zZS1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZzogNHB4ICFkZWZhdWx0O1xuJGRlbnNlLXRpdGxlLWxlZnQtcGFkZGluZzogMTJweCAhZGVmYXVsdDtcblxuLy8gRGVuc2UgJiBQcm9taW5lbnQgc3R5bGVzXG4kZGVuc2UtcHJvbWluZW50LXRpdGxlLWJvdHRvbS1wYWRkaW5nOiA5cHggIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L2Z1bmN0aW9uc1wiIGFzIGRlbnNpdHktZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnM7XG5AdXNlIFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiIGFzIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiIGFzIHJpcHBsZS1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gY29yZS1zdHlsZXMoJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcmlwcGxlKCRxdWVyeSk7XG59XG5cbkBtaXhpbiB3aXRob3V0LXJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBpY29uLWJ1dHRvblxuICAubWRjLWljb24tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBiYXNlXygkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgZGVuc2l0eSgwLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWljb24tYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgJi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtaWNvbi1idXR0b24tLW9uIHtcbiAgICAubWRjLWljb24tYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgICAmLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICAgICAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIHJpcHBsZSgkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLmNvbW1vbigkcXVlcnkpOyAvLyBDT1BZQkFSQV9DT01NRU5UX1RISVNfTElORVxuXG4gIC5tZGMtaWNvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIHJpcHBsZS1taXhpbnMuc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5yYWRpdXMtdW5ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSByaXBwbGUtbWl4aW5zLnN0YXRlcygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZGVuc2l0eSBzY2FsZSBmb3IgaWNvbiBidXR0b24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciB8IFN0cmluZ30gJGRlbnNpdHktc2NhbGUgLSBEZW5zaXR5IHNjYWxlIHZhbHVlIGZvciBjb21wb25lbnQuXG4vLy8gICAgIFN1cHBvcnRlZCBkZW5zaXR5IHNjYWxlIHZhbHVlcyByYW5nZSBmcm9tIGAtNWAgdG8gYDBgLCB3aXRoIGAwYCBiZWluZyB0aGUgZGVmYXVsdC5cbi8vL1xuQG1peGluIGRlbnNpdHkoJGRlbnNpdHktc2NhbGUsICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRzaXplOiBkZW5zaXR5LWZ1bmN0aW9ucy5wcm9wLXZhbHVlKFxuICAgICRkZW5zaXR5LWNvbmZpZzogdmFyaWFibGVzLiRkZW5zaXR5LWNvbmZpZyxcbiAgICAkZGVuc2l0eS1zY2FsZTogJGRlbnNpdHktc2NhbGUsXG4gICAgJHByb3BlcnR5LW5hbWU6IHNpemUsXG4gICk7XG5cbiAgQGluY2x1ZGUgc2l6ZSgkc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBzaXplIG9mIHRoZSBpY29uLWJ1dHRvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFNpemUgdmFsdWUgZm9yIGljb24tYnV0dG9uLlxuLy8vICAgICBTaXplIHdpbGwgc2V0IHRoZSB3aWR0aCwgaGVpZ2h0LCBhbmQgcGFkZGluZyBmb3IgdGhlIG92ZXJhbGwgY29tcG9uZW50LlxuLy8vXG5AbWl4aW4gc2l6ZSgkc2l6ZSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgcGFkZGluZzogKCRzaXplIC0gdmFyaWFibGVzLiRpY29uLXNpemUpIC8gMjtcbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSB3aWR0aCwgaGVpZ2h0IGFuZCBwYWRkaW5nIG9mIGljb24gYnV0dG9uLiBBbHNvIGNoYW5nZXMgdGhlIHNpemUgb2Zcbi8vLyB0aGUgaWNvbiBpdHNlbGYgYmFzZWQgb24gYnV0dG9uIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggdmFsdWUgZm9yIGljb24tYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IC0gSGVpZ2h0IHZhbHVlIGZvciBpY29uLWJ1dHRvbi4gKGRlZmF1bHQ6ICR3aWR0aClcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgLSBQYWRkaW5nIHZhbHVlIGZvciBpY29uLWJ1dHRvbi4gKGRlZmF1bHQ6IG1heCgkd2lkdGgsICRoZWlnaHQpIC8gMilcbi8vLyBAZGVwcmVjYXRlZFxuLy8vICAgICBUaGlzIG1peGluIHByb3ZpZGVzIHRvbyBtdWNoIG9mIGxvdyBsZXZlbCBjdXN0b21pemF0aW9uLlxuLy8vICAgICBQbGVhc2UgdXNlIG1kYy1pY29uLWJ1dHRvbi1zaXplIGluc3RlYWQuXG4vLy9cbkBtaXhpbiBpY29uLXNpemUoJHdpZHRoLCAkaGVpZ2h0OiAkd2lkdGgsICRwYWRkaW5nOiBtYXRoLm1heCgkd2lkdGgsJGhlaWdodCkgLyAyLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogJHdpZHRoICsgJHBhZGRpbmcgKiAyO1xuICAgIGhlaWdodDogJGhlaWdodCArICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6IG1hdGgubWF4KCR3aWR0aCwgJGhlaWdodCk7XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgc3ZnLFxuICBpbWcge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZm9udCBjb2xvciBhbmQgdGhlIHJpcHBsZSBjb2xvciB0byB0aGUgcHJvdmlkZWQgY29sb3IgdmFsdWUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGRlc2lyZWQgZm9udCBhbmQgcmlwcGxlIGNvbG9yLlxuLy8vXG5AbWl4aW4gaW5rLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgQGluY2x1ZGUgaW5rLWNvbG9yXygkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgcmlwcGxlLW1peGlucy5zdGF0ZXMoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGZvbnQgY29sb3IgdG8gdGhlIHByb3ZpZGVkIGNvbG9yIHZhbHVlIGZvciBhIGRpc2FibGVkIGljb24gYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBkZXNpcmVkIGZvbnQgY29sb3IuXG4vLy9cbkBtaXhpbiBkaXNhYmxlZC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICBAaW5jbHVkZSBpZi1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIGluay1jb2xvcl8oJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIGJhc2VfKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiB2YXJpYWJsZXMuJGljb24tc2l6ZTtcbiAgICAgIGhlaWdodDogdmFyaWFibGVzLiRpY29uLXNpemU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgZGlzYWJsZWQtaW5rLWNvbG9yKHRleHQtZGlzYWJsZWQtb24tbGlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBpZi1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGZvbnQgY29sb3IgdG8gdGhlIHByb3ZpZGVkIGNvbG9yIHZhbHVlLiBUaGlzIGNhbiBiZSB3cmFwcGVkIGluXG4vLy8gYSBzdGF0ZSBxdWFsaWZpZXIgc3VjaCBhcyBgbWRjLWljb24tYnV0dG9uLWlmLWRpc2FibGVkX2AuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBpbmstY29sb3JfKCRjb2xvciwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgdGhlbWUtbWl4aW5zLnByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuLy8vXG4vLy8gSGVscHMgc3R5bGUgdGhlIGljb24gYnV0dG9uIGluIGl0cyBkaXNhYmxlZCBzdGF0ZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuQG1peGluIGlmLWRpc2FibGVkXyB7XG4gICY6ZGlzYWJsZWQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQHVzZSBcIkBtYXRlcmlhbC9kZW5zaXR5L3ZhcmlhYmxlc1wiO1xuXG4kaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuXG4kc2l6ZTogNDhweCAhZGVmYXVsdDtcbiRtaW5pbXVtLWhlaWdodDogMjhweCAhZGVmYXVsdDtcbiRtYXhpbXVtLWhlaWdodDogJHNpemUgIWRlZmF1bHQ7XG4kZGVuc2l0eS1zY2FsZTogdmFyaWFibGVzLiRkZWZhdWx0LXNjYWxlICFkZWZhdWx0O1xuJGRlbnNpdHktY29uZmlnOiAoXG4gIHNpemU6IChcbiAgICBkZWZhdWx0OiAkc2l6ZSxcbiAgICBtYXhpbXVtOiAkbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1pbmltdW0taGVpZ2h0LFxuICApLFxuKSAhZGVmYXVsdDtcbiIsIkBpbXBvcnQgXCIuLi9zdHlsZXMvdmFyaWFibGVzXCI7XHJcbi8vIE92ZXJyaWRlIHVzZXIgYWdlbnQgYm9keSBtYXJnaW4gZm9yIG1kYy10b3AtYXBwLWJhclxyXG5odG1sLCBib2R5IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRtZGMtdGhlbWUtYmFja2dyb3VuZDtcclxuICBmb250LWZhbWlseTogJ1JvYm90byc7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmctdG9wOiAwLjFweDsgLy8gUHJldmVudCBoZWFkZXIgaDEgbWFyZ2luIGZyb20gcHVzaGluZyBib2R5IGRvd25cclxufSJdfQ== */

/*# sourceMappingURL=styles.css.map*/