/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/navBar/NavBarFrame.esbuild-svelte-fake-css */
.NavBarFrame.svelte-1of0ywg {
  --nav-bar--background-color--hover: var(--gray-800);
  --nav-bar--background-color: var(--color-text);
  --nav-bar--color: var(--color-bg);
  --nav-bar--border-color: var(--gray-300);
  --nav-bar--height: 48px;
  background-color: var(--nav-bar--background-color);
  color: var(--nav-bar--color);
}
.innerFrame.svelte-1of0ywg {
  display: flex;
  height: var(--nav-bar--height);
  white-space: nowrap;
}
.contents.svelte-1of0ywg {
  display: flex;
  flex-grow: 1;
  gap: 8px;
  justify-content: space-between;
}
.navPrimary.svelte-1of0ywg {
  display: flex;
}
.navSecondary.svelte-1of0ywg {
  display: flex;
}
.container.svelte-1of0ywg {
  margin-inline: auto;
  padding-inline: 0;
  width: clamp(400px, 100%, var(--layout-max-width));
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/navBar/NavBarLogo.esbuild-svelte-fake-css */
.NavBarLogo.svelte-um18oo {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 12px;
  padding-bottom: 12px;
  padding-left: 32px;
  padding-right: 32px;
}
.responsiveAdsLogo.svelte-um18oo {
  height: 24px;
  object-fit: contain;
  object-position: center bottom;
  min-width: 151px;
}
.responsiveAdsIcon.svelte-um18oo {
  height: 28px;
  min-width: 38.44px;
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/pageElement/MinimalFooter.esbuild-svelte-fake-css */
.MinimalFooter.svelte-ukec0s {
  --footer-color: var(--purple-300);
  --footer-color--hover: var(--purple-200);
  --footer-background-color: black;
  --footer-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--footer-height);
  background: var(--footer-background-color);
}
.container.svelte-ukec0s {
  flex: 1;
  max-width: var(--layout-max-width);
}
.link-items.svelte-ukec0s {
  display: flex;
  margin: 0 32px;
}
.link-item.svelte-ukec0s {
  display: flex;
  align-items: center;
}
.link-item.svelte-ukec0s + .link-item:where(.svelte-ukec0s)::before {
  content: "";
  width: 1px;
  height: var(--font-size--p2);
  margin: 0 8px;
  background: var(--footer-color);
}
.link-text.svelte-ukec0s {
  color: var(--footer-color);
  font-size: var(--font-size--p2);
  font-weight: var(--font-extraBold);
  line-height: var(--line-height);
  text-decoration: none;
}
.link-text.svelte-ukec0s:hover {
  color: var(--footer-color--hover);
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/auth/AuthPageLayout.esbuild-svelte-fake-css */
.AuthPageLayout.svelte-ve5quy {
  --auth-layout-background-color: black;
  --auth-panel-max-width: 440px;
  --auth-panel-padding: 40px;
  --auth-panel-mobile-background: var(--gray-900);
  --auth-panel-mobile-border-radius: 12px;
  display: flex;
  flex-direction: column;
  height: 100dvh;
}
.layout.svelte-ve5quy {
  display: grid;
  grid-template-columns: 1fr 1fr;
  flex: 1;
  overflow: auto;
  background: var(--auth-layout-background-color);
}
.content.svelte-ve5quy {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: right;
  max-width: calc(var(--layout-max-width) / 2);
  width: 100%;
}
.content__inner.svelte-ve5quy {
  max-width: var(--auth-panel-max-width);
  width: 100%;
  padding: var(--auth-panel-padding);
}
.visual.svelte-ve5quy {
  position: sticky;
  top: 0;
  height: calc(100dvh - 48px - 48px);
  background-image:
    linear-gradient(
      90deg,
      #000 0%,
      rgba(0, 0, 0, 0) 100%),
    var(--auth-visual-bg-image);
  background-position: center;
  background-size: cover;
}
@media (max-width: 1024px) {
  .layout.svelte-ve5quy {
    grid-template-columns: 1fr;
  }
  .content.svelte-ve5quy {
    max-width: none;
    z-index: 1;
    grid-area: 1 / 1;
  }
  .content__inner.svelte-ve5quy {
    background: var(--auth-panel-mobile-background);
    border-radius: var(--auth-panel-mobile-border-radius);
  }
  .visual.svelte-ve5quy {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), var(--auth-visual-bg-image);
    grid-area: 1 / 1;
  }
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/input/TextInput.esbuild-svelte-fake-css */
.v4-root .TextInput.svelte-aiydc4 {
  --rad-input--background-color: var(--rad-input--background-color--default);
  --rad-input--border-color: var(--rad-input--border-color--default);
  --rad-input--color: var(--rad-input--color--default);
  background-color: var(--rad-input--background-color);
  border-color: var(--rad-input--border-color);
  border-radius: var(--rad-control--border-radius);
  border-style: solid;
  border-width: 1px;
  color: var(--rad-input--color);
  font: var(--rad-input--font);
  min-height: var(--rad-input--height);
  padding: var(--rad-input--padding-block) var(--rad-input--padding-inline);
}
.v4-root .TextInput.svelte-aiydc4:is(.hover:where(.svelte-aiydc4)),
.v4-root .TextInput.svelte-aiydc4:hover {
  --rad-input--border-color: var(--rad-input--border-color--hover);
}
.v4-root .TextInput.svelte-aiydc4:is(.focus:where(.svelte-aiydc4)),
.v4-root .TextInput.svelte-aiydc4:focus {
  border-color: var(--rad-input--border-color--focus);
  outline: 1px solid var(--rad-input--border-color--focus);
}
.v4-root .TextInput.svelte-aiydc4:is(.invalid:where(.svelte-aiydc4)),
.v4-root .TextInput.svelte-aiydc4:invalid {
  --rad-input--border-color: var(--rad-input--border-color--invalid);
}
.v4-root .TextInput.svelte-aiydc4:is(:where(.svelte-aiydc4):read-only):is(input:where(.svelte-aiydc4)) {
  --rad-input--background-color: var(--rad-input--background-color--disabled);
  --rad-input--border-color: var(--rad-input--border-color--disabled);
}
.v4-root .TextInput:is(.disabled), */ .v4-root .TextInput.svelte-aiydc4:disabled {
  --rad-input--background-color: var(--rad-input--background-color--disabled);
  --rad-input--border-color: var(--rad-input--border-color--disabled);
  --rad-input--color: var(--rad-input--color--disabled);
}
.v4-root .TextInput:is(.disabled)::placeholder, */ .v4-root .TextInput.svelte-aiydc4:disabled::placeholder {
  color: var(--rad-input--placeholder--color--disabled);
}
.v4-root .TextInput.svelte-aiydc4::placeholder {
  color: var(--rad-input--placeholder--color);
}
.v4-root .TextInput.svelte-aiydc4:not([data-size]) {
  --rad-input--font: var(--font--p2);
  --rad-input--height: var(--rad-input--height--medium);
  --rad-input--padding-block: 0;
  --rad-input--padding-inline: var(--rad-input--padding-inline--medium);
}
.v4-root .TextInput[data-size=large].svelte-aiydc4 {
  --rad-input--font: var(--rad-input--font--large);
  --rad-input--height: var(--rad-input--height--large);
  --rad-input--padding-block: 0;
  --rad-input--padding-inline: var(--rad-input--padding-inline--large);
}
.v4-root .TextInput[data-size=small].svelte-aiydc4 {
  --rad-input--font: var(--font--p4);
  --rad-input--height: var(--rad-input--height--small);
  --rad-input--padding-block: 0;
  --rad-input--padding-inline: var(--rad-input--padding-inline--small);
}
.v4-root .TextInput[data-size=x-small].svelte-aiydc4 {
  --rad-input--font: var(--font--p5);
  --rad-input--height: var(--rad-input--height--x-small);
  --rad-input--padding-block: 0;
  --rad-input--padding-inline: var(--rad-input--padding-inline--x-small);
}
.v4-root .TextInput.svelte-aiydc4 {
  width: 100%;
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/style/Icon.esbuild-svelte-fake-css */
.Icon.svelte-1hl7ign {
  display: inline-block;
  height: var(--rad-icon--size, 1em);
  vertical-align: middle;
  width: var(--rad-icon--size, 1em);
  flex-shrink: 0;
}
.Icon.svelte-1hl7ign > svg {
  display: block;
  fill: currentColor;
  height: 100%;
  width: 100%;
}
.Icon[data-size=button--medium].svelte-1hl7ign {
  --rad-icon--size: var(--rad-button--icon-size--medium);
}
.Icon[data-size=button--large].svelte-1hl7ign {
  --rad-icon--size: var(--rad-button--icon-size--large);
}
.Icon[data-size=button--small].svelte-1hl7ign {
  --rad-icon--size: var(--rad-button--icon-size--small);
}
.Icon[data-size=button--x-small].svelte-1hl7ign {
  --rad-icon--size: var(--rad-button--icon-size--x-small);
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/domains/style/Button.esbuild-svelte-fake-css */
.Button.svelte-nbhh2o {
  --rad-button--color: var(--rad-button--color--default);
  --rad-button--background-color: var(--rad-button--background-color--default);
  --rad-button--border-color: var(--rad-button--border-color--default);
  background-color: var(--rad-button--background-color);
  border-radius: var(--rad-control--border-radius);
  border: thin solid var(--rad-button--border-color);
  box-sizing: border-box;
  color: var(--rad-button--color);
  cursor: pointer;
  display: inline-flex;
  font: var(--rad-button--font);
  gap: var(--rad-button--gap);
  justify-content: center;
  line-height: 1;
  min-height: var(--rad-button--height);
  min-width: var(--rad-button--height);
  padding-inline: var(--rad-button--padding-inline);
  place-items: center;
  text-decoration: none;
}
.Button.svelte-nbhh2o:is(.focus:where(.svelte-nbhh2o)),
.Button.svelte-nbhh2o:hover,
.Button.svelte-nbhh2o:focus-visible {
  background-color: var(--rad-button--background-color--hover);
  border-color: var(--rad-button--border-color--hover);
  color: var(--rad-button--color--hover);
}
.Button.svelte-nbhh2o:focus-visible {
  outline: 2px solid var(--rad-button--outline-color);
}
.Button.svelte-nbhh2o:is(.active:where(.svelte-nbhh2o)),
.Button.svelte-nbhh2o:active {
  background-color: var(--rad-button--background-color--active);
  border-color: var(--rad-button--border-color--active);
  color: var(--rad-button--color--active);
}
.Button.svelte-nbhh2o:is(.disabled:where(.svelte-nbhh2o)),
.Button.svelte-nbhh2o:disabled {
  background-color: var(--rad-button--background-color--disabled);
  border-color: var(--rad-button--border-color--disabled);
  color: var(--rad-button--color--disabled);
  pointer-events: none;
}
.Button.svelte-nbhh2o:not([data-size]) {
  --rad-button--font: var(--rad-button--font--medium);
  --rad-button--gap: var(--rad-button--gap--medium);
  --rad-button--height: var(--rad-button--height--medium);
  --rad-button--padding-inline: var(--rad-button--padding-inline--medium);
}
.Button[data-size=large].svelte-nbhh2o {
  --rad-button--font: var(--rad-button--font--large);
  --rad-button--gap: var(--rad-button--gap--large);
  --rad-button--height: var(--rad-button--height--large);
  --rad-button--padding-inline: var(--rad-button--padding-inline--large);
}
.Button[data-size=small].svelte-nbhh2o {
  --rad-button--font: var(--rad-button--font--small);
  --rad-button--gap: var(--rad-button--gap--small);
  --rad-button--height: var(--rad-button--height--small);
  --rad-button--padding-inline: var(--rad-button--padding-inline--small);
}
.Button[data-size=x-small].svelte-nbhh2o {
  --rad-button--font: var(--rad-button--font--x-small);
  --rad-button--gap: var(--rad-button--gap--x-small);
  --rad-button--height: var(--rad-button--height--x-small);
  --rad-button--padding-inline: var(--rad-button--padding-inline--x-small);
}
.Button.svelte-nbhh2o:not([data-theme]) {
  --rad-button--color--default: var(--gray-900);
  --rad-button--background-color--default: var(--gray-100);
  --rad-button--border-color--default: var(--gray-300);
  --rad-button--color--hover: var(--gray-900);
  --rad-button--background-color--hover: var(--gray-200);
  --rad-button--border-color--hover: var(--gray-400);
  --rad-button--color--active: var(--gray-900);
  --rad-button--background-color--active: var(--gray-300);
  --rad-button--border-color--active: var(--gray-400);
  --rad-button--color--disabled: var(--gray-050);
  --rad-button--background-color--disabled: var(--gray-300);
  --rad-button--border-color--disabled: var(--gray-300);
  --rad-button--outline-color: var(--gray-600);
}
.Button[data-theme=primary].svelte-nbhh2o {
  --rad-button--color--default: white;
  --rad-button--background-color--default: var(--color-primary-500);
  --rad-button--border-color--default: var(--color-primary-600);
  --rad-button--color--hover: white;
  --rad-button--background-color--hover: var(--color-primary-400);
  --rad-button--border-color--hover: var(--color-primary-500);
  --rad-button--color--active: white;
  --rad-button--background-color--active: var(--color-primary-600);
  --rad-button--border-color--active: var(--color-primary-500);
  --rad-button--color--disabled: var(--gray-050);
  --rad-button--background-color--disabled: var(--gray-300);
  --rad-button--border-color--disabled: var(--gray-300);
  --rad-button--outline-color: var(--color-primary-400);
}
.Button[data-theme=secondary].svelte-nbhh2o {
  --rad-button--color--default: white;
  --rad-button--background-color--default: var(--purple-500);
  --rad-button--border-color--default: var(--purple-600);
  --rad-button--color--hover: white;
  --rad-button--background-color--hover: var(--purple-400);
  --rad-button--border-color--hover: var(--purple-500);
  --rad-button--color--active: white;
  --rad-button--background-color--active: var(--purple-600);
  --rad-button--border-color--active: var(--purple-500);
  --rad-button--color--disabled: var(--gray-050);
  --rad-button--background-color--disabled: var(--gray-300);
  --rad-button--border-color--disabled: var(--gray-300);
  --rad-button--outline-color: var(--purple-400);
}
.Button[data-theme=danger].svelte-nbhh2o {
  --rad-button--color--default: white;
  --rad-button--background-color--default: var(--red-500);
  --rad-button--border-color--default: var(--red-600);
  --rad-button--color--hover: white;
  --rad-button--background-color--hover: var(--red-400);
  --rad-button--border-color--hover: var(--red-500);
  --rad-button--color--active: white;
  --rad-button--background-color--active: var(--red-600);
  --rad-button--border-color--active: var(--red-500);
  --rad-button--color--disabled: var(--gray-050);
  --rad-button--background-color--disabled: var(--gray-300);
  --rad-button--border-color--disabled: var(--gray-300);
  --rad-button--outline-color: var(--red-400);
}
.Button[data-theme=warning].svelte-nbhh2o {
  --rad-button--color--default: var(--gray-900);
  --rad-button--background-color--default: var(--yellow-500);
  --rad-button--border-color--default: var(--gray-300);
  --rad-button--color--hover: var(--gray-900);
  --rad-button--background-color--hover: var(--yellow-400);
  --rad-button--border-color--hover: var(--gray-400);
  --rad-button--color--active: var(--gray-900);
  --rad-button--background-color--active: var(--yellow-600);
  --rad-button--border-color--active: var(--gray-400);
  --rad-button--color--disabled: var(--gray-050);
  --rad-button--background-color--disabled: var(--gray-300);
  --rad-button--border-color--disabled: var(--gray-300);
  --rad-button--outline-color: var(--gray-600);
}
.Button[data-square].svelte-nbhh2o {
  padding: 0;
}

/* fakecss:/home/team/responsiveadsdeployment/responsiveadsfrontendgit/v4/src/pages/signin/SigninPage.esbuild-svelte-fake-css */
.SigninPage.svelte-12nqbt9 {
  --signin-color: white;
}
.title.svelte-12nqbt9 {
  color: var(--signin-color);
  font-size: var(--font-size--h1);
  font-weight: var(--font-extraBold);
  line-height: var(--line-height-heading);
}
.body.svelte-12nqbt9 {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 40px 0;
}
.form.svelte-12nqbt9,
.sso.svelte-12nqbt9 {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.form__forgot-password.svelte-12nqbt9 {
  text-align: right;
}
.form__forgot-password-link.svelte-12nqbt9,
.form__error-link.svelte-12nqbt9,
.footer__link.svelte-12nqbt9 {
  color: var(--purple-300);
  font-weight: var(--font-extraBold);
  line-height: var(--line-height);
  text-decoration: none;
}
.form__forgot-password-link.svelte-12nqbt9:hover,
.form__error-link.svelte-12nqbt9:hover,
.footer__link.svelte-12nqbt9:hover {
  color: var(--purple-200);
}
.form__error.svelte-12nqbt9,
.sso__error.svelte-12nqbt9 {
  color: var(--red-400);
  font-size: var(--font-size--p2);
  font-weight: var(--font-bold);
  line-height: var(--line-height);
}
.form__actions.svelte-12nqbt9 {
  display: grid;
  margin-top: 8px;
}
.separator.svelte-12nqbt9 {
  text-align: center;
  color: var(--signin-color);
  font-size: var(--font-size--p1);
  font-weight: var(--font-bold);
  line-height: var(--line-height);
}
.sso__button.svelte-12nqbt9 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 40px;
  padding: 0 15px;
  border: 1px solid var(--signin-color);
  border-radius: 4px;
  color: var(--signin-color);
  font: var(--font--b1);
  text-decoration: none;
}
.sso__button.svelte-12nqbt9:hover {
  background: rgba(255, 255, 255, 0.2);
}
.sso__button.svelte-12nqbt9:active,
.sso__button.svelte-12nqbt9:focus {
  background: rgba(255, 255, 255, 0.4);
}
.sso__button-icon.svelte-12nqbt9 {
  width: 20px;
  height: 20px;
}
.footer.svelte-12nqbt9 {
  text-align: center;
  color: var(--signin-color);
  font-size: var(--font-size--p1);
  font-weight: var(--font-bold);
  line-height: var(--line-height);
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiTmF2QmFyRnJhbWUuc3ZlbHRlIiwgIk5hdkJhckxvZ28uc3ZlbHRlIiwgIk1pbmltYWxGb290ZXIuc3ZlbHRlIiwgIkF1dGhQYWdlTGF5b3V0LnN2ZWx0ZSIsICJJY29uLnN2ZWx0ZSIsICJTaWduaW5QYWdlLnN2ZWx0ZSJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiPHNjcmlwdCBsYW5nPVwidHNcIj5cInVzZSBzdHJpY3RcIjtcbjwvc2NyaXB0PlxuXG48ZGl2IGNsYXNzPVwiTmF2QmFyRnJhbWVcIj5cblx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdDxkaXYgY2xhc3M9XCJpbm5lckZyYW1lXCI+XG5cdFx0XHQ8c2xvdCBuYW1lPVwibG9nb1wiIC8+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudHNcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIm5hdlByaW1hcnlcIj5cblx0XHRcdFx0XHQ8c2xvdCBuYW1lPVwicHJpbWFyeVwiIC8+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibmF2U2Vjb25kYXJ5XCI+XG5cdFx0XHRcdFx0PHNsb3QgbmFtZT1cInNlY29uZGFyeVwiIC8+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiPi5OYXZCYXJGcmFtZSB7XG4gIC0tbmF2LWJhci0tYmFja2dyb3VuZC1jb2xvci0taG92ZXI6IHZhcigtLWdyYXktODAwKTtcbiAgLS1uYXYtYmFyLS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgLS1uYXYtYmFyLS1jb2xvcjogdmFyKC0tY29sb3ItYmcpO1xuICAtLW5hdi1iYXItLWJvcmRlci1jb2xvcjogdmFyKC0tZ3JheS0zMDApO1xuICAtLW5hdi1iYXItLWhlaWdodDogNDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmF2LWJhci0tYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1uYXYtYmFyLS1jb2xvcik7XG59XG5cbi5pbm5lckZyYW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiB2YXIoLS1uYXYtYmFyLS1oZWlnaHQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY29udGVudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGdhcDogOHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5uYXZQcmltYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm5hdlNlY29uZGFyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5jb250YWluZXIge1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICBwYWRkaW5nLWlubGluZTogMDtcbiAgd2lkdGg6IGNsYW1wKDQwMHB4LCAxMDAlLCB2YXIoLS1sYXlvdXQtbWF4LXdpZHRoKSk7XG59PC9zdHlsZT5cbiIsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPmV4cG9ydCBsZXQgdHlwZTtcbjwvc2NyaXB0PlxuXG48YSBjbGFzcz1cIk5hdkJhckxvZ29cIiBocmVmPVwiL1wiIHN0eWxlPXt0eXBlID09PSAnZnVsbCcgPyAnd2lkdGg6IDIxNXB4JyA6ICd3aWR0aDogNzhweCd9PlxuXHR7I2lmIHR5cGUgPT09ICdmdWxsJ31cblx0XHQ8aW1nIGFsdD1cIlJlc3BvbnNpdmVBZHNcIiBjbGFzcz1cInJlc3BvbnNpdmVBZHNMb2dvXCIgc3JjPVwiL2ltZy9yZXNwb25zaXZlYWRzLWxvZ28tZnVsbC13aGl0ZS5wbmdcIiAvPlxuXHR7OmVsc2UgaWYgdHlwZSA9PT0gJ3Nob3J0J31cblx0XHQ8aW1nIGFsdD1cIlJlc3BvbnNpdmVBZHNcIiBjbGFzcz1cInJlc3BvbnNpdmVBZHNJY29uXCIgc3JjPVwiL2ltZy9SZXNwb25zaXZlYWRzLWljb24ucG5nXCIgLz5cblx0ezplbHNlfVxuXHRcdEVSUk9SOiBVbmtub3duIExvZ29UeXBlICh7dHlwZX0pXG5cdHsvaWZ9XG48L2E+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiPi5OYXZCYXJMb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xufVxuXG4ucmVzcG9uc2l2ZUFkc0xvZ28ge1xuICBoZWlnaHQ6IDI0cHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgbWluLXdpZHRoOiAxNTFweDtcbn1cblxuLnJlc3BvbnNpdmVBZHNJY29uIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtaW4td2lkdGg6IDM4LjQ0cHg7XG59PC9zdHlsZT5cbiIsICI8Zm9vdGVyIGNsYXNzPVwiTWluaW1hbEZvb3RlclwiPlxuXHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0PHVsIGNsYXNzPVwibGluay1pdGVtc1wiPlxuXHRcdFx0PGxpIGNsYXNzPVwibGluay1pdGVtXCI+XG5cdFx0XHRcdDxhXG5cdFx0XHRcdFx0Y2xhc3M9XCJsaW5rLXRleHRcIlxuXHRcdFx0XHRcdGhyZWY9XCJodHRwOi8vd3d3LnJlc3BvbnNpdmVhZHMuY29tL3Rlcm1zLW9mLXNlcnZpY2UvXCJcblx0XHRcdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0XHRcdHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5UZXJtcyBvZiBzZXJ2aWNlPC9hXG5cdFx0XHRcdD5cblx0XHRcdDwvbGk+XG5cdFx0XHQ8bGkgY2xhc3M9XCJsaW5rLWl0ZW1cIj5cblx0XHRcdFx0PGFcblx0XHRcdFx0XHRjbGFzcz1cImxpbmstdGV4dFwiXG5cdFx0XHRcdFx0aHJlZj1cImh0dHBzOi8vcmVzcG9uc2l2ZWFkcy5jb20vcHJpdmFjeS1wb2xpY3kvXCJcblx0XHRcdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0XHRcdHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5Qcml2YWN5IHBvbGljeTwvYVxuXHRcdFx0XHQ+XG5cdFx0XHQ8L2xpPlxuXHRcdDwvdWw+XG5cdDwvZGl2PlxuPC9mb290ZXI+XG5cbjxzdHlsZT5cblx0Lk1pbmltYWxGb290ZXIge1xuXHRcdC0tZm9vdGVyLWNvbG9yOiB2YXIoLS1wdXJwbGUtMzAwKTtcblx0XHQtLWZvb3Rlci1jb2xvci0taG92ZXI6IHZhcigtLXB1cnBsZS0yMDApO1xuXHRcdC0tZm9vdGVyLWJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuXHRcdC0tZm9vdGVyLWhlaWdodDogNDhweDtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRmbGV4OiAwIDAgdmFyKC0tZm9vdGVyLWhlaWdodCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tZm9vdGVyLWJhY2tncm91bmQtY29sb3IpO1xuXHR9XG5cblx0LmNvbnRhaW5lciB7XG5cdFx0ZmxleDogMTtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWxheW91dC1tYXgtd2lkdGgpO1xuXHR9XG5cblx0LmxpbmstaXRlbXMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0bWFyZ2luOiAwIDMycHg7XG5cdH1cblxuXHQubGluay1pdGVtIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cblxuXHQubGluay1pdGVtICsgLmxpbmstaXRlbTo6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHR3aWR0aDogMXB4O1xuXHRcdGhlaWdodDogdmFyKC0tZm9udC1zaXplLS1wMik7XG5cdFx0bWFyZ2luOiAwIDhweDtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1mb290ZXItY29sb3IpO1xuXHR9XG5cblx0LmxpbmstdGV4dCB7XG5cdFx0Y29sb3I6IHZhcigtLWZvb3Rlci1jb2xvcik7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtLXAyKTtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC1leHRyYUJvbGQpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0LmxpbmstdGV4dDpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLWZvb3Rlci1jb2xvci0taG92ZXIpO1xuXHR9XG48L3N0eWxlPlxuIiwgIjxzY3JpcHQgbGFuZz1cInRzXCI+aW1wb3J0IE5hdkJhckZyYW1lIGZyb20gJy4uL25hdkJhci9OYXZCYXJGcmFtZS5zdmVsdGUnO1xuaW1wb3J0IE5hdkJhckxvZ28gZnJvbSAnLi4vbmF2QmFyL05hdkJhckxvZ28uc3ZlbHRlJztcbmltcG9ydCBNaW5pbWFsRm9vdGVyIGZyb20gJy4uL3BhZ2VFbGVtZW50L01pbmltYWxGb290ZXIuc3ZlbHRlJztcbmltcG9ydCBhdXRoVmlzdWFsQmFja2dyb3VuZEltYWdlVXJsIGZyb20gJy4vYmcucG5nJztcbjwvc2NyaXB0PlxuXG48ZGl2IGNsYXNzPVwiQXV0aFBhZ2VMYXlvdXRcIiBzdHlsZT17YC0tYXV0aC12aXN1YWwtYmctaW1hZ2U6IHVybCgnJHthdXRoVmlzdWFsQmFja2dyb3VuZEltYWdlVXJsfScpYH0+XG5cdDxOYXZCYXJGcmFtZT5cblx0XHQ8TmF2QmFyTG9nbyBzbG90PVwibG9nb1wiIHR5cGU9XCJmdWxsXCIgLz5cblx0PC9OYXZCYXJGcmFtZT5cblxuXHQ8bWFpbiBjbGFzcz1cImxheW91dFwiPlxuXHRcdDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGVudF9faW5uZXJcIj5cblx0XHRcdFx0PHNsb3QgLz5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cInZpc3VhbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuXHQ8L21haW4+XG5cblx0PE1pbmltYWxGb290ZXIgLz5cbjwvZGl2PlxuXG48c3R5bGU+XG5cdC5BdXRoUGFnZUxheW91dCB7XG5cdFx0LS1hdXRoLWxheW91dC1iYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcblx0XHQtLWF1dGgtcGFuZWwtbWF4LXdpZHRoOiA0NDBweDtcblx0XHQtLWF1dGgtcGFuZWwtcGFkZGluZzogNDBweDtcblx0XHQtLWF1dGgtcGFuZWwtbW9iaWxlLWJhY2tncm91bmQ6IHZhcigtLWdyYXktOTAwKTtcblx0XHQtLWF1dGgtcGFuZWwtbW9iaWxlLWJvcmRlci1yYWRpdXM6IDEycHg7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0aGVpZ2h0OiAxMDBkdmg7XG5cdH1cblxuXHQubGF5b3V0IHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblx0XHRmbGV4OiAxO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWF1dGgtbGF5b3V0LWJhY2tncm91bmQtY29sb3IpO1xuXHR9XG5cblx0LmNvbnRlbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LXNlbGY6IHJpZ2h0O1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1sYXlvdXQtbWF4LXdpZHRoKSAvIDIpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LmNvbnRlbnRfX2lubmVyIHtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWF1dGgtcGFuZWwtbWF4LXdpZHRoKTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiB2YXIoLS1hdXRoLXBhbmVsLXBhZGRpbmcpO1xuXHR9XG5cblx0LnZpc3VhbCB7XG5cdFx0cG9zaXRpb246IHN0aWNreTtcblx0XHR0b3A6IDA7XG5cdFx0aGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDQ4cHggLSA0OHB4KTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMDAgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSksIHZhcigtLWF1dGgtdmlzdWFsLWJnLWltYWdlKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0fVxuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcblx0XHQubGF5b3V0IHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRcdH1cblxuXHRcdC5jb250ZW50IHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHRncmlkLWFyZWE6IDEgLyAxO1xuXHRcdH1cblxuXHRcdC5jb250ZW50X19pbm5lciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1hdXRoLXBhbmVsLW1vYmlsZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWF1dGgtcGFuZWwtbW9iaWxlLWJvcmRlci1yYWRpdXMpO1xuXHRcdH1cblxuXHRcdC52aXN1YWwge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC42KSwgcmdiYSgwLCAwLCAwLCAwLjYpKSwgdmFyKC0tYXV0aC12aXN1YWwtYmctaW1hZ2UpO1xuXHRcdFx0Z3JpZC1hcmVhOiAxIC8gMTtcblx0XHR9XG5cdH1cbjwvc3R5bGU+XG4iLCAiPCEtLVxuXHRAY29tcG9uZW50XG5cdFJlbmRlcnMgcHJlZGVmaW5lZCBTVkcgaWNvbnMgZnJvbSBGb250IEF3ZXNvbWUuIFlvdSBjYW4gdXNlIDxTdmdJY29uPiBmb3IgeW91ciBTVkcgaW1hZ2UgZmlsZS5cblxuXHRUbyBzdHlsZSB0aGUgaWNvbiwgeW91IGNhbiBqdXN0IHVzZSBDU1MgYXMgd2VsbCBhcyBvcmRpbmFyeSB0ZXh0IGJlY2F1c2UgdGhlIGljb24gaXMgYW4gaW5saW5lIFNWRyBlbGVtZW50LlxuXHRAZXhhbXBsZVxuXHQ8c3BhbiBzdHlsZT1cImNvbG9yOnJlZDsgZm9udC1zaXplOjY0cHhcIj5cblx0ICA8SWNvbiBuYW1lPVwiY2hlY2tcIiAvPlxuXHQ8L3NwYW4+XG4tLT5cbjxzY3JpcHQgY29udGV4dD1cIm1vZHVsZVwiIGxhbmc9XCJ0c1wiPmV4cG9ydCBjb25zdCByYWREZWZhdWx0SWNvblR5cGUgPSAncmVndWxhcic7XG4vKipcbiAqIFVzZWQgd2hlbiBmYWlsZWQgdG8gbG9hZCB0aGUgaWNvbiBmaWxlLlxuICovXG5jb25zdCBlbXB0eVN2Z0ltYWdlID0gLypzdmcqLyBgXG48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDEwIDEwXCI+XG5cdDxwYXRoIGQ9XCJNMCwwIEwxMCwwIEwxMCwxMCBMMCwxMCBaXCIvPlxuPC9zdmc+XG5gO1xuLy8gQ2FjaGUgU1ZHcyB0byBhdm9pZCBtdWx0aXBsZSByZXF1ZXN0cyBkdXJpbmcgcmVzaXppbmdcbmNvbnN0IGNhY2hlID0ge307XG48L3NjcmlwdD5cblxuPHNjcmlwdCBsYW5nPVwidHNcIj5leHBvcnQgbGV0IHR5cGUgPSByYWREZWZhdWx0SWNvblR5cGU7XG4vKipcbiAqIFdpZHRoIGFuZCBoZWlnaHQgZm9yIHNwZWNpZmljIHVzZSBjYXNlcy5cbiAqIERlZmF1bHQgaXMgYDFlbWAuXG4gKi9cbmV4cG9ydCBsZXQgc2l6ZSA9IHVuZGVmaW5lZDtcbi8qKlxuICogQHNlZSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9pY29uc1xuICovXG5leHBvcnQgbGV0IG5hbWU7XG5sZXQgZWwgPSBudWxsO1xubGV0IHN2Z0NvZGUgPSAnJztcbiQ6IHNyYyA9IGAvZm9udGF3ZXNvbWU2L3N2Z3MvJHt0eXBlfS8ke25hbWV9LnN2Z2A7XG4kOiBfbG9hZFN2ZyhzcmMpLnRoZW4oKHYpID0+IChzdmdDb2RlID0gdikpO1xuJDogZWwgJiYgKGVsLmlubmVySFRNTCA9IHN2Z0NvZGUpO1xuYXN5bmMgZnVuY3Rpb24gX2xvYWRTdmcodXJsKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKGNhY2hlW3VybF0pIHtcbiAgICAgICAgICAgIHJldHVybiBjYWNoZVt1cmxdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkICgke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9KSAke3VybH1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzLnRleHQoKTtcbiAgICAgICAgY2FjaGVbdXJsXSA9IHRleHQ7XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiBlbXB0eVN2Z0ltYWdlO1xuICAgIH1cbn1cbjwvc2NyaXB0PlxuXG48c3BhbiBiaW5kOnRoaXM9e2VsfSBjbGFzcz1cIkljb25cIiBkYXRhLXNpemU9e3NpemV9IGRhdGEtc3JjPXtzcmN9IC8+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiPi5JY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IHZhcigtLXJhZC1pY29uLS1zaXplLCAxZW0pO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogdmFyKC0tcmFkLWljb24tLXNpemUsIDFlbSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLkljb24gPiA6Z2xvYmFsKHN2Zykge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLkljb25bZGF0YS1zaXplPWJ1dHRvbi0tbWVkaXVtXSB7XG4gIC0tcmFkLWljb24tLXNpemU6IHZhcigtLXJhZC1idXR0b24tLWljb24tc2l6ZS0tbWVkaXVtKTtcbn1cbi5JY29uW2RhdGEtc2l6ZT1idXR0b24tLWxhcmdlXSB7XG4gIC0tcmFkLWljb24tLXNpemU6IHZhcigtLXJhZC1idXR0b24tLWljb24tc2l6ZS0tbGFyZ2UpO1xufVxuLkljb25bZGF0YS1zaXplPWJ1dHRvbi0tc21hbGxdIHtcbiAgLS1yYWQtaWNvbi0tc2l6ZTogdmFyKC0tcmFkLWJ1dHRvbi0taWNvbi1zaXplLS1zbWFsbCk7XG59XG4uSWNvbltkYXRhLXNpemU9YnV0dG9uLS14LXNtYWxsXSB7XG4gIC0tcmFkLWljb24tLXNpemU6IHZhcigtLXJhZC1idXR0b24tLWljb24tc2l6ZS0teC1zbWFsbCk7XG59PC9zdHlsZT5cbiIsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPmltcG9ydCB7IG9uTW91bnQgfSBmcm9tICdzdmVsdGUnO1xuaW1wb3J0IHsgaW5pdE9wdGlvbmFsQ3VycmVudFVzZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vZG9tYWlucy9hY2NvdW50L2N1cnJlbnRVc2VyQ29udGV4dCc7XG5pbXBvcnQgQXV0aFBhZ2VMYXlvdXQgZnJvbSAnLi4vLi4vZG9tYWlucy9hdXRoL0F1dGhQYWdlTGF5b3V0LnN2ZWx0ZSc7XG5pbXBvcnQgVGV4dElucHV0IGZyb20gJy4uLy4uL2RvbWFpbnMvaW5wdXQvVGV4dElucHV0LnN2ZWx0ZSc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uLy4uL2RvbWFpbnMvc3R5bGUvQnV0dG9uLnN2ZWx0ZSc7XG5leHBvcnQgbGV0IGFwcFN0YXRlO1xuZXhwb3J0IGxldCBzc29FcnJvcjtcbmNvbnN0IHJlcXVpcmVkRmllbGRzID0gW1xuICAgIHtcbiAgICAgICAgbmFtZTogJ3VzZXInLFxuICAgICAgICBsYWJlbDogJ2VtYWlsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3Bhc3MnLFxuICAgICAgICBsYWJlbDogJ3Bhc3N3b3JkJyxcbiAgICB9LFxuXTtcbmluaXRPcHRpb25hbEN1cnJlbnRVc2VyQ29udGV4dChhcHBTdGF0ZS5jdXJyZW50VXNlcik7XG5vbk1vdW50KCgpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgLy8gQ2xlYXIgdGhlIGRpc3RpbmN0X2lkIG9mIHRoZSBjdXJyZW50IHVzZXIgYW5kIHJlc2V0IGRldmljZSBpbmZvXG4gICAgKF9hID0gd2luZG93LnBvc3Rob2cpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldCh0cnVlKTtcbiAgICAvLyAocmVmZXIgdjQvc3JjL2RvbWFpbnMvYWNjb3VudC9sb2dpblN0YXR1c1N0b3JlLnRzIGZvciBtb3JlIGRldGFpbHMpXG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdyYWQ6bGl2ZUxvZ2luU3RvcmUnKTtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICBpZiAodXJsLnNlYXJjaFBhcmFtcy5oYXMoJ2Vycm9yJykpIHtcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoJ2Vycm9yJyk7XG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgJycsIHVybC50b1N0cmluZygpKTtcbiAgICB9XG59KTtcbmxldCBpc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbmxldCBzaWduaW5FcnJvciA9IHt9O1xuZnVuY3Rpb24gc2VyaWFsaXplRm9ybURhdGEoZm9ybURhdGEpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZm9ybURhdGEuZW50cmllcygpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG59XG5hc3luYyBmdW5jdGlvbiBsb2dpbihldmVudCkge1xuICAgIGlmIChpc1N1Ym1pdHRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzaWduaW5FcnJvciA9IHt9O1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIC8vIFZhbGlkYXRlIHJlcXVpcmVkIGZpZWxkc1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWlyZWRGaWVsZHMpIHtcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSBmb3JtRGF0YS5nZXQoZmllbGQubmFtZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJyA/IHJhd1ZhbHVlLnRyaW0oKSA6ICcnO1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICBzaWduaW5FcnJvciA9IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgUGxlYXNlIGVudGVyIHlvdXIgJHtmaWVsZC5sYWJlbH0uYCxcbiAgICAgICAgICAgICAgICBpbnZhbGlkRmllbGROYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgZGF0YTtcbiAgICB0cnkge1xuICAgICAgICBpc1N1Ym1pdHRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCByZXNwID0gYXdhaXQgZmV0Y2goJy92My1zaWduaW4nLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogc2VyaWFsaXplRm9ybURhdGEoZm9ybURhdGEpLFxuICAgICAgICB9KTtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHJlc3AuanNvbigpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgc2lnbmluRXJyb3IgPSB7IG1lc3NhZ2U6ICdMb2dpbiBmYWlsZWQnIH07XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIGlzU3VibWl0dGluZyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiBPYmplY3Qua2V5cyhkYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVsnbWVzc2FnZSddICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgc2lnbmluRXJyb3IgPSB7IG1lc3NhZ2U6ICdMb2dpbiBmYWlsZWQnIH07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGVnYWN5QWNjZXNzTWF0Y2ggPSBkYXRhWydtZXNzYWdlJ10ubWF0Y2goLyguKilnbyB0byAlM0NhIGhyZWY9XCIoW15cIl0rKVwiJTNFKFteJV0rKSUzQ2ElM0UvaSk7XG4gICAgICAgIGlmICgobGVnYWN5QWNjZXNzTWF0Y2ggPT09IG51bGwgfHwgbGVnYWN5QWNjZXNzTWF0Y2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxlZ2FjeUFjY2Vzc01hdGNoLmxlbmd0aCkgPT09IDQpIHtcbiAgICAgICAgICAgIHNpZ25pbkVycm9yID0ge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGxlZ2FjeUFjY2Vzc01hdGNoWzFdLnRyaW0oKSxcbiAgICAgICAgICAgICAgICBsaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IGxlZ2FjeUFjY2Vzc01hdGNoWzJdLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGVnYWN5QWNjZXNzTWF0Y2hbM10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETzogVXBkYXRlIGVycm9yIG1lc3NhZ2UgZGVmaW5pdGlvbnMgZGlyZWN0bHkgb24gdGhlIGJhY2tlbmQgb25jZSB0aGUgc2lnbi1pbiBwcm9jZXNzIGlzIHJld3JpdHRlbi5cbiAgICAgICAgLy8gVG8gcHJlc2VydmUgbGVnYWN5IGJlaGF2aW9yIGZvciBub3csIHRlbXBvcmFyaWx5IHRyYW5zbGF0ZSBlcnJvciBtZXNzYWdlcyBvbiB0aGUgZnJvbnRlbmQgd2hlbiBuZWVkZWQuXG4gICAgICAgIGlmIChkYXRhWydtZXNzYWdlJ10gPT09ICdUaGUgdXNlcm5hbWUgb3IgcGFzc3dvcmQgeW91IGVudGVyZWQgaXMgaW5jb3JyZWN0LicpIHtcbiAgICAgICAgICAgIHNpZ25pbkVycm9yID0geyBtZXNzYWdlOiAnVGhlIGVtYWlsIGFuZCBwYXNzd29yZCBjb21iaW5hdGlvbiBpcyBpbmNvcnJlY3QuJyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2lnbmluRXJyb3IgPSB7IG1lc3NhZ2U6IGRhdGFbJ21lc3NhZ2UnXSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBpZiAocGFyYW1zLmdldCgncmV0dXJuX3RvJykpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vemVuZGVzay9zc29gKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocGFyYW1zLmdldCgncmV0dXJuX3VybCcpKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59JHtwYXJhbXMuZ2V0KCdyZXR1cm5fdXJsJyl9YCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbiAgICB9XG59XG48L3NjcmlwdD5cblxuPEF1dGhQYWdlTGF5b3V0PlxuXHQ8ZGl2IGNsYXNzPVwiU2lnbmluUGFnZVwiPlxuXHRcdDxoMSBjbGFzcz1cInRpdGxlXCI+TG9nIGluIHRvIHlvdXIgYWNjb3VudDwvaDE+XG5cblx0XHQ8ZGl2IGNsYXNzPVwiYm9keVwiPlxuXHRcdFx0PGZvcm1cblx0XHRcdFx0Y2xhc3M9XCJmb3JtXCJcblx0XHRcdFx0b246c3VibWl0fHByZXZlbnREZWZhdWx0PXtsb2dpbn1cblx0XHRcdFx0b246aW5wdXQ9eyhldmVudCkgPT4ge1xuXHRcdFx0XHRcdGlmICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsKT8ubmFtZSA9PT0gc2lnbmluRXJyb3IuaW52YWxpZEZpZWxkTmFtZSkge1xuXHRcdFx0XHRcdFx0c2lnbmluRXJyb3IuaW52YWxpZEZpZWxkTmFtZSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdDxUZXh0SW5wdXRcblx0XHRcdFx0XHRuYW1lPVwidXNlclwiXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJFbWFpbFwiXG5cdFx0XHRcdFx0c2l6ZT1cImxhcmdlXCJcblx0XHRcdFx0XHR2YWx1ZT1cIlwiXG5cdFx0XHRcdFx0YXV0b2ZvY3VzXG5cdFx0XHRcdFx0aW52YWxpZD17c2lnbmluRXJyb3IuaW52YWxpZEZpZWxkTmFtZSA9PT0gJ3VzZXInfVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8VGV4dElucHV0XG5cdFx0XHRcdFx0bmFtZT1cInBhc3NcIlxuXHRcdFx0XHRcdHR5cGU9XCJwYXNzd29yZFwiXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJQYXNzd29yZFwiXG5cdFx0XHRcdFx0c2l6ZT1cImxhcmdlXCJcblx0XHRcdFx0XHR2YWx1ZT1cIlwiXG5cdFx0XHRcdFx0aW52YWxpZD17c2lnbmluRXJyb3IuaW52YWxpZEZpZWxkTmFtZSA9PT0gJ3Bhc3MnfVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybV9fZm9yZ290LXBhc3N3b3JkXCI+XG5cdFx0XHRcdFx0PGEgY2xhc3M9XCJmb3JtX19mb3Jnb3QtcGFzc3dvcmQtbGlua1wiIGhyZWY9XCIvcmVzZXRwYXNzd29yZFwiPkZvcmdvdCBwYXNzd29yZD88L2E+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR7I2lmIHNpZ25pbkVycm9yLm1lc3NhZ2V9XG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJmb3JtX19lcnJvclwiPlxuXHRcdFx0XHRcdFx0e3NpZ25pbkVycm9yLm1lc3NhZ2V9XG5cdFx0XHRcdFx0XHR7I2lmIHNpZ25pbkVycm9yLmxpbmt9XG5cdFx0XHRcdFx0XHRcdDxhIGNsYXNzPVwiZm9ybV9fZXJyb3ItbGlua1wiIGhyZWY9e3NpZ25pbkVycm9yLmxpbmsuaHJlZn0+e3NpZ25pbkVycm9yLmxpbmsubGFiZWx9PC9hPlxuXHRcdFx0XHRcdFx0ey9pZn1cblx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdHsvaWZ9XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtX19hY3Rpb25zXCI+XG5cdFx0XHRcdFx0PEJ1dHRvbiB0aGVtZT1cInNlY29uZGFyeVwiIHNpemU9XCJsYXJnZVwiIGRpc2FibGVkPXtpc1N1Ym1pdHRpbmd9PkxvZyBpbjwvQnV0dG9uPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZm9ybT5cblxuXHRcdFx0PHAgY2xhc3M9XCJzZXBhcmF0b3JcIj5vcjwvcD5cblxuXHRcdFx0PGRpdiBjbGFzcz1cInNzb1wiPlxuXHRcdFx0XHQ8YSBjbGFzcz1cInNzb19fYnV0dG9uXCIgaHJlZj1cIi9hdXRoL2dvb2dsZT9mcm9tPXNpZ25pblwiPlxuXHRcdFx0XHRcdDxzdmcgY2xhc3M9XCJzc29fX2J1dHRvbi1pY29uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRcdFx0ZmlsbD1cIiM0Mjg1RjRcIlxuXHRcdFx0XHRcdFx0XHRkPVwiTTIyLjU2IDEyLjI1YzAtLjc4LS4wNy0xLjUzLS4yLTIuMjVIMTJ2NC4yNmg1LjkyYy0uMjYgMS4zNy0xLjA0IDIuNTMtMi4yMSAzLjMxdjIuNzdoMy41N2MyLjA4LTEuOTIgMy4yOC00Ljc0IDMuMjgtOC4wOXpcIlxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0XHRcdGZpbGw9XCIjMzRBODUzXCJcblx0XHRcdFx0XHRcdFx0ZD1cIk0xMiAyM2MyLjk3IDAgNS40Ni0uOTggNy4yOC0yLjY2bC0zLjU3LTIuNzdjLS45OC42Ni0yLjIzIDEuMDYtMy43MSAxLjA2LTIuODYgMC01LjI5LTEuOTMtNi4xNi00LjUzSDIuMTh2Mi44NEMzLjk5IDIwLjUzIDcuNyAyMyAxMiAyM3pcIlxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0XHRcdGZpbGw9XCIjRkJCQzA1XCJcblx0XHRcdFx0XHRcdFx0ZD1cIk01Ljg0IDE0LjA5Yy0uMjItLjY2LS4zNS0xLjM2LS4zNS0yLjA5cy4xMy0xLjQzLjM1LTIuMDlWNy4wN0gyLjE4QzEuNDMgOC41NSAxIDEwLjIyIDEgMTJzLjQzIDMuNDUgMS4xOCA0LjkzbDIuODUtMi4yMi44MS0uNjJ6XCJcblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQ8cGF0aFxuXHRcdFx0XHRcdFx0XHRmaWxsPVwiI0VBNDMzNVwiXG5cdFx0XHRcdFx0XHRcdGQ9XCJNMTIgNS4zOGMxLjYyIDAgMy4wNi41NiA0LjIxIDEuNjRsMy4xNS0zLjE1QzE3LjQ1IDIuMDkgMTQuOTcgMSAxMiAxIDcuNyAxIDMuOTkgMy40NyAyLjE4IDcuMDdsMy42NiAyLjg0Yy44Ny0yLjYgMy4zLTQuNTMgNi4xNi00LjUzelwiXG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwic3NvX19idXR0b24tbGFiZWxcIj5Db250aW51ZSB3aXRoIEdvb2dsZTwvc3Bhbj5cblx0XHRcdFx0PC9hPlxuXHRcdFx0XHR7I2lmIHNzb0Vycm9yPy5wcm92aWRlciA9PT0gJ2dvb2dsZSd9XG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJzc29fX2Vycm9yXCI+e3Nzb0Vycm9yLm1lc3NhZ2V9PC9wPlxuXHRcdFx0XHR7L2lmfVxuXHRcdFx0XHQ8YSBjbGFzcz1cInNzb19fYnV0dG9uXCIgaHJlZj1cIi9hdXRoL21pY3Jvc29mdD9mcm9tPXNpZ25pblwiPlxuXHRcdFx0XHRcdDxzdmcgY2xhc3M9XCJzc29fX2J1dHRvbi1pY29uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0XHRcdFx0PHBhdGggZmlsbD1cIiNmMjUwMjJcIiBkPVwiTTEgMWgxMHYxMEgxelwiIC8+XG5cdFx0XHRcdFx0XHQ8cGF0aCBmaWxsPVwiIzAwYTRlZlwiIGQ9XCJNMTMgMWgxMHYxMEgxM3pcIiAvPlxuXHRcdFx0XHRcdFx0PHBhdGggZmlsbD1cIiM3ZmJhMDBcIiBkPVwiTTEgMTNoMTB2MTBIMXpcIiAvPlxuXHRcdFx0XHRcdFx0PHBhdGggZmlsbD1cIiNmZmI5MDBcIiBkPVwiTTEzIDEzaDEwdjEwSDEzelwiIC8+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJzc29fX2J1dHRvbi1sYWJlbFwiPkNvbnRpbnVlIHdpdGggTWljcm9zb2Z0PC9zcGFuPlxuXHRcdFx0XHQ8L2E+XG5cdFx0XHRcdHsjaWYgc3NvRXJyb3I/LnByb3ZpZGVyID09PSAnbWljcm9zb2Z0J31cblx0XHRcdFx0XHQ8cCBjbGFzcz1cInNzb19fZXJyb3JcIj57c3NvRXJyb3IubWVzc2FnZX08L3A+XG5cdFx0XHRcdHsvaWZ9XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblxuXHRcdDxwIGNsYXNzPVwiZm9vdGVyXCI+XG5cdFx0XHROZXcgdG8gUmVzcG9uc2l2ZUFkcz9cblx0XHRcdDxhIGNsYXNzPVwiZm9vdGVyX19saW5rXCIgaHJlZj1cImh0dHBzOi8vcmVzcG9uc2l2ZWFkcy5jb20vc2lnbi11cFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuXHRcdFx0XHQ+Qm9vayBhIGRlbW88L2Fcblx0XHRcdD5cblx0XHQ8L3A+XG5cdDwvZGl2PlxuPC9BdXRoUGFnZUxheW91dD5cblxuPHN0eWxlPlxuXHQuU2lnbmluUGFnZSB7XG5cdFx0LS1zaWduaW4tY29sb3I6IHdoaXRlO1xuXHR9XG5cblx0LnRpdGxlIHtcblx0XHRjb2xvcjogdmFyKC0tc2lnbmluLWNvbG9yKTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0taDEpO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LWV4dHJhQm9sZCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWhlYWRpbmcpO1xuXHR9XG5cblx0LmJvZHkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRnYXA6IDI0cHg7XG5cdFx0bWFyZ2luOiA0MHB4IDA7XG5cdH1cblxuXHQuZm9ybSxcblx0LnNzbyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGdhcDogMTZweDtcblx0fVxuXG5cdC5mb3JtX19mb3Jnb3QtcGFzc3dvcmQge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0LmZvcm1fX2ZvcmdvdC1wYXNzd29yZC1saW5rLFxuXHQuZm9ybV9fZXJyb3ItbGluayxcblx0LmZvb3Rlcl9fbGluayB7XG5cdFx0Y29sb3I6IHZhcigtLXB1cnBsZS0zMDApO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LWV4dHJhQm9sZCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQuZm9ybV9fZm9yZ290LXBhc3N3b3JkLWxpbms6aG92ZXIsXG5cdC5mb3JtX19lcnJvci1saW5rOmhvdmVyLFxuXHQuZm9vdGVyX19saW5rOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tcHVycGxlLTIwMCk7XG5cdH1cblxuXHQuZm9ybV9fZXJyb3IsXG5cdC5zc29fX2Vycm9yIHtcblx0XHRjb2xvcjogdmFyKC0tcmVkLTQwMCk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtLXAyKTtcblx0XHRmb250LXdlaWdodDogdmFyKC0tZm9udC1ib2xkKTtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuXHR9XG5cblx0LmZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0bWFyZ2luLXRvcDogOHB4O1xuXHR9XG5cblx0LnNlcGFyYXRvciB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiB2YXIoLS1zaWduaW4tY29sb3IpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLS1wMSk7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtYm9sZCk7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KTtcblx0fVxuXG5cdC5zc29fX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdGdhcDogMTBweDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0cGFkZGluZzogMCAxNXB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNpZ25pbi1jb2xvcik7XG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdGNvbG9yOiB2YXIoLS1zaWduaW4tY29sb3IpO1xuXHRcdGZvbnQ6IHZhcigtLWZvbnQtLWIxKTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQuc3NvX19idXR0b246aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcblx0fVxuXG5cdC5zc29fX2J1dHRvbjphY3RpdmUsXG5cdC5zc29fX2J1dHRvbjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuXHR9XG5cblx0LnNzb19fYnV0dG9uLWljb24ge1xuXHRcdHdpZHRoOiAyMHB4O1xuXHRcdGhlaWdodDogMjBweDtcblx0fVxuXG5cdC5mb290ZXIge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogdmFyKC0tc2lnbmluLWNvbG9yKTtcblx0XHRmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0tcDEpO1xuXHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LWJvbGQpO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG5cdH1cbjwvc3R5bGU+XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBbUJrQixDQUFBLFdBQUEsQ0FBQTs7Ozs7Ozs7O1lBQUE7Ozs7O1VBQUE7Ozs7OztZQUFBOzs7Y0FBQTs7O1dBQUE7Ozs7Ozs7QUNIQSxDQUFBLFVBQUEsQ0FBQTs7Ozs7Ozs7O21CQUFBOzs7Ozs7bUJBQUE7Ozs7OztBQ1FqQixDQUFBLGFBQUEsQ0FBQTtBQUNDLGtCQUFBLElBQUE7QUFDQSx5QkFBQSxJQUFBO0FBQ0EsNkJBQUE7QUFDQSxtQkFBQTtBQUVBLFdBQUE7QUFDQSxlQUFBO0FBQ0EsbUJBQUE7QUFDQSxRQUFBLEVBQUEsRUFBQSxJQUFBO0FBQ0EsY0FBQSxJQUFBO0FBQ0Y7QUFFQyxDQUFBLFNBQUEsQ0FiQTtBQWNDLFFBQUE7QUFDQSxhQUFBLElBQUE7QUFDRjtBQUVDLENBQUEsVUFBQSxDQWxCQTtBQW1CQyxXQUFBO0FBQ0EsVUFBQSxFQUFBO0FBQ0Y7QUFFQyxDQUFBLFNBQUEsQ0F2QkE7QUF3QkMsV0FBQTtBQUNBLGVBQUE7QUFDRjtBQUVDLENBTEEsU0FLQSxDQTVC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 */
