@charset "UTF-8";
[data-theme=light],
:root:not([data-theme=dark]) {
  --mt-necrolori-form-background: #f5f5f5;
  --mt-homepage-opening-background: color-mix(in srgb, var(--pico-primary) 10%, #fff 90%);
  --mt-gallery-background: color-mix(in srgb, var(--pico-primary) 5%, #fff 95%);
}

[data-theme=dark],
:root[data-theme=dark] {
  --mt-necrolori-form-background: #121212;
  --mt-homepage-opening-background: color-mix(in srgb, var(--pico-primary) 10%, #000 90%);
  --mt-gallery-background: color-mix(in srgb, var(--pico-primary) 5%, #000 95%);
}

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("./../fonts/inter/inter-regular.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: italic;
  font-weight: 400;
  src: url("./../fonts/inter/inter-italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  src: url("./../fonts/inter/inter-700.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: italic;
  font-weight: 700;
  src: url("./../fonts/inter/inter-700italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 400;
  src: url("./../fonts/merriweather/merriweather-regular.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Merriweather";
  font-style: italic;
  font-weight: 400;
  src: url("./../fonts/merriweather/merriweather-italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Merriweather";
  font-style: normal;
  font-weight: 700;
  src: url("./../fonts/merriweather/merriweather-700.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Merriweather";
  font-style: italic;
  font-weight: 700;
  src: url("./../fonts/merriweather/merriweather-700italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 400;
  src: url("./../fonts/noto-sans/noto-sans-regular.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Sans";
  font-style: italic;
  font-weight: 400;
  src: url("./../fonts/noto-sans/noto-sans-italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 700;
  src: url("./../fonts/noto-sans/noto-sans-700.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Sans";
  font-style: italic;
  font-weight: 700;
  src: url("./../fonts/noto-sans/noto-sans-700italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 400;
  src: url("./../fonts/noto-serif/noto-serif-regular.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Serif";
  font-style: italic;
  font-weight: 400;
  src: url("./../fonts/noto-serif/noto-serif-italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 700;
  src: url("./../fonts/noto-serif/noto-serif-700.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Noto Serif";
  font-style: italic;
  font-weight: 700;
  src: url("./../fonts/noto-serif/noto-serif-700italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 400;
  src: url("./../fonts/open-sans/open-sans-regular.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Open Sans";
  font-style: italic;
  font-weight: 400;
  src: url("./../fonts/open-sans/open-sans-italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 700;
  src: url("./../fonts/open-sans/open-sans-700.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Open Sans";
  font-style: italic;
  font-weight: 700;
  src: url("./../fonts/open-sans/open-sans-700italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Roboto";
  font-style: normal;
  font-weight: 400;
  src: url("./../fonts/roboto/roboto-regular.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Roboto";
  font-style: italic;
  font-weight: 400;
  src: url("./../fonts/roboto/roboto-italic.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Roboto";
  font-style: normal;
  font-weight: 700;
  src: url("./../fonts/roboto/roboto-700.woff2") format("woff2");
}
@font-face {
  font-display: swap;
  font-family: "Roboto";
  font-style: italic;
  font-weight: 700;
  src: url("./../fonts/roboto/roboto-700italic.woff2") format("woff2");
}
/*!
 * Pico CSS ✨ v2.1.1 (https://picocss.com)
 * Copyright 2019-2025 - Licensed under MIT
 */
/**
 * Styles
 */
:root,
:host {
  --pico-font-family-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --pico-font-family-sans-serif: system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif, var(--pico-font-family-emoji);
  --pico-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace, var(--pico-font-family-emoji);
  --pico-font-family: var(--pico-font-family-sans-serif);
  --pico-line-height: 1.5;
  --pico-font-weight: 400;
  --pico-font-size: 100%;
  --pico-text-underline-offset: 0.1rem;
  --pico-border-radius: 0.25rem;
  --pico-border-width: 0.0625rem;
  --pico-outline-width: 0.125rem;
  --pico-transition: 0.2s ease-in-out;
  --pico-spacing: 1rem;
  --pico-typography-spacing-vertical: 1rem;
  --pico-block-spacing-vertical: var(--pico-spacing);
  --pico-block-spacing-horizontal: var(--pico-spacing);
  --pico-grid-column-gap: var(--pico-spacing);
  --pico-grid-row-gap: var(--pico-spacing);
  --pico-form-element-spacing-vertical: 0.75rem;
  --pico-form-element-spacing-horizontal: 1rem;
  --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
  --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
  --pico-nav-element-spacing-vertical: 1rem;
  --pico-nav-element-spacing-horizontal: 0.5rem;
  --pico-nav-link-spacing-vertical: 0.5rem;
  --pico-nav-link-spacing-horizontal: 0.5rem;
  --pico-nav-breadcrumb-divider: ">";
  --pico-icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  --pico-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
  --pico-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  --pico-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
}
@media (min-width: 576px) {
  :root,
  :host {
    --pico-font-size: 106.25%;
  }
}
@media (min-width: 768px) {
  :root,
  :host {
    --pico-font-size: 112.5%;
  }
}
@media (min-width: 1024px) {
  :root,
  :host {
    --pico-font-size: 118.75%;
  }
}
@media (min-width: 1280px) {
  :root,
  :host {
    --pico-font-size: 125%;
  }
}
@media (min-width: 1536px) {
  :root,
  :host {
    --pico-font-size: 131.25%;
  }
}

a {
  --pico-text-decoration: underline;
}
a.secondary, a.contrast {
  --pico-text-decoration: underline;
}

small {
  --pico-font-size: 0.875em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  --pico-font-weight: 700;
}

h1 {
  --pico-font-size: 2rem;
  --pico-line-height: 1.125;
  --pico-typography-spacing-top: 3rem;
}

h2 {
  --pico-font-size: 1.75rem;
  --pico-line-height: 1.15;
  --pico-typography-spacing-top: 2.625rem;
}

h3 {
  --pico-font-size: 1.5rem;
  --pico-line-height: 1.175;
  --pico-typography-spacing-top: 2.25rem;
}

h4 {
  --pico-font-size: 1.25rem;
  --pico-line-height: 1.2;
  --pico-typography-spacing-top: 1.874rem;
}

h5 {
  --pico-font-size: 1.125rem;
  --pico-line-height: 1.225;
  --pico-typography-spacing-top: 1.6875rem;
}

h6 {
  --pico-font-size: 1rem;
  --pico-line-height: 1.25;
  --pico-typography-spacing-top: 1.5rem;
}

input:not([type=submit],
[type=button],
[type=reset],
[type=checkbox],
[type=radio],
[type=file]),
:where(select, textarea) {
  --pico-outline-width: 0.0625rem;
}

[type=search] {
  --pico-border-radius: 5rem;
}

[type=checkbox],
[type=radio] {
  --pico-border-width: 0.125rem;
}

[type=checkbox][role=switch] {
  --pico-border-width: 0.1875rem;
}

details.dropdown summary:not([role=button]) {
  --pico-outline-width: 0.0625rem;
}

nav details.dropdown summary:focus-visible {
  --pico-outline-width: 0.125rem;
}

[role=search] {
  --pico-border-radius: 5rem;
}

[role=search]:has(button.secondary:focus,
[type=submit].secondary:focus,
[type=button].secondary:focus,
[role=button].secondary:focus),
[role=group]:has(button.secondary:focus,
[type=submit].secondary:focus,
[type=button].secondary:focus,
[role=button].secondary:focus) {
  --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
}
[role=search]:has(button.contrast:focus,
[type=submit].contrast:focus,
[type=button].contrast:focus,
[role=button].contrast:focus),
[role=group]:has(button.contrast:focus,
[type=submit].contrast:focus,
[type=button].contrast:focus,
[role=button].contrast:focus) {
  --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width) var(--pico-contrast-focus);
}
[role=search] button,
[role=search] [type=submit],
[role=search] [type=button],
[role=search] [role=button],
[role=group] button,
[role=group] [type=submit],
[role=group] [type=button],
[role=group] [role=button] {
  --pico-form-element-spacing-horizontal: 2rem;
}

details summary[role=button]:not(.outline)::after {
  filter: brightness(0) invert(1);
}

/**
 * Color schemes
 */
[data-theme=light],
:root:not([data-theme=dark]),
:host(:not([data-theme=dark])) {
  color-scheme: light;
  --pico-background-color: #fff;
  --pico-color: #373c44;
  --pico-text-selection-color: rgba(2, 154, 232, 0.25);
  --pico-muted-color: #646b79;
  --pico-muted-border-color: rgb(231, 234, 239.5);
  --pico-primary: #0172ad;
  --pico-primary-background: #0172ad;
  --pico-primary-border: var(--pico-primary-background);
  --pico-primary-underline: rgba(1, 114, 173, 0.5);
  --pico-primary-hover: #015887;
  --pico-primary-hover-background: #02659a;
  --pico-primary-hover-border: var(--pico-primary-hover-background);
  --pico-primary-hover-underline: var(--pico-primary-hover);
  --pico-primary-focus: rgba(2, 154, 232, 0.5);
  --pico-primary-inverse: #fff;
  --pico-secondary: #5d6b89;
  --pico-secondary-background: #525f7a;
  --pico-secondary-border: var(--pico-secondary-background);
  --pico-secondary-underline: rgba(93, 107, 137, 0.5);
  --pico-secondary-hover: #48536b;
  --pico-secondary-hover-background: #48536b;
  --pico-secondary-hover-border: var(--pico-secondary-hover-background);
  --pico-secondary-hover-underline: var(--pico-secondary-hover);
  --pico-secondary-focus: rgba(93, 107, 137, 0.25);
  --pico-secondary-inverse: #fff;
  --pico-contrast: #181c25;
  --pico-contrast-background: #181c25;
  --pico-contrast-border: var(--pico-contrast-background);
  --pico-contrast-underline: rgba(24, 28, 37, 0.5);
  --pico-contrast-hover: #000;
  --pico-contrast-hover-background: #000;
  --pico-contrast-hover-border: var(--pico-contrast-hover-background);
  --pico-contrast-hover-underline: var(--pico-secondary-hover);
  --pico-contrast-focus: rgba(93, 107, 137, 0.25);
  --pico-contrast-inverse: #fff;
  --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(129, 145, 181, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(129, 145, 181, 0.024), 0.0625rem 0.125rem 0.75rem rgba(129, 145, 181, 0.03), 0.1125rem 0.225rem 1.35rem rgba(129, 145, 181, 0.036), 0.2085rem 0.417rem 2.502rem rgba(129, 145, 181, 0.04302), 0.5rem 1rem 6rem rgba(129, 145, 181, 0.06), 0 0 0 0.0625rem rgba(129, 145, 181, 0.015);
  --pico-h1-color: #2d3138;
  --pico-h2-color: #373c44;
  --pico-h3-color: #424751;
  --pico-h4-color: #4d535e;
  --pico-h5-color: #5c6370;
  --pico-h6-color: #646b79;
  --pico-mark-background-color: rgb(252.5, 230.5, 191.5);
  --pico-mark-color: #0f1114;
  --pico-ins-color: rgb(28.5, 105.5, 84);
  --pico-del-color: rgb(136, 56.5, 53);
  --pico-blockquote-border-color: var(--pico-muted-border-color);
  --pico-blockquote-footer-color: var(--pico-muted-color);
  --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-form-element-background-color: rgb(251, 251.5, 252.25);
  --pico-form-element-selected-background-color: #dfe3eb;
  --pico-form-element-border-color: #cfd5e2;
  --pico-form-element-color: #23262c;
  --pico-form-element-placeholder-color: var(--pico-muted-color);
  --pico-form-element-active-background-color: #fff;
  --pico-form-element-active-border-color: var(--pico-primary-border);
  --pico-form-element-focus-color: var(--pico-primary-border);
  --pico-form-element-disabled-opacity: 0.5;
  --pico-form-element-invalid-border-color: rgb(183.5, 105.5, 106.5);
  --pico-form-element-invalid-active-border-color: rgb(200.25, 79.25, 72.25);
  --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
  --pico-form-element-valid-border-color: rgb(76, 154.5, 137.5);
  --pico-form-element-valid-active-border-color: rgb(39, 152.75, 118.75);
  --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
  --pico-switch-background-color: #bfc7d9;
  --pico-switch-checked-background-color: var(--pico-primary-background);
  --pico-switch-color: #fff;
  --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-accordion-border-color: var(--pico-muted-border-color);
  --pico-accordion-active-summary-color: var(--pico-primary-hover);
  --pico-accordion-close-summary-color: var(--pico-color);
  --pico-accordion-open-summary-color: var(--pico-muted-color);
  --pico-card-background-color: var(--pico-background-color);
  --pico-card-border-color: var(--pico-muted-border-color);
  --pico-card-box-shadow: var(--pico-box-shadow);
  --pico-card-sectioning-background-color: rgb(251, 251.5, 252.25);
  --pico-dropdown-background-color: #fff;
  --pico-dropdown-border-color: #eff1f4;
  --pico-dropdown-box-shadow: var(--pico-box-shadow);
  --pico-dropdown-color: var(--pico-color);
  --pico-dropdown-hover-background-color: #eff1f4;
  --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 154.5, 137.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200.25, 79.25, 72.25)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
[data-theme=light] input:is([type=submit],
[type=button],
[type=reset],
[type=checkbox],
[type=radio],
[type=file]),
:root:not([data-theme=dark]) input:is([type=submit],
[type=button],
[type=reset],
[type=checkbox],
[type=radio],
[type=file]),
:host(:not([data-theme=dark])) input:is([type=submit],
[type=button],
[type=reset],
[type=checkbox],
[type=radio],
[type=file]) {
  --pico-form-element-focus-color: var(--pico-primary-focus);
}

@media only screen and (prefers-color-scheme: dark) {
  :root:not([data-theme]),
  :host(:not([data-theme])) {
    color-scheme: dark;
    --pico-background-color: rgb(19, 22.5, 30.5);
    --pico-color: #c2c7d0;
    --pico-text-selection-color: rgba(1, 170, 255, 0.1875);
    --pico-muted-color: #7b8495;
    --pico-muted-border-color: #202632;
    --pico-primary: #01aaff;
    --pico-primary-background: #0172ad;
    --pico-primary-border: var(--pico-primary-background);
    --pico-primary-underline: rgba(1, 170, 255, 0.5);
    --pico-primary-hover: #79c0ff;
    --pico-primary-hover-background: #017fc0;
    --pico-primary-hover-border: var(--pico-primary-hover-background);
    --pico-primary-hover-underline: var(--pico-primary-hover);
    --pico-primary-focus: rgba(1, 170, 255, 0.375);
    --pico-primary-inverse: #fff;
    --pico-secondary: #969eaf;
    --pico-secondary-background: #525f7a;
    --pico-secondary-border: var(--pico-secondary-background);
    --pico-secondary-underline: rgba(150, 158, 175, 0.5);
    --pico-secondary-hover: #b3b9c5;
    --pico-secondary-hover-background: #5d6b89;
    --pico-secondary-hover-border: var(--pico-secondary-hover-background);
    --pico-secondary-hover-underline: var(--pico-secondary-hover);
    --pico-secondary-focus: rgba(144, 158, 190, 0.25);
    --pico-secondary-inverse: #fff;
    --pico-contrast: #dfe3eb;
    --pico-contrast-background: #eff1f4;
    --pico-contrast-border: var(--pico-contrast-background);
    --pico-contrast-underline: rgba(223, 227, 235, 0.5);
    --pico-contrast-hover: #fff;
    --pico-contrast-hover-background: #fff;
    --pico-contrast-hover-border: var(--pico-contrast-hover-background);
    --pico-contrast-hover-underline: var(--pico-contrast-hover);
    --pico-contrast-focus: rgba(207, 213, 226, 0.25);
    --pico-contrast-inverse: #000;
    --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 8.5, 12, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(7, 8.5, 12, 0.024), 0.0625rem 0.125rem 0.75rem rgba(7, 8.5, 12, 0.03), 0.1125rem 0.225rem 1.35rem rgba(7, 8.5, 12, 0.036), 0.2085rem 0.417rem 2.502rem rgba(7, 8.5, 12, 0.04302), 0.5rem 1rem 6rem rgba(7, 8.5, 12, 0.06), 0 0 0 0.0625rem rgba(7, 8.5, 12, 0.015);
    --pico-h1-color: #f0f1f3;
    --pico-h2-color: #e0e3e7;
    --pico-h3-color: #c2c7d0;
    --pico-h4-color: #b3b9c5;
    --pico-h5-color: #a4acba;
    --pico-h6-color: #8891a4;
    --pico-mark-background-color: #014063;
    --pico-mark-color: #fff;
    --pico-ins-color: #62af9a;
    --pico-del-color: rgb(205.5, 126, 123);
    --pico-blockquote-border-color: var(--pico-muted-border-color);
    --pico-blockquote-footer-color: var(--pico-muted-color);
    --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-form-element-background-color: rgb(28, 33, 43.5);
    --pico-form-element-selected-background-color: #2a3140;
    --pico-form-element-border-color: #2a3140;
    --pico-form-element-color: #e0e3e7;
    --pico-form-element-placeholder-color: #8891a4;
    --pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
    --pico-form-element-active-border-color: var(--pico-primary-border);
    --pico-form-element-focus-color: var(--pico-primary-border);
    --pico-form-element-disabled-opacity: 0.5;
    --pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
    --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
    --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
    --pico-form-element-valid-border-color: #2a7b6f;
    --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
    --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
    --pico-switch-background-color: #333c4e;
    --pico-switch-checked-background-color: var(--pico-primary-background);
    --pico-switch-color: #fff;
    --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-accordion-border-color: var(--pico-muted-border-color);
    --pico-accordion-active-summary-color: var(--pico-primary-hover);
    --pico-accordion-close-summary-color: var(--pico-color);
    --pico-accordion-open-summary-color: var(--pico-muted-color);
    --pico-card-background-color: #181c25;
    --pico-card-border-color: var(--pico-card-background-color);
    --pico-card-box-shadow: var(--pico-box-shadow);
    --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
    --pico-dropdown-background-color: #181c25;
    --pico-dropdown-border-color: #202632;
    --pico-dropdown-box-shadow: var(--pico-box-shadow);
    --pico-dropdown-color: var(--pico-color);
    --pico-dropdown-hover-background-color: #202632;
    --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
  }
  :root:not([data-theme]) input:is([type=submit],
  [type=button],
  [type=reset],
  [type=checkbox],
  [type=radio],
  [type=file]),
  :host(:not([data-theme])) input:is([type=submit],
  [type=button],
  [type=reset],
  [type=checkbox],
  [type=radio],
  [type=file]) {
    --pico-form-element-focus-color: var(--pico-primary-focus);
  }
  :root:not([data-theme]) details summary[role=button].contrast:not(.outline)::after,
  :host(:not([data-theme])) details summary[role=button].contrast:not(.outline)::after {
    filter: brightness(0);
  }
}
[data-theme=dark] {
  color-scheme: dark;
  --pico-background-color: rgb(19, 22.5, 30.5);
  --pico-color: #c2c7d0;
  --pico-text-selection-color: rgba(1, 170, 255, 0.1875);
  --pico-muted-color: #7b8495;
  --pico-muted-border-color: #202632;
  --pico-primary: #01aaff;
  --pico-primary-background: #0172ad;
  --pico-primary-border: var(--pico-primary-background);
  --pico-primary-underline: rgba(1, 170, 255, 0.5);
  --pico-primary-hover: #79c0ff;
  --pico-primary-hover-background: #017fc0;
  --pico-primary-hover-border: var(--pico-primary-hover-background);
  --pico-primary-hover-underline: var(--pico-primary-hover);
  --pico-primary-focus: rgba(1, 170, 255, 0.375);
  --pico-primary-inverse: #fff;
  --pico-secondary: #969eaf;
  --pico-secondary-background: #525f7a;
  --pico-secondary-border: var(--pico-secondary-background);
  --pico-secondary-underline: rgba(150, 158, 175, 0.5);
  --pico-secondary-hover: #b3b9c5;
  --pico-secondary-hover-background: #5d6b89;
  --pico-secondary-hover-border: var(--pico-secondary-hover-background);
  --pico-secondary-hover-underline: var(--pico-secondary-hover);
  --pico-secondary-focus: rgba(144, 158, 190, 0.25);
  --pico-secondary-inverse: #fff;
  --pico-contrast: #dfe3eb;
  --pico-contrast-background: #eff1f4;
  --pico-contrast-border: var(--pico-contrast-background);
  --pico-contrast-underline: rgba(223, 227, 235, 0.5);
  --pico-contrast-hover: #fff;
  --pico-contrast-hover-background: #fff;
  --pico-contrast-hover-border: var(--pico-contrast-hover-background);
  --pico-contrast-hover-underline: var(--pico-contrast-hover);
  --pico-contrast-focus: rgba(207, 213, 226, 0.25);
  --pico-contrast-inverse: #000;
  --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 8.5, 12, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(7, 8.5, 12, 0.024), 0.0625rem 0.125rem 0.75rem rgba(7, 8.5, 12, 0.03), 0.1125rem 0.225rem 1.35rem rgba(7, 8.5, 12, 0.036), 0.2085rem 0.417rem 2.502rem rgba(7, 8.5, 12, 0.04302), 0.5rem 1rem 6rem rgba(7, 8.5, 12, 0.06), 0 0 0 0.0625rem rgba(7, 8.5, 12, 0.015);
  --pico-h1-color: #f0f1f3;
  --pico-h2-color: #e0e3e7;
  --pico-h3-color: #c2c7d0;
  --pico-h4-color: #b3b9c5;
  --pico-h5-color: #a4acba;
  --pico-h6-color: #8891a4;
  --pico-mark-background-color: #014063;
  --pico-mark-color: #fff;
  --pico-ins-color: #62af9a;
  --pico-del-color: rgb(205.5, 126, 123);
  --pico-blockquote-border-color: var(--pico-muted-border-color);
  --pico-blockquote-footer-color: var(--pico-muted-color);
  --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-form-element-background-color: rgb(28, 33, 43.5);
  --pico-form-element-selected-background-color: #2a3140;
  --pico-form-element-border-color: #2a3140;
  --pico-form-element-color: #e0e3e7;
  --pico-form-element-placeholder-color: #8891a4;
  --pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
  --pico-form-element-active-border-color: var(--pico-primary-border);
  --pico-form-element-focus-color: var(--pico-primary-border);
  --pico-form-element-disabled-opacity: 0.5;
  --pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
  --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
  --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
  --pico-form-element-valid-border-color: #2a7b6f;
  --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
  --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
  --pico-switch-background-color: #333c4e;
  --pico-switch-checked-background-color: var(--pico-primary-background);
  --pico-switch-color: #fff;
  --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  --pico-accordion-border-color: var(--pico-muted-border-color);
  --pico-accordion-active-summary-color: var(--pico-primary-hover);
  --pico-accordion-close-summary-color: var(--pico-color);
  --pico-accordion-open-summary-color: var(--pico-muted-color);
  --pico-card-background-color: #181c25;
  --pico-card-border-color: var(--pico-card-background-color);
  --pico-card-box-shadow: var(--pico-box-shadow);
  --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
  --pico-dropdown-background-color: #181c25;
  --pico-dropdown-border-color: #202632;
  --pico-dropdown-box-shadow: var(--pico-box-shadow);
  --pico-dropdown-color: var(--pico-color);
  --pico-dropdown-hover-background-color: #202632;
  --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}
[data-theme=dark] input:is([type=submit],
[type=button],
[type=reset],
[type=checkbox],
[type=radio],
[type=file]) {
  --pico-form-element-focus-color: var(--pico-primary-focus);
}
[data-theme=dark] details summary[role=button].contrast:not(.outline)::after {
  filter: brightness(0);
}

progress,
[type=checkbox],
[type=radio],
[type=range] {
  accent-color: var(--pico-primary);
}

/**
 * Document
 * Content-box & Responsive typography
 */
*,
*::before,
*::after {
  box-sizing: border-box;
  background-repeat: no-repeat;
}

::before,
::after {
  text-decoration: inherit;
  vertical-align: inherit;
}

:where(:root),
:where(:host) {
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  background-color: var(--pico-background-color);
  color: var(--pico-color);
  font-weight: var(--pico-font-weight);
  font-size: var(--pico-font-size);
  line-height: var(--pico-line-height);
  font-family: var(--pico-font-family);
  text-underline-offset: var(--pico-text-underline-offset);
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4;
}

/**
 * Landmarks
 */
body {
  width: 100%;
  margin: 0;
}

main {
  display: block;
}

body > header,
body > main,
body > footer {
  padding-block: var(--pico-block-spacing-vertical);
}

/**
 * Section
 */
section {
  margin-bottom: var(--pico-block-spacing-vertical);
}

/**
 * Container
 */
.container,
.container-fluid {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--pico-spacing);
  padding-left: var(--pico-spacing);
}

@media (min-width: 576px) {
  .container {
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 100%;
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .container {
    max-width: 1280px;
  }
}

/**
 * Grid
 * Minimal grid system with auto-layout columns
 */
.grid {
  grid-column-gap: var(--pico-grid-column-gap);
  grid-row-gap: var(--pico-grid-row-gap);
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
  }
}
.grid > * {
  min-width: 0;
}

/**
 * Overflow auto
 */
.overflow-auto {
  overflow: auto;
}

/**
 * Typography
 */
b,
strong {
  font-weight: bolder;
}

sub,
sup {
  position: relative;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

address,
blockquote,
dl,
ol,
p,
pre,
table,
ul {
  margin-top: 0;
  margin-bottom: var(--pico-typography-spacing-vertical);
  color: var(--pico-color);
  font-style: normal;
  font-weight: var(--pico-font-weight);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: var(--pico-typography-spacing-vertical);
  color: var(--pico-color);
  font-weight: var(--pico-font-weight);
  font-size: var(--pico-font-size);
  line-height: var(--pico-line-height);
  font-family: var(--pico-font-family);
}

h1 {
  --pico-color: var(--pico-h1-color);
}

h2 {
  --pico-color: var(--pico-h2-color);
}

h3 {
  --pico-color: var(--pico-h3-color);
}

h4 {
  --pico-color: var(--pico-h4-color);
}

h5 {
  --pico-color: var(--pico-h5-color);
}

h6 {
  --pico-color: var(--pico-h6-color);
}

:where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) {
  margin-top: var(--pico-typography-spacing-top);
}

p {
  margin-bottom: var(--pico-typography-spacing-vertical);
}

hgroup {
  margin-bottom: var(--pico-typography-spacing-vertical);
}
hgroup > * {
  margin-top: 0;
  margin-bottom: 0;
}
hgroup > *:not(:first-child):last-child {
  --pico-color: var(--pico-muted-color);
  --pico-font-weight: unset;
  font-size: 1rem;
}

:where(ol, ul) li {
  margin-bottom: calc(var(--pico-typography-spacing-vertical) * 0.25);
}

:where(dl, ol, ul) :where(dl, ol, ul) {
  margin: 0;
  margin-top: calc(var(--pico-typography-spacing-vertical) * 0.25);
}

ul li {
  list-style: square;
}

mark {
  padding: 0.125rem 0.25rem;
  background-color: var(--pico-mark-background-color);
  color: var(--pico-mark-color);
  vertical-align: baseline;
}

blockquote {
  display: block;
  margin: var(--pico-typography-spacing-vertical) 0;
  padding: var(--pico-spacing);
  border-right: none;
  border-left: 0.25rem solid var(--pico-blockquote-border-color);
  border-inline-start: 0.25rem solid var(--pico-blockquote-border-color);
  border-inline-end: none;
}
blockquote footer {
  margin-top: calc(var(--pico-typography-spacing-vertical) * 0.5);
  color: var(--pico-blockquote-footer-color);
}

abbr[title] {
  border-bottom: 1px dotted;
  text-decoration: none;
  cursor: help;
}

ins {
  color: var(--pico-ins-color);
  text-decoration: none;
}

del {
  color: var(--pico-del-color);
}

::-moz-selection {
  background-color: var(--pico-text-selection-color);
}

::selection {
  background-color: var(--pico-text-selection-color);
}

/**
 * Link
 */
:where(a:not([role=button])),
[role=link] {
  --pico-color: var(--pico-primary);
  --pico-background-color: transparent;
  --pico-underline: var(--pico-primary-underline);
  outline: none;
  background-color: var(--pico-background-color);
  color: var(--pico-color);
  -webkit-text-decoration: var(--pico-text-decoration);
          text-decoration: var(--pico-text-decoration);
  text-decoration-color: var(--pico-underline);
  text-underline-offset: 0.125em;
  transition: background-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition), -webkit-text-decoration var(--pico-transition);
  transition: background-color var(--pico-transition), color var(--pico-transition), text-decoration var(--pico-transition), box-shadow var(--pico-transition);
  transition: background-color var(--pico-transition), color var(--pico-transition), text-decoration var(--pico-transition), box-shadow var(--pico-transition), -webkit-text-decoration var(--pico-transition);
}
:where(a:not([role=button])):is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[role=link]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-color: var(--pico-primary-hover);
  --pico-underline: var(--pico-primary-hover-underline);
  --pico-text-decoration: underline;
}
:where(a:not([role=button])):focus-visible,
[role=link]:focus-visible {
  box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
}
:where(a:not([role=button])).secondary,
[role=link].secondary {
  --pico-color: var(--pico-secondary);
  --pico-underline: var(--pico-secondary-underline);
}
:where(a:not([role=button])).secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[role=link].secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-color: var(--pico-secondary-hover);
  --pico-underline: var(--pico-secondary-hover-underline);
}
:where(a:not([role=button])).contrast,
[role=link].contrast {
  --pico-color: var(--pico-contrast);
  --pico-underline: var(--pico-contrast-underline);
}
:where(a:not([role=button])).contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[role=link].contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-color: var(--pico-contrast-hover);
  --pico-underline: var(--pico-contrast-hover-underline);
}

a[role=button] {
  display: inline-block;
}

/**
 * Button
 */
button {
  margin: 0;
  overflow: visible;
  font-family: inherit;
  text-transform: none;
}

button,
[type=submit],
[type=reset],
[type=button] {
  -webkit-appearance: button;
}

button,
[type=submit],
[type=reset],
[type=button],
[type=file]::file-selector-button,
[role=button] {
  --pico-background-color: var(--pico-primary-background);
  --pico-border-color: var(--pico-primary-border);
  --pico-color: var(--pico-primary-inverse);
  --pico-box-shadow: var(--pico-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
  padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
  border: var(--pico-border-width) solid var(--pico-border-color);
  border-radius: var(--pico-border-radius);
  outline: none;
  background-color: var(--pico-background-color);
  box-shadow: var(--pico-box-shadow);
  color: var(--pico-color);
  font-weight: var(--pico-font-weight);
  font-size: 1rem;
  line-height: var(--pico-line-height);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background-color var(--pico-transition), border-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition);
}
button:is([aria-current]:not([aria-current=false])), button:is(:hover, :active, :focus),
[type=submit]:is([aria-current]:not([aria-current=false])),
[type=submit]:is(:hover, :active, :focus),
[type=reset]:is([aria-current]:not([aria-current=false])),
[type=reset]:is(:hover, :active, :focus),
[type=button]:is([aria-current]:not([aria-current=false])),
[type=button]:is(:hover, :active, :focus),
[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])),
[type=file]::file-selector-button:is(:hover, :active, :focus),
[role=button]:is([aria-current]:not([aria-current=false])),
[role=button]:is(:hover, :active, :focus) {
  --pico-background-color: var(--pico-primary-hover-background);
  --pico-border-color: var(--pico-primary-hover-border);
  --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
  --pico-color: var(--pico-primary-inverse);
}
button:focus, button:is([aria-current]:not([aria-current=false])):focus,
[type=submit]:focus,
[type=submit]:is([aria-current]:not([aria-current=false])):focus,
[type=reset]:focus,
[type=reset]:is([aria-current]:not([aria-current=false])):focus,
[type=button]:focus,
[type=button]:is([aria-current]:not([aria-current=false])):focus,
[type=file]::file-selector-button:focus,
[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,
[role=button]:focus,
[role=button]:is([aria-current]:not([aria-current=false])):focus {
  --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
}

[type=submit],
[type=reset],
[type=button] {
  margin-bottom: var(--pico-spacing);
}

:is(button, [type=submit], [type=button], [role=button]).secondary,
[type=reset],
[type=file]::file-selector-button {
  --pico-background-color: var(--pico-secondary-background);
  --pico-border-color: var(--pico-secondary-border);
  --pico-color: var(--pico-secondary-inverse);
  cursor: pointer;
}
:is(button, [type=submit], [type=button], [role=button]).secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[type=reset]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-background-color: var(--pico-secondary-hover-background);
  --pico-border-color: var(--pico-secondary-hover-border);
  --pico-color: var(--pico-secondary-inverse);
}
:is(button, [type=submit], [type=button], [role=button]).secondary:focus, :is(button, [type=submit], [type=button], [role=button]).secondary:is([aria-current]:not([aria-current=false])):focus,
[type=reset]:focus,
[type=reset]:is([aria-current]:not([aria-current=false])):focus,
[type=file]::file-selector-button:focus,
[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus {
  --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
}

:is(button, [type=submit], [type=button], [role=button]).contrast {
  --pico-background-color: var(--pico-contrast-background);
  --pico-border-color: var(--pico-contrast-border);
  --pico-color: var(--pico-contrast-inverse);
}
:is(button, [type=submit], [type=button], [role=button]).contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-background-color: var(--pico-contrast-hover-background);
  --pico-border-color: var(--pico-contrast-hover-border);
  --pico-color: var(--pico-contrast-inverse);
}
:is(button, [type=submit], [type=button], [role=button]).contrast:focus, :is(button, [type=submit], [type=button], [role=button]).contrast:is([aria-current]:not([aria-current=false])):focus {
  --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--pico-outline-width) var(--pico-contrast-focus);
}

:is(button, [type=submit], [type=button], [role=button]).outline,
[type=reset].outline {
  --pico-background-color: transparent;
  --pico-color: var(--pico-primary);
  --pico-border-color: var(--pico-primary);
}
:is(button, [type=submit], [type=button], [role=button]).outline:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[type=reset].outline:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-background-color: transparent;
  --pico-color: var(--pico-primary-hover);
  --pico-border-color: var(--pico-primary-hover);
}

:is(button, [type=submit], [type=button], [role=button]).outline.secondary,
[type=reset].outline {
  --pico-color: var(--pico-secondary);
  --pico-border-color: var(--pico-secondary);
}
:is(button, [type=submit], [type=button], [role=button]).outline.secondary:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
[type=reset].outline:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-color: var(--pico-secondary-hover);
  --pico-border-color: var(--pico-secondary-hover);
}

:is(button, [type=submit], [type=button], [role=button]).outline.contrast {
  --pico-color: var(--pico-contrast);
  --pico-border-color: var(--pico-contrast);
}
:is(button, [type=submit], [type=button], [role=button]).outline.contrast:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
  --pico-color: var(--pico-contrast-hover);
  --pico-border-color: var(--pico-contrast-hover);
}

:where(button, [type=submit], [type=reset], [type=button], [role=button])[disabled],
:where(fieldset[disabled]) :is(button, [type=submit], [type=button], [type=reset], [role=button]) {
  opacity: 0.5;
  pointer-events: none;
}

/**
 * Embedded content
 */
:where(audio, canvas, iframe, img, svg, video) {
  vertical-align: middle;
}

audio,
video {
  display: inline-block;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

:where(iframe) {
  border-style: none;
}

img {
  max-width: 100%;
  height: auto;
  border-style: none;
}

:where(svg:not([fill])) {
  fill: currentColor;
}

svg:not(:root),
svg:not(:host) {
  overflow: hidden;
}

/**
 * Figure
 */
figure {
  display: block;
  margin: 0;
  padding: 0;
}
figure figcaption {
  padding: calc(var(--pico-spacing) * 0.5) 0;
  color: var(--pico-muted-color);
}

/**
 * Misc
 */
hr {
  height: 0;
  margin: var(--pico-typography-spacing-vertical) 0;
  border: 0;
  border-top: 1px solid var(--pico-muted-border-color);
  color: inherit;
}

[hidden],
template {
  display: none !important;
}

canvas {
  display: inline-block;
}

/**
 * Basics form elements
 */
input,
optgroup,
select,
textarea {
  margin: 0;
  font-size: 1rem;
  line-height: var(--pico-line-height);
  font-family: inherit;
  letter-spacing: inherit;
}

input {
  overflow: visible;
}

select {
  text-transform: none;
}

legend {
  max-width: 100%;
  padding: 0;
  color: inherit;
  white-space: normal;
}

textarea {
  overflow: auto;
}

[type=checkbox],
[type=radio] {
  padding: 0;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

:-moz-focusring {
  outline: none;
}

:-moz-ui-invalid {
  box-shadow: none;
}

::-ms-expand {
  display: none;
}

[type=file],
[type=range] {
  padding: 0;
  border-width: 0;
}

input:not([type=checkbox], [type=radio], [type=range]) {
  height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);
}

fieldset {
  width: 100%;
  margin: 0;
  margin-bottom: var(--pico-spacing);
  padding: 0;
  border: 0;
}

label,
fieldset legend {
  display: block;
  margin-bottom: calc(var(--pico-spacing) * 0.375);
  color: var(--pico-color);
  font-weight: var(--pico-form-label-font-weight, var(--pico-font-weight));
}

fieldset legend {
  margin-bottom: calc(var(--pico-spacing) * 0.5);
}

input:not([type=checkbox], [type=radio]),
button[type=submit],
select,
textarea {
  width: 100%;
}

input:not([type=checkbox], [type=radio], [type=range], [type=file]),
select,
textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
}

input,
select,
textarea {
  --pico-background-color: var(--pico-form-element-background-color);
  --pico-border-color: var(--pico-form-element-border-color);
  --pico-color: var(--pico-form-element-color);
  --pico-box-shadow: none;
  border: var(--pico-border-width) solid var(--pico-border-color);
  border-radius: var(--pico-border-radius);
  outline: none;
  background-color: var(--pico-background-color);
  box-shadow: var(--pico-box-shadow);
  color: var(--pico-color);
  font-weight: var(--pico-font-weight);
  transition: background-color var(--pico-transition), border-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition);
}

input:not([type=submit],
[type=button],
[type=reset],
[type=checkbox],
[type=radio],
[readonly]):is(:active, :focus),
:where(select, textarea):not([readonly]):is(:active, :focus) {
  --pico-background-color: var(--pico-form-element-active-background-color);
}

input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),
:where(select, textarea):not([readonly]):is(:active, :focus) {
  --pico-border-color: var(--pico-form-element-active-border-color);
}

input:not([type=submit],
[type=button],
[type=reset],
[type=range],
[type=file],
[readonly]):focus,
:where(select, textarea):not([readonly]):focus {
  --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
}

input:not([type=submit], [type=button], [type=reset])[disabled],
select[disabled],
textarea[disabled],
label[aria-disabled=true],
:where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
  opacity: var(--pico-form-element-disabled-opacity);
  pointer-events: none;
}

label[aria-disabled=true] input[disabled] {
  opacity: 1;
}

:where(input, select, textarea):not([type=checkbox],
[type=radio],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week],
[type=range])[aria-invalid] {
  padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
  padding-left: var(--pico-form-element-spacing-horizontal);
  padding-inline-start: var(--pico-form-element-spacing-horizontal) !important;
  padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
  background-position: center right 0.75rem;
  background-size: 1rem auto;
  background-repeat: no-repeat;
}
:where(input, select, textarea):not([type=checkbox],
[type=radio],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week],
[type=range])[aria-invalid=false]:not(select) {
  background-image: var(--pico-icon-valid);
}
:where(input, select, textarea):not([type=checkbox],
[type=radio],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week],
[type=range])[aria-invalid=true]:not(select) {
  background-image: var(--pico-icon-invalid);
}
:where(input, select, textarea)[aria-invalid=false] {
  --pico-border-color: var(--pico-form-element-valid-border-color);
}
:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {
  --pico-border-color: var(--pico-form-element-valid-active-border-color) !important;
}
:where(input, select, textarea)[aria-invalid=false]:is(:active, :focus):not([type=checkbox], [type=radio]) {
  --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color) !important;
}
:where(input, select, textarea)[aria-invalid=true] {
  --pico-border-color: var(--pico-form-element-invalid-border-color);
}
:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {
  --pico-border-color: var(--pico-form-element-invalid-active-border-color) !important;
}
:where(input, select, textarea)[aria-invalid=true]:is(:active, :focus):not([type=checkbox], [type=radio]) {
  --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color) !important;
}

[dir=rtl] :where(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false]) {
  background-position: center left 0.75rem;
}

input::placeholder,
input::-webkit-input-placeholder,
textarea::placeholder,
textarea::-webkit-input-placeholder,
select:invalid {
  color: var(--pico-form-element-placeholder-color);
  opacity: 1;
}

input:not([type=checkbox], [type=radio]),
select,
textarea {
  margin-bottom: var(--pico-spacing);
}

select::-ms-expand {
  border: 0;
  background-color: transparent;
}
select:not([multiple], [size]) {
  padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
  padding-left: var(--pico-form-element-spacing-horizontal);
  padding-inline-start: var(--pico-form-element-spacing-horizontal);
  padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
  background-image: var(--pico-icon-chevron);
  background-position: center right 0.75rem;
  background-size: 1rem auto;
  background-repeat: no-repeat;
}
select[multiple] option:checked {
  background: var(--pico-form-element-selected-background-color);
  color: var(--pico-form-element-color);
}

[dir=rtl] select:not([multiple], [size]) {
  background-position: center left 0.75rem;
}

textarea {
  display: block;
  resize: vertical;
}
textarea[aria-invalid] {
  --pico-icon-height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);
  background-position: top right 0.75rem !important;
  background-size: 1rem var(--pico-icon-height) !important;
}

:where(input, select, textarea, fieldset, .grid) + small {
  display: block;
  width: 100%;
  margin-top: calc(var(--pico-spacing) * -0.75);
  margin-bottom: var(--pico-spacing);
  color: var(--pico-muted-color);
}
:where(input, select, textarea, fieldset, .grid)[aria-invalid=false] + small {
  color: var(--pico-ins-color);
}
:where(input, select, textarea, fieldset, .grid)[aria-invalid=true] + small {
  color: var(--pico-del-color);
}

label > :where(input, select, textarea) {
  margin-top: calc(var(--pico-spacing) * 0.25);
}

/**
 * Checkboxes, Radios and Switches
 */
label:has([type=checkbox], [type=radio]) {
  width: -moz-fit-content;
  width: fit-content;
  cursor: pointer;
}

[type=checkbox],
[type=radio] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 1.25em;
  height: 1.25em;
  margin-top: -0.125em;
  margin-inline-end: 0.5em;
  border-width: var(--pico-border-width);
  vertical-align: middle;
  cursor: pointer;
}
[type=checkbox]::-ms-check,
[type=radio]::-ms-check {
  display: none;
}
[type=checkbox]:checked, [type=checkbox]:checked:active, [type=checkbox]:checked:focus,
[type=radio]:checked,
[type=radio]:checked:active,
[type=radio]:checked:focus {
  --pico-background-color: var(--pico-primary-background);
  --pico-border-color: var(--pico-primary-border);
  background-image: var(--pico-icon-checkbox);
  background-position: center;
  background-size: 0.75em auto;
  background-repeat: no-repeat;
}
[type=checkbox] ~ label,
[type=radio] ~ label {
  display: inline-block;
  margin-bottom: 0;
  cursor: pointer;
}
[type=checkbox] ~ label:not(:last-of-type),
[type=radio] ~ label:not(:last-of-type) {
  margin-inline-end: 1em;
}

[type=checkbox]:indeterminate {
  --pico-background-color: var(--pico-primary-background);
  --pico-border-color: var(--pico-primary-border);
  background-image: var(--pico-icon-minus);
  background-position: center;
  background-size: 0.75em auto;
  background-repeat: no-repeat;
}

[type=radio] {
  border-radius: 50%;
}
[type=radio]:checked, [type=radio]:checked:active, [type=radio]:checked:focus {
  --pico-background-color: var(--pico-primary-inverse);
  border-width: 0.35em;
  background-image: none;
}

[type=checkbox][role=switch] {
  --pico-background-color: var(--pico-switch-background-color);
  --pico-color: var(--pico-switch-color);
  width: 2.25em;
  height: 1.25em;
  border: var(--pico-border-width) solid var(--pico-border-color);
  border-radius: 1.25em;
  background-color: var(--pico-background-color);
  line-height: 1.25em;
}
[type=checkbox][role=switch]:not([aria-invalid]) {
  --pico-border-color: var(--pico-switch-background-color);
}
[type=checkbox][role=switch]:before {
  display: block;
  aspect-ratio: 1;
  height: 100%;
  border-radius: 50%;
  background-color: var(--pico-color);
  box-shadow: var(--pico-switch-thumb-box-shadow);
  content: "";
  transition: margin 0.1s ease-in-out;
}
[type=checkbox][role=switch]:focus {
  --pico-background-color: var(--pico-switch-background-color);
  --pico-border-color: var(--pico-switch-background-color);
}
[type=checkbox][role=switch]:checked {
  --pico-background-color: var(--pico-switch-checked-background-color);
  --pico-border-color: var(--pico-switch-checked-background-color);
  background-image: none;
}
[type=checkbox][role=switch]:checked::before {
  margin-inline-start: calc(2.25em - 1.25em);
}
[type=checkbox][role=switch][disabled] {
  --pico-background-color: var(--pico-border-color);
}

[type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus,
[type=checkbox][role=switch][aria-invalid=false]:checked,
[type=checkbox][role=switch][aria-invalid=false]:checked:active,
[type=checkbox][role=switch][aria-invalid=false]:checked:focus {
  --pico-background-color: var(--pico-form-element-valid-border-color);
}
[type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
[type=checkbox][role=switch]:checked[aria-invalid=true],
[type=checkbox][role=switch]:checked:active[aria-invalid=true],
[type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
  --pico-background-color: var(--pico-form-element-invalid-border-color);
}

[type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus,
[type=radio][aria-invalid=false]:checked,
[type=radio][aria-invalid=false]:checked:active,
[type=radio][aria-invalid=false]:checked:focus,
[type=checkbox][role=switch][aria-invalid=false]:checked,
[type=checkbox][role=switch][aria-invalid=false]:checked:active,
[type=checkbox][role=switch][aria-invalid=false]:checked:focus {
  --pico-border-color: var(--pico-form-element-valid-border-color);
}
[type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
[type=radio]:checked[aria-invalid=true],
[type=radio]:checked:active[aria-invalid=true],
[type=radio]:checked:focus[aria-invalid=true],
[type=checkbox][role=switch]:checked[aria-invalid=true],
[type=checkbox][role=switch]:checked:active[aria-invalid=true],
[type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
  --pico-border-color: var(--pico-form-element-invalid-border-color);
}

/**
 * Input type search
 */
input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
  padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
  background-image: var(--pico-icon-search);
  background-position: center left calc(var(--pico-form-element-spacing-horizontal) + 0.125rem);
  background-size: 1rem auto;
  background-repeat: no-repeat;
}
input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {
  padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem) !important;
  background-position: center left 1.125rem, center right 0.75rem;
}
input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=false] {
  background-image: var(--pico-icon-search), var(--pico-icon-valid);
}
input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid=true] {
  background-image: var(--pico-icon-search), var(--pico-icon-invalid);
}

[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search] {
  background-position: center right 1.125rem;
}
[dir=rtl] :where(input):not([type=checkbox], [type=radio], [type=range], [type=file])[type=search][aria-invalid] {
  background-position: center right 1.125rem, center left 0.75rem;
}

/**
 * Accordion (<details>)
 */
details {
  display: block;
  margin-bottom: var(--pico-spacing);
}
details summary {
  line-height: 1rem;
  list-style-type: none;
  cursor: pointer;
  transition: color var(--pico-transition);
}
details summary:not([role]) {
  color: var(--pico-accordion-close-summary-color);
}
details summary::-webkit-details-marker {
  display: none;
}
details summary::marker {
  display: none;
}
details summary::-moz-list-bullet {
  list-style-type: none;
}
details summary::after {
  display: block;
  width: 1rem;
  height: 1rem;
  margin-inline-start: calc(var(--pico-spacing, 1rem) * 0.5);
  float: right;
  transform: rotate(-90deg);
  background-image: var(--pico-icon-chevron);
  background-position: right center;
  background-size: 1rem auto;
  background-repeat: no-repeat;
  content: "";
  transition: transform var(--pico-transition);
}
details summary:focus {
  outline: none;
}
details summary:focus:not([role]) {
  color: var(--pico-accordion-active-summary-color);
}
details summary:focus-visible:not([role]) {
  outline: var(--pico-outline-width) solid var(--pico-primary-focus);
  outline-offset: calc(var(--pico-spacing, 1rem) * 0.5);
  color: var(--pico-primary);
}
details summary[role=button] {
  width: 100%;
  text-align: left;
}
details summary[role=button]::after {
  height: calc(1rem * var(--pico-line-height, 1.5));
}
details[open] > summary {
  margin-bottom: var(--pico-spacing);
}
details[open] > summary:not([role]):not(:focus) {
  color: var(--pico-accordion-open-summary-color);
}
details[open] > summary::after {
  transform: rotate(0);
}

[dir=rtl] details summary {
  text-align: right;
}
[dir=rtl] details summary::after {
  float: left;
  background-position: left center;
}

/**
 * Card (<article>)
 */
article {
  margin-bottom: var(--pico-block-spacing-vertical);
  padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);
  border-radius: var(--pico-border-radius);
  background: var(--pico-card-background-color);
  box-shadow: var(--pico-card-box-shadow);
}
article > header,
article > footer {
  margin-right: calc(var(--pico-block-spacing-horizontal) * -1);
  margin-left: calc(var(--pico-block-spacing-horizontal) * -1);
  padding: calc(var(--pico-block-spacing-vertical) * 0.66) var(--pico-block-spacing-horizontal);
  background-color: var(--pico-card-sectioning-background-color);
}
article > header {
  margin-top: calc(var(--pico-block-spacing-vertical) * -1);
  margin-bottom: var(--pico-block-spacing-vertical);
  border-bottom: var(--pico-border-width) solid var(--pico-card-border-color);
  border-top-right-radius: var(--pico-border-radius);
  border-top-left-radius: var(--pico-border-radius);
}
article > footer {
  margin-top: var(--pico-block-spacing-vertical);
  margin-bottom: calc(var(--pico-block-spacing-vertical) * -1);
  border-top: var(--pico-border-width) solid var(--pico-card-border-color);
  border-bottom-right-radius: var(--pico-border-radius);
  border-bottom-left-radius: var(--pico-border-radius);
}

/**
 * Dropdown (details.dropdown)
 */
details.dropdown {
  position: relative;
  border-bottom: none;
}
details.dropdown > summary::after,
details.dropdown > button::after,
details.dropdown > a::after {
  display: block;
  width: 1rem;
  height: calc(1rem * var(--pico-line-height, 1.5));
  margin-inline-start: 0.25rem;
  float: right;
  transform: rotate(0deg) translateX(0.2rem);
  background-image: var(--pico-icon-chevron);
  background-position: right center;
  background-size: 1rem auto;
  background-repeat: no-repeat;
  content: "";
}

nav details.dropdown {
  margin-bottom: 0;
}

details.dropdown > summary:not([role]) {
  height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);
  padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
  border: var(--pico-border-width) solid var(--pico-form-element-border-color);
  border-radius: var(--pico-border-radius);
  background-color: var(--pico-form-element-background-color);
  color: var(--pico-form-element-placeholder-color);
  line-height: inherit;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: background-color var(--pico-transition), border-color var(--pico-transition), color var(--pico-transition), box-shadow var(--pico-transition);
}
details.dropdown > summary:not([role]):active, details.dropdown > summary:not([role]):focus {
  border-color: var(--pico-form-element-active-border-color);
  background-color: var(--pico-form-element-active-background-color);
}
details.dropdown > summary:not([role]):focus {
  box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
}
details.dropdown > summary:not([role]):focus-visible {
  outline: none;
}
details.dropdown > summary:not([role])[aria-invalid=false] {
  --pico-form-element-border-color: var(--pico-form-element-valid-border-color);
  --pico-form-element-active-border-color: var(--pico-form-element-valid-focus-color);
  --pico-form-element-focus-color: var(--pico-form-element-valid-focus-color);
}
details.dropdown > summary:not([role])[aria-invalid=true] {
  --pico-form-element-border-color: var(--pico-form-element-invalid-border-color);
  --pico-form-element-active-border-color: var(--pico-form-element-invalid-focus-color);
  --pico-form-element-focus-color: var(--pico-form-element-invalid-focus-color);
}

nav details.dropdown {
  display: inline;
  margin: calc(var(--pico-nav-element-spacing-vertical) * -1) 0;
}
nav details.dropdown > summary::after {
  transform: rotate(0deg) translateX(0rem);
}
nav details.dropdown > summary:not([role]) {
  height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);
  padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal);
}
nav details.dropdown > summary:not([role]):focus-visible {
  box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
}

details.dropdown > summary + ul {
  display: flex;
  z-index: 99;
  position: absolute;
  left: 0;
  flex-direction: column;
  width: 100%;
  min-width: -moz-fit-content;
  min-width: fit-content;
  margin: 0;
  margin-top: var(--pico-outline-width);
  padding: 0;
  border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
  border-radius: var(--pico-border-radius);
  background-color: var(--pico-dropdown-background-color);
  box-shadow: var(--pico-dropdown-box-shadow);
  color: var(--pico-dropdown-color);
  white-space: nowrap;
  opacity: 0;
  transition: opacity var(--pico-transition), transform 0s ease-in-out 1s;
}
details.dropdown > summary + ul[dir=rtl] {
  right: 0;
  left: auto;
}
details.dropdown > summary + ul li {
  width: 100%;
  margin-bottom: 0;
  padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) var(--pico-form-element-spacing-horizontal);
  list-style: none;
}
details.dropdown > summary + ul li:first-of-type {
  margin-top: calc(var(--pico-form-element-spacing-vertical) * 0.5);
}
details.dropdown > summary + ul li:last-of-type {
  margin-bottom: calc(var(--pico-form-element-spacing-vertical) * 0.5);
}
details.dropdown > summary + ul li a {
  display: block;
  margin: calc(var(--pico-form-element-spacing-vertical) * -0.5) calc(var(--pico-form-element-spacing-horizontal) * -1);
  padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) var(--pico-form-element-spacing-horizontal);
  overflow: hidden;
  border-radius: 0;
  color: var(--pico-dropdown-color);
  text-decoration: none;
  text-overflow: ellipsis;
}
details.dropdown > summary + ul li a:hover, details.dropdown > summary + ul li a:focus, details.dropdown > summary + ul li a:active, details.dropdown > summary + ul li a:focus-visible, details.dropdown > summary + ul li a[aria-current]:not([aria-current=false]) {
  background-color: var(--pico-dropdown-hover-background-color);
}
details.dropdown > summary + ul li label {
  width: 100%;
}
details.dropdown > summary + ul li:has(label):hover {
  background-color: var(--pico-dropdown-hover-background-color);
}

details.dropdown[open] > summary {
  margin-bottom: 0;
}

details.dropdown[open] > summary + ul {
  transform: scaleY(1);
  opacity: 1;
  transition: opacity var(--pico-transition), transform 0s ease-in-out 0s;
}

details.dropdown[open] > summary::before {
  display: block;
  z-index: 1;
  position: fixed;
  width: 100vw;
  height: 100vh;
  inset: 0;
  background: none;
  content: "";
  cursor: default;
}

label > details.dropdown {
  margin-top: calc(var(--pico-spacing) * 0.25);
}

/**
 * Group ([role="group"], [role="search"])
 */
[role=search],
[role=group] {
  display: inline-flex;
  position: relative;
  width: 100%;
  margin-bottom: var(--pico-spacing);
  border-radius: var(--pico-border-radius);
  box-shadow: var(--pico-group-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
  vertical-align: middle;
  transition: box-shadow var(--pico-transition);
}
[role=search] > *,
[role=search] input:not([type=checkbox], [type=radio]),
[role=search] select,
[role=group] > *,
[role=group] input:not([type=checkbox], [type=radio]),
[role=group] select {
  position: relative;
  flex: 1 1 auto;
  margin-bottom: 0;
}
[role=search] > *:not(:first-child),
[role=search] input:not([type=checkbox], [type=radio]):not(:first-child),
[role=search] select:not(:first-child),
[role=group] > *:not(:first-child),
[role=group] input:not([type=checkbox], [type=radio]):not(:first-child),
[role=group] select:not(:first-child) {
  margin-left: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
[role=search] > *:not(:last-child),
[role=search] input:not([type=checkbox], [type=radio]):not(:last-child),
[role=search] select:not(:last-child),
[role=group] > *:not(:last-child),
[role=group] input:not([type=checkbox], [type=radio]):not(:last-child),
[role=group] select:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
[role=search] > *:focus,
[role=search] input:not([type=checkbox], [type=radio]):focus,
[role=search] select:focus,
[role=group] > *:focus,
[role=group] input:not([type=checkbox], [type=radio]):focus,
[role=group] select:focus {
  z-index: 2;
}
[role=search] button:not(:first-child),
[role=search] [type=submit]:not(:first-child),
[role=search] [type=reset]:not(:first-child),
[role=search] [type=button]:not(:first-child),
[role=search] [role=button]:not(:first-child),
[role=search] input:not([type=checkbox], [type=radio]):not(:first-child),
[role=search] select:not(:first-child),
[role=group] button:not(:first-child),
[role=group] [type=submit]:not(:first-child),
[role=group] [type=reset]:not(:first-child),
[role=group] [type=button]:not(:first-child),
[role=group] [role=button]:not(:first-child),
[role=group] input:not([type=checkbox], [type=radio]):not(:first-child),
[role=group] select:not(:first-child) {
  margin-left: calc(var(--pico-border-width) * -1);
}
[role=search] button,
[role=search] [type=submit],
[role=search] [type=reset],
[role=search] [type=button],
[role=search] [role=button],
[role=group] button,
[role=group] [type=submit],
[role=group] [type=reset],
[role=group] [type=button],
[role=group] [role=button] {
  width: auto;
}
@supports selector(:has(*)) {
  [role=search]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus),
  [role=group]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) {
    --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button);
  }
  [role=search]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) input:not([type=checkbox], [type=radio]),
  [role=search]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) select,
  [role=group]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) input:not([type=checkbox], [type=radio]),
  [role=group]:has(button:focus, [type=submit]:focus, [type=button]:focus, [role=button]:focus) select {
    border-color: transparent;
  }
  [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus),
  [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) {
    --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input);
  }
  [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) button,
  [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=submit],
  [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=button],
  [role=search]:has(input:not([type=submit], [type=button]):focus, select:focus) [role=button],
  [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) button,
  [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=submit],
  [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) [type=button],
  [role=group]:has(input:not([type=submit], [type=button]):focus, select:focus) [role=button] {
    --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border);
    --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border);
  }
  [role=search] button:focus,
  [role=search] [type=submit]:focus,
  [role=search] [type=reset]:focus,
  [role=search] [type=button]:focus,
  [role=search] [role=button]:focus,
  [role=group] button:focus,
  [role=group] [type=submit]:focus,
  [role=group] [type=reset]:focus,
  [role=group] [type=button]:focus,
  [role=group] [role=button]:focus {
    box-shadow: none;
  }
}

[role=search] > *:first-child {
  border-top-left-radius: 5rem;
  border-bottom-left-radius: 5rem;
}
[role=search] > *:last-child {
  border-top-right-radius: 5rem;
  border-bottom-right-radius: 5rem;
}

/**
 * Nav
 */
:where(nav li)::before {
  float: left;
  content: "​";
}

nav,
nav ul {
  display: flex;
}

nav {
  justify-content: space-between;
  overflow: visible;
}
nav ol,
nav ul {
  align-items: center;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
}
nav ol:first-of-type,
nav ul:first-of-type {
  margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
}
nav ol:last-of-type,
nav ul:last-of-type {
  margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
}
nav li {
  display: inline-block;
  margin: 0;
  padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);
}
nav li :where(a, [role=link]) {
  display: inline-block;
  margin: calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1);
  padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);
  border-radius: var(--pico-border-radius);
}
nav li :where(a, [role=link]):not(:hover) {
  text-decoration: none;
}
nav li button,
nav li [role=button],
nav li [type=button],
nav li input:not([type=checkbox], [type=radio], [type=range], [type=file]),
nav li select {
  height: auto;
  margin-right: inherit;
  margin-bottom: 0;
  margin-left: inherit;
  padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal);
}
nav[aria-label=breadcrumb] {
  align-items: center;
  justify-content: start;
}
nav[aria-label=breadcrumb] ul li:not(:first-child) {
  margin-inline-start: var(--pico-nav-link-spacing-horizontal);
}
nav[aria-label=breadcrumb] ul li a {
  margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0;
  margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1);
}
nav[aria-label=breadcrumb] ul li:not(:last-child)::after {
  display: inline-block;
  position: absolute;
  width: calc(var(--pico-nav-link-spacing-horizontal) * 4);
  margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1);
  content: var(--pico-nav-breadcrumb-divider);
  color: var(--pico-muted-color);
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}
nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]) {
  background-color: transparent;
  color: inherit;
  text-decoration: none;
  pointer-events: none;
}

aside nav,
aside ol,
aside ul,
aside li {
  display: block;
}
aside li {
  padding: calc(var(--pico-nav-element-spacing-vertical) * 0.5) var(--pico-nav-element-spacing-horizontal);
}
aside li a {
  display: block;
}
aside li [role=button] {
  margin: inherit;
}

[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after {
  content: "\\";
}

/**
 * Accessibility & User interaction
 */
[aria-controls] {
  cursor: pointer;
}

[aria-disabled=true],
[disabled] {
  cursor: not-allowed;
}

[aria-hidden=false][hidden] {
  display: initial;
}

[aria-hidden=false][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  position: absolute;
}

a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
  -ms-touch-action: manipulation;
}

[dir=rtl] {
  direction: rtl;
}

/**
 * Reduce Motion Features
 */
@media (prefers-reduced-motion: reduce) {
  *:not([aria-busy=true]),
  :not([aria-busy=true])::before,
  :not([aria-busy=true])::after {
    background-attachment: initial !important;
    animation-duration: 1ms !important;
    animation-delay: -1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-delay: 0s !important;
    transition-duration: 0s !important;
  }
}
[data-theme=light],
:root:not([data-theme=dark]) {
  --pico-background-color: var(--mt-background-color, #fff);
  --pico-color: var(--mt-color, #373c44);
  --pico-text-selection-color: rgba(2, 154, 232, 0.25);
  --pico-muted-color: #646b79;
  --pico-muted-border-color: rgb(231, 234, 239.5);
  --pico-primary: var(--mt-primary-color, #00599c);
  --pico-primary-background: var(--mt-primary-color, #00599c);
  --pico-primary-hover-background: var(--mt-primary-color-darken, rgb(0, 59.9038461538, 105));
  --pico-primary-hover-underline: var(--mt-primary-color, #00599c);
  --pico-primary-border: var(--mt-primary-color, #00599c);
  --pico-primary-hover: var(--mt-primary-color-darken, rgb(0, 59.9038461538, 105));
  --pico-primary-underline: var(--mt-primary-color-lighten, rgb(0, 118.0961538462, 207));
  --pico-primary-focus: var(--mt-primary-color-lighten, rgb(0, 118.0961538462, 207));
  --pico-primary-inverse: var(--mt-primary-inverse-color, #ffffff);
  --pico-secondary: var(--mt-secondary-color, #737987);
  --pico-secondary-background: var(--mt-secondary-color, #737987);
  --pico-secondary-hover-background: var(--mt-secondary-color-darken, rgb(91.54, 96.316, 107.46));
  --pico-secondary-hover-underline: var(--mt-secondary-color, #737987);
  --pico-secondary-border: var(--mt-secondary-color, #737987);
  --pico-secondary-hover: var(--mt-secondary-color-darken, rgb(91.54, 96.316, 107.46));
  --pico-secondary-underline: var(--mt-secondary-color-lighten, rgb(142.14, 147.156, 158.86));
  --pico-secondary-focus: var(--mt-secondary-color-lighten, rgb(142.14, 147.156, 158.86));
  --pico-secondary-inverse: var(--mt-secondary-inverse-color, #ffffff);
  --pico-contrast: var(--mt-contrast-color, #181c25);
  --pico-contrast-background: var(--mt-contrast-color, #181c25);
  --pico-contrast-hover-background: var(--mt-contrast-color-darken, rgb(3.9344262295, 4.5901639344, 6.0655737705));
  --pico-contrast-hover-underline: var(--mt-contrast-color, #181c25);
  --pico-contrast-border: var(--mt-contrast-color, #181c25);
  --pico-contrast-hover: var(--mt-contrast-color-darken, rgb(3.9344262295, 4.5901639344, 6.0655737705));
  --pico-contrast-underline: var(--mt-contrast-color-lighten, rgb(44.0655737705, 51.4098360656, 67.9344262295));
  --pico-contrast-focus: var(--mt-contrast-color-lighten, rgb(44.0655737705, 51.4098360656, 67.9344262295));
  --pico-contrast-inverse: var(--mt-contrast-inverse-color, #ffffff);
  --pico-font-family: var(--mt-font-family, Inter, Tahoma, Verdana, sans-serif);
  --pico-font-size: var(--mt-font-size, 1rem);
  --pico-line-height: var(--mt-line-height, 1.4rem);
  --pico-font-weight: var(--mt-font-weight, 400);
  --pico-heading-font-weight: var(--mt-heading-font-weight, 700);
  --pico-letter-spacing: var(--mt-letter-spacing, normal);
  --pico-block-spacing-vertical: 1.5rem;
}

[data-theme=dark],
:root[data-theme=dark] {
  --pico-background-color: var(--mt-tdark-background-color, #1d2327);
  --pico-color: var(--mt-tdark-color, #1d2327);
  --pico-text-selection-color: rgba(2, 154, 232, 0.25);
  --pico-muted-color: #646b79;
  --pico-muted-border-color: rgb(231, 234, 239.5);
  --pico-primary: var(--mt-tdark-primary-color, #5bb4df);
  --pico-primary-background: var(--mt-tdark-primary-color, #5bb4df);
  --pico-primary-hover-background: var(--mt-tdark-primary-color-lighten, rgb(133.6734693878, 199.5153061224, 231.3265306122));
  --pico-primary-hover-underline: var(--mt-tdark-primary-color, #5bb4df);
  --pico-primary-border: var(--mt-tdark-primary-color, #5bb4df);
  --pico-primary-hover: var(--mt-tdark-primary-color-lighten, rgb(133.6734693878, 199.5153061224, 231.3265306122));
  --pico-primary-underline: var(--mt-tdark-primary-color-darken, rgb(48.3265306122, 160.4846938776, 214.6734693878));
  --pico-primary-focus: var(--mt-tdark-primary-color-darken, rgb(48.3265306122, 160.4846938776, 214.6734693878));
  --pico-primary-inverse: var(--mt-tdark-primary-inverse-color, #121212);
  --pico-secondary: var(--mt-tdark-secondary-color, #a3a9b7);
  --pico-secondary-background: var(--mt-tdark-secondary-color, #a3a9b7);
  --pico-secondary-hover-background: var(--mt-tdark-secondary-color-lighten, rgb(191.6097560976, 195.743902439, 205.3902439024));
  --pico-secondary-hover-underline: var(--mt-tdark-secondary-color, #a3a9b7);
  --pico-secondary-border: var(--mt-tdark-secondary-color, #a3a9b7);
  --pico-secondary-hover: var(--mt-tdark-secondary-color-lighten, rgb(191.6097560976, 195.743902439, 205.3902439024));
  --pico-secondary-underline: var(--mt-tdark-secondary-color-darken, rgb(134.3902439024, 142.256097561, 160.6097560976));
  --pico-secondary-focus: var(--mt-tdark-secondary-color-darken, rgb(134.3902439024, 142.256097561, 160.6097560976));
  --pico-secondary-inverse: var(--mt-tdark-secondary-inverse-color, #121212);
  --pico-contrast: var(--mt-tdark-contrast-color, #f5f7fa);
  --pico-contrast-background: var(--mt-tdark-contrast-color, #f5f7fa);
  --pico-contrast-hover-background: var(--mt-tdark-contrast-color-lighten, hsl(216, 33.3333333333%, 107.0588235294%));
  --pico-contrast-hover-underline: var(--mt-tdark-contrast-color, #f5f7fa);
  --pico-contrast-border: var(--mt-tdark-contrast-color, #f5f7fa);
  --pico-contrast-hover: var(--mt-tdark-contrast-color-lighten, hsl(216, 33.3333333333%, 107.0588235294%));
  --pico-contrast-underline: var(--mt-tdark-contrast-color-darken, rgb(211, 219.8, 233));
  --pico-contrast-focus: var(--mt-tdark-contrast-color-darken, rgb(211, 219.8, 233));
  --pico-contrast-inverse: var(--mt-tdark-contrast-inverse-color, #121212);
  --pico-font-family: var(--mt-font-family, Inter, Tahoma, Verdana, sans-serif);
  --pico-font-size: var(--mt-font-size, 1rem);
  --pico-line-height: var(--mt-line-height, 1.4rem);
  --pico-font-weight: var(--mt-font-weight, 400);
  --pico-heading-font-weight: var(--mt-heading-font-weight, 700);
  --pico-letter-spacing: var(--mt-letter-spacing, normal);
  --pico-block-spacing-vertical: 1.5rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--mt-heading-font-family, Roboto, Georgia, serif);
}

ul li {
  list-style: disc;
}

blockquote, blockquote p {
  font-style: italic;
}

html {
  scroll-behavior: smooth;
  position: relative;
  margin-top: 0 !important;
}
html body {
  padding-top: var(--wp-admin--admin-bar--height, 0px);
}
html body > .site-header,
html body > .header-nav-menu,
html body > .main-grid,
html body > .site-footer,
html body > .page-intro {
  box-shadow: -1px 0 0 var(--pico-blockquote-border-color), 1px 0 0 var(--pico-blockquote-border-color);
}

.logo-light,
.logo-light-and-dark {
  display: block;
}

.logo-dark {
  display: none;
}

[data-theme=dark] .logo-light {
  display: none;
}

[data-theme=dark] .logo-dark {
  display: block;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.brid *[role=button],
.brid-close *[role=button] {
  background: initial;
  border: initial;
}

.brid *[role=button]:focus,
.brid-close *[role=button]:focus {
  outline: none;
  box-shadow: none;
}

@media (min-width: 576px) {
  body.home > .site-header:not(.is-sticky) .header-center > a .logo-light,
  body.home > .site-header:not(.is-sticky) .header-center > a .logo-light-and-dark,
  body.home > .site-header:not(.is-sticky) .header-center > a .logo-dark {
    display: none;
  }
}

body > .site-header {
  background-color: var(--pico-primary);
  color: var(--pico-primary-inverse);
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  height: 56px;
  padding-left: calc(var(--pico-spacing) / 4);
  padding-right: calc(var(--pico-spacing) / 4);
  z-index: 9999999;
}
body > .site-header.is-sticky {
  position: fixed;
  top: var(--wp-admin--admin-bar--height, 0);
  left: 0;
  right: 0;
}
body > .site-header .header-left,
body > .site-header .header-right {
  width: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
}
body > .site-header .header-left .menu-toggle,
body > .site-header .header-right .menu-toggle {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: inherit;
  cursor: pointer;
}
body > .site-header .header-center {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
body > .site-header .header-center > a > img {
  max-height: 48px;
  min-height: 30px;
  width: 100%;
}
body > .site-header .header-center > a strong {
  font-size: 1.2rem;
  font-weight: bold;
  color: var(--pico-primary-inverse);
}

body > .site-footer {
  padding: 0;
}
body > .site-footer .footer-separator {
  height: var(--pico-spacing);
  background-color: var(--pico-primary);
  margin-bottom: calc(var(--pico-spacing) / 2);
}
body > .site-footer .footer-columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pico-spacing);
  padding: var(--pico-spacing);
}
@media (min-width: 576px) {
  body > .site-footer .footer-columns {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--pico-spacing) * 1.5);
  }
}
@media (min-width: 1024px) {
  body > .site-footer .footer-columns {
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
  }
}
body > .site-footer .footer-columns .footer-col > strong {
  margin-bottom: 0.75rem;
  display: block;
  text-align: center;
  font-size: 1.2rem;
}
@media (min-width: 576px) {
  body > .site-footer .footer-columns .footer-col > strong {
    text-align: left;
  }
}
body > .site-footer .footer-columns .footer-col .w3c-logo {
  margin-bottom: var(--pico-spacing);
}
body > .site-footer .footer-columns .footer-col ul {
  padding: 0;
}
body > .site-footer .footer-columns .footer-col ul li {
  list-style: none;
  margin-bottom: calc(var(--pico-spacing) / 2);
  font-size: 0.95rem;
}
body > .site-footer .footer-columns .footer-col ul li strong {
  display: block;
  font-size: 0.95rem;
}
body > .site-footer .footer-columns .footer-col ul a {
  text-decoration: none;
}
body > .site-footer .footer-columns .footer-col ul small {
  font-weight: bold;
}
body > .site-footer .footer-credits {
  background-color: var(--pico-background-color);
  text-align: center;
  padding: calc(var(--pico-spacing) / 4) var(--pico-spacing);
}
body > .site-footer .footer-credits small {
  font-size: 0.8rem;
}

body.admin-bar .sidebar-hamburger {
  top: 0;
}
@media (min-width: 600px) {
  body.admin-bar .sidebar-hamburger {
    top: 46px;
  }
}
@media (min-width: 782px) {
  body.admin-bar .sidebar-hamburger {
    top: 32px;
  }
}

.sidebar-hamburger {
  position: fixed;
  top: 0;
  left: 0;
  width: 85vw;
  max-width: 560px;
  height: 100vh;
  background: var(--pico-background-color);
  color: var(--pico-color);
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  overflow: hidden;
  padding: var(--pico-spacing);
  display: flex;
  flex-direction: column;
  z-index: 99999999;
}
.sidebar-hamburger.open {
  transform: translateX(0);
}
.sidebar-hamburger-overlay {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1900;
  display: none;
}
.sidebar-hamburger-overlay.visible {
  display: block;
}
.sidebar-hamburger-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: calc(var(--pico-spacing) / 2);
  padding-bottom: calc(var(--pico-spacing) / 2);
  border-bottom: 1px solid var(--pico-blockquote-border-color);
}
.sidebar-hamburger-logo img {
  height: 48px;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}
.sidebar-hamburger-close {
  --pico-color: var(--pico-color);
  color: var(--pico-color);
  background: none;
  border: none;
  font-size: 1.5rem;
  padding: 0;
  margin-left: var(--pico-spacing);
}
.sidebar-hamburger-close:hover, .sidebar-hamburger-close:focus {
  box-shadow: none;
  color: color-mix(in srgb, var(--pico-color), #000 20%);
}
.sidebar-hamburger-controls {
  margin: var(--pico-spacing) 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--pico-spacing);
  flex-wrap: wrap;
}
.sidebar-hamburger-controls .font-size-controls button {
  font-size: 1rem;
  padding: calc(var(--pico-spacing) / 4) calc(var(--pico-spacing) / 2);
}
.sidebar-hamburger-controls .theme-toggle {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
.sidebar-hamburger-controls .theme-toggle label,
.sidebar-hamburger-controls .theme-toggle input {
  margin: 0;
}
.sidebar-hamburger-search {
  margin: var(--pico-spacing) 0;
}
.sidebar-hamburger-search > *:first-child {
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.sidebar-hamburger-search > *:last-child {
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}
.sidebar-hamburger-menu {
  margin: var(--pico-spacing) 0;
  flex: 1 1 auto;
  overflow-y: auto;
}
.sidebar-hamburger-menu .accordion {
  border-bottom: 1px solid var(--pico-blockquote-border-color);
}
.sidebar-hamburger-menu .accordion:last-child {
  border-bottom: none;
}
.sidebar-hamburger-menu .accordion-toggle, .sidebar-hamburger-menu .accordion-link {
  --pico-color: var(--pico-color);
  color: var(--pico-color);
  background: none;
  border: none;
  font-size: 1.1rem;
  padding: 0;
  margin: var(--pico-spacing) auto;
  display: block;
  width: 100%;
  text-align: left;
  font-weight: 700;
  transition: color 0.2s ease;
  cursor: pointer;
  text-decoration: none;
}
.sidebar-hamburger-menu .accordion-toggle:hover, .sidebar-hamburger-menu .accordion-toggle:focus, .sidebar-hamburger-menu .accordion-link:hover, .sidebar-hamburger-menu .accordion-link:focus {
  --pico-color: var(--pico-color);
  box-shadow: none;
  color: color-mix(in srgb, var(--pico-color), #000 20%);
}
.sidebar-hamburger-menu .accordion-content {
  display: none;
  padding: 0;
  margin-bottom: var(--pico-spacing);
}
.sidebar-hamburger-menu .accordion-content.open {
  display: block;
}
.sidebar-hamburger-menu .accordion-content a {
  --pico-color: var(--pico-color);
  display: block;
  padding: 0;
  color: var(--pico-color);
  text-decoration: none;
  transition: color 0.2s ease;
}
.sidebar-hamburger-menu .accordion-content a:hover {
  --pico-color: var(--pico-color);
  color: color-mix(in srgb, var(--pico-color), #000 20%);
}
.sidebar-hamburger-menu .accordion-content.columns-2 {
  display: none;
}
.sidebar-hamburger-menu .accordion-content.columns-2.open {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--pico-spacing);
}
.sidebar-hamburger-menu .accordion-content.social-links {
  display: none;
}
.sidebar-hamburger-menu .accordion-content.social-links.open {
  display: flex;
  gap: var(--pico-spacing);
  flex-wrap: wrap;
  align-items: center;
}
.sidebar-hamburger-menu .accordion-content.social-links a {
  --pico-color: var(--pico-color);
  display: inline-flex;
  align-items: center;
  gap: 0;
  text-decoration: none;
  color: var(--pico-color);
}
.sidebar-hamburger-menu .accordion-content.social-links a:hover {
  --pico-color: var(--pico-color);
  color: color-mix(in srgb, var(--pico-color), #000 20%);
}

body > .header-nav-menu {
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  padding: calc(var(--pico-spacing) / 4) calc(var(--pico-spacing) / 1.33);
  border-bottom: 1px solid var(--pico-blockquote-border-color);
  scrollbar-width: thin;
  scrollbar-color: rgba(100, 100, 100, 0.2) transparent;
}
body > .header-nav-menu::-webkit-scrollbar {
  height: 6px;
}
body > .header-nav-menu::-webkit-scrollbar-track {
  background: transparent;
}
body > .header-nav-menu::-webkit-scrollbar-thumb {
  background-color: rgba(100, 100, 100, 0.2);
  border-radius: 5px;
}
body > .header-nav-menu .menu-scroll-wrapper {
  display: flex;
  gap: var(--pico-spacing);
  list-style: none;
  padding: 0;
  margin: 0;
  justify-content: space-between;
}
body > .header-nav-menu .menu-scroll-wrapper li {
  padding: calc(var(--pico-spacing) / 4);
}
body > .header-nav-menu .menu-scroll-wrapper li a {
  text-decoration: none;
  padding: calc(var(--pico-spacing) / 2);
  border-radius: 4px;
  transition: background 0.3s;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: -0.01rem;
}
body > .header-nav-menu .menu-scroll-wrapper li a:hover, body > .header-nav-menu .menu-scroll-wrapper li a:focus {
  background-color: var(--primary-hover);
  color: var(--contrast);
}

body.home.has-header-sticky > .page-intro .intro-col-center img {
  display: none;
}

body.home > .page-intro {
  display: none;
}
@media (min-width: 576px) {
  body.home > .page-intro {
    display: flex;
  }
}

body > .page-intro {
  display: flex;
  flex-direction: column;
  gap: var(--pico-spacing);
  margin: 0 auto;
  padding: var(--pico-spacing) var(--pico-spacing) 0 var(--pico-spacing);
}
body > .page-intro .intro-col.intro-col-left, body > .page-intro .intro-col.intro-col-right {
  display: none;
}
body > .page-intro .intro-col.intro-col-center {
  text-align: center;
}
body > .page-intro .intro-col.intro-col-center h1 {
  margin: 0;
  color: var(--pico-primary);
  text-transform: uppercase;
}
body > .page-intro .intro-col.intro-col-center h1 .h1-subtitle {
  display: block;
  font-size: 45%;
  margin-top: 0.25em;
}
body > .page-intro .intro-col.intro-col-center img {
  max-height: 48px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
body > .page-intro .intro-col.intro-col-center img.page-intro-image {
  display: block;
}
@media (min-width: 1024px) {
  body > .page-intro {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  body > .page-intro .intro-col.intro-col-left, body > .page-intro .intro-col.intro-col-right {
    display: block;
    flex: 1;
    min-height: 90px;
  }
  body > .page-intro .intro-col.intro-col-center {
    flex: 2;
  }
}

.main-grid {
  display: grid;
  grid-template-columns: 1fr;
  min-height: 100vh;
  padding: var(--pico-spacing) 0 0 0;
}
.main-grid.with-sidebar {
  gap: 0;
}
@media (min-width: 1024px) {
  .main-grid.with-sidebar {
    grid-template-columns: 2fr 1fr;
  }
}
@media (min-width: 1536px) {
  .main-grid.with-sidebar {
    grid-template-columns: 2.2fr 0.8fr;
  }
}

.main-content {
  padding: var(--pico-spacing) var(--pico-spacing) 0 var(--pico-spacing);
  overflow: hidden;
  background-color: var(--pico-background-color);
}
@media (min-width: 576px) {
  .main-content {
    padding: 0 var(--pico-spacing);
  }
}

.main-sidebar {
  padding: 0 var(--pico-spacing);
  background-color: var(--pico-background-color);
}
@media (min-width: 576px) {
  .main-sidebar {
    box-shadow: -1px 0 0 var(--pico-blockquote-border-color), 1px 0 0 var(--pico-blockquote-border-color);
  }
}
.main-sidebar > .widget {
  margin-left: auto;
  margin-right: auto;
}
.main-sidebar .widget.nk-feed-reader-list-feed-rubrica {
  height: auto !important;
}
.main-sidebar .widget-sidebar-featured-poi-lista article {
  padding: 0;
  margin: 0 auto calc(var(--pico-spacing) / 2) auto;
}
.main-sidebar .widget-sidebar-featured-poi-lista article a {
  color: inherit;
  text-decoration: none;
  display: block;
}
@media (min-width: 576px) {
  .main-sidebar .widget-sidebar-featured-poi-lista article a {
    display: flex;
  }
}
@media (min-width: 1024px) {
  .main-sidebar .widget-sidebar-featured-poi-lista article a {
    display: block;
  }
}
.main-sidebar .widget-sidebar-featured-poi-lista article figure {
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: var(--pico-border-radius) var(--pico-border-radius) 0 0;
}
@media (min-width: 576px) {
  .main-sidebar .widget-sidebar-featured-poi-lista article figure {
    aspect-ratio: 16/10;
    flex: 1;
  }
}
@media (min-width: 1024px) {
  .main-sidebar .widget-sidebar-featured-poi-lista article figure {
    flex: none;
  }
}
.main-sidebar .widget-sidebar-featured-poi-lista article figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (min-width: 576px) {
  .main-sidebar .widget-sidebar-featured-poi-lista article .post-meta {
    flex: 3;
  }
}
@media (min-width: 1024px) {
  .main-sidebar .widget-sidebar-featured-poi-lista article .post-meta {
    flex: none;
  }
}
.main-sidebar .widget-sidebar-featured-poi-lista article .post-meta .lancio {
  padding: 0.7rem;
  display: block;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 0.75rem;
  color: var(--pico-primary);
  margin-bottom: calc(var(--pico-spacing) * -1.5);
}
.main-sidebar .widget-sidebar-featured-poi-lista article .post-meta h3 {
  padding: 0.7rem;
  margin: 0;
  font-size: 1rem;
}
.main-sidebar .widget-sidebar-featured-poi-lista article.featured .post-meta h2 {
  font-size: 1rem;
  font-weight: bold;
}
.main-sidebar .widget-sidebar-featured-poi-lista article.compact .post-meta h2 {
  font-size: 1rem;
}

.widget .widget-title-img,
.widget .widget-title {
  position: relative;
  text-align: center;
  display: block;
  margin-bottom: calc(var(--pico-spacing) / 2);
}
.widget .widget-title-img > img,
.widget .widget-title-img > span,
.widget .widget-title > img,
.widget .widget-title > span {
  position: relative;
}
.widget .widget-title-img img,
.widget .widget-title img {
  width: 100%;
  max-width: 220px;
  max-height: 60px;
  margin: 0 auto;
  padding-left: var(--pico-spacing);
  padding-right: var(--pico-spacing);
  background-color: var(--pico-background-color);
  z-index: 10;
}
.widget .widget-title-img a,
.widget .widget-title a {
  display: block;
  background-color: transparent;
}
.widget .widget-title-img > span,
.widget .widget-title > span {
  background-color: var(--pico-background-color);
  color: var(--pico-primary);
  z-index: 100;
  display: inline-block;
  position: relative;
  padding: calc(var(--pico-spacing) / 4) calc(var(--pico-spacing) / 2);
  font-size: 1.2rem;
  text-transform: uppercase;
  font-weight: 700;
  max-width: 70%;
}
.widget .widget-title-img::before,
.widget .widget-title::before {
  border-top: 1px solid var(--pico-primary);
  content: "";
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 50%;
  display: inline-block;
  height: 1px;
  z-index: 1;
}
.widget .widget-title-img {
  margin-bottom: var(--pico-spacing);
}
.widget .widget-footer {
  text-align: right;
  margin-top: var(--pico-spacing);
}
.widget .widget-footer a[role=button] {
  padding: calc(var(--pico-spacing) / 4) var(--pico-spacing);
}

blockquote {
  padding: 0 0 0 var(--pico-spacing);
  margin: 0;
  display: block;
  font-style: italic;
}

@keyframes blinker {
  50% {
    opacity: 0.3;
  }
}
.comment-form-url {
  display: none;
}

.wp-caption {
  max-width: 100%;
  width: auto !important;
}

.wp-caption img,
img.size-full,
img.size-large,
img.size-medium,
img.size-thumbnail {
  max-width: 100%;
  height: auto;
}

img.alignright,
figure.alignright,
div.wp-caption.alignright {
  float: none;
  margin: 0.2rem auto var(--pico-spacing);
  display: block;
  text-align: right;
}
@media (min-width: 576px) {
  img.alignright,
  figure.alignright,
  div.wp-caption.alignright {
    float: right;
    margin: 0.2rem 0 var(--pico-spacing) var(--pico-spacing);
    max-width: 100%;
    height: auto;
  }
}
img.alignleft,
figure.alignleft,
div.wp-caption.alignleft {
  float: none;
  margin: 0.2rem auto var(--pico-spacing);
  display: block;
  text-align: left;
}
@media (min-width: 576px) {
  img.alignleft,
  figure.alignleft,
  div.wp-caption.alignleft {
    float: left;
    margin: 0.2rem var(--pico-spacing) var(--pico-spacing) 0;
    max-width: 100%;
    height: auto;
  }
}
img.alignnone,
figure.alignnone,
div.wp-caption.alignnone {
  margin: 0.2rem var(--pico-spacing) var(--pico-spacing) 0;
  max-width: 100%;
  height: auto;
}
img.aligncenter,
figure.aligncenter,
div.wp-caption.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  width: 100%;
  height: auto;
  text-align: center;
}

.wp-caption-text {
  font-size: 0.8rem;
  margin: 0;
  padding: calc(var(--pico-spacing) / 2);
  text-align: center;
}

#wpadminbar {
  z-index: 9999999;
  position: fixed !important;
}

iframe {
  max-width: 100%;
}

.container.container-ldb1 {
  padding: var(--pico-spacing) var(--pico-spacing) 0 var(--pico-spacing);
  box-shadow: -1px 0 0 var(--pico-blockquote-border-color), 1px 0 0 var(--pico-blockquote-border-color);
}

.main-sidebar .widget-nk-adv-print:not(:has(> *:not(:empty))) {
  margin: 0;
}

div[id^=flx-] {
  text-align: center;
  margin: 0 auto;
}

div[id^=flx_necro] {
  margin-bottom: calc(var(--pico-spacing) * 2);
}

div[id^=flx-iniziative] {
  margin: var(--pico-spacing) auto var(--pico-spacing) auto;
}

div[id^=flx-iniziative]:not(:has(> *:not(:empty))) {
  margin: 0;
}

div[id^=flx-infeed] {
  margin: var(--pico-spacing) auto var(--pico-spacing) auto;
}

div[id^=flx-infeed]:not(:has(> *:not(:empty))) {
  margin: 0;
}

body.single-nk_necro .main-content .necrologi-single {
  /* Colonna destra: testo */
  /* Footer: bordo sopra e blocchi a riga (stacked) */
}
body.single-nk_necro .main-content .necrologi-single .necrologio-header {
  padding: var(--pico-spacing) 0;
  margin-bottom: var(--pico-spacing);
  border-bottom: 1px solid var(--pico-blockquote-border-color);
}
body.single-nk_necro .main-content .necrologi-single .necrologio-header .tipo {
  font-size: 1rem;
  font-weight: 600;
}
body.single-nk_necro .main-content .necrologi-single .necrologio-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pico-spacing);
}
@media (min-width: 768px) {
  body.single-nk_necro .main-content .necrologi-single .necrologio-grid {
    grid-template-columns: 4fr 8fr;
    align-items: start;
  }
}
body.single-nk_necro .main-content .necrologi-single .left-col .post-image {
  position: relative;
  aspect-ratio: 6/7;
  /* crop fisso 6:7 */
  overflow: hidden;
}
body.single-nk_necro .main-content .necrologi-single .left-col .post-image img,
body.single-nk_necro .main-content .necrologi-single .left-col .post-image .wp-post-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
body.single-nk_necro .main-content .necrologi-single .left-col .name {
  margin-bottom: var(--pico-spacing);
  text-align: center;
}
body.single-nk_necro .main-content .necrologi-single .left-col .name .title {
  margin: 0;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
  text-wrap: balance;
}
body.single-nk_necro .main-content .necrologi-single .left-col .name .anni {
  margin-top: 0.35rem;
  font-weight: 600;
  opacity: 0.85;
}
body.single-nk_necro .main-content .necrologi-single .right-col .intestazione {
  margin-bottom: var(--pico-spacing);
}
body.single-nk_necro .main-content .necrologi-single .right-col .post-content p {
  margin: 0 0 0.9em 0;
}
body.single-nk_necro .main-content .necrologi-single .right-col .post-content ul,
body.single-nk_necro .main-content .necrologi-single .right-col .post-content ol {
  margin: 0 0 1em 1.25em;
}
body.single-nk_necro .main-content .necrologi-single .right-col .post-content img {
  max-width: 100%;
  height: auto;
}
body.single-nk_necro .main-content .necrologi-single .right-col .funerale {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: calc(var(--pico-spacing) / 2) var(--pico-spacing);
}
body.single-nk_necro .main-content .necrologi-single .right-col .funerale .left {
  font-weight: 700;
  white-space: nowrap;
}
body.single-nk_necro .main-content .necrologi-single .right-col .funerale .right {
  line-height: 1.35;
}
body.single-nk_necro .main-content .necrologi-single .right-col .ringraziamenti {
  margin-top: 1rem;
}
body.single-nk_necro .main-content .necrologi-single .necrologio-footer {
  margin-top: var(--pico-spacing);
  padding-top: 0.9rem;
  border-top: 1px solid var(--pico-blockquote-border-color);
  display: flex;
  flex-direction: column;
  gap: calc(var(--pico-spacing) / 2);
}
body.single-nk_necro .main-content .necrologi-single .necrologio-footer .footer-block {
  display: flex;
  flex-direction: column;
  gap: calc(var(--pico-spacing) / 4);
}
body.single-nk_necro .main-content .necrologi-single .necrologio-footer .post-last-update {
  opacity: 0.9;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments {
  margin-top: calc(var(--pico-spacing) * 2);
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comments__title {
  text-align: center;
  margin-top: var(--pico-spacing);
  margin-bottom: calc(var(--pico-spacing) / 2);
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--pico-primary);
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comments-list {
  overflow: hidden;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment {
  padding: var(--pico-spacing) 0;
  border-bottom: 1px solid var(--pico-blockquote-border-color);
  box-shadow: none;
  margin: 0;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment:last-child {
  border-bottom: 0;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment .comment__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--pico-spacing) / 4) calc(var(--pico-spacing) / 2);
  align-items: baseline;
  margin-bottom: 0.4rem;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment .comment__meta .comment__author {
  font-weight: 700;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment .comment__meta .comment__date {
  opacity: 0.8;
  font-size: 0.95em;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment .comment__content p {
  margin: 0;
  font-style: italic;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment .comment__content ul,
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment .comment__content ol {
  margin: 0 0 1em 1.25em;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment-form__title {
  text-align: center;
  margin-top: var(--pico-spacing);
  margin-bottom: calc(var(--pico-spacing) / 2);
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--pico-primary);
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment-respond {
  max-width: 600px;
  margin: 0 auto;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment-form {
  margin-top: calc(var(--pico-spacing) / 2);
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment-form p {
  margin-bottom: 0.75rem;
}
body.single-nk_necro .main-content .necrologi-single .necrologi-comments .comment-form textarea {
  min-height: 8rem;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5lY3JvbG9naS1zaW5nbGUuY3NzIiwiY29uZmlncy9fdmFyaWFibGVzLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvYXNzZXRzLXNyYy9mb250cy9pbnRlci9faW50ZXIuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9hc3NldHMtc3JjL2ZvbnRzL21lcnJpd2VhdGhlci9fbWVycml3ZWF0aGVyLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvYXNzZXRzLXNyYy9mb250cy9ub3RvLXNhbnMvX25vdG8tc2Fucy5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL2Fzc2V0cy1zcmMvZm9udHMvbm90by1zZXJpZi9fbm90by1zZXJpZi5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL2Fzc2V0cy1zcmMvZm9udHMvb3Blbi1zYW5zL19vcGVuLXNhbnMuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9hc3NldHMtc3JjL2ZvbnRzL3JvYm90by9fcm9ib3RvLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9oZWxwZXJzL19jb3B5cmlnaHQuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL3RoZW1lcy9kZWZhdWx0L19zdHlsZXMuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL3RoZW1lcy9kZWZhdWx0L19zY2hlbWVzLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy90aGVtZXMvZGVmYXVsdC9fbGlnaHQuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL3RoZW1lcy9kZWZhdWx0L19kYXJrLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9sYXlvdXQvX2RvY3VtZW50LnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9sYXlvdXQvX2xhbmRtYXJrcy5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvbGF5b3V0L19zZWN0aW9uLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9sYXlvdXQvX2NvbnRhaW5lci5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvbGF5b3V0L19ncmlkLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9sYXlvdXQvX292ZXJmbG93LWF1dG8uc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL2NvbnRlbnQvX3R5cG9ncmFwaHkuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL2NvbnRlbnQvX2xpbmsuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL2NvbnRlbnQvX2J1dHRvbi5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvY29udGVudC9fZW1iZWRkZWQuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL2NvbnRlbnQvX2ZpZ3VyZS5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvY29udGVudC9fbWlzYy5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvZm9ybXMvX2Jhc2ljcy5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvZm9ybXMvX2NoZWNrYm94LXJhZGlvLXN3aXRjaC5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvZm9ybXMvX2lucHV0LXNlYXJjaC5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvY29tcG9uZW50cy9fZ3JvdXAuc2NzcyIsImhvbWUvYWNhZ2xpYW5pL1Byb2dldHRpL05ldHdlZWsvbmV0d2Vlay13cC9zaXRlcy9xdW90aWRpYW5vLXByaW1hL2NvbnRlbnRzL3RoZW1lcy9teS10aGVtZS9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL2NvbXBvbmVudHMvX25hdi5zY3NzIiwiaG9tZS9hY2FnbGlhbmkvUHJvZ2V0dGkvTmV0d2Vlay9uZXR3ZWVrLXdwL3NpdGVzL3F1b3RpZGlhbm8tcHJpbWEvY29udGVudHMvdGhlbWVzL215LXRoZW1lL25vZGVfbW9kdWxlcy9AcGljb2Nzcy9waWNvL3Njc3MvdXRpbGl0aWVzL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJob21lL2FjYWdsaWFuaS9Qcm9nZXR0aS9OZXR3ZWVrL25ldHdlZWstd3Avc2l0ZXMvcXVvdGlkaWFuby1wcmltYS9jb250ZW50cy90aGVtZXMvbXktdGhlbWUvbm9kZV9tb2R1bGVzL0BwaWNvY3NzL3BpY28vc2Nzcy91dGlsaXRpZXMvX3JlZHVjZS1tb3Rpb24uc2NzcyIsImNvbmZpZ3MvX3BpY28tdmFyaWFibGVzLnNjc3MiLCJsYXlvdXQvX3R5cG9ncmFwaHkuc2NzcyIsImxheW91dC9fZ2xvYmFsLnNjc3MiLCJtaXhpbnMvX21lZGlhX21pbl93aWR0aC5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJsYXlvdXQvX3NpZGViYXItaGFtYnVyZ2VyLnNjc3MiLCJsYXlvdXQvX2hlYWRlci1uYXYtbWVudS5zY3NzIiwibGF5b3V0L19wYWdlLWludHJvLnNjc3MiLCJsYXlvdXQvX21haW4tZ3JpZC5zY3NzIiwibGF5b3V0L19tYWluLWNvbnRlbnQuc2NzcyIsImxheW91dC9fbWFpbi1zaWRlYmFyLnNjc3MiLCJsYXlvdXQvX3dpZGdldHMuc2NzcyIsImxheW91dC9fd3Atc3RhbmRhcmQuc2NzcyIsImxheW91dC9fYWR2LnNjc3MiLCJwYWdlL19uZWNyb2xvZ2ktc2luZ2xlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDa0ZoQjs7RUFHRSx1Q0FBQTtFQUNBLHVGQUFB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XCJVVEYtOFwiO1xuW2RhdGEtdGhlbWU9bGlnaHRdLFxuOnJvb3Q6bm90KFtkYXRhLXRoZW1lPWRhcmtdKSB7XG4gIC0tbXQtbmVjcm9sb3JpLWZvcm0tYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgLS1tdC1ob21lcGFnZS1vcGVuaW5nLWJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1waWNvLXByaW1hcnkpIDEwJSwgI2ZmZiA5MCUpO1xuICAtLW10LWdhbGxlcnktYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpY28tcHJpbWFyeSkgNSUsICNmZmYgOTUlKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10sXG46cm9vdFtkYXRhLXRoZW1lPWRhcmtdIHtcbiAgLS1tdC1uZWNyb2xvcmktZm9ybS1iYWNrZ3JvdW5kOiAjMTIxMjEyO1xuICAtLW10LWhvbWVwYWdlLW9wZW5pbmctYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpY28tcHJpbWFyeSkgMTAlLCAjMDAwIDkwJSk7XG4gIC0tbXQtZ2FsbGVyeS1iYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGljby1wcmltYXJ5KSA1JSwgIzAwMCA5NSUpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9pbnRlci9pbnRlci1yZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvaW50ZXIvaW50ZXItaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvaW50ZXIvaW50ZXItNzAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvaW50ZXIvaW50ZXItNzAwaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiTWVycml3ZWF0aGVyXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoXCIuLy4uL2ZvbnRzL21lcnJpd2VhdGhlci9tZXJyaXdlYXRoZXItcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9tZXJyaXdlYXRoZXIvbWVycml3ZWF0aGVyLWl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9tZXJyaXdlYXRoZXIvbWVycml3ZWF0aGVyLTcwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk1lcnJpd2VhdGhlclwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9tZXJyaXdlYXRoZXIvbWVycml3ZWF0aGVyLTcwMGl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk5vdG8gU2Fuc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9ub3RvLXNhbnMvbm90by1zYW5zLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJOb3RvIFNhbnNcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvbm90by1zYW5zL25vdG8tc2Fucy1pdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJOb3RvIFNhbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvbm90by1zYW5zL25vdG8tc2Fucy03MDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJOb3RvIFNhbnNcIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvbm90by1zYW5zL25vdG8tc2Fucy03MDBpdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJOb3RvIFNlcmlmXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoXCIuLy4uL2ZvbnRzL25vdG8tc2VyaWYvbm90by1zZXJpZi1yZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTZXJpZlwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9ub3RvLXNlcmlmL25vdG8tc2VyaWYtaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTZXJpZlwiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9ub3RvLXNlcmlmL25vdG8tc2VyaWYtNzAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTZXJpZlwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9ub3RvLXNlcmlmL25vdG8tc2VyaWYtNzAwaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoXCIuLy4uL2ZvbnRzL29wZW4tc2Fucy9vcGVuLXNhbnMtcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9vcGVuLXNhbnMvb3Blbi1zYW5zLWl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9vcGVuLXNhbnMvb3Blbi1zYW5zLTcwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9vcGVuLXNhbnMvb3Blbi1zYW5zLTcwMGl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKFwiLi8uLi9mb250cy9yb2JvdG8vcm9ib3RvLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvcm9ib3RvL3JvYm90by1pdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvcm9ib3RvL3JvYm90by03MDAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4vLi4vZm9udHMvcm9ib3RvL3JvYm90by03MDBpdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG4vKiFcbiAqIFBpY28gQ1NTIOKcqCB2Mi4xLjEgKGh0dHBzOi8vcGljb2Nzcy5jb20pXG4gKiBDb3B5cmlnaHQgMjAxOS0yMDI1IC0gTGljZW5zZWQgdW5kZXIgTUlUXG4gKi9cbi8qKlxuICogU3R5bGVzXG4gKi9cbjpyb290LFxuOmhvc3Qge1xuICAtLXBpY28tZm9udC1mYW1pbHktZW1vamk6IFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgLS1waWNvLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IHN5c3RlbS11aSwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIEhlbHZldGljYSwgQXJpYWwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZiwgdmFyKC0tcGljby1mb250LWZhbWlseS1lbW9qaSk7XG4gIC0tcGljby1mb250LWZhbWlseS1tb25vc3BhY2U6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFwiU0YgTW9ub1wiLCBNZW5sbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIG1vbm9zcGFjZSwgdmFyKC0tcGljby1mb250LWZhbWlseS1lbW9qaSk7XG4gIC0tcGljby1mb250LWZhbWlseTogdmFyKC0tcGljby1mb250LWZhbWlseS1zYW5zLXNlcmlmKTtcbiAgLS1waWNvLWxpbmUtaGVpZ2h0OiAxLjU7XG4gIC0tcGljby1mb250LXdlaWdodDogNDAwO1xuICAtLXBpY28tZm9udC1zaXplOiAxMDAlO1xuICAtLXBpY28tdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjFyZW07XG4gIC0tcGljby1ib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAtLXBpY28tYm9yZGVyLXdpZHRoOiAwLjA2MjVyZW07XG4gIC0tcGljby1vdXRsaW5lLXdpZHRoOiAwLjEyNXJlbTtcbiAgLS1waWNvLXRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC0tcGljby1zcGFjaW5nOiAxcmVtO1xuICAtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsOiAxcmVtO1xuICAtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgLS1waWNvLWJsb2NrLXNwYWNpbmctaG9yaXpvbnRhbDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgLS1waWNvLWdyaWQtY29sdW1uLWdhcDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgLS1waWNvLWdyaWQtcm93LWdhcDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsOiAwLjc1cmVtO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbDogMXJlbTtcbiAgLS1waWNvLWdyb3VwLWJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMCwgMCwgMCwgMCk7XG4gIC0tcGljby1ncm91cC1ib3gtc2hhZG93LWZvY3VzLXdpdGgtYnV0dG9uOiAwIDAgMCB2YXIoLS1waWNvLW91dGxpbmUtd2lkdGgpIHZhcigtLXBpY28tcHJpbWFyeS1mb2N1cyk7XG4gIC0tcGljby1ncm91cC1ib3gtc2hhZG93LWZvY3VzLXdpdGgtaW5wdXQ6IDAgMCAwIDAuMDYyNXJlbSB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3IpO1xuICAtLXBpY28tbmF2LWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbDogMXJlbTtcbiAgLS1waWNvLW5hdi1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbDogMC41cmVtO1xuICAtLXBpY28tbmF2LWxpbmstc3BhY2luZy12ZXJ0aWNhbDogMC41cmVtO1xuICAtLXBpY28tbmF2LWxpbmstc3BhY2luZy1ob3Jpem9udGFsOiAwLjVyZW07XG4gIC0tcGljby1uYXYtYnJlYWRjcnVtYi1kaXZpZGVyOiBcIj5cIjtcbiAgLS1waWNvLWljb24tY2hlY2tib3g6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2IoMjU1LCAyNTUsIDI1NSknIHN0cm9rZS13aWR0aD0nNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nMjAgNiA5IDE3IDQgMTInJTNFJTNDL3BvbHlsaW5lJTNFJTNDL3N2ZyUzRVwiKTtcbiAgLS1waWNvLWljb24tbWludXM6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2IoMjU1LCAyNTUsIDI1NSknIHN0cm9rZS13aWR0aD0nNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2xpbmUgeDE9JzUnIHkxPScxMicgeDI9JzE5JyB5Mj0nMTInJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICAtLXBpY28taWNvbi1jaGV2cm9uOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiKDEzNiwgMTQ1LCAxNjQpJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzYgOSAxMiAxNSAxOCA5JyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0VcIik7XG4gIC0tcGljby1pY29uLXNlYXJjaDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9J3JnYigxMzYsIDE0NSwgMTY0KScgc3Ryb2tlLXdpZHRoPScxLjUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NjaXJjbGUgY3g9JzExJyBjeT0nMTEnIHI9JzgnJTNFJTNDL2NpcmNsZSUzRSUzQ2xpbmUgeDE9JzIxJyB5MT0nMjEnIHgyPScxNi42NScgeTI9JzE2LjY1JyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICA6cm9vdCxcbiAgOmhvc3Qge1xuICAgIC0tcGljby1mb250LXNpemU6IDEwNi4yNSU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICA6cm9vdCxcbiAgOmhvc3Qge1xuICAgIC0tcGljby1mb250LXNpemU6IDExMi41JTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICA6cm9vdCxcbiAgOmhvc3Qge1xuICAgIC0tcGljby1mb250LXNpemU6IDExOC43NSU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgOnJvb3QsXG4gIDpob3N0IHtcbiAgICAtLXBpY28tZm9udC1zaXplOiAxMjUlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XG4gIDpyb290LFxuICA6aG9zdCB7XG4gICAgLS1waWNvLWZvbnQtc2l6ZTogMTMxLjI1JTtcbiAgfVxufVxuXG5hIHtcbiAgLS1waWNvLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuYS5zZWNvbmRhcnksIGEuY29udHJhc3Qge1xuICAtLXBpY28tdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbnNtYWxsIHtcbiAgLS1waWNvLWZvbnQtc2l6ZTogMC44NzVlbTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgLS1waWNvLWZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmgxIHtcbiAgLS1waWNvLWZvbnQtc2l6ZTogMnJlbTtcbiAgLS1waWNvLWxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgLS1waWNvLXR5cG9ncmFwaHktc3BhY2luZy10b3A6IDNyZW07XG59XG5cbmgyIHtcbiAgLS1waWNvLWZvbnQtc2l6ZTogMS43NXJlbTtcbiAgLS1waWNvLWxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXRvcDogMi42MjVyZW07XG59XG5cbmgzIHtcbiAgLS1waWNvLWZvbnQtc2l6ZTogMS41cmVtO1xuICAtLXBpY28tbGluZS1oZWlnaHQ6IDEuMTc1O1xuICAtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXRvcDogMi4yNXJlbTtcbn1cblxuaDQge1xuICAtLXBpY28tZm9udC1zaXplOiAxLjI1cmVtO1xuICAtLXBpY28tbGluZS1oZWlnaHQ6IDEuMjtcbiAgLS1waWNvLXR5cG9ncmFwaHktc3BhY2luZy10b3A6IDEuODc0cmVtO1xufVxuXG5oNSB7XG4gIC0tcGljby1mb250LXNpemU6IDEuMTI1cmVtO1xuICAtLXBpY28tbGluZS1oZWlnaHQ6IDEuMjI1O1xuICAtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXRvcDogMS42ODc1cmVtO1xufVxuXG5oNiB7XG4gIC0tcGljby1mb250LXNpemU6IDFyZW07XG4gIC0tcGljby1saW5lLWhlaWdodDogMS4yNTtcbiAgLS1waWNvLXR5cG9ncmFwaHktc3BhY2luZy10b3A6IDEuNXJlbTtcbn1cblxuaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sXG5bdHlwZT1idXR0b25dLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dLFxuW3R5cGU9ZmlsZV0pLFxuOndoZXJlKHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgLS1waWNvLW91dGxpbmUtd2lkdGg6IDAuMDYyNXJlbTtcbn1cblxuW3R5cGU9c2VhcmNoXSB7XG4gIC0tcGljby1ib3JkZXItcmFkaXVzOiA1cmVtO1xufVxuXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10ge1xuICAtLXBpY28tYm9yZGVyLXdpZHRoOiAwLjEyNXJlbTtcbn1cblxuW3R5cGU9Y2hlY2tib3hdW3JvbGU9c3dpdGNoXSB7XG4gIC0tcGljby1ib3JkZXItd2lkdGg6IDAuMTg3NXJlbTtcbn1cblxuZGV0YWlscy5kcm9wZG93biBzdW1tYXJ5Om5vdChbcm9sZT1idXR0b25dKSB7XG4gIC0tcGljby1vdXRsaW5lLXdpZHRoOiAwLjA2MjVyZW07XG59XG5cbm5hdiBkZXRhaWxzLmRyb3Bkb3duIHN1bW1hcnk6Zm9jdXMtdmlzaWJsZSB7XG4gIC0tcGljby1vdXRsaW5lLXdpZHRoOiAwLjEyNXJlbTtcbn1cblxuW3JvbGU9c2VhcmNoXSB7XG4gIC0tcGljby1ib3JkZXItcmFkaXVzOiA1cmVtO1xufVxuXG5bcm9sZT1zZWFyY2hdOmhhcyhidXR0b24uc2Vjb25kYXJ5OmZvY3VzLFxuW3R5cGU9c3VibWl0XS5zZWNvbmRhcnk6Zm9jdXMsXG5bdHlwZT1idXR0b25dLnNlY29uZGFyeTpmb2N1cyxcbltyb2xlPWJ1dHRvbl0uc2Vjb25kYXJ5OmZvY3VzKSxcbltyb2xlPWdyb3VwXTpoYXMoYnV0dG9uLnNlY29uZGFyeTpmb2N1cyxcblt0eXBlPXN1Ym1pdF0uc2Vjb25kYXJ5OmZvY3VzLFxuW3R5cGU9YnV0dG9uXS5zZWNvbmRhcnk6Zm9jdXMsXG5bcm9sZT1idXR0b25dLnNlY29uZGFyeTpmb2N1cykge1xuICAtLXBpY28tZ3JvdXAtYm94LXNoYWRvdy1mb2N1cy13aXRoLWJ1dHRvbjogMCAwIDAgdmFyKC0tcGljby1vdXRsaW5lLXdpZHRoKSB2YXIoLS1waWNvLXNlY29uZGFyeS1mb2N1cyk7XG59XG5bcm9sZT1zZWFyY2hdOmhhcyhidXR0b24uY29udHJhc3Q6Zm9jdXMsXG5bdHlwZT1zdWJtaXRdLmNvbnRyYXN0OmZvY3VzLFxuW3R5cGU9YnV0dG9uXS5jb250cmFzdDpmb2N1cyxcbltyb2xlPWJ1dHRvbl0uY29udHJhc3Q6Zm9jdXMpLFxuW3JvbGU9Z3JvdXBdOmhhcyhidXR0b24uY29udHJhc3Q6Zm9jdXMsXG5bdHlwZT1zdWJtaXRdLmNvbnRyYXN0OmZvY3VzLFxuW3R5cGU9YnV0dG9uXS5jb250cmFzdDpmb2N1cyxcbltyb2xlPWJ1dHRvbl0uY29udHJhc3Q6Zm9jdXMpIHtcbiAgLS1waWNvLWdyb3VwLWJveC1zaGFkb3ctZm9jdXMtd2l0aC1idXR0b246IDAgMCAwIHZhcigtLXBpY28tb3V0bGluZS13aWR0aCkgdmFyKC0tcGljby1jb250cmFzdC1mb2N1cyk7XG59XG5bcm9sZT1zZWFyY2hdIGJ1dHRvbixcbltyb2xlPXNlYXJjaF0gW3R5cGU9c3VibWl0XSxcbltyb2xlPXNlYXJjaF0gW3R5cGU9YnV0dG9uXSxcbltyb2xlPXNlYXJjaF0gW3JvbGU9YnV0dG9uXSxcbltyb2xlPWdyb3VwXSBidXR0b24sXG5bcm9sZT1ncm91cF0gW3R5cGU9c3VibWl0XSxcbltyb2xlPWdyb3VwXSBbdHlwZT1idXR0b25dLFxuW3JvbGU9Z3JvdXBdIFtyb2xlPWJ1dHRvbl0ge1xuICAtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbDogMnJlbTtcbn1cblxuZGV0YWlscyBzdW1tYXJ5W3JvbGU9YnV0dG9uXTpub3QoLm91dGxpbmUpOjphZnRlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG59XG5cbi8qKlxuICogQ29sb3Igc2NoZW1lc1xuICovXG5bZGF0YS10aGVtZT1saWdodF0sXG46cm9vdDpub3QoW2RhdGEtdGhlbWU9ZGFya10pLFxuOmhvc3QoOm5vdChbZGF0YS10aGVtZT1kYXJrXSkpIHtcbiAgY29sb3Itc2NoZW1lOiBsaWdodDtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIC0tcGljby1jb2xvcjogIzM3M2M0NDtcbiAgLS1waWNvLXRleHQtc2VsZWN0aW9uLWNvbG9yOiByZ2JhKDIsIDE1NCwgMjMyLCAwLjI1KTtcbiAgLS1waWNvLW11dGVkLWNvbG9yOiAjNjQ2Yjc5O1xuICAtLXBpY28tbXV0ZWQtYm9yZGVyLWNvbG9yOiByZ2IoMjMxLCAyMzQsIDIzOS41KTtcbiAgLS1waWNvLXByaW1hcnk6ICMwMTcyYWQ7XG4gIC0tcGljby1wcmltYXJ5LWJhY2tncm91bmQ6ICMwMTcyYWQ7XG4gIC0tcGljby1wcmltYXJ5LWJvcmRlcjogdmFyKC0tcGljby1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAtLXBpY28tcHJpbWFyeS11bmRlcmxpbmU6IHJnYmEoMSwgMTE0LCAxNzMsIDAuNSk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyOiAjMDE1ODg3O1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAjMDI2NTlhO1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci1ib3JkZXI6IHZhcigtLXBpY28tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLXByaW1hcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXIpO1xuICAtLXBpY28tcHJpbWFyeS1mb2N1czogcmdiYSgyLCAxNTQsIDIzMiwgMC41KTtcbiAgLS1waWNvLXByaW1hcnktaW52ZXJzZTogI2ZmZjtcbiAgLS1waWNvLXNlY29uZGFyeTogIzVkNmI4OTtcbiAgLS1waWNvLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAjNTI1ZjdhO1xuICAtLXBpY28tc2Vjb25kYXJ5LWJvcmRlcjogdmFyKC0tcGljby1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gIC0tcGljby1zZWNvbmRhcnktdW5kZXJsaW5lOiByZ2JhKDkzLCAxMDcsIDEzNywgMC41KTtcbiAgLS1waWNvLXNlY29uZGFyeS1ob3ZlcjogIzQ4NTM2YjtcbiAgLS1waWNvLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAjNDg1MzZiO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJvcmRlcjogdmFyKC0tcGljby1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gIC0tcGljby1zZWNvbmRhcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1waWNvLXNlY29uZGFyeS1ob3Zlcik7XG4gIC0tcGljby1zZWNvbmRhcnktZm9jdXM6IHJnYmEoOTMsIDEwNywgMTM3LCAwLjI1KTtcbiAgLS1waWNvLXNlY29uZGFyeS1pbnZlcnNlOiAjZmZmO1xuICAtLXBpY28tY29udHJhc3Q6ICMxODFjMjU7XG4gIC0tcGljby1jb250cmFzdC1iYWNrZ3JvdW5kOiAjMTgxYzI1O1xuICAtLXBpY28tY29udHJhc3QtYm9yZGVyOiB2YXIoLS1waWNvLWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAtLXBpY28tY29udHJhc3QtdW5kZXJsaW5lOiByZ2JhKDI0LCAyOCwgMzcsIDAuNSk7XG4gIC0tcGljby1jb250cmFzdC1ob3ZlcjogIzAwMDtcbiAgLS1waWNvLWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQ6ICMwMDA7XG4gIC0tcGljby1jb250cmFzdC1ob3Zlci1ib3JkZXI6IHZhcigtLXBpY28tY29udHJhc3QtaG92ZXItYmFja2dyb3VuZCk7XG4gIC0tcGljby1jb250cmFzdC1ob3Zlci11bmRlcmxpbmU6IHZhcigtLXBpY28tc2Vjb25kYXJ5LWhvdmVyKTtcbiAgLS1waWNvLWNvbnRyYXN0LWZvY3VzOiByZ2JhKDkzLCAxMDcsIDEzNywgMC4yNSk7XG4gIC0tcGljby1jb250cmFzdC1pbnZlcnNlOiAjZmZmO1xuICAtLXBpY28tYm94LXNoYWRvdzogMC4wMTQ1cmVtIDAuMDI5cmVtIDAuMTc0cmVtIHJnYmEoMTI5LCAxNDUsIDE4MSwgMC4wMTY5OCksIDAuMDMzNXJlbSAwLjA2N3JlbSAwLjQwMnJlbSByZ2JhKDEyOSwgMTQ1LCAxODEsIDAuMDI0KSwgMC4wNjI1cmVtIDAuMTI1cmVtIDAuNzVyZW0gcmdiYSgxMjksIDE0NSwgMTgxLCAwLjAzKSwgMC4xMTI1cmVtIDAuMjI1cmVtIDEuMzVyZW0gcmdiYSgxMjksIDE0NSwgMTgxLCAwLjAzNiksIDAuMjA4NXJlbSAwLjQxN3JlbSAyLjUwMnJlbSByZ2JhKDEyOSwgMTQ1LCAxODEsIDAuMDQzMDIpLCAwLjVyZW0gMXJlbSA2cmVtIHJnYmEoMTI5LCAxNDUsIDE4MSwgMC4wNiksIDAgMCAwIDAuMDYyNXJlbSByZ2JhKDEyOSwgMTQ1LCAxODEsIDAuMDE1KTtcbiAgLS1waWNvLWgxLWNvbG9yOiAjMmQzMTM4O1xuICAtLXBpY28taDItY29sb3I6ICMzNzNjNDQ7XG4gIC0tcGljby1oMy1jb2xvcjogIzQyNDc1MTtcbiAgLS1waWNvLWg0LWNvbG9yOiAjNGQ1MzVlO1xuICAtLXBpY28taDUtY29sb3I6ICM1YzYzNzA7XG4gIC0tcGljby1oNi1jb2xvcjogIzY0NmI3OTtcbiAgLS1waWNvLW1hcmstYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1Mi41LCAyMzAuNSwgMTkxLjUpO1xuICAtLXBpY28tbWFyay1jb2xvcjogIzBmMTExNDtcbiAgLS1waWNvLWlucy1jb2xvcjogcmdiKDI4LjUsIDEwNS41LCA4NCk7XG4gIC0tcGljby1kZWwtY29sb3I6IHJnYigxMzYsIDU2LjUsIDUzKTtcbiAgLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcik7XG4gIC0tcGljby1ibG9ja3F1b3RlLWZvb3Rlci1jb2xvcjogdmFyKC0tcGljby1tdXRlZC1jb2xvcik7XG4gIC0tcGljby1idXR0b24tYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgLS1waWNvLWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93OiAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsIDI1MS41LCAyNTIuMjUpO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6ICNkZmUzZWI7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtYm9yZGVyLWNvbG9yOiAjY2ZkNWUyO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWNvbG9yOiAjMjMyNjJjO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1waWNvLW11dGVkLWNvbG9yKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktYm9yZGVyKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWJvcmRlcik7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtZGlzYWJsZWQtb3BhY2l0eTogMC41O1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtYm9yZGVyLWNvbG9yOiByZ2IoMTgzLjUsIDEwNS41LCAxMDYuNSk7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yOiByZ2IoMjAwLjI1LCA3OS4yNSwgNzIuMjUpO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtZm9jdXMtY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYm9yZGVyLWNvbG9yOiByZ2IoNzYsIDE1NC41LCAxMzcuNSk7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcjogcmdiKDM5LCAxNTIuNzUsIDExOC43NSk7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtZm9jdXMtY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXZhbGlkLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAtLXBpY28tc3dpdGNoLWJhY2tncm91bmQtY29sb3I6ICNiZmM3ZDk7XG4gIC0tcGljby1zd2l0Y2gtY2hlY2tlZC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktYmFja2dyb3VuZCk7XG4gIC0tcGljby1zd2l0Y2gtY29sb3I6ICNmZmY7XG4gIC0tcGljby1zd2l0Y2gtdGh1bWItYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgLS1waWNvLWFjY29yZGlvbi1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tbXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgLS1waWNvLWFjY29yZGlvbi1hY3RpdmUtc3VtbWFyeS1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWhvdmVyKTtcbiAgLS1waWNvLWFjY29yZGlvbi1jbG9zZS1zdW1tYXJ5LWNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgLS1waWNvLWFjY29yZGlvbi1vcGVuLXN1bW1hcnktY29sb3I6IHZhcigtLXBpY28tbXV0ZWQtY29sb3IpO1xuICAtLXBpY28tY2FyZC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWJhY2tncm91bmQtY29sb3IpO1xuICAtLXBpY28tY2FyZC1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tbXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgLS1waWNvLWNhcmQtYm94LXNoYWRvdzogdmFyKC0tcGljby1ib3gtc2hhZG93KTtcbiAgLS1waWNvLWNhcmQtc2VjdGlvbmluZy1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUxLCAyNTEuNSwgMjUyLjI1KTtcbiAgLS1waWNvLWRyb3Bkb3duLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIC0tcGljby1kcm9wZG93bi1ib3JkZXItY29sb3I6ICNlZmYxZjQ7XG4gIC0tcGljby1kcm9wZG93bi1ib3gtc2hhZG93OiB2YXIoLS1waWNvLWJveC1zaGFkb3cpO1xuICAtLXBpY28tZHJvcGRvd24tY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICAtLXBpY28tZHJvcGRvd24taG92ZXItYmFja2dyb3VuZC1jb2xvcjogI2VmZjFmNDtcbiAgLS1waWNvLWljb24tdmFsaWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2IoNzYsIDE1NC41LCAxMzcuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nMjAgNiA5IDE3IDQgMTInJTNFJTNDL3BvbHlsaW5lJTNFJTNDL3N2ZyUzRVwiKTtcbiAgLS1waWNvLWljb24taW52YWxpZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9J3JnYigyMDAuMjUsIDc5LjI1LCA3Mi4yNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2NpcmNsZSBjeD0nMTInIGN5PScxMicgcj0nMTAnJTNFJTNDL2NpcmNsZSUzRSUzQ2xpbmUgeDE9JzEyJyB5MT0nOCcgeDI9JzEyJyB5Mj0nMTInJTNFJTNDL2xpbmUlM0UlM0NsaW5lIHgxPScxMicgeTE9JzE2JyB4Mj0nMTIuMDEnIHkyPScxNiclM0UlM0MvbGluZSUzRSUzQy9zdmclM0VcIik7XG59XG5bZGF0YS10aGVtZT1saWdodF0gaW5wdXQ6aXMoW3R5cGU9c3VibWl0XSxcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10sXG5bdHlwZT1maWxlXSksXG46cm9vdDpub3QoW2RhdGEtdGhlbWU9ZGFya10pIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sXG5bdHlwZT1idXR0b25dLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dLFxuW3R5cGU9ZmlsZV0pLFxuOmhvc3QoOm5vdChbZGF0YS10aGVtZT1kYXJrXSkpIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sXG5bdHlwZT1idXR0b25dLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dLFxuW3R5cGU9ZmlsZV0pIHtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWZvY3VzKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgOnJvb3Q6bm90KFtkYXRhLXRoZW1lXSksXG4gIDpob3N0KDpub3QoW2RhdGEtdGhlbWVdKSkge1xuICAgIGNvbG9yLXNjaGVtZTogZGFyaztcbiAgICAtLXBpY28tYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5LCAyMi41LCAzMC41KTtcbiAgICAtLXBpY28tY29sb3I6ICNjMmM3ZDA7XG4gICAgLS1waWNvLXRleHQtc2VsZWN0aW9uLWNvbG9yOiByZ2JhKDEsIDE3MCwgMjU1LCAwLjE4NzUpO1xuICAgIC0tcGljby1tdXRlZC1jb2xvcjogIzdiODQ5NTtcbiAgICAtLXBpY28tbXV0ZWQtYm9yZGVyLWNvbG9yOiAjMjAyNjMyO1xuICAgIC0tcGljby1wcmltYXJ5OiAjMDFhYWZmO1xuICAgIC0tcGljby1wcmltYXJ5LWJhY2tncm91bmQ6ICMwMTcyYWQ7XG4gICAgLS1waWNvLXByaW1hcnktYm9yZGVyOiB2YXIoLS1waWNvLXByaW1hcnktYmFja2dyb3VuZCk7XG4gICAgLS1waWNvLXByaW1hcnktdW5kZXJsaW5lOiByZ2JhKDEsIDE3MCwgMjU1LCAwLjUpO1xuICAgIC0tcGljby1wcmltYXJ5LWhvdmVyOiAjNzljMGZmO1xuICAgIC0tcGljby1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6ICMwMTdmYzA7XG4gICAgLS1waWNvLXByaW1hcnktaG92ZXItYm9yZGVyOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1waWNvLXByaW1hcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXIpO1xuICAgIC0tcGljby1wcmltYXJ5LWZvY3VzOiByZ2JhKDEsIDE3MCwgMjU1LCAwLjM3NSk7XG4gICAgLS1waWNvLXByaW1hcnktaW52ZXJzZTogI2ZmZjtcbiAgICAtLXBpY28tc2Vjb25kYXJ5OiAjOTY5ZWFmO1xuICAgIC0tcGljby1zZWNvbmRhcnktYmFja2dyb3VuZDogIzUyNWY3YTtcbiAgICAtLXBpY28tc2Vjb25kYXJ5LWJvcmRlcjogdmFyKC0tcGljby1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgLS1waWNvLXNlY29uZGFyeS11bmRlcmxpbmU6IHJnYmEoMTUwLCAxNTgsIDE3NSwgMC41KTtcbiAgICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyOiAjYjNiOWM1O1xuICAgIC0tcGljby1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogIzVkNmI4OTtcbiAgICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJvcmRlcjogdmFyKC0tcGljby1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1waWNvLXNlY29uZGFyeS1ob3Zlci11bmRlcmxpbmU6IHZhcigtLXBpY28tc2Vjb25kYXJ5LWhvdmVyKTtcbiAgICAtLXBpY28tc2Vjb25kYXJ5LWZvY3VzOiByZ2JhKDE0NCwgMTU4LCAxOTAsIDAuMjUpO1xuICAgIC0tcGljby1zZWNvbmRhcnktaW52ZXJzZTogI2ZmZjtcbiAgICAtLXBpY28tY29udHJhc3Q6ICNkZmUzZWI7XG4gICAgLS1waWNvLWNvbnRyYXN0LWJhY2tncm91bmQ6ICNlZmYxZjQ7XG4gICAgLS1waWNvLWNvbnRyYXN0LWJvcmRlcjogdmFyKC0tcGljby1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgICAtLXBpY28tY29udHJhc3QtdW5kZXJsaW5lOiByZ2JhKDIyMywgMjI3LCAyMzUsIDAuNSk7XG4gICAgLS1waWNvLWNvbnRyYXN0LWhvdmVyOiAjZmZmO1xuICAgIC0tcGljby1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kOiAjZmZmO1xuICAgIC0tcGljby1jb250cmFzdC1ob3Zlci1ib3JkZXI6IHZhcigtLXBpY28tY29udHJhc3QtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgLS1waWNvLWNvbnRyYXN0LWhvdmVyLXVuZGVybGluZTogdmFyKC0tcGljby1jb250cmFzdC1ob3Zlcik7XG4gICAgLS1waWNvLWNvbnRyYXN0LWZvY3VzOiByZ2JhKDIwNywgMjEzLCAyMjYsIDAuMjUpO1xuICAgIC0tcGljby1jb250cmFzdC1pbnZlcnNlOiAjMDAwO1xuICAgIC0tcGljby1ib3gtc2hhZG93OiAwLjAxNDVyZW0gMC4wMjlyZW0gMC4xNzRyZW0gcmdiYSg3LCA4LjUsIDEyLCAwLjAxNjk4KSwgMC4wMzM1cmVtIDAuMDY3cmVtIDAuNDAycmVtIHJnYmEoNywgOC41LCAxMiwgMC4wMjQpLCAwLjA2MjVyZW0gMC4xMjVyZW0gMC43NXJlbSByZ2JhKDcsIDguNSwgMTIsIDAuMDMpLCAwLjExMjVyZW0gMC4yMjVyZW0gMS4zNXJlbSByZ2JhKDcsIDguNSwgMTIsIDAuMDM2KSwgMC4yMDg1cmVtIDAuNDE3cmVtIDIuNTAycmVtIHJnYmEoNywgOC41LCAxMiwgMC4wNDMwMiksIDAuNXJlbSAxcmVtIDZyZW0gcmdiYSg3LCA4LjUsIDEyLCAwLjA2KSwgMCAwIDAgMC4wNjI1cmVtIHJnYmEoNywgOC41LCAxMiwgMC4wMTUpO1xuICAgIC0tcGljby1oMS1jb2xvcjogI2YwZjFmMztcbiAgICAtLXBpY28taDItY29sb3I6ICNlMGUzZTc7XG4gICAgLS1waWNvLWgzLWNvbG9yOiAjYzJjN2QwO1xuICAgIC0tcGljby1oNC1jb2xvcjogI2IzYjljNTtcbiAgICAtLXBpY28taDUtY29sb3I6ICNhNGFjYmE7XG4gICAgLS1waWNvLWg2LWNvbG9yOiAjODg5MWE0O1xuICAgIC0tcGljby1tYXJrLWJhY2tncm91bmQtY29sb3I6ICMwMTQwNjM7XG4gICAgLS1waWNvLW1hcmstY29sb3I6ICNmZmY7XG4gICAgLS1waWNvLWlucy1jb2xvcjogIzYyYWY5YTtcbiAgICAtLXBpY28tZGVsLWNvbG9yOiByZ2IoMjA1LjUsIDEyNiwgMTIzKTtcbiAgICAtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tbXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXBpY28tYmxvY2txdW90ZS1mb290ZXItY29sb3I6IHZhcigtLXBpY28tbXV0ZWQtY29sb3IpO1xuICAgIC0tcGljby1idXR0b24tYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAtLXBpY28tYnV0dG9uLWhvdmVyLWJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjgsIDMzLCA0My41KTtcbiAgICAtLXBpY28tZm9ybS1lbGVtZW50LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6ICMyYTMxNDA7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3I6ICMyYTMxNDA7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1jb2xvcjogI2UwZTNlNztcbiAgICAtLXBpY28tZm9ybS1lbGVtZW50LXBsYWNlaG9sZGVyLWNvbG9yOiAjODg5MWE0O1xuICAgIC0tcGljby1mb3JtLWVsZW1lbnQtYWN0aXZlLWJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMzAuNSwgNDAuMjUpO1xuICAgIC0tcGljby1mb3JtLWVsZW1lbnQtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWJvcmRlcik7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWJvcmRlcik7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1kaXNhYmxlZC1vcGFjaXR5OiAwLjU7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1pbnZhbGlkLWJvcmRlci1jb2xvcjogcmdiKDE0OS41LCA3NCwgODApO1xuICAgIC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yOiByZ2IoMTgzLjI1LCA2My41LCA1OSk7XG4gICAgLS1waWNvLWZvcm0tZWxlbWVudC1pbnZhbGlkLWZvY3VzLWNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1pbnZhbGlkLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgIC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYm9yZGVyLWNvbG9yOiAjMmE3YjZmO1xuICAgIC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcjogcmdiKDIyLCAxMzcsIDEwNS41KTtcbiAgICAtLXBpY28tZm9ybS1lbGVtZW50LXZhbGlkLWZvY3VzLWNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC12YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgICAtLXBpY28tc3dpdGNoLWJhY2tncm91bmQtY29sb3I6ICMzMzNjNGU7XG4gICAgLS1waWNvLXN3aXRjaC1jaGVja2VkLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgICAtLXBpY28tc3dpdGNoLWNvbG9yOiAjZmZmO1xuICAgIC0tcGljby1zd2l0Y2gtdGh1bWItYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAtLXBpY28tYWNjb3JkaW9uLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1tdXRlZC1ib3JkZXItY29sb3IpO1xuICAgIC0tcGljby1hY2NvcmRpb24tYWN0aXZlLXN1bW1hcnktY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1ob3Zlcik7XG4gICAgLS1waWNvLWFjY29yZGlvbi1jbG9zZS1zdW1tYXJ5LWNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgICAtLXBpY28tYWNjb3JkaW9uLW9wZW4tc3VtbWFyeS1jb2xvcjogdmFyKC0tcGljby1tdXRlZC1jb2xvcik7XG4gICAgLS1waWNvLWNhcmQtYmFja2dyb3VuZC1jb2xvcjogIzE4MWMyNTtcbiAgICAtLXBpY28tY2FyZC1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tY2FyZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAtLXBpY28tY2FyZC1ib3gtc2hhZG93OiB2YXIoLS1waWNvLWJveC1zaGFkb3cpO1xuICAgIC0tcGljby1jYXJkLXNlY3Rpb25pbmctYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LCAzMC41LCA0MC4yNSk7XG4gICAgLS1waWNvLWRyb3Bkb3duLWJhY2tncm91bmQtY29sb3I6ICMxODFjMjU7XG4gICAgLS1waWNvLWRyb3Bkb3duLWJvcmRlci1jb2xvcjogIzIwMjYzMjtcbiAgICAtLXBpY28tZHJvcGRvd24tYm94LXNoYWRvdzogdmFyKC0tcGljby1ib3gtc2hhZG93KTtcbiAgICAtLXBpY28tZHJvcGRvd24tY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICAgIC0tcGljby1kcm9wZG93bi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAjMjAyNjMyO1xuICAgIC0tcGljby1pY29uLXZhbGlkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiKDQyLCAxMjMsIDExMSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nMjAgNiA5IDE3IDQgMTInJTNFJTNDL3BvbHlsaW5lJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAtLXBpY28taWNvbi1pbnZhbGlkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiKDE0OS41LCA3NCwgODApJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzEwJyUzRSUzQy9jaXJjbGUlM0UlM0NsaW5lIHgxPScxMicgeTE9JzgnIHgyPScxMicgeTI9JzEyJyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMTInIHkxPScxNicgeDI9JzEyLjAxJyB5Mj0nMTYnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICB9XG4gIDpyb290Om5vdChbZGF0YS10aGVtZV0pIGlucHV0OmlzKFt0eXBlPXN1Ym1pdF0sXG4gIFt0eXBlPWJ1dHRvbl0sXG4gIFt0eXBlPXJlc2V0XSxcbiAgW3R5cGU9Y2hlY2tib3hdLFxuICBbdHlwZT1yYWRpb10sXG4gIFt0eXBlPWZpbGVdKSxcbiAgOmhvc3QoOm5vdChbZGF0YS10aGVtZV0pKSBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFxuICBbdHlwZT1idXR0b25dLFxuICBbdHlwZT1yZXNldF0sXG4gIFt0eXBlPWNoZWNrYm94XSxcbiAgW3R5cGU9cmFkaW9dLFxuICBbdHlwZT1maWxlXSkge1xuICAgIC0tcGljby1mb3JtLWVsZW1lbnQtZm9jdXMtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1mb2N1cyk7XG4gIH1cbiAgOnJvb3Q6bm90KFtkYXRhLXRoZW1lXSkgZGV0YWlscyBzdW1tYXJ5W3JvbGU9YnV0dG9uXS5jb250cmFzdDpub3QoLm91dGxpbmUpOjphZnRlcixcbiAgOmhvc3QoOm5vdChbZGF0YS10aGVtZV0pKSBkZXRhaWxzIHN1bW1hcnlbcm9sZT1idXR0b25dLmNvbnRyYXN0Om5vdCgub3V0bGluZSk6OmFmdGVyIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCk7XG4gIH1cbn1cbltkYXRhLXRoZW1lPWRhcmtdIHtcbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xuICAtLXBpY28tYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5LCAyMi41LCAzMC41KTtcbiAgLS1waWNvLWNvbG9yOiAjYzJjN2QwO1xuICAtLXBpY28tdGV4dC1zZWxlY3Rpb24tY29sb3I6IHJnYmEoMSwgMTcwLCAyNTUsIDAuMTg3NSk7XG4gIC0tcGljby1tdXRlZC1jb2xvcjogIzdiODQ5NTtcbiAgLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcjogIzIwMjYzMjtcbiAgLS1waWNvLXByaW1hcnk6ICMwMWFhZmY7XG4gIC0tcGljby1wcmltYXJ5LWJhY2tncm91bmQ6ICMwMTcyYWQ7XG4gIC0tcGljby1wcmltYXJ5LWJvcmRlcjogdmFyKC0tcGljby1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAtLXBpY28tcHJpbWFyeS11bmRlcmxpbmU6IHJnYmEoMSwgMTcwLCAyNTUsIDAuNSk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyOiAjNzljMGZmO1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAjMDE3ZmMwO1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci1ib3JkZXI6IHZhcigtLXBpY28tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLXByaW1hcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXIpO1xuICAtLXBpY28tcHJpbWFyeS1mb2N1czogcmdiYSgxLCAxNzAsIDI1NSwgMC4zNzUpO1xuICAtLXBpY28tcHJpbWFyeS1pbnZlcnNlOiAjZmZmO1xuICAtLXBpY28tc2Vjb25kYXJ5OiAjOTY5ZWFmO1xuICAtLXBpY28tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICM1MjVmN2E7XG4gIC0tcGljby1zZWNvbmRhcnktYm9yZGVyOiB2YXIoLS1waWNvLXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLXNlY29uZGFyeS11bmRlcmxpbmU6IHJnYmEoMTUwLCAxNTgsIDE3NSwgMC41KTtcbiAgLS1waWNvLXNlY29uZGFyeS1ob3ZlcjogI2IzYjljNTtcbiAgLS1waWNvLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAjNWQ2Yjg5O1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJvcmRlcjogdmFyKC0tcGljby1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gIC0tcGljby1zZWNvbmRhcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1waWNvLXNlY29uZGFyeS1ob3Zlcik7XG4gIC0tcGljby1zZWNvbmRhcnktZm9jdXM6IHJnYmEoMTQ0LCAxNTgsIDE5MCwgMC4yNSk7XG4gIC0tcGljby1zZWNvbmRhcnktaW52ZXJzZTogI2ZmZjtcbiAgLS1waWNvLWNvbnRyYXN0OiAjZGZlM2ViO1xuICAtLXBpY28tY29udHJhc3QtYmFja2dyb3VuZDogI2VmZjFmNDtcbiAgLS1waWNvLWNvbnRyYXN0LWJvcmRlcjogdmFyKC0tcGljby1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLWNvbnRyYXN0LXVuZGVybGluZTogcmdiYSgyMjMsIDIyNywgMjM1LCAwLjUpO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXI6ICNmZmY7XG4gIC0tcGljby1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kOiAjZmZmO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItYm9yZGVyOiB2YXIoLS1waWNvLWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQpO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1waWNvLWNvbnRyYXN0LWhvdmVyKTtcbiAgLS1waWNvLWNvbnRyYXN0LWZvY3VzOiByZ2JhKDIwNywgMjEzLCAyMjYsIDAuMjUpO1xuICAtLXBpY28tY29udHJhc3QtaW52ZXJzZTogIzAwMDtcbiAgLS1waWNvLWJveC1zaGFkb3c6IDAuMDE0NXJlbSAwLjAyOXJlbSAwLjE3NHJlbSByZ2JhKDcsIDguNSwgMTIsIDAuMDE2OTgpLCAwLjAzMzVyZW0gMC4wNjdyZW0gMC40MDJyZW0gcmdiYSg3LCA4LjUsIDEyLCAwLjAyNCksIDAuMDYyNXJlbSAwLjEyNXJlbSAwLjc1cmVtIHJnYmEoNywgOC41LCAxMiwgMC4wMyksIDAuMTEyNXJlbSAwLjIyNXJlbSAxLjM1cmVtIHJnYmEoNywgOC41LCAxMiwgMC4wMzYpLCAwLjIwODVyZW0gMC40MTdyZW0gMi41MDJyZW0gcmdiYSg3LCA4LjUsIDEyLCAwLjA0MzAyKSwgMC41cmVtIDFyZW0gNnJlbSByZ2JhKDcsIDguNSwgMTIsIDAuMDYpLCAwIDAgMCAwLjA2MjVyZW0gcmdiYSg3LCA4LjUsIDEyLCAwLjAxNSk7XG4gIC0tcGljby1oMS1jb2xvcjogI2YwZjFmMztcbiAgLS1waWNvLWgyLWNvbG9yOiAjZTBlM2U3O1xuICAtLXBpY28taDMtY29sb3I6ICNjMmM3ZDA7XG4gIC0tcGljby1oNC1jb2xvcjogI2IzYjljNTtcbiAgLS1waWNvLWg1LWNvbG9yOiAjYTRhY2JhO1xuICAtLXBpY28taDYtY29sb3I6ICM4ODkxYTQ7XG4gIC0tcGljby1tYXJrLWJhY2tncm91bmQtY29sb3I6ICMwMTQwNjM7XG4gIC0tcGljby1tYXJrLWNvbG9yOiAjZmZmO1xuICAtLXBpY28taW5zLWNvbG9yOiAjNjJhZjlhO1xuICAtLXBpY28tZGVsLWNvbG9yOiByZ2IoMjA1LjUsIDEyNiwgMTIzKTtcbiAgLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcik7XG4gIC0tcGljby1ibG9ja3F1b3RlLWZvb3Rlci1jb2xvcjogdmFyKC0tcGljby1tdXRlZC1jb2xvcik7XG4gIC0tcGljby1idXR0b24tYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgLS1waWNvLWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93OiAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWJhY2tncm91bmQtY29sb3I6IHJnYigyOCwgMzMsIDQzLjUpO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6ICMyYTMxNDA7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtYm9yZGVyLWNvbG9yOiAjMmEzMTQwO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWNvbG9yOiAjZTBlM2U3O1xuICAtLXBpY28tZm9ybS1lbGVtZW50LXBsYWNlaG9sZGVyLWNvbG9yOiAjODg5MWE0O1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjYsIDMwLjUsIDQwLjI1KTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktYm9yZGVyKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWJvcmRlcik7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtZGlzYWJsZWQtb3BhY2l0eTogMC41O1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtYm9yZGVyLWNvbG9yOiByZ2IoMTQ5LjUsIDc0LCA4MCk7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yOiByZ2IoMTgzLjI1LCA2My41LCA1OSk7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC12YWxpZC1ib3JkZXItY29sb3I6ICMyYTdiNmY7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcjogcmdiKDIyLCAxMzcsIDEwNS41KTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC12YWxpZC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gIC0tcGljby1zd2l0Y2gtYmFja2dyb3VuZC1jb2xvcjogIzMzM2M0ZTtcbiAgLS1waWNvLXN3aXRjaC1jaGVja2VkLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLXN3aXRjaC1jb2xvcjogI2ZmZjtcbiAgLS1waWNvLXN3aXRjaC10aHVtYi1ib3gtc2hhZG93OiAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICAtLXBpY28tYWNjb3JkaW9uLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1tdXRlZC1ib3JkZXItY29sb3IpO1xuICAtLXBpY28tYWNjb3JkaW9uLWFjdGl2ZS1zdW1tYXJ5LWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXIpO1xuICAtLXBpY28tYWNjb3JkaW9uLWNsb3NlLXN1bW1hcnktY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICAtLXBpY28tYWNjb3JkaW9uLW9wZW4tc3VtbWFyeS1jb2xvcjogdmFyKC0tcGljby1tdXRlZC1jb2xvcik7XG4gIC0tcGljby1jYXJkLWJhY2tncm91bmQtY29sb3I6ICMxODFjMjU7XG4gIC0tcGljby1jYXJkLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1jYXJkLWJhY2tncm91bmQtY29sb3IpO1xuICAtLXBpY28tY2FyZC1ib3gtc2hhZG93OiB2YXIoLS1waWNvLWJveC1zaGFkb3cpO1xuICAtLXBpY28tY2FyZC1zZWN0aW9uaW5nLWJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMzAuNSwgNDAuMjUpO1xuICAtLXBpY28tZHJvcGRvd24tYmFja2dyb3VuZC1jb2xvcjogIzE4MWMyNTtcbiAgLS1waWNvLWRyb3Bkb3duLWJvcmRlci1jb2xvcjogIzIwMjYzMjtcbiAgLS1waWNvLWRyb3Bkb3duLWJveC1zaGFkb3c6IHZhcigtLXBpY28tYm94LXNoYWRvdyk7XG4gIC0tcGljby1kcm9wZG93bi1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIC0tcGljby1kcm9wZG93bi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAjMjAyNjMyO1xuICAtLXBpY28taWNvbi12YWxpZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9J3JnYig0MiwgMTIzLCAxMTEpJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzIwIDYgOSAxNyA0IDEyJyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0VcIik7XG4gIC0tcGljby1pY29uLWludmFsaWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2IoMTQ5LjUsIDc0LCA4MCknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2NpcmNsZSBjeD0nMTInIGN5PScxMicgcj0nMTAnJTNFJTNDL2NpcmNsZSUzRSUzQ2xpbmUgeDE9JzEyJyB5MT0nOCcgeDI9JzEyJyB5Mj0nMTInJTNFJTNDL2xpbmUlM0UlM0NsaW5lIHgxPScxMicgeTE9JzE2JyB4Mj0nMTIuMDEnIHkyPScxNiclM0UlM0MvbGluZSUzRSUzQy9zdmclM0VcIik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSBpbnB1dDppcyhbdHlwZT1zdWJtaXRdLFxuW3R5cGU9YnV0dG9uXSxcblt0eXBlPXJlc2V0XSxcblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSxcblt0eXBlPWZpbGVdKSB7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtZm9jdXMtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1mb2N1cyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSBkZXRhaWxzIHN1bW1hcnlbcm9sZT1idXR0b25dLmNvbnRyYXN0Om5vdCgub3V0bGluZSk6OmFmdGVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDApO1xufVxuXG5wcm9ncmVzcyxcblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSxcblt0eXBlPXJhbmdlXSB7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5KTtcbn1cblxuLyoqXG4gKiBEb2N1bWVudFxuICogQ29udGVudC1ib3ggJiBSZXNwb25zaXZlIHR5cG9ncmFwaHlcbiAqL1xuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuOjpiZWZvcmUsXG46OmFmdGVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcbn1cblxuOndoZXJlKDpyb290KSxcbjp3aGVyZSg6aG9zdCkge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXBpY28tZm9udC13ZWlnaHQpO1xuICBmb250LXNpemU6IHZhcigtLXBpY28tZm9udC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXBpY28tbGluZS1oZWlnaHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tcGljby1mb250LWZhbWlseSk7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogdmFyKC0tcGljby10ZXh0LXVuZGVybGluZS1vZmZzZXQpO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB0YWItc2l6ZTogNDtcbn1cblxuLyoqXG4gKiBMYW5kbWFya3NcbiAqL1xuYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keSA+IGhlYWRlcixcbmJvZHkgPiBtYWluLFxuYm9keSA+IGZvb3RlciB7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbCk7XG59XG5cbi8qKlxuICogU2VjdGlvblxuICovXG5zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKTtcbn1cblxuLyoqXG4gKiBDb250YWluZXJcbiAqL1xuLmNvbnRhaW5lcixcbi5jb250YWluZXItZmx1aWQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1waWNvLXNwYWNpbmcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xuICB9XG59XG5cbi8qKlxuICogR3JpZFxuICogTWluaW1hbCBncmlkIHN5c3RlbSB3aXRoIGF1dG8tbGF5b3V0IGNvbHVtbnNcbiAqL1xuLmdyaWQge1xuICBncmlkLWNvbHVtbi1nYXA6IHZhcigtLXBpY28tZ3JpZC1jb2x1bW4tZ2FwKTtcbiAgZ3JpZC1yb3ctZ2FwOiB2YXIoLS1waWNvLWdyaWQtcm93LWdhcCk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDAlLCAxZnIpKTtcbiAgfVxufVxuLmdyaWQgPiAqIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4vKipcbiAqIE92ZXJmbG93IGF1dG9cbiAqL1xuLm92ZXJmbG93LWF1dG8ge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBUeXBvZ3JhcGh5XG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5zdWIsXG5zdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5hZGRyZXNzLFxuYmxvY2txdW90ZSxcbmRsLFxub2wsXG5wLFxucHJlLFxudGFibGUsXG51bCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKTtcbiAgY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1waWNvLWZvbnQtd2VpZ2h0KTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby10eXBvZ3JhcGh5LXNwYWNpbmctdmVydGljYWwpO1xuICBjb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1waWNvLWZvbnQtd2VpZ2h0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1waWNvLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1waWNvLWxpbmUtaGVpZ2h0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXBpY28tZm9udC1mYW1pbHkpO1xufVxuXG5oMSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1oMS1jb2xvcik7XG59XG5cbmgyIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWgyLWNvbG9yKTtcbn1cblxuaDMge1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28taDMtY29sb3IpO1xufVxuXG5oNCB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1oNC1jb2xvcik7XG59XG5cbmg1IHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWg1LWNvbG9yKTtcbn1cblxuaDYge1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28taDYtY29sb3IpO1xufVxuXG46d2hlcmUoYXJ0aWNsZSwgYWRkcmVzcywgYmxvY2txdW90ZSwgZGwsIGZpZ3VyZSwgZm9ybSwgb2wsIHAsIHByZSwgdGFibGUsIHVsKSB+IDppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXRvcCk7XG59XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXR5cG9ncmFwaHktc3BhY2luZy12ZXJ0aWNhbCk7XG59XG5cbmhncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKTtcbn1cbmhncm91cCA+ICoge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuaGdyb3VwID4gKjpub3QoOmZpcnN0LWNoaWxkKTpsYXN0LWNoaWxkIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLW11dGVkLWNvbG9yKTtcbiAgLS1waWNvLWZvbnQtd2VpZ2h0OiB1bnNldDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG46d2hlcmUob2wsIHVsKSBsaSB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcGljby10eXBvZ3JhcGh5LXNwYWNpbmctdmVydGljYWwpICogMC4yNSk7XG59XG5cbjp3aGVyZShkbCwgb2wsIHVsKSA6d2hlcmUoZGwsIG9sLCB1bCkge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tcGljby10eXBvZ3JhcGh5LXNwYWNpbmctdmVydGljYWwpICogMC4yNSk7XG59XG5cbnVsIGxpIHtcbiAgbGlzdC1zdHlsZTogc3F1YXJlO1xufVxuXG5tYXJrIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1tYXJrLWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tcGljby1tYXJrLWNvbG9yKTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogdmFyKC0tcGljby10eXBvZ3JhcGh5LXNwYWNpbmctdmVydGljYWwpIDA7XG4gIHBhZGRpbmc6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDAuMjVyZW0gc29saWQgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1pbmxpbmUtc3RhcnQ6IDAuMjVyZW0gc29saWQgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1pbmxpbmUtZW5kOiBub25lO1xufVxuYmxvY2txdW90ZSBmb290ZXIge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKSAqIDAuNSk7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yKTtcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogaGVscDtcbn1cblxuaW5zIHtcbiAgY29sb3I6IHZhcigtLXBpY28taW5zLWNvbG9yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5kZWwge1xuICBjb2xvcjogdmFyKC0tcGljby1kZWwtY29sb3IpO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tdGV4dC1zZWxlY3Rpb24tY29sb3IpO1xufVxuXG4vKipcbiAqIExpbmtcbiAqL1xuOndoZXJlKGE6bm90KFtyb2xlPWJ1dHRvbl0pKSxcbltyb2xlPWxpbmtdIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpO1xuICAtLXBpY28tYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tcGljby11bmRlcmxpbmU6IHZhcigtLXBpY28tcHJpbWFyeS11bmRlcmxpbmUpO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIHRleHQtZGVjb3JhdGlvbjogdmFyKC0tcGljby10ZXh0LWRlY29yYXRpb24pO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLXBpY28tdW5kZXJsaW5lKTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjEyNWVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXBpY28tdHJhbnNpdGlvbiksIGNvbG9yIHZhcigtLXBpY28tdHJhbnNpdGlvbiksIHRleHQtZGVjb3JhdGlvbiB2YXIoLS1waWNvLXRyYW5zaXRpb24pLCBib3gtc2hhZG93IHZhcigtLXBpY28tdHJhbnNpdGlvbik7XG59XG46d2hlcmUoYTpub3QoW3JvbGU9YnV0dG9uXSkpOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSxcbltyb2xlPWxpbmtdOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWhvdmVyKTtcbiAgLS1waWNvLXVuZGVybGluZTogdmFyKC0tcGljby1wcmltYXJ5LWhvdmVyLXVuZGVybGluZSk7XG4gIC0tcGljby10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbjp3aGVyZShhOm5vdChbcm9sZT1idXR0b25dKSk6Zm9jdXMtdmlzaWJsZSxcbltyb2xlPWxpbmtdOmZvY3VzLXZpc2libGUge1xuICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1waWNvLW91dGxpbmUtd2lkdGgpIHZhcigtLXBpY28tcHJpbWFyeS1mb2N1cyk7XG59XG46d2hlcmUoYTpub3QoW3JvbGU9YnV0dG9uXSkpLnNlY29uZGFyeSxcbltyb2xlPWxpbmtdLnNlY29uZGFyeSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1zZWNvbmRhcnkpO1xuICAtLXBpY28tdW5kZXJsaW5lOiB2YXIoLS1waWNvLXNlY29uZGFyeS11bmRlcmxpbmUpO1xufVxuOndoZXJlKGE6bm90KFtyb2xlPWJ1dHRvbl0pKS5zZWNvbmRhcnk6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSwgOmhvdmVyLCA6YWN0aXZlLCA6Zm9jdXMpLFxuW3JvbGU9bGlua10uc2Vjb25kYXJ5OmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1zZWNvbmRhcnktaG92ZXIpO1xuICAtLXBpY28tdW5kZXJsaW5lOiB2YXIoLS1waWNvLXNlY29uZGFyeS1ob3Zlci11bmRlcmxpbmUpO1xufVxuOndoZXJlKGE6bm90KFtyb2xlPWJ1dHRvbl0pKS5jb250cmFzdCxcbltyb2xlPWxpbmtdLmNvbnRyYXN0IHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0KTtcbiAgLS1waWNvLXVuZGVybGluZTogdmFyKC0tcGljby1jb250cmFzdC11bmRlcmxpbmUpO1xufVxuOndoZXJlKGE6bm90KFtyb2xlPWJ1dHRvbl0pKS5jb250cmFzdDppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cyksXG5bcm9sZT1saW5rXS5jb250cmFzdDppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cykge1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tY29udHJhc3QtaG92ZXIpO1xuICAtLXBpY28tdW5kZXJsaW5lOiB2YXIoLS1waWNvLWNvbnRyYXN0LWhvdmVyLXVuZGVybGluZSk7XG59XG5cbmFbcm9sZT1idXR0b25dIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEJ1dHRvblxuICovXG5idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcblt0eXBlPXN1Ym1pdF0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1idXR0b25dIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbixcblt0eXBlPXN1Ym1pdF0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1idXR0b25dLFxuW3R5cGU9ZmlsZV06OmZpbGUtc2VsZWN0b3ItYnV0dG9uLFxuW3JvbGU9YnV0dG9uXSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktYmFja2dyb3VuZCk7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1ib3JkZXIpO1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1pbnZlcnNlKTtcbiAgLS1waWNvLWJveC1zaGFkb3c6IHZhcigtLXBpY28tYnV0dG9uLWJveC1zaGFkb3csIDAgMCAwIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBwYWRkaW5nOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuICBib3JkZXI6IHZhcigtLXBpY28tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1waWNvLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXBpY28tYm9yZGVyLXJhZGl1cyk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gIGJveC1zaGFkb3c6IHZhcigtLXBpY28tYm94LXNoYWRvdyk7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXBpY28tZm9udC13ZWlnaHQpO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1waWNvLWxpbmUtaGVpZ2h0KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tcGljby10cmFuc2l0aW9uKSwgYm9yZGVyLWNvbG9yIHZhcigtLXBpY28tdHJhbnNpdGlvbiksIGNvbG9yIHZhcigtLXBpY28tdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tcGljby10cmFuc2l0aW9uKTtcbn1cbmJ1dHRvbjppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pKSwgYnV0dG9uOmlzKDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSxcblt0eXBlPXN1Ym1pdF06aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSksXG5bdHlwZT1zdWJtaXRdOmlzKDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSxcblt0eXBlPXJlc2V0XTppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pKSxcblt0eXBlPXJlc2V0XTppcyg6aG92ZXIsIDphY3RpdmUsIDpmb2N1cyksXG5bdHlwZT1idXR0b25dOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSkpLFxuW3R5cGU9YnV0dG9uXTppcyg6aG92ZXIsIDphY3RpdmUsIDpmb2N1cyksXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSksXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246aXMoOmhvdmVyLCA6YWN0aXZlLCA6Zm9jdXMpLFxuW3JvbGU9YnV0dG9uXTppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pKSxcbltyb2xlPWJ1dHRvbl06aXMoOmhvdmVyLCA6YWN0aXZlLCA6Zm9jdXMpIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWhvdmVyLWJvcmRlcik7XG4gIC0tcGljby1ib3gtc2hhZG93OiB2YXIoLS1waWNvLWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktaW52ZXJzZSk7XG59XG5idXR0b246Zm9jdXMsIGJ1dHRvbjppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pKTpmb2N1cyxcblt0eXBlPXN1Ym1pdF06Zm9jdXMsXG5bdHlwZT1zdWJtaXRdOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSkpOmZvY3VzLFxuW3R5cGU9cmVzZXRdOmZvY3VzLFxuW3R5cGU9cmVzZXRdOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSkpOmZvY3VzLFxuW3R5cGU9YnV0dG9uXTpmb2N1cyxcblt0eXBlPWJ1dHRvbl06aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSk6Zm9jdXMsXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246Zm9jdXMsXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSk6Zm9jdXMsXG5bcm9sZT1idXR0b25dOmZvY3VzLFxuW3JvbGU9YnV0dG9uXTppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pKTpmb2N1cyB7XG4gIC0tcGljby1ib3gtc2hhZG93OiB2YXIoLS1waWNvLWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKSwgMCAwIDAgdmFyKC0tcGljby1vdXRsaW5lLXdpZHRoKSB2YXIoLS1waWNvLXByaW1hcnktZm9jdXMpO1xufVxuXG5bdHlwZT1zdWJtaXRdLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9YnV0dG9uXSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5cbjppcyhidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFtyb2xlPWJ1dHRvbl0pLnNlY29uZGFyeSxcblt0eXBlPXJlc2V0XSxcblt0eXBlPWZpbGVdOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1zZWNvbmRhcnktYm9yZGVyKTtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLXNlY29uZGFyeS1pbnZlcnNlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuOmlzKGJ1dHRvbiwgW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSwgW3JvbGU9YnV0dG9uXSkuc2Vjb25kYXJ5OmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSxcblt0eXBlPXJlc2V0XTppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cyksXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSwgOmhvdmVyLCA6YWN0aXZlLCA6Zm9jdXMpIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXNlY29uZGFyeS1ob3Zlci1ib3JkZXIpO1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tc2Vjb25kYXJ5LWludmVyc2UpO1xufVxuOmlzKGJ1dHRvbiwgW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSwgW3JvbGU9YnV0dG9uXSkuc2Vjb25kYXJ5OmZvY3VzLCA6aXMoYnV0dG9uLCBbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dLCBbcm9sZT1idXR0b25dKS5zZWNvbmRhcnk6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSk6Zm9jdXMsXG5bdHlwZT1yZXNldF06Zm9jdXMsXG5bdHlwZT1yZXNldF06aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSk6Zm9jdXMsXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246Zm9jdXMsXG5bdHlwZT1maWxlXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSk6Zm9jdXMge1xuICAtLXBpY28tYm94LXNoYWRvdzogdmFyKC0tcGljby1idXR0b24taG92ZXItYm94LXNoYWRvdywgMCAwIDAgcmdiYSgwLCAwLCAwLCAwKSksIDAgMCAwIHZhcigtLXBpY28tb3V0bGluZS13aWR0aCkgdmFyKC0tcGljby1zZWNvbmRhcnktZm9jdXMpO1xufVxuXG46aXMoYnV0dG9uLCBbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dLCBbcm9sZT1idXR0b25dKS5jb250cmFzdCB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0LWJvcmRlcik7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb250cmFzdC1pbnZlcnNlKTtcbn1cbjppcyhidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFtyb2xlPWJ1dHRvbl0pLmNvbnRyYXN0OmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0LWhvdmVyLWJvcmRlcik7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb250cmFzdC1pbnZlcnNlKTtcbn1cbjppcyhidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFtyb2xlPWJ1dHRvbl0pLmNvbnRyYXN0OmZvY3VzLCA6aXMoYnV0dG9uLCBbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dLCBbcm9sZT1idXR0b25dKS5jb250cmFzdDppcyhbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pKTpmb2N1cyB7XG4gIC0tcGljby1ib3gtc2hhZG93OiB2YXIoLS1waWNvLWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKSwgMCAwIDAgdmFyKC0tcGljby1vdXRsaW5lLXdpZHRoKSB2YXIoLS1waWNvLWNvbnRyYXN0LWZvY3VzKTtcbn1cblxuOmlzKGJ1dHRvbiwgW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSwgW3JvbGU9YnV0dG9uXSkub3V0bGluZSxcblt0eXBlPXJlc2V0XS5vdXRsaW5lIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG59XG46aXMoYnV0dG9uLCBbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dLCBbcm9sZT1idXR0b25dKS5vdXRsaW5lOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSxcblt0eXBlPXJlc2V0XS5vdXRsaW5lOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXIpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktaG92ZXIpO1xufVxuXG46aXMoYnV0dG9uLCBbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dLCBbcm9sZT1idXR0b25dKS5vdXRsaW5lLnNlY29uZGFyeSxcblt0eXBlPXJlc2V0XS5vdXRsaW5lIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLXNlY29uZGFyeSk7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tc2Vjb25kYXJ5KTtcbn1cbjppcyhidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFtyb2xlPWJ1dHRvbl0pLm91dGxpbmUuc2Vjb25kYXJ5OmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSxcblt0eXBlPXJlc2V0XS5vdXRsaW5lOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PWZhbHNlXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1zZWNvbmRhcnktaG92ZXIpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXNlY29uZGFyeS1ob3Zlcik7XG59XG5cbjppcyhidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFtyb2xlPWJ1dHRvbl0pLm91dGxpbmUuY29udHJhc3Qge1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tY29udHJhc3QpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0KTtcbn1cbjppcyhidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFtyb2xlPWJ1dHRvbl0pLm91dGxpbmUuY29udHJhc3Q6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSwgOmhvdmVyLCA6YWN0aXZlLCA6Zm9jdXMpIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWNvbnRyYXN0LWhvdmVyKTtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1jb250cmFzdC1ob3Zlcik7XG59XG5cbjp3aGVyZShidXR0b24sIFt0eXBlPXN1Ym1pdF0sIFt0eXBlPXJlc2V0XSwgW3R5cGU9YnV0dG9uXSwgW3JvbGU9YnV0dG9uXSlbZGlzYWJsZWRdLFxuOndoZXJlKGZpZWxkc2V0W2Rpc2FibGVkXSkgOmlzKGJ1dHRvbiwgW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSwgW3R5cGU9cmVzZXRdLCBbcm9sZT1idXR0b25dKSB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qKlxuICogRW1iZWRkZWQgY29udGVudFxuICovXG46d2hlcmUoYXVkaW8sIGNhbnZhcywgaWZyYW1lLCBpbWcsIHN2ZywgdmlkZW8pIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG46d2hlcmUoaWZyYW1lKSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuOndoZXJlKHN2Zzpub3QoW2ZpbGxdKSkge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbnN2Zzpub3QoOnJvb3QpLFxuc3ZnOm5vdCg6aG9zdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKipcbiAqIEZpZ3VyZVxuICovXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuZmlndXJlIGZpZ2NhcHRpb24ge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgKiAwLjUpIDA7XG4gIGNvbG9yOiB2YXIoLS1waWNvLW11dGVkLWNvbG9yKTtcbn1cblxuLyoqXG4gKiBNaXNjXG4gKi9cbmhyIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IHZhcigtLXBpY28tdHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKSAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcik7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQmFzaWNzIGZvcm0gZWxlbWVudHNcbiAqL1xuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1waWNvLWxpbmUtaGVpZ2h0KTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xufVxuXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgcGFkZGluZzogMDtcbn1cblxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5bdHlwZT1zZWFyY2hdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuOi1tb3otdWktaW52YWxpZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbjo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblt0eXBlPWZpbGVdLFxuW3R5cGU9cmFuZ2VdIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xufVxuXG5pbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10sIFt0eXBlPXJhbmdlXSkge1xuICBoZWlnaHQ6IGNhbGMoMXJlbSAqIHZhcigtLXBpY28tbGluZS1oZWlnaHQpICsgdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAyICsgdmFyKC0tcGljby1ib3JkZXItd2lkdGgpICogMik7XG59XG5cbmZpZWxkc2V0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG5sYWJlbCxcbmZpZWxkc2V0IGxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgKiAwLjM3NSk7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXBpY28tZm9ybS1sYWJlbC1mb250LXdlaWdodCwgdmFyKC0tcGljby1mb250LXdlaWdodCkpO1xufVxuXG5maWVsZHNldCBsZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgKiAwLjUpO1xufVxuXG5pbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pLFxuYnV0dG9uW3R5cGU9c3VibWl0XSxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSwgW3R5cGU9cmFuZ2VdLCBbdHlwZT1maWxlXSksXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpIHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG59XG5cbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAtLXBpY28tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtYmFja2dyb3VuZC1jb2xvcik7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWJvcmRlci1jb2xvcik7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtY29sb3IpO1xuICAtLXBpY28tYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcGljby1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1waWNvLWJvcmRlci1yYWRpdXMpO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWJhY2tncm91bmQtY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS1waWNvLWJveC1zaGFkb3cpO1xuICBjb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1waWNvLWZvbnQtd2VpZ2h0KTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1waWNvLXRyYW5zaXRpb24pLCBib3JkZXItY29sb3IgdmFyKC0tcGljby10cmFuc2l0aW9uKSwgY29sb3IgdmFyKC0tcGljby10cmFuc2l0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS1waWNvLXRyYW5zaXRpb24pO1xufVxuXG5pbnB1dDpub3QoW3R5cGU9c3VibWl0XSxcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10sXG5bcmVhZG9ubHldKTppcyg6YWN0aXZlLCA6Zm9jdXMpLFxuOndoZXJlKHNlbGVjdCwgdGV4dGFyZWEpOm5vdChbcmVhZG9ubHldKTppcyg6YWN0aXZlLCA6Zm9jdXMpIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFt0eXBlPXJlc2V0XSwgW3JvbGU9c3dpdGNoXSwgW3JlYWRvbmx5XSk6aXMoOmFjdGl2ZSwgOmZvY3VzKSxcbjp3aGVyZShzZWxlY3QsIHRleHRhcmVhKTpub3QoW3JlYWRvbmx5XSk6aXMoOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWFjdGl2ZS1ib3JkZXItY29sb3IpO1xufVxuXG5pbnB1dDpub3QoW3R5cGU9c3VibWl0XSxcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1yYW5nZV0sXG5bdHlwZT1maWxlXSxcbltyZWFkb25seV0pOmZvY3VzLFxuOndoZXJlKHNlbGVjdCwgdGV4dGFyZWEpOm5vdChbcmVhZG9ubHldKTpmb2N1cyB7XG4gIC0tcGljby1ib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1waWNvLW91dGxpbmUtd2lkdGgpIHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWZvY3VzLWNvbG9yKTtcbn1cblxuaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFt0eXBlPXJlc2V0XSlbZGlzYWJsZWRdLFxuc2VsZWN0W2Rpc2FibGVkXSxcbnRleHRhcmVhW2Rpc2FibGVkXSxcbmxhYmVsW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sXG46d2hlcmUoZmllbGRzZXRbZGlzYWJsZWRdKSA6aXMoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0sIFt0eXBlPXJlc2V0XSksIHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgb3BhY2l0eTogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtZGlzYWJsZWQtb3BhY2l0eSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5sYWJlbFthcmlhLWRpc2FibGVkPXRydWVdIGlucHV0W2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6bm90KFt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSxcblt0eXBlPWRhdGVdLFxuW3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLFxuW3R5cGU9bW9udGhdLFxuW3R5cGU9dGltZV0sXG5bdHlwZT13ZWVrXSxcblt0eXBlPXJhbmdlXSlbYXJpYS1pbnZhbGlkXSB7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNXJlbSkgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWlubGluZS1lbmQ6IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNXJlbSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDAuNzVyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSBhdXRvO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKTpub3QoW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dLFxuW3R5cGU9ZGF0ZV0sXG5bdHlwZT1kYXRldGltZS1sb2NhbF0sXG5bdHlwZT1tb250aF0sXG5bdHlwZT10aW1lXSxcblt0eXBlPXdlZWtdLFxuW3R5cGU9cmFuZ2VdKVthcmlhLWludmFsaWQ9ZmFsc2VdOm5vdChzZWxlY3QpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tcGljby1pY29uLXZhbGlkKTtcbn1cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6bm90KFt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSxcblt0eXBlPWRhdGVdLFxuW3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLFxuW3R5cGU9bW9udGhdLFxuW3R5cGU9dGltZV0sXG5bdHlwZT13ZWVrXSxcblt0eXBlPXJhbmdlXSlbYXJpYS1pbnZhbGlkPXRydWVdOm5vdChzZWxlY3QpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tcGljby1pY29uLWludmFsaWQpO1xufVxuOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKVthcmlhLWludmFsaWQ9ZmFsc2VdIHtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYm9yZGVyLWNvbG9yKTtcbn1cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSlbYXJpYS1pbnZhbGlkPWZhbHNlXTppcyg6YWN0aXZlLCA6Zm9jdXMpIHtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcikgIWltcG9ydGFudDtcbn1cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSlbYXJpYS1pbnZhbGlkPWZhbHNlXTppcyg6YWN0aXZlLCA6Zm9jdXMpOm5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSkge1xuICAtLXBpY28tYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tcGljby1vdXRsaW5lLXdpZHRoKSB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC12YWxpZC1mb2N1cy1jb2xvcikgIWltcG9ydGFudDtcbn1cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSlbYXJpYS1pbnZhbGlkPXRydWVdIHtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xufVxuOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKVthcmlhLWludmFsaWQ9dHJ1ZV06aXMoOmFjdGl2ZSwgOmZvY3VzKSB7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcikgIWltcG9ydGFudDtcbn1cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSlbYXJpYS1pbnZhbGlkPXRydWVdOmlzKDphY3RpdmUsIDpmb2N1cyk6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKSB7XG4gIC0tcGljby1ib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1waWNvLW91dGxpbmUtd2lkdGgpIHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtZm9jdXMtY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbltkaXI9cnRsXSA6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOm5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSk6aXMoW2FyaWEtaW52YWxpZF0sIFthcmlhLWludmFsaWQ9dHJ1ZV0sIFthcmlhLWludmFsaWQ9ZmFsc2VdKSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0IDAuNzVyZW07XG59XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbmlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG5zZWxlY3Q6aW52YWxpZCB7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1wbGFjZWhvbGRlci1jb2xvcik7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSksXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5cbnNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5zZWxlY3Q6bm90KFttdWx0aXBsZV0sIFtzaXplXSkge1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKyAxLjVyZW0pO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuICBwYWRkaW5nLWlubGluZS1lbmQ6IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNXJlbSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXBpY28taWNvbi1jaGV2cm9uKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDAuNzVyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSBhdXRvO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuc2VsZWN0W211bHRpcGxlXSBvcHRpb246Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtY29sb3IpO1xufVxuXG5bZGlyPXJ0bF0gc2VsZWN0Om5vdChbbXVsdGlwbGVdLCBbc2l6ZV0pIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGxlZnQgMC43NXJlbTtcbn1cblxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cbnRleHRhcmVhW2FyaWEtaW52YWxpZF0ge1xuICAtLXBpY28taWNvbi1oZWlnaHQ6IGNhbGMoMXJlbSAqIHZhcigtLXBpY28tbGluZS1oZWlnaHQpICsgdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAyICsgdmFyKC0tcGljby1ib3JkZXItd2lkdGgpICogMik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCByaWdodCAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSB2YXIoLS1waWNvLWljb24taGVpZ2h0KSAhaW1wb3J0YW50O1xufVxuXG46d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGZpZWxkc2V0LCAuZ3JpZCkgKyBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpICogLTAuNzUpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBjb2xvcjogdmFyKC0tcGljby1tdXRlZC1jb2xvcik7XG59XG46d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGZpZWxkc2V0LCAuZ3JpZClbYXJpYS1pbnZhbGlkPWZhbHNlXSArIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLXBpY28taW5zLWNvbG9yKTtcbn1cbjp3aGVyZShpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgZmllbGRzZXQsIC5ncmlkKVthcmlhLWludmFsaWQ9dHJ1ZV0gKyBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWRlbC1jb2xvcik7XG59XG5cbmxhYmVsID4gOndoZXJlKGlucHV0LCBzZWxlY3QsIHRleHRhcmVhKSB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAqIDAuMjUpO1xufVxuXG4vKipcbiAqIENoZWNrYm94ZXMsIFJhZGlvcyBhbmQgU3dpdGNoZXNcbiAqL1xubGFiZWw6aGFzKFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKSB7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEuMjVlbTtcbiAgaGVpZ2h0OiAxLjI1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjEyNWVtO1xuICBtYXJnaW4taW5saW5lLWVuZDogMC41ZW07XG4gIGJvcmRlci13aWR0aDogdmFyKC0tcGljby1ib3JkZXItd2lkdGgpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5bdHlwZT1jaGVja2JveF06Oi1tcy1jaGVjayxcblt0eXBlPXJhZGlvXTo6LW1zLWNoZWNrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblt0eXBlPWNoZWNrYm94XTpjaGVja2VkLCBbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUsIFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmZvY3VzLFxuW3R5cGU9cmFkaW9dOmNoZWNrZWQsXG5bdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUsXG5bdHlwZT1yYWRpb106Y2hlY2tlZDpmb2N1cyB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktYmFja2dyb3VuZCk7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1waWNvLWljb24tY2hlY2tib3gpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMC43NWVtIGF1dG87XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5bdHlwZT1jaGVja2JveF0gfiBsYWJlbCxcblt0eXBlPXJhZGlvXSB+IGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5bdHlwZT1jaGVja2JveF0gfiBsYWJlbDpub3QoOmxhc3Qtb2YtdHlwZSksXG5bdHlwZT1yYWRpb10gfiBsYWJlbDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICBtYXJnaW4taW5saW5lLWVuZDogMWVtO1xufVxuXG5bdHlwZT1jaGVja2JveF06aW5kZXRlcm1pbmF0ZSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktYmFja2dyb3VuZCk7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1waWNvLWljb24tbWludXMpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMC43NWVtIGF1dG87XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cblt0eXBlPXJhZGlvXSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblt0eXBlPXJhZGlvXTpjaGVja2VkLCBbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUsIFt0eXBlPXJhZGlvXTpjaGVja2VkOmZvY3VzIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeS1pbnZlcnNlKTtcbiAgYm9yZGVyLXdpZHRoOiAwLjM1ZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cblt0eXBlPWNoZWNrYm94XVtyb2xlPXN3aXRjaF0ge1xuICAtLXBpY28tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1zd2l0Y2gtYmFja2dyb3VuZC1jb2xvcik7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1zd2l0Y2gtY29sb3IpO1xuICB3aWR0aDogMi4yNWVtO1xuICBoZWlnaHQ6IDEuMjVlbTtcbiAgYm9yZGVyOiB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcGljby1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAxLjI1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1ZW07XG59XG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdOm5vdChbYXJpYS1pbnZhbGlkXSkge1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXN3aXRjaC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblt0eXBlPWNoZWNrYm94XVtyb2xlPXN3aXRjaF06YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFzcGVjdC1yYXRpbzogMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS1waWNvLXN3aXRjaC10aHVtYi1ib3gtc2hhZG93KTtcbiAgY29udGVudDogXCJcIjtcbiAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMXMgZWFzZS1pbi1vdXQ7XG59XG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdOmZvY3VzIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tc3dpdGNoLWJhY2tncm91bmQtY29sb3IpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXN3aXRjaC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblt0eXBlPWNoZWNrYm94XVtyb2xlPXN3aXRjaF06Y2hlY2tlZCB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXN3aXRjaC1jaGVja2VkLWJhY2tncm91bmQtY29sb3IpO1xuICAtLXBpY28tYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLXN3aXRjaC1jaGVja2VkLWJhY2tncm91bmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuW3R5cGU9Y2hlY2tib3hdW3JvbGU9c3dpdGNoXTpjaGVja2VkOjpiZWZvcmUge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKDIuMjVlbSAtIDEuMjVlbSk7XG59XG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdW2Rpc2FibGVkXSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWJvcmRlci1jb2xvcik7XG59XG5cblt0eXBlPWNoZWNrYm94XVthcmlhLWludmFsaWQ9ZmFsc2VdOmNoZWNrZWQsIFt0eXBlPWNoZWNrYm94XVthcmlhLWludmFsaWQ9ZmFsc2VdOmNoZWNrZWQ6YWN0aXZlLCBbdHlwZT1jaGVja2JveF1bYXJpYS1pbnZhbGlkPWZhbHNlXTpjaGVja2VkOmZvY3VzLFxuW3R5cGU9Y2hlY2tib3hdW3JvbGU9c3dpdGNoXVthcmlhLWludmFsaWQ9ZmFsc2VdOmNoZWNrZWQsXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZDphY3RpdmUsXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZDpmb2N1cyB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC12YWxpZC1ib3JkZXItY29sb3IpO1xufVxuW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWRbYXJpYS1pbnZhbGlkPXRydWVdLCBbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmVbYXJpYS1pbnZhbGlkPXRydWVdLCBbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpmb2N1c1thcmlhLWludmFsaWQ9dHJ1ZV0sXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdOmNoZWNrZWRbYXJpYS1pbnZhbGlkPXRydWVdLFxuW3R5cGU9Y2hlY2tib3hdW3JvbGU9c3dpdGNoXTpjaGVja2VkOmFjdGl2ZVthcmlhLWludmFsaWQ9dHJ1ZV0sXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdOmNoZWNrZWQ6Zm9jdXNbYXJpYS1pbnZhbGlkPXRydWVdIHtcbiAgLS1waWNvLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbn1cblxuW3R5cGU9Y2hlY2tib3hdW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZCwgW3R5cGU9Y2hlY2tib3hdW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZDphY3RpdmUsIFt0eXBlPWNoZWNrYm94XVthcmlhLWludmFsaWQ9ZmFsc2VdOmNoZWNrZWQ6Zm9jdXMsXG5bdHlwZT1yYWRpb11bYXJpYS1pbnZhbGlkPWZhbHNlXTpjaGVja2VkLFxuW3R5cGU9cmFkaW9dW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZDphY3RpdmUsXG5bdHlwZT1yYWRpb11bYXJpYS1pbnZhbGlkPWZhbHNlXTpjaGVja2VkOmZvY3VzLFxuW3R5cGU9Y2hlY2tib3hdW3JvbGU9c3dpdGNoXVthcmlhLWludmFsaWQ9ZmFsc2VdOmNoZWNrZWQsXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZDphY3RpdmUsXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdW2FyaWEtaW52YWxpZD1mYWxzZV06Y2hlY2tlZDpmb2N1cyB7XG4gIC0tcGljby1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXZhbGlkLWJvcmRlci1jb2xvcik7XG59XG5bdHlwZT1jaGVja2JveF06Y2hlY2tlZFthcmlhLWludmFsaWQ9dHJ1ZV0sIFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZVthcmlhLWludmFsaWQ9dHJ1ZV0sIFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmZvY3VzW2FyaWEtaW52YWxpZD10cnVlXSxcblt0eXBlPXJhZGlvXTpjaGVja2VkW2FyaWEtaW52YWxpZD10cnVlXSxcblt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZVthcmlhLWludmFsaWQ9dHJ1ZV0sXG5bdHlwZT1yYWRpb106Y2hlY2tlZDpmb2N1c1thcmlhLWludmFsaWQ9dHJ1ZV0sXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdOmNoZWNrZWRbYXJpYS1pbnZhbGlkPXRydWVdLFxuW3R5cGU9Y2hlY2tib3hdW3JvbGU9c3dpdGNoXTpjaGVja2VkOmFjdGl2ZVthcmlhLWludmFsaWQ9dHJ1ZV0sXG5bdHlwZT1jaGVja2JveF1bcm9sZT1zd2l0Y2hdOmNoZWNrZWQ6Zm9jdXNbYXJpYS1pbnZhbGlkPXRydWVdIHtcbiAgLS1waWNvLWJvcmRlci1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xufVxuXG4vKipcbiAqIElucHV0IHR5cGUgc2VhcmNoXG4gKi9cbmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSwgW3R5cGU9cmFuZ2VdLCBbdHlwZT1maWxlXSlbdHlwZT1zZWFyY2hdIHtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNzVyZW0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1waWNvLWljb24tc2VhcmNoKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGxlZnQgY2FsYyh2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICsgMC4xMjVyZW0pO1xuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gYXV0bztcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSwgW3R5cGU9cmFuZ2VdLCBbdHlwZT1maWxlXSlbdHlwZT1zZWFyY2hdW2FyaWEtaW52YWxpZF0ge1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICsgMS43NXJlbSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGxlZnQgMS4xMjVyZW0sIGNlbnRlciByaWdodCAwLjc1cmVtO1xufVxuaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dLCBbdHlwZT1yYW5nZV0sIFt0eXBlPWZpbGVdKVt0eXBlPXNlYXJjaF1bYXJpYS1pbnZhbGlkPWZhbHNlXSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXBpY28taWNvbi1zZWFyY2gpLCB2YXIoLS1waWNvLWljb24tdmFsaWQpO1xufVxuaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dLCBbdHlwZT1yYW5nZV0sIFt0eXBlPWZpbGVdKVt0eXBlPXNlYXJjaF1bYXJpYS1pbnZhbGlkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tcGljby1pY29uLXNlYXJjaCksIHZhcigtLXBpY28taWNvbi1pbnZhbGlkKTtcbn1cblxuW2Rpcj1ydGxdIDp3aGVyZShpbnB1dCk6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dLCBbdHlwZT1yYW5nZV0sIFt0eXBlPWZpbGVdKVt0eXBlPXNlYXJjaF0ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgMS4xMjVyZW07XG59XG5bZGlyPXJ0bF0gOndoZXJlKGlucHV0KTpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10sIFt0eXBlPXJhbmdlXSwgW3R5cGU9ZmlsZV0pW3R5cGU9c2VhcmNoXVthcmlhLWludmFsaWRdIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDEuMTI1cmVtLCBjZW50ZXIgbGVmdCAwLjc1cmVtO1xufVxuXG4vKipcbiAqIEFjY29yZGlvbiAoPGRldGFpbHM+KVxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5kZXRhaWxzIHN1bW1hcnkge1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXBpY28tdHJhbnNpdGlvbik7XG59XG5kZXRhaWxzIHN1bW1hcnk6bm90KFtyb2xlXSkge1xuICBjb2xvcjogdmFyKC0tcGljby1hY2NvcmRpb24tY2xvc2Utc3VtbWFyeS1jb2xvcik7XG59XG5kZXRhaWxzIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuZGV0YWlscyBzdW1tYXJ5OjptYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuZGV0YWlscyBzdW1tYXJ5OjotbW96LWxpc3QtYnVsbGV0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuZGV0YWlscyBzdW1tYXJ5OjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLXBpY28tc3BhY2luZywgMXJlbSkgKiAwLjUpO1xuICBmbG9hdDogcmlnaHQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXBpY28taWNvbi1jaGV2cm9uKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gYXV0bztcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgY29udGVudDogXCJcIjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXBpY28tdHJhbnNpdGlvbik7XG59XG5kZXRhaWxzIHN1bW1hcnk6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuZGV0YWlscyBzdW1tYXJ5OmZvY3VzOm5vdChbcm9sZV0pIHtcbiAgY29sb3I6IHZhcigtLXBpY28tYWNjb3JkaW9uLWFjdGl2ZS1zdW1tYXJ5LWNvbG9yKTtcbn1cbmRldGFpbHMgc3VtbWFyeTpmb2N1cy12aXNpYmxlOm5vdChbcm9sZV0pIHtcbiAgb3V0bGluZTogdmFyKC0tcGljby1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS1waWNvLXByaW1hcnktZm9jdXMpO1xuICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcsIDFyZW0pICogMC41KTtcbiAgY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG59XG5kZXRhaWxzIHN1bW1hcnlbcm9sZT1idXR0b25dIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5kZXRhaWxzIHN1bW1hcnlbcm9sZT1idXR0b25dOjphZnRlciB7XG4gIGhlaWdodDogY2FsYygxcmVtICogdmFyKC0tcGljby1saW5lLWhlaWdodCwgMS41KSk7XG59XG5kZXRhaWxzW29wZW5dID4gc3VtbWFyeSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5kZXRhaWxzW29wZW5dID4gc3VtbWFyeTpub3QoW3JvbGVdKTpub3QoOmZvY3VzKSB7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWFjY29yZGlvbi1vcGVuLXN1bW1hcnktY29sb3IpO1xufVxuZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnk6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG59XG5cbltkaXI9cnRsXSBkZXRhaWxzIHN1bW1hcnkge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbltkaXI9cnRsXSBkZXRhaWxzIHN1bW1hcnk6OmFmdGVyIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xufVxuXG4vKipcbiAqIENhcmQgKDxhcnRpY2xlPilcbiAqL1xuYXJ0aWNsZSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbCk7XG4gIHBhZGRpbmc6IHZhcigtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbCkgdmFyKC0tcGljby1ibG9jay1zcGFjaW5nLWhvcml6b250YWwpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1waWNvLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1waWNvLWNhcmQtYmFja2dyb3VuZC1jb2xvcik7XG4gIGJveC1zaGFkb3c6IHZhcigtLXBpY28tY2FyZC1ib3gtc2hhZG93KTtcbn1cbmFydGljbGUgPiBoZWFkZXIsXG5hcnRpY2xlID4gZm9vdGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXBpY28tYmxvY2stc3BhY2luZy1ob3Jpem9udGFsKSAqIC0xKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcGljby1ibG9jay1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbCkgKiAwLjY2KSB2YXIoLS1waWNvLWJsb2NrLXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tY2FyZC1zZWN0aW9uaW5nLWJhY2tncm91bmQtY29sb3IpO1xufVxuYXJ0aWNsZSA+IGhlYWRlciB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tcGljby1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKSAqIC0xKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKTtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tcGljby1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXBpY28tY2FyZC1ib3JkZXItY29sb3IpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKTtcbn1cbmFydGljbGUgPiBmb290ZXIge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1waWNvLWJsb2NrLXNwYWNpbmctdmVydGljYWwpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbCkgKiAtMSk7XG4gIGJvcmRlci10b3A6IHZhcigtLXBpY28tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1waWNvLWNhcmQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLXBpY28tYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXBpY28tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8qKlxuICogRHJvcGRvd24gKGRldGFpbHMuZHJvcGRvd24pXG4gKi9cbmRldGFpbHMuZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5kZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeTo6YWZ0ZXIsXG5kZXRhaWxzLmRyb3Bkb3duID4gYnV0dG9uOjphZnRlcixcbmRldGFpbHMuZHJvcGRvd24gPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiBjYWxjKDFyZW0gKiB2YXIoLS1waWNvLWxpbmUtaGVpZ2h0LCAxLjUpKTtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogMC4yNXJlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVYKDAuMnJlbSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXBpY28taWNvbi1jaGV2cm9uKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gYXV0bztcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgY29udGVudDogXCJcIjtcbn1cblxubmF2IGRldGFpbHMuZHJvcGRvd24ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeTpub3QoW3JvbGVdKSB7XG4gIGhlaWdodDogY2FsYygxcmVtICogdmFyKC0tcGljby1saW5lLWhlaWdodCkgKyB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIDIgKyB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgKiAyKTtcbiAgcGFkZGluZzogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgYm9yZGVyOiB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1wbGFjZWhvbGRlci1jb2xvcik7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXBpY28tdHJhbnNpdGlvbiksIGJvcmRlci1jb2xvciB2YXIoLS1waWNvLXRyYW5zaXRpb24pLCBjb2xvciB2YXIoLS1waWNvLXRyYW5zaXRpb24pLCBib3gtc2hhZG93IHZhcigtLXBpY28tdHJhbnNpdGlvbik7XG59XG5kZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeTpub3QoW3JvbGVdKTphY3RpdmUsIGRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5Om5vdChbcm9sZV0pOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtYWN0aXZlLWJhY2tncm91bmQtY29sb3IpO1xufVxuZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnk6bm90KFtyb2xlXSk6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1waWNvLW91dGxpbmUtd2lkdGgpIHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWZvY3VzLWNvbG9yKTtcbn1cbmRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5Om5vdChbcm9sZV0pOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xufVxuZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnk6bm90KFtyb2xlXSlbYXJpYS1pbnZhbGlkPWZhbHNlXSB7XG4gIC0tcGljby1mb3JtLWVsZW1lbnQtYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC12YWxpZC1ib3JkZXItY29sb3IpO1xuICAtLXBpY28tZm9ybS1lbGVtZW50LWFjdGl2ZS1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXZhbGlkLWZvY3VzLWNvbG9yKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtdmFsaWQtZm9jdXMtY29sb3IpO1xufVxuZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnk6bm90KFtyb2xlXSlbYXJpYS1pbnZhbGlkPXRydWVdIHtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3I6IHZhcigtLXBpY28tZm9ybS1lbGVtZW50LWludmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1pbnZhbGlkLWZvY3VzLWNvbG9yKTtcbiAgLS1waWNvLWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtaW52YWxpZC1mb2N1cy1jb2xvcik7XG59XG5cbm5hdiBkZXRhaWxzLmRyb3Bkb3duIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IGNhbGModmFyKC0tcGljby1uYXYtZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIC0xKSAwO1xufVxubmF2IGRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5OjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHRyYW5zbGF0ZVgoMHJlbSk7XG59XG5uYXYgZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnk6bm90KFtyb2xlXSkge1xuICBoZWlnaHQ6IGNhbGMoMXJlbSAqIHZhcigtLXBpY28tbGluZS1oZWlnaHQpICsgdmFyKC0tcGljby1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsKSAqIDIpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tbmF2LWxpbmstc3BhY2luZy12ZXJ0aWNhbCkgLSB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgKiAyKSB2YXIoLS1waWNvLW5hdi1saW5rLXNwYWNpbmctaG9yaXpvbnRhbCk7XG59XG5uYXYgZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnk6bm90KFtyb2xlXSk6Zm9jdXMtdmlzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIHZhcigtLXBpY28tb3V0bGluZS13aWR0aCkgdmFyKC0tcGljby1wcmltYXJ5LWZvY3VzKTtcbn1cblxuZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnkgKyB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHotaW5kZXg6IDk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IGZpdC1jb250ZW50O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IHZhcigtLXBpY28tb3V0bGluZS13aWR0aCk7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogdmFyKC0tcGljby1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXBpY28tZHJvcGRvd24tYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1kcm9wZG93bi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tcGljby1kcm9wZG93bi1ib3gtc2hhZG93KTtcbiAgY29sb3I6IHZhcigtLXBpY28tZHJvcGRvd24tY29sb3IpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXBpY28tdHJhbnNpdGlvbiksIHRyYW5zZm9ybSAwcyBlYXNlLWluLW91dCAxcztcbn1cbmRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5ICsgdWxbZGlyPXJ0bF0ge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbmRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5ICsgdWwgbGkge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIDAuNSkgdmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbmRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5ICsgdWwgbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAwLjUpO1xufVxuZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnkgKyB1bCBsaTpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpICogMC41KTtcbn1cbmRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5ICsgdWwgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAtMC41KSBjYWxjKHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKiAtMSk7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAwLjUpIHZhcigtLXBpY28tZm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWRyb3Bkb3duLWNvbG9yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbmRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5ICsgdWwgbGkgYTpob3ZlciwgZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnkgKyB1bCBsaSBhOmZvY3VzLCBkZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeSArIHVsIGxpIGE6YWN0aXZlLCBkZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeSArIHVsIGxpIGE6Zm9jdXMtdmlzaWJsZSwgZGV0YWlscy5kcm9wZG93biA+IHN1bW1hcnkgKyB1bCBsaSBhW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9ZmFsc2VdKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tZHJvcGRvd24taG92ZXItYmFja2dyb3VuZC1jb2xvcik7XG59XG5kZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeSArIHVsIGxpIGxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5kZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeSArIHVsIGxpOmhhcyhsYWJlbCk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWRyb3Bkb3duLWhvdmVyLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG5kZXRhaWxzLmRyb3Bkb3duW29wZW5dID4gc3VtbWFyeSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmRldGFpbHMuZHJvcGRvd25bb3Blbl0gPiBzdW1tYXJ5ICsgdWwge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1waWNvLXRyYW5zaXRpb24pLCB0cmFuc2Zvcm0gMHMgZWFzZS1pbi1vdXQgMHM7XG59XG5cbmRldGFpbHMuZHJvcGRvd25bb3Blbl0gPiBzdW1tYXJ5OjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbmxhYmVsID4gZGV0YWlscy5kcm9wZG93biB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAqIDAuMjUpO1xufVxuXG4vKipcbiAqIEdyb3VwIChbcm9sZT1cImdyb3VwXCJdLCBbcm9sZT1cInNlYXJjaFwiXSlcbiAqL1xuW3JvbGU9c2VhcmNoXSxcbltyb2xlPWdyb3VwXSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1waWNvLWJvcmRlci1yYWRpdXMpO1xuICBib3gtc2hhZG93OiB2YXIoLS1waWNvLWdyb3VwLWJveC1zaGFkb3csIDAgMCAwIHJnYmEoMCwgMCwgMCwgMCkpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IHZhcigtLXBpY28tdHJhbnNpdGlvbik7XG59XG5bcm9sZT1zZWFyY2hdID4gKixcbltyb2xlPXNlYXJjaF0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKSxcbltyb2xlPXNlYXJjaF0gc2VsZWN0LFxuW3JvbGU9Z3JvdXBdID4gKixcbltyb2xlPWdyb3VwXSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pLFxuW3JvbGU9Z3JvdXBdIHNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5bcm9sZT1zZWFyY2hdID4gKjpub3QoOmZpcnN0LWNoaWxkKSxcbltyb2xlPXNlYXJjaF0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKTpub3QoOmZpcnN0LWNoaWxkKSxcbltyb2xlPXNlYXJjaF0gc2VsZWN0Om5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9Z3JvdXBdID4gKjpub3QoOmZpcnN0LWNoaWxkKSxcbltyb2xlPWdyb3VwXSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9Z3JvdXBdIHNlbGVjdDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuW3JvbGU9c2VhcmNoXSA+ICo6bm90KDpsYXN0LWNoaWxkKSxcbltyb2xlPXNlYXJjaF0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKTpub3QoOmxhc3QtY2hpbGQpLFxuW3JvbGU9c2VhcmNoXSBzZWxlY3Q6bm90KDpsYXN0LWNoaWxkKSxcbltyb2xlPWdyb3VwXSA+ICo6bm90KDpsYXN0LWNoaWxkKSxcbltyb2xlPWdyb3VwXSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pOm5vdCg6bGFzdC1jaGlsZCksXG5bcm9sZT1ncm91cF0gc2VsZWN0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5bcm9sZT1zZWFyY2hdID4gKjpmb2N1cyxcbltyb2xlPXNlYXJjaF0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKTpmb2N1cyxcbltyb2xlPXNlYXJjaF0gc2VsZWN0OmZvY3VzLFxuW3JvbGU9Z3JvdXBdID4gKjpmb2N1cyxcbltyb2xlPWdyb3VwXSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pOmZvY3VzLFxuW3JvbGU9Z3JvdXBdIHNlbGVjdDpmb2N1cyB7XG4gIHotaW5kZXg6IDI7XG59XG5bcm9sZT1zZWFyY2hdIGJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSxcbltyb2xlPXNlYXJjaF0gW3R5cGU9c3VibWl0XTpub3QoOmZpcnN0LWNoaWxkKSxcbltyb2xlPXNlYXJjaF0gW3R5cGU9cmVzZXRdOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9c2VhcmNoXSBbdHlwZT1idXR0b25dOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9c2VhcmNoXSBbcm9sZT1idXR0b25dOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9c2VhcmNoXSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9c2VhcmNoXSBzZWxlY3Q6bm90KDpmaXJzdC1jaGlsZCksXG5bcm9sZT1ncm91cF0gYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9Z3JvdXBdIFt0eXBlPXN1Ym1pdF06bm90KDpmaXJzdC1jaGlsZCksXG5bcm9sZT1ncm91cF0gW3R5cGU9cmVzZXRdOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9Z3JvdXBdIFt0eXBlPWJ1dHRvbl06bm90KDpmaXJzdC1jaGlsZCksXG5bcm9sZT1ncm91cF0gW3JvbGU9YnV0dG9uXTpub3QoOmZpcnN0LWNoaWxkKSxcbltyb2xlPWdyb3VwXSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdLCBbdHlwZT1yYWRpb10pOm5vdCg6Zmlyc3QtY2hpbGQpLFxuW3JvbGU9Z3JvdXBdIHNlbGVjdDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLXBpY28tYm9yZGVyLXdpZHRoKSAqIC0xKTtcbn1cbltyb2xlPXNlYXJjaF0gYnV0dG9uLFxuW3JvbGU9c2VhcmNoXSBbdHlwZT1zdWJtaXRdLFxuW3JvbGU9c2VhcmNoXSBbdHlwZT1yZXNldF0sXG5bcm9sZT1zZWFyY2hdIFt0eXBlPWJ1dHRvbl0sXG5bcm9sZT1zZWFyY2hdIFtyb2xlPWJ1dHRvbl0sXG5bcm9sZT1ncm91cF0gYnV0dG9uLFxuW3JvbGU9Z3JvdXBdIFt0eXBlPXN1Ym1pdF0sXG5bcm9sZT1ncm91cF0gW3R5cGU9cmVzZXRdLFxuW3JvbGU9Z3JvdXBdIFt0eXBlPWJ1dHRvbl0sXG5bcm9sZT1ncm91cF0gW3JvbGU9YnV0dG9uXSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuQHN1cHBvcnRzIHNlbGVjdG9yKDpoYXMoKikpIHtcbiAgW3JvbGU9c2VhcmNoXTpoYXMoYnV0dG9uOmZvY3VzLCBbdHlwZT1zdWJtaXRdOmZvY3VzLCBbdHlwZT1idXR0b25dOmZvY3VzLCBbcm9sZT1idXR0b25dOmZvY3VzKSxcbiAgW3JvbGU9Z3JvdXBdOmhhcyhidXR0b246Zm9jdXMsIFt0eXBlPXN1Ym1pdF06Zm9jdXMsIFt0eXBlPWJ1dHRvbl06Zm9jdXMsIFtyb2xlPWJ1dHRvbl06Zm9jdXMpIHtcbiAgICAtLXBpY28tZ3JvdXAtYm94LXNoYWRvdzogdmFyKC0tcGljby1ncm91cC1ib3gtc2hhZG93LWZvY3VzLXdpdGgtYnV0dG9uKTtcbiAgfVxuICBbcm9sZT1zZWFyY2hdOmhhcyhidXR0b246Zm9jdXMsIFt0eXBlPXN1Ym1pdF06Zm9jdXMsIFt0eXBlPWJ1dHRvbl06Zm9jdXMsIFtyb2xlPWJ1dHRvbl06Zm9jdXMpIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0sIFt0eXBlPXJhZGlvXSksXG4gIFtyb2xlPXNlYXJjaF06aGFzKGJ1dHRvbjpmb2N1cywgW3R5cGU9c3VibWl0XTpmb2N1cywgW3R5cGU9YnV0dG9uXTpmb2N1cywgW3JvbGU9YnV0dG9uXTpmb2N1cykgc2VsZWN0LFxuICBbcm9sZT1ncm91cF06aGFzKGJ1dHRvbjpmb2N1cywgW3R5cGU9c3VibWl0XTpmb2N1cywgW3R5cGU9YnV0dG9uXTpmb2N1cywgW3JvbGU9YnV0dG9uXTpmb2N1cykgaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dKSxcbiAgW3JvbGU9Z3JvdXBdOmhhcyhidXR0b246Zm9jdXMsIFt0eXBlPXN1Ym1pdF06Zm9jdXMsIFt0eXBlPWJ1dHRvbl06Zm9jdXMsIFtyb2xlPWJ1dHRvbl06Zm9jdXMpIHNlbGVjdCB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICBbcm9sZT1zZWFyY2hdOmhhcyhpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSk6Zm9jdXMsIHNlbGVjdDpmb2N1cyksXG4gIFtyb2xlPWdyb3VwXTpoYXMoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0pOmZvY3VzLCBzZWxlY3Q6Zm9jdXMpIHtcbiAgICAtLXBpY28tZ3JvdXAtYm94LXNoYWRvdzogdmFyKC0tcGljby1ncm91cC1ib3gtc2hhZG93LWZvY3VzLXdpdGgtaW5wdXQpO1xuICB9XG4gIFtyb2xlPXNlYXJjaF06aGFzKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dKTpmb2N1cywgc2VsZWN0OmZvY3VzKSBidXR0b24sXG4gIFtyb2xlPXNlYXJjaF06aGFzKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLCBbdHlwZT1idXR0b25dKTpmb2N1cywgc2VsZWN0OmZvY3VzKSBbdHlwZT1zdWJtaXRdLFxuICBbcm9sZT1zZWFyY2hdOmhhcyhpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSk6Zm9jdXMsIHNlbGVjdDpmb2N1cykgW3R5cGU9YnV0dG9uXSxcbiAgW3JvbGU9c2VhcmNoXTpoYXMoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0pOmZvY3VzLCBzZWxlY3Q6Zm9jdXMpIFtyb2xlPWJ1dHRvbl0sXG4gIFtyb2xlPWdyb3VwXTpoYXMoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sIFt0eXBlPWJ1dHRvbl0pOmZvY3VzLCBzZWxlY3Q6Zm9jdXMpIGJ1dHRvbixcbiAgW3JvbGU9Z3JvdXBdOmhhcyhpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSk6Zm9jdXMsIHNlbGVjdDpmb2N1cykgW3R5cGU9c3VibWl0XSxcbiAgW3JvbGU9Z3JvdXBdOmhhcyhpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSk6Zm9jdXMsIHNlbGVjdDpmb2N1cykgW3R5cGU9YnV0dG9uXSxcbiAgW3JvbGU9Z3JvdXBdOmhhcyhpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwgW3R5cGU9YnV0dG9uXSk6Zm9jdXMsIHNlbGVjdDpmb2N1cykgW3JvbGU9YnV0dG9uXSB7XG4gICAgLS1waWNvLWJ1dHRvbi1ib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgdmFyKC0tcGljby1wcmltYXJ5LWJvcmRlcik7XG4gICAgLS1waWNvLWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1waWNvLWJvcmRlci13aWR0aCkgdmFyKC0tcGljby1wcmltYXJ5LWhvdmVyLWJvcmRlcik7XG4gIH1cbiAgW3JvbGU9c2VhcmNoXSBidXR0b246Zm9jdXMsXG4gIFtyb2xlPXNlYXJjaF0gW3R5cGU9c3VibWl0XTpmb2N1cyxcbiAgW3JvbGU9c2VhcmNoXSBbdHlwZT1yZXNldF06Zm9jdXMsXG4gIFtyb2xlPXNlYXJjaF0gW3R5cGU9YnV0dG9uXTpmb2N1cyxcbiAgW3JvbGU9c2VhcmNoXSBbcm9sZT1idXR0b25dOmZvY3VzLFxuICBbcm9sZT1ncm91cF0gYnV0dG9uOmZvY3VzLFxuICBbcm9sZT1ncm91cF0gW3R5cGU9c3VibWl0XTpmb2N1cyxcbiAgW3JvbGU9Z3JvdXBdIFt0eXBlPXJlc2V0XTpmb2N1cyxcbiAgW3JvbGU9Z3JvdXBdIFt0eXBlPWJ1dHRvbl06Zm9jdXMsXG4gIFtyb2xlPWdyb3VwXSBbcm9sZT1idXR0b25dOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbltyb2xlPXNlYXJjaF0gPiAqOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXJlbTtcbn1cbltyb2xlPXNlYXJjaF0gPiAqOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVyZW07XG59XG5cbi8qKlxuICogTmF2XG4gKi9cbjp3aGVyZShuYXYgbGkpOjpiZWZvcmUge1xuICBmbG9hdDogbGVmdDtcbiAgY29udGVudDogXCLigItcIjtcbn1cblxubmF2LFxubmF2IHVsIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxubmF2IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbm5hdiBvbCxcbm5hdiB1bCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5uYXYgb2w6Zmlyc3Qtb2YtdHlwZSxcbm5hdiB1bDpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcGljby1uYXYtZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xufVxubmF2IG9sOmxhc3Qtb2YtdHlwZSxcbm5hdiB1bDpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tcGljby1uYXYtZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xufVxubmF2IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IHZhcigtLXBpY28tbmF2LWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgdmFyKC0tcGljby1uYXYtZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xufVxubmF2IGxpIDp3aGVyZShhLCBbcm9sZT1saW5rXSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1waWNvLW5hdi1saW5rLXNwYWNpbmctdmVydGljYWwpICogLTEpIGNhbGModmFyKC0tcGljby1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xuICBwYWRkaW5nOiB2YXIoLS1waWNvLW5hdi1saW5rLXNwYWNpbmctdmVydGljYWwpIHZhcigtLXBpY28tbmF2LWxpbmstc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKTtcbn1cbm5hdiBsaSA6d2hlcmUoYSwgW3JvbGU9bGlua10pOm5vdCg6aG92ZXIpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxubmF2IGxpIGJ1dHRvbixcbm5hdiBsaSBbcm9sZT1idXR0b25dLFxubmF2IGxpIFt0eXBlPWJ1dHRvbl0sXG5uYXYgbGkgaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSwgW3R5cGU9cmFkaW9dLCBbdHlwZT1yYW5nZV0sIFt0eXBlPWZpbGVdKSxcbm5hdiBsaSBzZWxlY3Qge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogaW5oZXJpdDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLWxlZnQ6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsKSAtIHZhcigtLXBpY28tYm9yZGVyLXdpZHRoKSAqIDIpIHZhcigtLXBpY28tbmF2LWxpbmstc3BhY2luZy1ob3Jpem9udGFsKTtcbn1cbm5hdlthcmlhLWxhYmVsPWJyZWFkY3J1bWJdIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cbm5hdlthcmlhLWxhYmVsPWJyZWFkY3J1bWJdIHVsIGxpOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tcGljby1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpO1xufVxubmF2W2FyaWEtbGFiZWw9YnJlYWRjcnVtYl0gdWwgbGkgYSB7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1waWNvLW5hdi1saW5rLXNwYWNpbmctdmVydGljYWwpICogLTEpIDA7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tcGljby1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xufVxubmF2W2FyaWEtbGFiZWw9YnJlYWRjcnVtYl0gdWwgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGModmFyKC0tcGljby1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpICogNCk7XG4gIG1hcmdpbjogMCBjYWxjKHZhcigtLXBpY28tbmF2LWxpbmstc3BhY2luZy1ob3Jpem9udGFsKSAqIC0xKTtcbiAgY29udGVudDogdmFyKC0tcGljby1uYXYtYnJlYWRjcnVtYi1kaXZpZGVyKTtcbiAgY29sb3I6IHZhcigtLXBpY28tbXV0ZWQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbm5hdlthcmlhLWxhYmVsPWJyZWFkY3J1bWJdIGFbYXJpYS1jdXJyZW50XTpub3QoW2FyaWEtY3VycmVudD1mYWxzZV0pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5hc2lkZSBuYXYsXG5hc2lkZSBvbCxcbmFzaWRlIHVsLFxuYXNpZGUgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmFzaWRlIGxpIHtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLW5hdi1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpICogMC41KSB2YXIoLS1waWNvLW5hdi1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG59XG5hc2lkZSBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5hc2lkZSBsaSBbcm9sZT1idXR0b25dIHtcbiAgbWFyZ2luOiBpbmhlcml0O1xufVxuXG5bZGlyPXJ0bF0gbmF2W2FyaWEtbGFiZWw9YnJlYWRjcnVtYl0gdWwgbGk6bm90KDpsYXN0LWNoaWxkKSA6OmFmdGVyIHtcbiAgY29udGVudDogXCJcXFxcXCI7XG59XG5cbi8qKlxuICogQWNjZXNzaWJpbGl0eSAmIFVzZXIgaW50ZXJhY3Rpb25cbiAqL1xuW2FyaWEtY29udHJvbHNdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5bYXJpYS1kaXNhYmxlZD10cnVlXSxcbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5bYXJpYS1oaWRkZW49ZmFsc2VdW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBpbml0aWFsO1xufVxuXG5bYXJpYS1oaWRkZW49ZmFsc2VdW2hpZGRlbl06bm90KDpmb2N1cykge1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbmEsXG5hcmVhLFxuYnV0dG9uLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSxcblt0YWJpbmRleF0ge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbltkaXI9cnRsXSB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuXG4vKipcbiAqIFJlZHVjZSBNb3Rpb24gRmVhdHVyZXNcbiAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgKjpub3QoW2FyaWEtYnVzeT10cnVlXSksXG4gIDpub3QoW2FyaWEtYnVzeT10cnVlXSk6OmJlZm9yZSxcbiAgOm5vdChbYXJpYS1idXN5PXRydWVdKTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0byAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMgIWltcG9ydGFudDtcbiAgfVxufVxuW2RhdGEtdGhlbWU9bGlnaHRdLFxuOnJvb3Q6bm90KFtkYXRhLXRoZW1lPWRhcmtdKSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tdC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1tdC1jb2xvciwgIzM3M2M0NCk7XG4gIC0tcGljby10ZXh0LXNlbGVjdGlvbi1jb2xvcjogcmdiYSgyLCAxNTQsIDIzMiwgMC4yNSk7XG4gIC0tcGljby1tdXRlZC1jb2xvcjogIzY0NmI3OTtcbiAgLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcjogcmdiKDIzMSwgMjM0LCAyMzkuNSk7XG4gIC0tcGljby1wcmltYXJ5OiB2YXIoLS1tdC1wcmltYXJ5LWNvbG9yLCAjMDA1OTljKTtcbiAgLS1waWNvLXByaW1hcnktYmFja2dyb3VuZDogdmFyKC0tbXQtcHJpbWFyeS1jb2xvciwgIzAwNTk5Yyk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLW10LXByaW1hcnktY29sb3ItZGFya2VuLCByZ2IoMCwgNTkuOTAzODQ2MTUzOCwgMTA1KSk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyLXVuZGVybGluZTogdmFyKC0tbXQtcHJpbWFyeS1jb2xvciwgIzAwNTk5Yyk7XG4gIC0tcGljby1wcmltYXJ5LWJvcmRlcjogdmFyKC0tbXQtcHJpbWFyeS1jb2xvciwgIzAwNTk5Yyk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyOiB2YXIoLS1tdC1wcmltYXJ5LWNvbG9yLWRhcmtlbiwgcmdiKDAsIDU5LjkwMzg0NjE1MzgsIDEwNSkpO1xuICAtLXBpY28tcHJpbWFyeS11bmRlcmxpbmU6IHZhcigtLW10LXByaW1hcnktY29sb3ItbGlnaHRlbiwgcmdiKDAsIDExOC4wOTYxNTM4NDYyLCAyMDcpKTtcbiAgLS1waWNvLXByaW1hcnktZm9jdXM6IHZhcigtLW10LXByaW1hcnktY29sb3ItbGlnaHRlbiwgcmdiKDAsIDExOC4wOTYxNTM4NDYyLCAyMDcpKTtcbiAgLS1waWNvLXByaW1hcnktaW52ZXJzZTogdmFyKC0tbXQtcHJpbWFyeS1pbnZlcnNlLWNvbG9yLCAjZmZmZmZmKTtcbiAgLS1waWNvLXNlY29uZGFyeTogdmFyKC0tbXQtc2Vjb25kYXJ5LWNvbG9yLCAjNzM3OTg3KTtcbiAgLS1waWNvLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiB2YXIoLS1tdC1zZWNvbmRhcnktY29sb3IsICM3Mzc5ODcpO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvci1kYXJrZW4sIHJnYig5MS41NCwgOTYuMzE2LCAxMDcuNDYpKTtcbiAgLS1waWNvLXNlY29uZGFyeS1ob3Zlci11bmRlcmxpbmU6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvciwgIzczNzk4Nyk7XG4gIC0tcGljby1zZWNvbmRhcnktYm9yZGVyOiB2YXIoLS1tdC1zZWNvbmRhcnktY29sb3IsICM3Mzc5ODcpO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyOiB2YXIoLS1tdC1zZWNvbmRhcnktY29sb3ItZGFya2VuLCByZ2IoOTEuNTQsIDk2LjMxNiwgMTA3LjQ2KSk7XG4gIC0tcGljby1zZWNvbmRhcnktdW5kZXJsaW5lOiB2YXIoLS1tdC1zZWNvbmRhcnktY29sb3ItbGlnaHRlbiwgcmdiKDE0Mi4xNCwgMTQ3LjE1NiwgMTU4Ljg2KSk7XG4gIC0tcGljby1zZWNvbmRhcnktZm9jdXM6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvci1saWdodGVuLCByZ2IoMTQyLjE0LCAxNDcuMTU2LCAxNTguODYpKTtcbiAgLS1waWNvLXNlY29uZGFyeS1pbnZlcnNlOiB2YXIoLS1tdC1zZWNvbmRhcnktaW52ZXJzZS1jb2xvciwgI2ZmZmZmZik7XG4gIC0tcGljby1jb250cmFzdDogdmFyKC0tbXQtY29udHJhc3QtY29sb3IsICMxODFjMjUpO1xuICAtLXBpY28tY29udHJhc3QtYmFja2dyb3VuZDogdmFyKC0tbXQtY29udHJhc3QtY29sb3IsICMxODFjMjUpO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tbXQtY29udHJhc3QtY29sb3ItZGFya2VuLCByZ2IoMy45MzQ0MjYyMjk1LCA0LjU5MDE2MzkzNDQsIDYuMDY1NTczNzcwNSkpO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1tdC1jb250cmFzdC1jb2xvciwgIzE4MWMyNSk7XG4gIC0tcGljby1jb250cmFzdC1ib3JkZXI6IHZhcigtLW10LWNvbnRyYXN0LWNvbG9yLCAjMTgxYzI1KTtcbiAgLS1waWNvLWNvbnRyYXN0LWhvdmVyOiB2YXIoLS1tdC1jb250cmFzdC1jb2xvci1kYXJrZW4sIHJnYigzLjkzNDQyNjIyOTUsIDQuNTkwMTYzOTM0NCwgNi4wNjU1NzM3NzA1KSk7XG4gIC0tcGljby1jb250cmFzdC11bmRlcmxpbmU6IHZhcigtLW10LWNvbnRyYXN0LWNvbG9yLWxpZ2h0ZW4sIHJnYig0NC4wNjU1NzM3NzA1LCA1MS40MDk4MzYwNjU2LCA2Ny45MzQ0MjYyMjk1KSk7XG4gIC0tcGljby1jb250cmFzdC1mb2N1czogdmFyKC0tbXQtY29udHJhc3QtY29sb3ItbGlnaHRlbiwgcmdiKDQ0LjA2NTU3Mzc3MDUsIDUxLjQwOTgzNjA2NTYsIDY3LjkzNDQyNjIyOTUpKTtcbiAgLS1waWNvLWNvbnRyYXN0LWludmVyc2U6IHZhcigtLW10LWNvbnRyYXN0LWludmVyc2UtY29sb3IsICNmZmZmZmYpO1xuICAtLXBpY28tZm9udC1mYW1pbHk6IHZhcigtLW10LWZvbnQtZmFtaWx5LCBJbnRlciwgVGFob21hLCBWZXJkYW5hLCBzYW5zLXNlcmlmKTtcbiAgLS1waWNvLWZvbnQtc2l6ZTogdmFyKC0tbXQtZm9udC1zaXplLCAxcmVtKTtcbiAgLS1waWNvLWxpbmUtaGVpZ2h0OiB2YXIoLS1tdC1saW5lLWhlaWdodCwgMS40cmVtKTtcbiAgLS1waWNvLWZvbnQtd2VpZ2h0OiB2YXIoLS1tdC1mb250LXdlaWdodCwgNDAwKTtcbiAgLS1waWNvLWhlYWRpbmctZm9udC13ZWlnaHQ6IHZhcigtLW10LWhlYWRpbmctZm9udC13ZWlnaHQsIDcwMCk7XG4gIC0tcGljby1sZXR0ZXItc3BhY2luZzogdmFyKC0tbXQtbGV0dGVyLXNwYWNpbmcsIG5vcm1hbCk7XG4gIC0tcGljby1ibG9jay1zcGFjaW5nLXZlcnRpY2FsOiAxLjVyZW07XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdLFxuOnJvb3RbZGF0YS10aGVtZT1kYXJrXSB7XG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tdC10ZGFyay1iYWNrZ3JvdW5kLWNvbG9yLCAjMWQyMzI3KTtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1tdC10ZGFyay1jb2xvciwgIzFkMjMyNyk7XG4gIC0tcGljby10ZXh0LXNlbGVjdGlvbi1jb2xvcjogcmdiYSgyLCAxNTQsIDIzMiwgMC4yNSk7XG4gIC0tcGljby1tdXRlZC1jb2xvcjogIzY0NmI3OTtcbiAgLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcjogcmdiKDIzMSwgMjM0LCAyMzkuNSk7XG4gIC0tcGljby1wcmltYXJ5OiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLCAjNWJiNGRmKTtcbiAgLS1waWNvLXByaW1hcnktYmFja2dyb3VuZDogdmFyKC0tbXQtdGRhcmstcHJpbWFyeS1jb2xvciwgIzViYjRkZik7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLW10LXRkYXJrLXByaW1hcnktY29sb3ItbGlnaHRlbiwgcmdiKDEzMy42NzM0NjkzODc4LCAxOTkuNTE1MzA2MTIyNCwgMjMxLjMyNjUzMDYxMjIpKTtcbiAgLS1waWNvLXByaW1hcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLCAjNWJiNGRmKTtcbiAgLS1waWNvLXByaW1hcnktYm9yZGVyOiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLCAjNWJiNGRmKTtcbiAgLS1waWNvLXByaW1hcnktaG92ZXI6IHZhcigtLW10LXRkYXJrLXByaW1hcnktY29sb3ItbGlnaHRlbiwgcmdiKDEzMy42NzM0NjkzODc4LCAxOTkuNTE1MzA2MTIyNCwgMjMxLjMyNjUzMDYxMjIpKTtcbiAgLS1waWNvLXByaW1hcnktdW5kZXJsaW5lOiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLWRhcmtlbiwgcmdiKDQ4LjMyNjUzMDYxMjIsIDE2MC40ODQ2OTM4Nzc2LCAyMTQuNjczNDY5Mzg3OCkpO1xuICAtLXBpY28tcHJpbWFyeS1mb2N1czogdmFyKC0tbXQtdGRhcmstcHJpbWFyeS1jb2xvci1kYXJrZW4sIHJnYig0OC4zMjY1MzA2MTIyLCAxNjAuNDg0NjkzODc3NiwgMjE0LjY3MzQ2OTM4NzgpKTtcbiAgLS1waWNvLXByaW1hcnktaW52ZXJzZTogdmFyKC0tbXQtdGRhcmstcHJpbWFyeS1pbnZlcnNlLWNvbG9yLCAjMTIxMjEyKTtcbiAgLS1waWNvLXNlY29uZGFyeTogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLCAjYTNhOWI3KTtcbiAgLS1waWNvLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiB2YXIoLS1tdC10ZGFyay1zZWNvbmRhcnktY29sb3IsICNhM2E5YjcpO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLW10LXRkYXJrLXNlY29uZGFyeS1jb2xvci1saWdodGVuLCByZ2IoMTkxLjYwOTc1NjA5NzYsIDE5NS43NDM5MDI0MzksIDIwNS4zOTAyNDM5MDI0KSk7XG4gIC0tcGljby1zZWNvbmRhcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1tdC10ZGFyay1zZWNvbmRhcnktY29sb3IsICNhM2E5YjcpO1xuICAtLXBpY28tc2Vjb25kYXJ5LWJvcmRlcjogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLCAjYTNhOWI3KTtcbiAgLS1waWNvLXNlY29uZGFyeS1ob3ZlcjogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLWxpZ2h0ZW4sIHJnYigxOTEuNjA5NzU2MDk3NiwgMTk1Ljc0MzkwMjQzOSwgMjA1LjM5MDI0MzkwMjQpKTtcbiAgLS1waWNvLXNlY29uZGFyeS11bmRlcmxpbmU6IHZhcigtLW10LXRkYXJrLXNlY29uZGFyeS1jb2xvci1kYXJrZW4sIHJnYigxMzQuMzkwMjQzOTAyNCwgMTQyLjI1NjA5NzU2MSwgMTYwLjYwOTc1NjA5NzYpKTtcbiAgLS1waWNvLXNlY29uZGFyeS1mb2N1czogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLWRhcmtlbiwgcmdiKDEzNC4zOTAyNDM5MDI0LCAxNDIuMjU2MDk3NTYxLCAxNjAuNjA5NzU2MDk3NikpO1xuICAtLXBpY28tc2Vjb25kYXJ5LWludmVyc2U6IHZhcigtLW10LXRkYXJrLXNlY29uZGFyeS1pbnZlcnNlLWNvbG9yLCAjMTIxMjEyKTtcbiAgLS1waWNvLWNvbnRyYXN0OiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1jb2xvciwgI2Y1ZjdmYSk7XG4gIC0tcGljby1jb250cmFzdC1iYWNrZ3JvdW5kOiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1jb2xvciwgI2Y1ZjdmYSk7XG4gIC0tcGljby1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1jb2xvci1saWdodGVuLCBoc2woMjE2LCAzMy4zMzMzMzMzMzMzJSwgMTA3LjA1ODgyMzUyOTQlKSk7XG4gIC0tcGljby1jb250cmFzdC1ob3Zlci11bmRlcmxpbmU6IHZhcigtLW10LXRkYXJrLWNvbnRyYXN0LWNvbG9yLCAjZjVmN2ZhKTtcbiAgLS1waWNvLWNvbnRyYXN0LWJvcmRlcjogdmFyKC0tbXQtdGRhcmstY29udHJhc3QtY29sb3IsICNmNWY3ZmEpO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXI6IHZhcigtLW10LXRkYXJrLWNvbnRyYXN0LWNvbG9yLWxpZ2h0ZW4sIGhzbCgyMTYsIDMzLjMzMzMzMzMzMzMlLCAxMDcuMDU4ODIzNTI5NCUpKTtcbiAgLS1waWNvLWNvbnRyYXN0LXVuZGVybGluZTogdmFyKC0tbXQtdGRhcmstY29udHJhc3QtY29sb3ItZGFya2VuLCByZ2IoMjExLCAyMTkuOCwgMjMzKSk7XG4gIC0tcGljby1jb250cmFzdC1mb2N1czogdmFyKC0tbXQtdGRhcmstY29udHJhc3QtY29sb3ItZGFya2VuLCByZ2IoMjExLCAyMTkuOCwgMjMzKSk7XG4gIC0tcGljby1jb250cmFzdC1pbnZlcnNlOiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1pbnZlcnNlLWNvbG9yLCAjMTIxMjEyKTtcbiAgLS1waWNvLWZvbnQtZmFtaWx5OiB2YXIoLS1tdC1mb250LWZhbWlseSwgSW50ZXIsIFRhaG9tYSwgVmVyZGFuYSwgc2Fucy1zZXJpZik7XG4gIC0tcGljby1mb250LXNpemU6IHZhcigtLW10LWZvbnQtc2l6ZSwgMXJlbSk7XG4gIC0tcGljby1saW5lLWhlaWdodDogdmFyKC0tbXQtbGluZS1oZWlnaHQsIDEuNHJlbSk7XG4gIC0tcGljby1mb250LXdlaWdodDogdmFyKC0tbXQtZm9udC13ZWlnaHQsIDQwMCk7XG4gIC0tcGljby1oZWFkaW5nLWZvbnQtd2VpZ2h0OiB2YXIoLS1tdC1oZWFkaW5nLWZvbnQtd2VpZ2h0LCA3MDApO1xuICAtLXBpY28tbGV0dGVyLXNwYWNpbmc6IHZhcigtLW10LWxldHRlci1zcGFjaW5nLCBub3JtYWwpO1xuICAtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbDogMS41cmVtO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogdmFyKC0tbXQtaGVhZGluZy1mb250LWZhbWlseSwgUm9ib3RvLCBHZW9yZ2lhLCBzZXJpZik7XG59XG5cbnVsIGxpIHtcbiAgbGlzdC1zdHlsZTogZGlzYztcbn1cblxuYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5odG1sIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuaHRtbCBib2R5IHtcbiAgcGFkZGluZy10b3A6IHZhcigtLXdwLWFkbWluLS1hZG1pbi1iYXItLWhlaWdodCwgMHB4KTtcbn1cbmh0bWwgYm9keSA+IC5zaXRlLWhlYWRlcixcbmh0bWwgYm9keSA+IC5oZWFkZXItbmF2LW1lbnUsXG5odG1sIGJvZHkgPiAubWFpbi1ncmlkLFxuaHRtbCBib2R5ID4gLnNpdGUtZm9vdGVyLFxuaHRtbCBib2R5ID4gLnBhZ2UtaW50cm8ge1xuICBib3gtc2hhZG93OiAtMXB4IDAgMCB2YXIoLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yKSwgMXB4IDAgMCB2YXIoLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yKTtcbn1cblxuLmxvZ28tbGlnaHQsXG4ubG9nby1saWdodC1hbmQtZGFyayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubG9nby1kYXJrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLmxvZ28tbGlnaHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAubG9nby1kYXJrIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aXN1YWxseS1oaWRkZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLmJyaWQgKltyb2xlPWJ1dHRvbl0sXG4uYnJpZC1jbG9zZSAqW3JvbGU9YnV0dG9uXSB7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gIGJvcmRlcjogaW5pdGlhbDtcbn1cblxuLmJyaWQgKltyb2xlPWJ1dHRvbl06Zm9jdXMsXG4uYnJpZC1jbG9zZSAqW3JvbGU9YnV0dG9uXTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICBib2R5LmhvbWUgPiAuc2l0ZS1oZWFkZXI6bm90KC5pcy1zdGlja3kpIC5oZWFkZXItY2VudGVyID4gYSAubG9nby1saWdodCxcbiAgYm9keS5ob21lID4gLnNpdGUtaGVhZGVyOm5vdCguaXMtc3RpY2t5KSAuaGVhZGVyLWNlbnRlciA+IGEgLmxvZ28tbGlnaHQtYW5kLWRhcmssXG4gIGJvZHkuaG9tZSA+IC5zaXRlLWhlYWRlcjpub3QoLmlzLXN0aWNreSkgLmhlYWRlci1jZW50ZXIgPiBhIC5sb2dvLWRhcmsge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuYm9keSA+IC5zaXRlLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktaW52ZXJzZSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGhlaWdodDogNTZweDtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyA0KTtcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCk7XG4gIHotaW5kZXg6IDk5OTk5OTk7XG59XG5ib2R5ID4gLnNpdGUtaGVhZGVyLmlzLXN0aWNreSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiB2YXIoLS13cC1hZG1pbi0tYWRtaW4tYmFyLS1oZWlnaHQsIDApO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cbmJvZHkgPiAuc2l0ZS1oZWFkZXIgLmhlYWRlci1sZWZ0LFxuYm9keSA+IC5zaXRlLWhlYWRlciAuaGVhZGVyLXJpZ2h0IHtcbiAgd2lkdGg6IDU2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuYm9keSA+IC5zaXRlLWhlYWRlciAuaGVhZGVyLWxlZnQgLm1lbnUtdG9nZ2xlLFxuYm9keSA+IC5zaXRlLWhlYWRlciAuaGVhZGVyLXJpZ2h0IC5tZW51LXRvZ2dsZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5ib2R5ID4gLnNpdGUtaGVhZGVyIC5oZWFkZXItY2VudGVyIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5ib2R5ID4gLnNpdGUtaGVhZGVyIC5oZWFkZXItY2VudGVyID4gYSA+IGltZyB7XG4gIG1heC1oZWlnaHQ6IDQ4cHg7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuYm9keSA+IC5zaXRlLWhlYWRlciAuaGVhZGVyLWNlbnRlciA+IGEgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWludmVyc2UpO1xufVxuXG5ib2R5ID4gLnNpdGUtZm9vdGVyIHtcbiAgcGFkZGluZzogMDtcbn1cbmJvZHkgPiAuc2l0ZS1mb290ZXIgLmZvb3Rlci1zZXBhcmF0b3Ige1xuICBoZWlnaHQ6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xufVxuYm9keSA+IC5zaXRlLWZvb3RlciAuZm9vdGVyLWNvbHVtbnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBwYWRkaW5nOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIGJvZHkgPiAuc2l0ZS1mb290ZXIgLmZvb3Rlci1jb2x1bW5zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpICogMS41KTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICBib2R5ID4gLnNpdGUtZm9vdGVyIC5mb290ZXItY29sdW1ucyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICBnYXA6IDJyZW07XG4gIH1cbn1cbmJvZHkgPiAuc2l0ZS1mb290ZXIgLmZvb3Rlci1jb2x1bW5zIC5mb290ZXItY29sID4gc3Ryb25nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjJyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgYm9keSA+IC5zaXRlLWZvb3RlciAuZm9vdGVyLWNvbHVtbnMgLmZvb3Rlci1jb2wgPiBzdHJvbmcge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbmJvZHkgPiAuc2l0ZS1mb290ZXIgLmZvb3Rlci1jb2x1bW5zIC5mb290ZXItY29sIC53M2MtbG9nbyB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5ib2R5ID4gLnNpdGUtZm9vdGVyIC5mb290ZXItY29sdW1ucyAuZm9vdGVyLWNvbCB1bCB7XG4gIHBhZGRpbmc6IDA7XG59XG5ib2R5ID4gLnNpdGUtZm9vdGVyIC5mb290ZXItY29sdW1ucyAuZm9vdGVyLWNvbCB1bCBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xuICBmb250LXNpemU6IDAuOTVyZW07XG59XG5ib2R5ID4gLnNpdGUtZm9vdGVyIC5mb290ZXItY29sdW1ucyAuZm9vdGVyLWNvbCB1bCBsaSBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuYm9keSA+IC5zaXRlLWZvb3RlciAuZm9vdGVyLWNvbHVtbnMgLmZvb3Rlci1jb2wgdWwgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmJvZHkgPiAuc2l0ZS1mb290ZXIgLmZvb3Rlci1jb2x1bW5zIC5mb290ZXItY29sIHVsIHNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5ib2R5ID4gLnNpdGUtZm9vdGVyIC5mb290ZXItY3JlZGl0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCkgdmFyKC0tcGljby1zcGFjaW5nKTtcbn1cbmJvZHkgPiAuc2l0ZS1mb290ZXIgLmZvb3Rlci1jcmVkaXRzIHNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbmJvZHkuYWRtaW4tYmFyIC5zaWRlYmFyLWhhbWJ1cmdlciB7XG4gIHRvcDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICBib2R5LmFkbWluLWJhciAuc2lkZWJhci1oYW1idXJnZXIge1xuICAgIHRvcDogNDZweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc4MnB4KSB7XG4gIGJvZHkuYWRtaW4tYmFyIC5zaWRlYmFyLWhhbWJ1cmdlciB7XG4gICAgdG9wOiAzMnB4O1xuICB9XG59XG5cbi5zaWRlYmFyLWhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogODV2dztcbiAgbWF4LXdpZHRoOiA1NjBweDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB6LWluZGV4OiA5OTk5OTk5OTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci5vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW92ZXJsYXkge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDE5MDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2lkZWJhci1oYW1idXJnZXItb3ZlcmxheS52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc2lkZWJhci1oYW1idXJnZXItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMik7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLWxvZ28gaW1nIHtcbiAgaGVpZ2h0OiA0OHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1jbG9zZSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG4uc2lkZWJhci1oYW1idXJnZXItY2xvc2U6aG92ZXIsIC5zaWRlYmFyLWhhbWJ1cmdlci1jbG9zZTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGljby1jb2xvciksICMwMDAgMjAlKTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1jb250cm9scyB7XG4gIG1hcmdpbjogdmFyKC0tcGljby1zcGFjaW5nKSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLWNvbnRyb2xzIC5mb250LXNpemUtY29udHJvbHMgYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyA0KSBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1jb250cm9scyAudGhlbWUtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjJyZW07XG59XG4uc2lkZWJhci1oYW1idXJnZXItY29udHJvbHMgLnRoZW1lLXRvZ2dsZSBsYWJlbCxcbi5zaWRlYmFyLWhhbWJ1cmdlci1jb250cm9scyAudGhlbWUtdG9nZ2xlIGlucHV0IHtcbiAgbWFyZ2luOiAwO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLXNlYXJjaCB7XG4gIG1hcmdpbjogdmFyKC0tcGljby1zcGFjaW5nKSAwO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLXNlYXJjaCA+ICo6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjVyZW07XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuNXJlbTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1zZWFyY2ggPiAqOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC41cmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC41cmVtO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUge1xuICBtYXJnaW46IHZhcigtLXBpY28tc3BhY2luZykgMDtcbiAgZmxleDogMSAxIGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uc2lkZWJhci1oYW1idXJnZXItbWVudSAuYWNjb3JkaW9uIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1tZW51IC5hY2NvcmRpb24tdG9nZ2xlLCAuc2lkZWJhci1oYW1idXJnZXItbWVudSAuYWNjb3JkaW9uLWxpbmsge1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICBjb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogdmFyKC0tcGljby1zcGFjaW5nKSBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2lkZWJhci1oYW1idXJnZXItbWVudSAuYWNjb3JkaW9uLXRvZ2dsZTpob3ZlciwgLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbi10b2dnbGU6Zm9jdXMsIC5zaWRlYmFyLWhhbWJ1cmdlci1tZW51IC5hY2NvcmRpb24tbGluazpob3ZlciwgLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbi1saW5rOmZvY3VzIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1waWNvLWNvbG9yKSwgIzAwMCAyMCUpO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1zcGFjaW5nKTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1tZW51IC5hY2NvcmRpb24tY29udGVudC5vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc2lkZWJhci1oYW1idXJnZXItbWVudSAuYWNjb3JkaW9uLWNvbnRlbnQgYSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbi1jb250ZW50IGE6aG92ZXIge1xuICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpY28tY29sb3IpLCAjMDAwIDIwJSk7XG59XG4uc2lkZWJhci1oYW1idXJnZXItbWVudSAuYWNjb3JkaW9uLWNvbnRlbnQuY29sdW1ucy0yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1tZW51IC5hY2NvcmRpb24tY29udGVudC5jb2x1bW5zLTIub3BlbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbi1jb250ZW50LnNvY2lhbC1saW5rcyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2lkZWJhci1oYW1idXJnZXItbWVudSAuYWNjb3JkaW9uLWNvbnRlbnQuc29jaWFsLWxpbmtzLm9wZW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5zaWRlYmFyLWhhbWJ1cmdlci1tZW51IC5hY2NvcmRpb24tY29udGVudC5zb2NpYWwtbGlua3MgYSB7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xufVxuLnNpZGViYXItaGFtYnVyZ2VyLW1lbnUgLmFjY29yZGlvbi1jb250ZW50LnNvY2lhbC1saW5rcyBhOmhvdmVyIHtcbiAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1waWNvLWNvbG9yKSwgIzAwMCAyMCUpO1xufVxuXG5ib2R5ID4gLmhlYWRlci1uYXYtbWVudSB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCkgY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMS4zMyk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yKTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4yKSB0cmFuc3BhcmVudDtcbn1cbmJvZHkgPiAuaGVhZGVyLW5hdi1tZW51Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIGhlaWdodDogNnB4O1xufVxuYm9keSA+IC5oZWFkZXItbmF2LW1lbnU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5ib2R5ID4gLmhlYWRlci1uYXYtbWVudTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbmJvZHkgPiAuaGVhZGVyLW5hdi1tZW51IC5tZW51LXNjcm9sbC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmJvZHkgPiAuaGVhZGVyLW5hdi1tZW51IC5tZW51LXNjcm9sbC13cmFwcGVyIGxpIHtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCk7XG59XG5ib2R5ID4gLmhlYWRlci1uYXYtbWVudSAubWVudS1zY3JvbGwtd3JhcHBlciBsaSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxcmVtO1xufVxuYm9keSA+IC5oZWFkZXItbmF2LW1lbnUgLm1lbnUtc2Nyb2xsLXdyYXBwZXIgbGkgYTpob3ZlciwgYm9keSA+IC5oZWFkZXItbmF2LW1lbnUgLm1lbnUtc2Nyb2xsLXdyYXBwZXIgbGkgYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tY29udHJhc3QpO1xufVxuXG5ib2R5LmhvbWUuaGFzLWhlYWRlci1zdGlja3kgPiAucGFnZS1pbnRybyAuaW50cm8tY29sLWNlbnRlciBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5ib2R5LmhvbWUgPiAucGFnZS1pbnRybyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgYm9keS5ob21lID4gLnBhZ2UtaW50cm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuYm9keSA+IC5wYWdlLWludHJvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSB2YXIoLS1waWNvLXNwYWNpbmcpIDAgdmFyKC0tcGljby1zcGFjaW5nKTtcbn1cbmJvZHkgPiAucGFnZS1pbnRybyAuaW50cm8tY29sLmludHJvLWNvbC1sZWZ0LCBib2R5ID4gLnBhZ2UtaW50cm8gLmludHJvLWNvbC5pbnRyby1jb2wtcmlnaHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keSA+IC5wYWdlLWludHJvIC5pbnRyby1jb2wuaW50cm8tY29sLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmJvZHkgPiAucGFnZS1pbnRybyAuaW50cm8tY29sLmludHJvLWNvbC1jZW50ZXIgaDEge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuYm9keSA+IC5wYWdlLWludHJvIC5pbnRyby1jb2wuaW50cm8tY29sLWNlbnRlciBoMSAuaDEtc3VidGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA0NSU7XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbn1cbmJvZHkgPiAucGFnZS1pbnRybyAuaW50cm8tY29sLmludHJvLWNvbC1jZW50ZXIgaW1nIHtcbiAgbWF4LWhlaWdodDogNDhweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuYm9keSA+IC5wYWdlLWludHJvIC5pbnRyby1jb2wuaW50cm8tY29sLWNlbnRlciBpbWcucGFnZS1pbnRyby1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICBib2R5ID4gLnBhZ2UtaW50cm8ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgYm9keSA+IC5wYWdlLWludHJvIC5pbnRyby1jb2wuaW50cm8tY29sLWxlZnQsIGJvZHkgPiAucGFnZS1pbnRybyAuaW50cm8tY29sLmludHJvLWNvbC1yaWdodCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiA5MHB4O1xuICB9XG4gIGJvZHkgPiAucGFnZS1pbnRybyAuaW50cm8tY29sLmludHJvLWNvbC1jZW50ZXIge1xuICAgIGZsZXg6IDI7XG4gIH1cbn1cblxuLm1haW4tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSAwIDAgMDtcbn1cbi5tYWluLWdyaWQud2l0aC1zaWRlYmFyIHtcbiAgZ2FwOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWFpbi1ncmlkLndpdGgtc2lkZWJhciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XG4gIC5tYWluLWdyaWQud2l0aC1zaWRlYmFyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIuMmZyIDAuOGZyO1xuICB9XG59XG5cbi5tYWluLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1waWNvLXNwYWNpbmcpIHZhcigtLXBpY28tc3BhY2luZykgMCB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWJhY2tncm91bmQtY29sb3IpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5tYWluLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgfVxufVxuXG4ubWFpbi1zaWRlYmFyIHtcbiAgcGFkZGluZzogMCB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLWJhY2tncm91bmQtY29sb3IpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5tYWluLXNpZGViYXIge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpLCAxcHggMCAwIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xuICB9XG59XG4ubWFpbi1zaWRlYmFyID4gLndpZGdldCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ubWFpbi1zaWRlYmFyIC53aWRnZXQubmstZmVlZC1yZWFkZXItbGlzdC1mZWVkLXJ1YnJpY2Ege1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi5tYWluLXNpZGViYXIgLndpZGdldC1zaWRlYmFyLWZlYXR1cmVkLXBvaS1saXN0YSBhcnRpY2xlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIGF1dG8gY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMikgYXV0bztcbn1cbi5tYWluLXNpZGViYXIgLndpZGdldC1zaWRlYmFyLWZlYXR1cmVkLXBvaS1saXN0YSBhcnRpY2xlIGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAubWFpbi1zaWRlYmFyIC53aWRnZXQtc2lkZWJhci1mZWF0dXJlZC1wb2ktbGlzdGEgYXJ0aWNsZSBhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tYWluLXNpZGViYXIgLndpZGdldC1zaWRlYmFyLWZlYXR1cmVkLXBvaS1saXN0YSBhcnRpY2xlIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ubWFpbi1zaWRlYmFyIC53aWRnZXQtc2lkZWJhci1mZWF0dXJlZC1wb2ktbGlzdGEgYXJ0aWNsZSBmaWd1cmUge1xuICBhc3BlY3QtcmF0aW86IDE2Lzk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXBpY28tYm9yZGVyLXJhZGl1cykgdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKSAwIDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm1haW4tc2lkZWJhciAud2lkZ2V0LXNpZGViYXItZmVhdHVyZWQtcG9pLWxpc3RhIGFydGljbGUgZmlndXJlIHtcbiAgICBhc3BlY3QtcmF0aW86IDE2LzEwO1xuICAgIGZsZXg6IDE7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW4tc2lkZWJhciAud2lkZ2V0LXNpZGViYXItZmVhdHVyZWQtcG9pLWxpc3RhIGFydGljbGUgZmlndXJlIHtcbiAgICBmbGV4OiBub25lO1xuICB9XG59XG4ubWFpbi1zaWRlYmFyIC53aWRnZXQtc2lkZWJhci1mZWF0dXJlZC1wb2ktbGlzdGEgYXJ0aWNsZSBmaWd1cmUgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5tYWluLXNpZGViYXIgLndpZGdldC1zaWRlYmFyLWZlYXR1cmVkLXBvaS1saXN0YSBhcnRpY2xlIC5wb3N0LW1ldGEge1xuICAgIGZsZXg6IDM7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1haW4tc2lkZWJhciAud2lkZ2V0LXNpZGViYXItZmVhdHVyZWQtcG9pLWxpc3RhIGFydGljbGUgLnBvc3QtbWV0YSB7XG4gICAgZmxleDogbm9uZTtcbiAgfVxufVxuLm1haW4tc2lkZWJhciAud2lkZ2V0LXNpZGViYXItZmVhdHVyZWQtcG9pLWxpc3RhIGFydGljbGUgLnBvc3QtbWV0YSAubGFuY2lvIHtcbiAgcGFkZGluZzogMC43cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tcGljby1wcmltYXJ5KTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpICogLTEuNSk7XG59XG4ubWFpbi1zaWRlYmFyIC53aWRnZXQtc2lkZWJhci1mZWF0dXJlZC1wb2ktbGlzdGEgYXJ0aWNsZSAucG9zdC1tZXRhIGgzIHtcbiAgcGFkZGluZzogMC43cmVtO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5tYWluLXNpZGViYXIgLndpZGdldC1zaWRlYmFyLWZlYXR1cmVkLXBvaS1saXN0YSBhcnRpY2xlLmZlYXR1cmVkIC5wb3N0LW1ldGEgaDIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLm1haW4tc2lkZWJhciAud2lkZ2V0LXNpZGViYXItZmVhdHVyZWQtcG9pLWxpc3RhIGFydGljbGUuY29tcGFjdCAucG9zdC1tZXRhIGgyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4ud2lkZ2V0IC53aWRnZXQtdGl0bGUtaW1nLFxuLndpZGdldCAud2lkZ2V0LXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbn1cbi53aWRnZXQgLndpZGdldC10aXRsZS1pbWcgPiBpbWcsXG4ud2lkZ2V0IC53aWRnZXQtdGl0bGUtaW1nID4gc3Bhbixcbi53aWRnZXQgLndpZGdldC10aXRsZSA+IGltZyxcbi53aWRnZXQgLndpZGdldC10aXRsZSA+IHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2lkZ2V0IC53aWRnZXQtdGl0bGUtaW1nIGltZyxcbi53aWRnZXQgLndpZGdldC10aXRsZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgbWF4LWhlaWdodDogNjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgei1pbmRleDogMTA7XG59XG4ud2lkZ2V0IC53aWRnZXQtdGl0bGUtaW1nIGEsXG4ud2lkZ2V0IC53aWRnZXQtdGl0bGUgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi53aWRnZXQgLndpZGdldC10aXRsZS1pbWcgPiBzcGFuLFxuLndpZGdldCAud2lkZ2V0LXRpdGxlID4gc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpO1xuICB6LWluZGV4OiAxMDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyA0KSBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1heC13aWR0aDogNzAlO1xufVxuLndpZGdldCAud2lkZ2V0LXRpdGxlLWltZzo6YmVmb3JlLFxuLndpZGdldCAud2lkZ2V0LXRpdGxlOjpiZWZvcmUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcGljby1wcmltYXJ5KTtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIHotaW5kZXg6IDE7XG59XG4ud2lkZ2V0IC53aWRnZXQtdGl0bGUtaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1zcGFjaW5nKTtcbn1cbi53aWRnZXQgLndpZGdldC1mb290ZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcGljby1zcGFjaW5nKTtcbn1cbi53aWRnZXQgLndpZGdldC1mb290ZXIgYVtyb2xlPWJ1dHRvbl0ge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyA0KSB2YXIoLS1waWNvLXNwYWNpbmcpO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogMCAwIDAgdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5Aa2V5ZnJhbWVzIGJsaW5rZXIge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgfVxufVxuLmNvbW1lbnQtZm9ybS11cmwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ud3AtY2FwdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLndwLWNhcHRpb24gaW1nLFxuaW1nLnNpemUtZnVsbCxcbmltZy5zaXplLWxhcmdlLFxuaW1nLnNpemUtbWVkaXVtLFxuaW1nLnNpemUtdGh1bWJuYWlsIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmltZy5hbGlnbnJpZ2h0LFxuZmlndXJlLmFsaWducmlnaHQsXG5kaXYud3AtY2FwdGlvbi5hbGlnbnJpZ2h0IHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMC4ycmVtIGF1dG8gdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIGltZy5hbGlnbnJpZ2h0LFxuICBmaWd1cmUuYWxpZ25yaWdodCxcbiAgZGl2LndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogMC4ycmVtIDAgdmFyKC0tcGljby1zcGFjaW5nKSB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbmltZy5hbGlnbmxlZnQsXG5maWd1cmUuYWxpZ25sZWZ0LFxuZGl2LndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMC4ycmVtIGF1dG8gdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgaW1nLmFsaWdubGVmdCxcbiAgZmlndXJlLmFsaWdubGVmdCxcbiAgZGl2LndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAuMnJlbSB2YXIoLS1waWNvLXNwYWNpbmcpIHZhcigtLXBpY28tc3BhY2luZykgMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5pbWcuYWxpZ25ub25lLFxuZmlndXJlLmFsaWdubm9uZSxcbmRpdi53cC1jYXB0aW9uLmFsaWdubm9uZSB7XG4gIG1hcmdpbjogMC4ycmVtIHZhcigtLXBpY28tc3BhY2luZykgdmFyKC0tcGljby1zcGFjaW5nKSAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbmltZy5hbGlnbmNlbnRlcixcbmZpZ3VyZS5hbGlnbmNlbnRlcixcbmRpdi53cC1jYXB0aW9uLmFsaWduY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI3dwYWRtaW5iYXIge1xuICB6LWluZGV4OiA5OTk5OTk5O1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbn1cblxuaWZyYW1lIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY29udGFpbmVyLmNvbnRhaW5lci1sZGIxIHtcbiAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSB2YXIoLS1waWNvLXNwYWNpbmcpIDAgdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgYm94LXNoYWRvdzogLTFweCAwIDAgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvciksIDFweCAwIDAgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG59XG5cbi5tYWluLXNpZGViYXIgLndpZGdldC1uay1hZHYtcHJpbnQ6bm90KDpoYXMoPiAqOm5vdCg6ZW1wdHkpKSkge1xuICBtYXJnaW46IDA7XG59XG5cbmRpdltpZF49Zmx4LV0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5kaXZbaWRePWZseF9uZWNyb10ge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgKiAyKTtcbn1cblxuZGl2W2lkXj1mbHgtaW5pemlhdGl2ZV0ge1xuICBtYXJnaW46IHZhcigtLXBpY28tc3BhY2luZykgYXV0byB2YXIoLS1waWNvLXNwYWNpbmcpIGF1dG87XG59XG5cbmRpdltpZF49Zmx4LWluaXppYXRpdmVdOm5vdCg6aGFzKD4gKjpub3QoOmVtcHR5KSkpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5kaXZbaWRePWZseC1pbmZlZWRdIHtcbiAgbWFyZ2luOiB2YXIoLS1waWNvLXNwYWNpbmcpIGF1dG8gdmFyKC0tcGljby1zcGFjaW5nKSBhdXRvO1xufVxuXG5kaXZbaWRePWZseC1pbmZlZWRdOm5vdCg6aGFzKD4gKjpub3QoOmVtcHR5KSkpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIHtcbiAgLyogQ29sb25uYSBkZXN0cmE6IHRlc3RvICovXG4gIC8qIEZvb3RlcjogYm9yZG8gc29wcmEgZSBibG9jY2hpIGEgcmlnYSAoc3RhY2tlZCkgKi9cbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naW8taGVhZGVyIHtcbiAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSAwO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2lvLWhlYWRlciAudGlwbyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naW8tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpby1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDRmciA4ZnI7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICB9XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5sZWZ0LWNvbCAucG9zdC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYXNwZWN0LXJhdGlvOiA2Lzc7XG4gIC8qIGNyb3AgZmlzc28gNjo3ICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5sZWZ0LWNvbCAucG9zdC1pbWFnZSBpbWcsXG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5sZWZ0LWNvbCAucG9zdC1pbWFnZSAud3AtcG9zdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLmxlZnQtY29sIC5uYW1lIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubGVmdC1jb2wgLm5hbWUgLnRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5sZWZ0LWNvbCAubmFtZSAuYW5uaSB7XG4gIG1hcmdpbi10b3A6IDAuMzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5yaWdodC1jb2wgLmludGVzdGF6aW9uZSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5yaWdodC1jb2wgLnBvc3QtY29udGVudCBwIHtcbiAgbWFyZ2luOiAwIDAgMC45ZW0gMDtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLnJpZ2h0LWNvbCAucG9zdC1jb250ZW50IHVsLFxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAucmlnaHQtY29sIC5wb3N0LWNvbnRlbnQgb2wge1xuICBtYXJnaW46IDAgMCAxZW0gMS4yNWVtO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAucmlnaHQtY29sIC5wb3N0LWNvbnRlbnQgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5yaWdodC1jb2wgLmZ1bmVyYWxlIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgZ2FwOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKSB2YXIoLS1waWNvLXNwYWNpbmcpO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAucmlnaHQtY29sIC5mdW5lcmFsZSAubGVmdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5yaWdodC1jb2wgLmZ1bmVyYWxlIC5yaWdodCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAucmlnaHQtY29sIC5yaW5ncmF6aWFtZW50aSB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2lvLWZvb3RlciB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gIHBhZGRpbmctdG9wOiAwLjlyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naW8tZm9vdGVyIC5mb290ZXItYmxvY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDQpO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpby1mb290ZXIgLnBvc3QtbGFzdC11cGRhdGUge1xuICBvcGFjaXR5OiAwLjk7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2ktY29tbWVudHMge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgKiAyKTtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naS1jb21tZW50cyAuY29tbWVudHNfX3RpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpLWNvbW1lbnRzIC5jb21tZW50cy1saXN0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naS1jb21tZW50cyAuY29tbWVudCB7XG4gIHBhZGRpbmc6IHZhcigtLXBpY28tc3BhY2luZykgMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW46IDA7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2ktY29tbWVudHMgLmNvbW1lbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2ktY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfX21ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCkgY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMik7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpLWNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50X19tZXRhIC5jb21tZW50X19hdXRob3Ige1xuICBmb250LXdlaWdodDogNzAwO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpLWNvbW1lbnRzIC5jb21tZW50IC5jb21tZW50X19tZXRhIC5jb21tZW50X19kYXRlIHtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDAuOTVlbTtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naS1jb21tZW50cyAuY29tbWVudCAuY29tbWVudF9fY29udGVudCBwIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2ktY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfX2NvbnRlbnQgdWwsXG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2ktY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRfX2NvbnRlbnQgb2wge1xuICBtYXJnaW46IDAgMCAxZW0gMS4yNWVtO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpLWNvbW1lbnRzIC5jb21tZW50LWZvcm1fX3RpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpO1xufVxuYm9keS5zaW5nbGUtbmtfbmVjcm8gLm1haW4tY29udGVudCAubmVjcm9sb2dpLXNpbmdsZSAubmVjcm9sb2dpLWNvbW1lbnRzIC5jb21tZW50LXJlc3BvbmQge1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naS1jb21tZW50cyAuY29tbWVudC1mb3JtIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMik7XG59XG5ib2R5LnNpbmdsZS1ua19uZWNybyAubWFpbi1jb250ZW50IC5uZWNyb2xvZ2ktc2luZ2xlIC5uZWNyb2xvZ2ktY29tbWVudHMgLmNvbW1lbnQtZm9ybSBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbmJvZHkuc2luZ2xlLW5rX25lY3JvIC5tYWluLWNvbnRlbnQgLm5lY3JvbG9naS1zaW5nbGUgLm5lY3JvbG9naS1jb21tZW50cyAuY29tbWVudC1mb3JtIHRleHRhcmVhIHtcbiAgbWluLWhlaWdodDogOHJlbTtcbn0iLCJAdXNlICdzYXNzOmNvbG9yJztcblxuJG10LWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiRtdC1jb2xvcjogIzM3M2M0NDtcblxuJG10LXByaW1hcnktY29sb3I6ICMwMDU5OWM7XG4kbXQtcHJpbWFyeS1jb2xvci1kYXJrZW46IGNvbG9yLmFkanVzdCgkbXQtcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4kbXQtcHJpbWFyeS1jb2xvci1saWdodGVuOiBjb2xvci5hZGp1c3QoJG10LXByaW1hcnktY29sb3IsICRsaWdodG5lc3M6ICsxMCUpO1xuJG10LXByaW1hcnktaW52ZXJzZS1jb2xvcjogI2ZmZmZmZjtcblxuJG10LXNlY29uZGFyeS1jb2xvcjogIzczNzk4NztcbiRtdC1zZWNvbmRhcnktY29sb3ItZGFya2VuOiBjb2xvci5hZGp1c3QoJG10LXNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4kbXQtc2Vjb25kYXJ5LWNvbG9yLWxpZ2h0ZW46IGNvbG9yLmFkanVzdCgkbXQtc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiArMTAlKTtcbiRtdC1zZWNvbmRhcnktaW52ZXJzZS1jb2xvcjogI2ZmZmZmZjtcblxuJG10LWNvbnRyYXN0LWNvbG9yOiAjMTgxYzI1O1xuJG10LWNvbnRyYXN0LWNvbG9yLWRhcmtlbjogY29sb3IuYWRqdXN0KCRtdC1jb250cmFzdC1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4kbXQtY29udHJhc3QtY29sb3ItbGlnaHRlbjogY29sb3IuYWRqdXN0KCRtdC1jb250cmFzdC1jb2xvciwgJGxpZ2h0bmVzczogKzEwJSk7XG4kbXQtY29udHJhc3QtaW52ZXJzZS1jb2xvcjogI2ZmZmZmZjtcblxuXG5cblxuJG10LXRkYXJrLWJhY2tncm91bmQtY29sb3I6ICMxZDIzMjc7XG5cbiRtdC10ZGFyay1jb2xvcjogIzFkMjMyNztcblxuJG10LXRkYXJrLXByaW1hcnktY29sb3I6ICM1YmI0ZGY7XG4kbXQtdGRhcmstcHJpbWFyeS1jb2xvci1kYXJrZW46IGNvbG9yLmFkanVzdCgkbXQtdGRhcmstcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4kbXQtdGRhcmstcHJpbWFyeS1jb2xvci1saWdodGVuOiBjb2xvci5hZGp1c3QoJG10LXRkYXJrLXByaW1hcnktY29sb3IsICRsaWdodG5lc3M6ICsxMCUpO1xuJG10LXRkYXJrLXByaW1hcnktaW52ZXJzZS1jb2xvcjogIzEyMTIxMjtcblxuJG10LXRkYXJrLXNlY29uZGFyeS1jb2xvcjogI2EzYTliNztcbiRtdC10ZGFyay1zZWNvbmRhcnktY29sb3ItZGFya2VuOiBjb2xvci5hZGp1c3QoJG10LXRkYXJrLXNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4kbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLWxpZ2h0ZW46IGNvbG9yLmFkanVzdCgkbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiArMTAlKTtcbiRtdC10ZGFyay1zZWNvbmRhcnktaW52ZXJzZS1jb2xvcjogIzEyMTIxMjtcblxuJG10LXRkYXJrLWNvbnRyYXN0LWNvbG9yOiAjZjVmN2ZhO1xuJG10LXRkYXJrLWNvbnRyYXN0LWNvbG9yLWRhcmtlbjogY29sb3IuYWRqdXN0KCRtdC10ZGFyay1jb250cmFzdC1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSk7XG4kbXQtdGRhcmstY29udHJhc3QtY29sb3ItbGlnaHRlbjogY29sb3IuYWRqdXN0KCRtdC10ZGFyay1jb250cmFzdC1jb2xvciwgJGxpZ2h0bmVzczogKzEwJSk7XG4kbXQtdGRhcmstY29udHJhc3QtaW52ZXJzZS1jb2xvcjogIzEyMTIxMjtcblxuXG4kbXQtZm9udC1mYW1pbHk6ICdJbnRlcicsIFRhaG9tYSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiRtdC1mb250LXNpemU6IDFyZW07XG4kbXQtbGluZS1oZWlnaHQ6IDEuNHJlbTtcbiRtdC1mb250LXdlaWdodDogNDAwO1xuJG10LWxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4kbXQtaGVhZGluZy1mb250LWZhbWlseTogJ1JvYm90bycsIEdlb3JnaWEsIHNlcmlmO1xuJG10LWhlYWRpbmctZm9udC13ZWlnaHQ6IDcwMDtcblxuJG10LXNpdGUtaGVhZGVyLWhlaWdodDogNTZweDtcblxuJG10LXppbmRleC1oZWFkZXI6IDk5OTk5OTk7XG4kbXQtemluZGV4LXNpZGViYXItaGFtYnVyZ2VyOiA5OTk5OTk5OTtcbiRtdC16aW5kZXgtcG9wdXA6IDk5OTk5OTk5OTtcblxuJG10LWJyZWFrcG9pbnRzOiAoXG4gIHNtOiAoYnJlYWtwb2ludDogNTc2cHgsXG4gICAgdmlld3BvcnQ6IDEwMCUsXG4gICAgcm9vdC1mb250LXNpemU6IDEwNi4yNSUsXG4gICksXG4gIG1kOiAoYnJlYWtwb2ludDogNzY4cHgsXG4gICAgdmlld3BvcnQ6IDEwMCUsXG4gICAgcm9vdC1mb250LXNpemU6IDExMi41JSxcbiAgKSxcbiAgbGc6IChicmVha3BvaW50OiAxMDI0cHgsXG4gICAgdmlld3BvcnQ6IDEyODBweCxcbiAgICByb290LWZvbnQtc2l6ZTogMTE4Ljc1JSxcbiAgKSxcbiAgeGw6IChicmVha3BvaW50OiAxMjgwcHgsXG4gICAgdmlld3BvcnQ6IDEyODBweCxcbiAgICByb290LWZvbnQtc2l6ZTogMTI1JSxcbiAgKSxcbiAgeHhsOiAoYnJlYWtwb2ludDogMTUzNnB4LFxuICAgIHZpZXdwb3J0OiAxMjgwcHgsXG4gICAgcm9vdC1mb250LXNpemU6IDEzMS4yNSUsXG4gIClcbik7XG5cbi8vIFRlbWEgU29saXRvXG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdLFxuOnJvb3Q6bm90KFtkYXRhLXRoZW1lPVwiZGFya1wiXSkge1xuXG4gIC0tbXQtbmVjcm9sb3JpLWZvcm0tYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgLS1tdC1ob21lcGFnZS1vcGVuaW5nLWJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1waWNvLXByaW1hcnkpIDEwJSwgI2ZmZiA5MCUpO1xuICAtLW10LWdhbGxlcnktYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpY28tcHJpbWFyeSkgNSUsICNmZmYgOTUlKTtcblxufVxuXG4vLyBUZW1hIERhcmtcbltkYXRhLXRoZW1lPVwiZGFya1wiXSxcbjpyb290W2RhdGEtdGhlbWU9XCJkYXJrXCJdIHtcbiAgLS1tdC1uZWNyb2xvcmktZm9ybS1iYWNrZ3JvdW5kOiAjMTIxMjEyO1xuICAtLW10LWhvbWVwYWdlLW9wZW5pbmctYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpY28tcHJpbWFyeSkgMTAlLCAjMDAwIDkwJSk7XG4gIC0tbXQtZ2FsbGVyeS1iYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGljby1wcmltYXJ5KSA1JSwgIzAwMCA5NSUpO1xuXG59IiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdJbnRlcic7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvaW50ZXIvaW50ZXItcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdJbnRlcic7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvaW50ZXIvaW50ZXItaXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ0ludGVyJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9pbnRlci9pbnRlci03MDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnSW50ZXInO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKCcuLy4uL2ZvbnRzL2ludGVyL2ludGVyLTcwMGl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn0iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ01lcnJpd2VhdGhlcic7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvbWVycml3ZWF0aGVyL21lcnJpd2VhdGhlci1yZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ01lcnJpd2VhdGhlcic7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvbWVycml3ZWF0aGVyL21lcnJpd2VhdGhlci1pdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnTWVycml3ZWF0aGVyJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9tZXJyaXdlYXRoZXIvbWVycml3ZWF0aGVyLTcwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdNZXJyaXdlYXRoZXInO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKCcuLy4uL2ZvbnRzL21lcnJpd2VhdGhlci9tZXJyaXdlYXRoZXItNzAwaXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufSIsIkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9ub3RvLXNhbnMvbm90by1zYW5zLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTYW5zJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9ub3RvLXNhbnMvbm90by1zYW5zLWl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKCcuLy4uL2ZvbnRzL25vdG8tc2Fucy9ub3RvLXNhbnMtNzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ05vdG8gU2Fucyc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvbm90by1zYW5zL25vdG8tc2Fucy03MDBpdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59IiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIFNlcmlmJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9ub3RvLXNlcmlmL25vdG8tc2VyaWYtcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIFNlcmlmJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9ub3RvLXNlcmlmL25vdG8tc2VyaWYtaXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ05vdG8gU2VyaWYnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKCcuLy4uL2ZvbnRzL25vdG8tc2VyaWYvbm90by1zZXJpZi03MDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnTm90byBTZXJpZic7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvbm90by1zZXJpZi9ub3RvLXNlcmlmLTcwMGl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn0iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvb3Blbi1zYW5zL29wZW4tc2Fucy1yZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvb3Blbi1zYW5zL29wZW4tc2Fucy1pdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9vcGVuLXNhbnMvb3Blbi1zYW5zLTcwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKCcuLy4uL2ZvbnRzL29wZW4tc2Fucy9vcGVuLXNhbnMtNzAwaXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufSIsIkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9yb2JvdG8vcm9ib3RvLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnLi8uLi9mb250cy9yb2JvdG8vcm9ib3RvLWl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKCcuLy4uL2ZvbnRzL3JvYm90by9yb2JvdG8tNzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoJy4vLi4vZm9udHMvcm9ib3RvL3JvYm90by03MDBpdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG59IiwiLyohXG4gKiBQaWNvIENTUyDinKggdjIuMS4xIChodHRwczovL3BpY29jc3MuY29tKVxuICogQ29weXJpZ2h0IDIwMTktMjAyNSAtIExpY2Vuc2VkIHVuZGVyIE1JVFxuICovXG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCIuLi8uLi9jb2xvcnNcIiBhcyAqO1xuQHVzZSBcIi4uLy4uL3NldHRpbmdzXCIgYXMgKjtcbkB1c2UgXCIuLi8uLi9oZWxwZXJzL2Z1bmN0aW9uc1wiO1xuQHVzZSBcInRoZW1lLWNvbG9yc1wiO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJ0aGVtZXMvZGVmYXVsdFwiKSB7XG4gIC8qKlxuICAgKiBTdHlsZXNcbiAgICovXG5cbiAgOnJvb3QsXG4gIDpob3N0IHtcbiAgICAvLyBUeXBvZ3JhcGh5XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC1mYW1pbHktZW1vamk6XG4gICAgICBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC1mYW1pbHktc2Fucy1zZXJpZjpcbiAgICAgIHN5c3RlbS11aSwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIEhlbHZldGljYSwgQXJpYWwsIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgICAgIHNhbnMtc2VyaWYsIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb250LWZhbWlseS1lbW9qaSk7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC1mYW1pbHktbW9ub3NwYWNlOlxuICAgICAgdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgXCJTRiBNb25vXCIsIE1lbmxvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgbW9ub3NwYWNlLFxuICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtZmFtaWx5LWVtb2ppKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb250LWZhbWlseTogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtZmFtaWx5LXNhbnMtc2VyaWYpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC13ZWlnaHQ6IDQwMDtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb250LXNpemU6IDEwMCU7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9dGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjFyZW07XG5cbiAgICAvLyBCb3JkZXJzXG4gICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGg6IDAuMDYyNXJlbTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1vdXRsaW5lLXdpZHRoOiAwLjEyNXJlbTtcblxuICAgIC8vIFRyYW5zaXRpb25zXG4gICAgI3skY3NzLXZhci1wcmVmaXh9dHJhbnNpdGlvbjogMC4ycyBlYXNlLWluLW91dDtcblxuICAgIC8vIFNwYWNpbmdzXG4gICAgI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZzogMXJlbTtcblxuICAgIC8vIFNwYWNpbmdzIGZvciB0eXBvZ3JhcGh5IGVsZW1lbnRzXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC90eXBvZ3JhcGh5XCIpIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy12ZXJ0aWNhbDogMXJlbTtcbiAgICB9XG5cbiAgICAvLyBTcGFjaW5ncyBmb3IgYm9keSA+IGhlYWRlciwgYm9keSA+IG1haW4sIGJvZHkgPiBmb290ZXIsIHNlY3Rpb24sIGFydGljbGVcbiAgICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJsYXlvdXQvbGFuZG1hcmtzXCIpIG9yXG4gICAgICBtYXAuZ2V0KCRtb2R1bGVzLCBcImxheW91dC9zZWN0aW9uXCIpIG9yXG4gICAgICBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvY2FyZFwiKSBvclxuICAgICAgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL21vZGFsXCIpXG4gICAge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy12ZXJ0aWNhbDogdmFyKCN7JGNzcy12YXItcHJlZml4fXNwYWNpbmcpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy1ob3Jpem9udGFsOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG4gICAgfVxuXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwibGF5b3V0L2dyaWRcIikgYW5kICRlbmFibGUtY2xhc3NlcyB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ncmlkLWNvbHVtbi1nYXA6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWdyaWQtcm93LWdhcDogdmFyKCN7JGNzcy12YXItcHJlZml4fXNwYWNpbmcpO1xuICAgIH1cblxuICAgIC8vIFNwYWNpbmdzIGZvciBmb3JtIGVsZW1lbnRzIGFuZCBidXR0b25cbiAgICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L2J1dHRvblwiKSBvciBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2Jhc2ljXCIpIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsOiAwLjc1cmVtO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbDogMXJlbTtcbiAgICB9XG5cbiAgICAvLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMgJiBmaWVsZHNldHMgbGVnZW5kXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiZm9ybXMvYmFzaWNcIikge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1sYWJlbC1mb250LXdlaWdodDogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtd2VpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBHcm91cCAocm9sZT1cImdyb3VwXCIpXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9ncm91cFwiKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ncm91cC1ib3gtc2hhZG93OiAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Z3JvdXAtYm94LXNoYWRvdy1mb2N1cy13aXRoLWJ1dHRvbjogMFxuICAgICAgICAwXG4gICAgICAgIDBcbiAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWZvY3VzKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWdyb3VwLWJveC1zaGFkb3ctZm9jdXMtd2l0aC1pbnB1dDogMFxuICAgICAgICAwXG4gICAgICAgIDBcbiAgICAgICAgMC4wNjI1cmVtXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAvLyBNb2RhbCAoPGRpYWxvZz4pXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9tb2RhbFwiKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1tb2RhbC1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcjogYmx1cigwLjM3NXJlbSk7XG4gICAgfVxuXG4gICAgLy8gU3BhY2luZ3MgZm9yIG5hdiBjb21wb25lbnRcbiAgICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL25hdlwiKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1uYXYtZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsOiAxcmVtO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9bmF2LWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsOiAwLjVyZW07XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsOiAwLjVyZW07XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWw6IDAuNXJlbTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fW5hdi1icmVhZGNydW1iLWRpdmlkZXI6IFwiPlwiO1xuICAgIH1cblxuICAgIC8vIENoZWNrYm94ZXMgaWNvbnNcbiAgICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9jaGVja2JveC1yYWRpby1zd2l0Y2hcIikge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9aWNvbi1jaGVja2JveDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyN7ZnVuY3Rpb25zLmRpc3BsYXktcmdiKCR3aGl0ZSl9JyBzdHJva2Utd2lkdGg9JzQnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzIwIDYgOSAxNyA0IDEyJyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0VcIik7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1pY29uLW1pbnVzOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nI3tmdW5jdGlvbnMuZGlzcGxheS1yZ2IoJHdoaXRlKX0nIHN0cm9rZS13aWR0aD0nNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2xpbmUgeDE9JzUnIHkxPScxMicgeDI9JzE5JyB5Mj0nMTInJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIH1cblxuICAgIC8vIENoZXZyb24gaWNvbnNcbiAgICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9iYXNpY3NcIikgb3JcbiAgICAgIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9hY2NvcmRpb25cIikgb3JcbiAgICAgIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9kcm9wZG93blwiKVxuICAgIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWljb24tY2hldnJvbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyN7ZnVuY3Rpb25zLmRpc3BsYXktcmdiKCR6aW5jLTQwMCl9JyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzYgOSAxMiAxNSAxOCA5JyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0VcIik7XG4gICAgfVxuXG4gICAgLy8gRGF0ZXRpbWUgaWNvbnNcbiAgICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9pbnB1dC1kYXRlXCIpIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWljb24tZGF0ZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyN7ZnVuY3Rpb25zLmRpc3BsYXktcmdiKCR6aW5jLTQwMCl9JyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NyZWN0IHg9JzMnIHk9JzQnIHdpZHRoPScxOCcgaGVpZ2h0PScxOCcgcng9JzInIHJ5PScyJyUzRSUzQy9yZWN0JTNFJTNDbGluZSB4MT0nMTYnIHkxPScyJyB4Mj0nMTYnIHkyPSc2JyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nOCcgeTE9JzInIHgyPSc4JyB5Mj0nNiclM0UlM0MvbGluZSUzRSUzQ2xpbmUgeDE9JzMnIHkxPScxMCcgeDI9JzIxJyB5Mj0nMTAnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9aWNvbi10aW1lOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nI3tmdW5jdGlvbnMuZGlzcGxheS1yZ2IoJHppbmMtNDAwKX0nIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2NpcmNsZSBjeD0nMTInIGN5PScxMicgcj0nMTAnJTNFJTNDL2NpcmNsZSUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nMTIgNiAxMiAxMiAxNiAxNCclM0UlM0MvcG9seWxpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIH1cblxuICAgIC8vIFNlYXJjaCBpY29uXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiZm9ybXMvaW5wdXQtc2VhcmNoXCIpIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWljb24tc2VhcmNoOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nI3tmdW5jdGlvbnMuZGlzcGxheS1yZ2IoJHppbmMtNDAwKX0nIHN0cm9rZS13aWR0aD0nMS41JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDY2lyY2xlIGN4PScxMScgY3k9JzExJyByPSc4JyUzRSUzQy9jaXJjbGUlM0UlM0NsaW5lIHgxPScyMScgeTE9JzIxJyB4Mj0nMTYuNjUnIHkyPScxNi42NSclM0UlM0MvbGluZSUzRSUzQy9zdmclM0VcIik7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgaWNvblxuICAgIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvbW9kYWxcIikge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9aWNvbi1jbG9zZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyN7ZnVuY3Rpb25zLmRpc3BsYXktcmdiKCR6aW5jLTQwMCl9JyBzdHJva2Utd2lkdGg9JzMnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NsaW5lIHgxPScxOCcgeTE9JzYnIHgyPSc2JyB5Mj0nMTgnJTNFJTNDL2xpbmUlM0UlM0NsaW5lIHgxPSc2JyB5MT0nNicgeDI9JzE4JyB5Mj0nMTgnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIH1cblxuICAgIC8vIExvYWRpbmcgaWNvbiAoYW5pbWF0ZWQpXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9sb2FkaW5nXCIpIHtcbiAgICAgIC8vIEluc3BpcmVkIGJ5IGh0dHBzOi8vY29kZXBlbi5pby9hbGVrc2FuZGVyMzUxL3Blbi9LemdLUG9cbiAgICAgICN7JGNzcy12YXItcHJlZml4fWljb24tbG9hZGluZzogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBmaWxsPSdub25lJyBoZWlnaHQ9JzI0JyB3aWR0aD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAlM0UlM0NzdHlsZSUzRSBnICU3QiBhbmltYXRpb246IHJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGU7IHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7ICU3RCBjaXJjbGUgJTdCIHN0cm9rZS1kYXNoYXJyYXk6IDc1LDEwMDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC01OyBhbmltYXRpb246IGRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOyAlN0QgQGtleWZyYW1lcyByb3RhdGUgJTdCIDAlMjUgJTdCIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyAlN0QgMTAwJTI1ICU3QiB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAlN0QgJTdEIEBrZXlmcmFtZXMgZGFzaCAlN0IgMCUyNSAlN0Igc3Ryb2tlLWRhc2hhcnJheTogMSwxMDA7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyAlN0QgNTAlMjUgJTdCIHN0cm9rZS1kYXNoYXJyYXk6IDQ0LjUsMTAwOyBzdHJva2UtZGFzaG9mZnNldDogLTE3LjU7ICU3RCAxMDAlMjUgJTdCIHN0cm9rZS1kYXNoYXJyYXk6IDQ0LjUsMTAwOyBzdHJva2UtZGFzaG9mZnNldDogLTYyOyAlN0QgJTdEICUzQy9zdHlsZSUzRSUzQ2clM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzEwJyBmaWxsPSdub25lJyBzdHJva2U9JyN7ZnVuY3Rpb25zLmRpc3BsYXktcmdiKCR6aW5jLTQwMCl9JyBzdHJva2Utd2lkdGg9JzQnIC8lM0UlM0MvZyUzRSUzQy9zdmclM0VcIik7XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSByb290IGZvbnQgc2l6ZVxuICAgIEBpZiAkZW5hYmxlLXJlc3BvbnNpdmUtdHlwb2dyYXBoeSB7XG4gICAgICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRicmVha3BvaW50cyB7XG4gICAgICAgIEBpZiAkdmFsdWVzIHtcbiAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCgkdmFsdWVzLCBcImJyZWFrcG9pbnRcIikpIHtcbiAgICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWZvbnQtc2l6ZTogbWFwLmdldCgkdmFsdWVzLCBcInJvb3QtZm9udC1zaXplXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgc3BhY2luZ3NcbiAgQGlmICRlbmFibGUtcmVzcG9uc2l2ZS1zcGFjaW5ncyB7XG4gICAgLy8gTGFuZG1hcmtzIGFuZCBzZWN0aW9uXG4gICAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwibGF5b3V0L2xhbmRtYXJrc1wiKSBvciBtYXAuZ2V0KCRtb2R1bGVzLCBcImxheW91dC9zZWN0aW9uXCIpIHtcbiAgICAgICN7JHNlbWFudGljLXJvb3QtZWxlbWVudH0gPiBoZWFkZXIsXG4gICAgICAjeyRzZW1hbnRpYy1yb290LWVsZW1lbnR9ID4gbWFpbixcbiAgICAgICN7JHNlbWFudGljLXJvb3QtZWxlbWVudH0gPiBmb290ZXIsXG4gICAgICBzZWN0aW9uIHtcbiAgICAgICAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgIEBpZiAkdmFsdWVzIHtcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KCR2YWx1ZXMsIFwiYnJlYWtwb2ludFwiKSkge1xuICAgICAgICAgICAgICAkbXVsdGlwbGllcjogMTtcbiAgICAgICAgICAgICAgQGlmICRrZXkgPT0gXCJzbVwiIHtcbiAgICAgICAgICAgICAgICAkbXVsdGlwbGllcjogMS4yNTtcbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAka2V5ID09IFwibWRcIiB7XG4gICAgICAgICAgICAgICAgJG11bHRpcGxpZXI6IDEuNTtcbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAka2V5ID09IFwibGdcIiB7XG4gICAgICAgICAgICAgICAgJG11bHRpcGxpZXI6IDEuNzU7XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgJGtleSA9PSBcInhsXCIge1xuICAgICAgICAgICAgICAgICRtdWx0aXBsaWVyOiAyO1xuICAgICAgICAgICAgICB9IEBlbHNlIGlmICRrZXkgPT0gXCJ4eGxcIiB7XG4gICAgICAgICAgICAgICAgJG11bHRpcGxpZXI6IDIuMjU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLXZlcnRpY2FsOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKSAqICRtdWx0aXBsaWVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2FyZCAoPGFydGljbGU+KVxuICAgIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvY2FyZFwiKSB7XG4gICAgICBhcnRpY2xlIHtcbiAgICAgICAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgIEBpZiAkdmFsdWVzIHtcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KCR2YWx1ZXMsIFwiYnJlYWtwb2ludFwiKSkge1xuICAgICAgICAgICAgICAkbXVsdGlwbGllcjogMTtcbiAgICAgICAgICAgICAgQGlmICRrZXkgPT0gXCJzbVwiIHtcbiAgICAgICAgICAgICAgICAkbXVsdGlwbGllcjogMS4yNTtcbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAka2V5ID09IFwibWRcIiB7XG4gICAgICAgICAgICAgICAgJG11bHRpcGxpZXI6IDEuNTtcbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAka2V5ID09IFwibGdcIiB7XG4gICAgICAgICAgICAgICAgJG11bHRpcGxpZXI6IDEuNzU7XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgJGtleSA9PSBcInhsXCIge1xuICAgICAgICAgICAgICAgICRtdWx0aXBsaWVyOiAyO1xuICAgICAgICAgICAgICB9IEBlbHNlIGlmICRrZXkgPT0gXCJ4eGxcIiB7XG4gICAgICAgICAgICAgICAgJG11bHRpcGxpZXI6IDIuMjU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLXZlcnRpY2FsOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKSAqICRtdWx0aXBsaWVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWJsb2NrLXNwYWNpbmctaG9yaXpvbnRhbDogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZykgKiAkbXVsdGlwbGllclxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC9saW5rXCIpIHtcbiAgICBhIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAvLyBTZWNvbmRhcnkgJiBDb250cmFzdFxuICAgICAgQGlmICRlbmFibGUtY2xhc3NlcyB7XG4gICAgICAgICYuc2Vjb25kYXJ5LFxuICAgICAgICAmLmNvbnRyYXN0IHtcbiAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFR5cG9ncmFwaHlcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC90eXBvZ3JhcGh5XCIpIHtcbiAgICAvLyBTbWFsbFxuICAgIHNtYWxsIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvbnQtc2l6ZTogMC44NzVlbTtcbiAgICB9XG5cbiAgICAvLyBIZWFkaW5nc1xuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2IHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC1zaXplOiAycmVtO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9bGluZS1oZWlnaHQ6IDEuMTI1O1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXRvcDogM3JlbTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb250LXNpemU6IDEuNzVyZW07XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1saW5lLWhlaWdodDogMS4xNTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy10b3A6IDIuNjI1cmVtO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9bGluZS1oZWlnaHQ6IDEuMTc1O1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXRvcDogMi4yNXJlbTtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb250LXNpemU6IDEuMjVyZW07XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1saW5lLWhlaWdodDogMS4yO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXRvcDogMS44NzRyZW07XG4gICAgfVxuXG4gICAgaDUge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWxpbmUtaGVpZ2h0OiAxLjIyNTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy10b3A6IDEuNjg3NXJlbTtcbiAgICB9XG5cbiAgICBoNiB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb250LXNpemU6IDFyZW07XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1saW5lLWhlaWdodDogMS4yNTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy10b3A6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L3RhYmxlXCIpIHtcbiAgICB0aGVhZCxcbiAgICB0Zm9vdCB7XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoOiAwLjE4NzVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29kZVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L2NvZGVcIikge1xuICAgIHByZSxcbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvbnQtZmFtaWx5OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9udC1mYW1pbHktbW9ub3NwYWNlKTtcbiAgICB9XG5cbiAgICBrYmQge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbnB1dHMgYW5kIFNlbGVjdHNcbiAgaW5wdXQ6bm90KFxuICAgICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgW3R5cGU9XCJyYWRpb1wiXSxcbiAgICAgIFt0eXBlPVwiZmlsZVwiXVxuICAgICksXG4gIDp3aGVyZShzZWxlY3QsIHRleHRhcmVhKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aDogMC4wNjI1cmVtO1xuICB9XG5cbiAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1yYWRpdXM6IDVyZW07XG4gIH1cblxuICAvLyBDaGVja2JveGVzLCBSYWRpb3MgYW5kIFN3aXRjaGVzXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2NoZWNrYm94LXJhZGlvLXN3aXRjaFwiKSB7XG4gICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci13aWR0aDogMC4xMjVyZW07XG4gICAgfVxuXG4gICAgW3R5cGU9XCJjaGVja2JveFwiXVtyb2xlPVwic3dpdGNoXCJdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci13aWR0aDogMC4xODc1cmVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIERyb3Bkb3duIChkZXRhaWxzLmRyb3Bkb3duKVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2Ryb3Bkb3duXCIpIGFuZCAkZW5hYmxlLWNsYXNzZXMge1xuICAgIGRldGFpbHMuZHJvcGRvd24ge1xuICAgICAgc3VtbWFyeTpub3QoW3JvbGU9XCJidXR0b25cIl0pIHtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aDogMC4wNjI1cmVtO1xuICAgICAgfVxuICAgIH1cbiAgICBuYXYge1xuICAgICAgZGV0YWlscy5kcm9wZG93biB7XG4gICAgICAgIHN1bW1hcnk6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aDogMC4xMjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBHcm91cCAocm9sZT1cImdyb3VwXCIpXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvZ3JvdXBcIikge1xuICAgIFtyb2xlPVwic2VhcmNoXCJdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1yYWRpdXM6IDVyZW07XG4gICAgfVxuXG4gICAgW3JvbGU9XCJzZWFyY2hcIl0sXG4gICAgW3JvbGU9XCJncm91cFwiXSB7XG4gICAgICBAaWYgJGVuYWJsZS1jbGFzc2VzIHtcbiAgICAgICAgJjpoYXMoXG4gICAgICAgICAgICBidXR0b24uc2Vjb25kYXJ5OmZvY3VzLFxuICAgICAgICAgICAgW3R5cGU9XCJzdWJtaXRcIl0uc2Vjb25kYXJ5OmZvY3VzLFxuICAgICAgICAgICAgW3R5cGU9XCJidXR0b25cIl0uc2Vjb25kYXJ5OmZvY3VzLFxuICAgICAgICAgICAgW3JvbGU9XCJidXR0b25cIl0uc2Vjb25kYXJ5OmZvY3VzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Z3JvdXAtYm94LXNoYWRvdy1mb2N1cy13aXRoLWJ1dHRvbjogMFxuICAgICAgICAgICAgMFxuICAgICAgICAgICAgMFxuICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWZvY3VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aGFzKFxuICAgICAgICAgICAgYnV0dG9uLmNvbnRyYXN0OmZvY3VzLFxuICAgICAgICAgICAgW3R5cGU9XCJzdWJtaXRcIl0uY29udHJhc3Q6Zm9jdXMsXG4gICAgICAgICAgICBbdHlwZT1cImJ1dHRvblwiXS5jb250cmFzdDpmb2N1cyxcbiAgICAgICAgICAgIFtyb2xlPVwiYnV0dG9uXCJdLmNvbnRyYXN0OmZvY3VzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Z3JvdXAtYm94LXNoYWRvdy1mb2N1cy13aXRoLWJ1dHRvbjogMFxuICAgICAgICAgICAgMFxuICAgICAgICAgICAgMFxuICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtZm9jdXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbixcbiAgICAgIFt0eXBlPVwic3VibWl0XCJdLFxuICAgICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgICBbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWw6IDJyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hldnJvbiBpY29uc1xuICAvLyBDaGFuZ2UgdGhlIGljb24gY29sb3IgdG8gd2hpdGUgZm9yIGFjY29yZGlvbiBhbmQgZHJvcGRvd24gYnV0dG9uc1xuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2FjY29yZGlvblwiKSBvciBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvZHJvcGRvd25cIikge1xuICAgICN7JHBhcmVudC1zZWxlY3Rvcn0gZGV0YWlscyB7XG4gICAgICBzdW1tYXJ5IHtcbiAgICAgICAgJHNlbGVjdG9yOiAnJltyb2xlPVwiYnV0dG9uXCJdJztcbiAgICAgICAgQGlmICRlbmFibGUtY2xhc3NlcyB7XG4gICAgICAgICAgJHNlbGVjdG9yOiBcIiN7JHNlbGVjdG9yfTpub3QoLm91dGxpbmUpXCI7XG4gICAgICAgIH1cbiAgICAgICAgI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExvYWRpbmcgaWNvbiAoYW5pbWF0ZWQpXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvbG9hZGluZ1wiKSB7XG4gICAgLy8gQ2hhbmdlIHRoZSBpY29uIGNvbG9yIHRvIHdoaXRlIGZvciBidXR0b25zXG4gICAgI3skcGFyZW50LXNlbGVjdG9yfSBbYXJpYS1idXN5PVwidHJ1ZVwiXTpub3QoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgICAgICRzZWxlY3RvcjogJyY6aXMoYnV0dG9uLCBbdHlwZT1cInN1Ym1pdFwiXSwgW3R5cGU9XCJidXR0b25cIl0sIFt0eXBlPVwicmVzZXRcIl0sIFtyb2xlPVwiYnV0dG9uXCJdKSc7XG4gICAgICBAaWYgJGVuYWJsZS1jbGFzc2VzIHtcbiAgICAgICAgJHNlbGVjdG9yOiBcIiN7JHNlbGVjdG9yfTpub3QoLm91dGxpbmUpXCI7XG4gICAgICB9XG4gICAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIEBpZiB0aGVtZS1jb2xvcnMuZ2V0KFwicHJpbWFyeS1pbnZlcnNlXCIsIFwiZGFya1wiKSA9PSAkd2hpdGUge1xuICAgICAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtcbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCIuLi8uLi9zZXR0aW5nc1wiIGFzICo7XG5cbkB1c2UgXCJsaWdodFwiO1xuQHVzZSBcImRhcmtcIjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwidGhlbWVzL2RlZmF1bHRcIikge1xuICAvKipcbiAgICogQ29sb3Igc2NoZW1lc1xuICAgKi9cblxuICAvLyBMaWdodCBjb2xvciBzY2hlbWUgKERlZmF1bHQpXG4gIC8vIENhbiBiZSBmb3JjZWQgd2l0aCBkYXRhLXRoZW1lPVwibGlnaHRcIlxuICBbZGF0YS10aGVtZT1cImxpZ2h0XCJdLFxuICA6cm9vdDpub3QoW2RhdGEtdGhlbWU9XCJkYXJrXCJdKSxcbiAgOmhvc3QoOm5vdChbZGF0YS10aGVtZT1cImRhcmtcIl0pKSB7XG4gICAgQGluY2x1ZGUgbGlnaHQudGhlbWU7XG4gIH1cblxuICAvLyBEYXJrIGNvbG9yIHNjaGVtZSAoQXV0bylcbiAgLy8gQXV0b21hdGljYWxseSBlbmFibGVkIGlmIHVzZXIgaGFzIERhcmsgbW9kZSBlbmFibGVkXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgOnJvb3Q6bm90KFtkYXRhLXRoZW1lXSksXG4gICAgOmhvc3QoOm5vdChbZGF0YS10aGVtZV0pKSB7XG4gICAgICBAaW5jbHVkZSBkYXJrLnRoZW1lO1xuICAgIH1cbiAgfVxuXG4gIC8vIERhcmsgY29sb3Igc2NoZW1lIChGb3JjZWQpXG4gIC8vIEVuYWJsZWQgaWYgZm9yY2VkIHdpdGggZGF0YS10aGVtZT1cImRhcmtcIlxuICBbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xuICAgIEBpbmNsdWRlIGRhcmsudGhlbWU7XG4gIH1cblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHByb2dyZXNzLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJyYWRpb1wiXSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cInJhbmdlXCJdIHtcbiAgICBhY2NlbnQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5KTtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6Y29sb3JcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uLy4uL2NvbG9yc1wiIGFzICo7XG5AdXNlIFwiLi4vLi4vc2V0dGluZ3NcIiBhcyAqO1xuQHVzZSBcIi4uLy4uL2hlbHBlcnMvZnVuY3Rpb25zXCI7XG5AdXNlIFwidGhlbWUtY29sb3JzXCI7XG5cbi8vIERlZmF1bHQ6IExpZ2h0IHRoZW1lXG5AbWl4aW4gdGhlbWUge1xuICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xuICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiAjeyR3aGl0ZX07XG5cbiAgLy8gVGV4dCBjb2xvclxuICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogI3skemluYy03NTB9O1xuXG4gIC8vIFRleHQgc2VsZWN0aW9uIGNvbG9yXG4gICN7JGNzcy12YXItcHJlZml4fXRleHQtc2VsZWN0aW9uLWNvbG9yOiB0aGVtZS1jb2xvcnMuZ2V0KFwidGV4dC1zZWxlY3Rpb24tY29sb3JcIiwgXCJsaWdodFwiKTtcblxuICAvLyBNdXRlZCBjb2xvcnNcbiAgI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtY29sb3I6ICN7JHppbmMtNTUwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtYm9yZGVyLWNvbG9yOiAje2NvbG9yLm1peCgkc2xhdGUtMTAwLCAkc2xhdGUtNTApfTtcblxuICAvLyBQcmltYXJ5IGNvbG9yc1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5OiB0aGVtZS1jb2xvcnMuZ2V0KFwicHJpbWFyeVwiLCBcImxpZ2h0XCIpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJhY2tncm91bmQ6IHRoZW1lLWNvbG9ycy5nZXQoXCJwcmltYXJ5LWJhY2tncm91bmRcIiwgXCJsaWdodFwiKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ib3JkZXI6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LXVuZGVybGluZTogdGhlbWUtY29sb3JzLmdldChcInByaW1hcnktdW5kZXJsaW5lXCIsIFwibGlnaHRcIik7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXI6IHRoZW1lLWNvbG9ycy5nZXQoXCJwcmltYXJ5LWhvdmVyXCIsIFwibGlnaHRcIik7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogdGhlbWUtY29sb3JzLmdldChcInByaW1hcnktaG92ZXItYmFja2dyb3VuZFwiLCBcImxpZ2h0XCIpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWhvdmVyLWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ob3Zlcik7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktZm9jdXM6IHRoZW1lLWNvbG9ycy5nZXQoXCJwcmltYXJ5LWZvY3VzXCIsIFwibGlnaHRcIik7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaW52ZXJzZTogdGhlbWUtY29sb3JzLmdldChcInByaW1hcnktaW52ZXJzZVwiLCBcImxpZ2h0XCIpO1xuXG4gIC8vIFNlY29uZGFyeSBjb2xvcnNcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5OiAjeyRzbGF0ZS01NTB9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktYmFja2dyb3VuZDogI3skc2xhdGUtNjAwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LXVuZGVybGluZTogI3tyZ2JhKCRzbGF0ZS01NTAsIDAuNSl9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXI6ICN7JHNsYXRlLTY1MH07XG4gICN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAjeyRzbGF0ZS02NTB9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXItYm9yZGVyOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWZvY3VzOiAje3JnYmEoJHNsYXRlLTU1MCwgMC4yNSl9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaW52ZXJzZTogI3skd2hpdGV9O1xuXG4gIC8vIENvbnRyYXN0IGNvbG9yc1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdDogI3skc2xhdGUtOTAwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtYmFja2dyb3VuZDogI3skc2xhdGUtOTAwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtYm9yZGVyOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtYmFja2dyb3VuZCk7XG4gICN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LXVuZGVybGluZTogI3tyZ2JhKCRzbGF0ZS05MDAsIDAuNSl9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3ZlcjogI3skYmxhY2t9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kOiAjeyRibGFja307XG4gICN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWhvdmVyLWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3Zlci11bmRlcmxpbmU6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXIpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1mb2N1czogI3tyZ2JhKCRzbGF0ZS01NTAsIDAuMjUpfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtaW52ZXJzZTogI3skd2hpdGV9O1xuXG4gIC8vIEJveCBzaGFkb3dcbiAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogZnVuY3Rpb25zLnNoYWRvdygkc2xhdGUtNDAwKTtcblxuICAvLyBUeXBvZ3JhcGh5XG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbnRlbnQvdHlwb2dyYXBoeVwiKSB7XG4gICAgLy8gSGVhZGluZ3MgY29sb3JzXG4gICAgI3skY3NzLXZhci1wcmVmaXh9aDEtY29sb3I6ICN7JHppbmMtODAwfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1oMi1jb2xvcjogI3skemluYy03NTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWgzLWNvbG9yOiAjeyR6aW5jLTcwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9aDQtY29sb3I6ICN7JHppbmMtNjUwfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1oNS1jb2xvcjogI3skemluYy02MDB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWg2LWNvbG9yOiAjeyR6aW5jLTU1MH07XG5cbiAgICAvLyBIaWdobGlnaHRlZCB0ZXh0ICg8bWFyaz4pXG4gICAgI3skY3NzLXZhci1wcmVmaXh9bWFyay1iYWNrZ3JvdW5kLWNvbG9yOiAje2NvbG9yLm1peCgkYW1iZXItMTAwLCAkYW1iZXItNTApfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1tYXJrLWNvbG9yOiAjeyR6aW5jLTk1MH07XG5cbiAgICAvLyBJbnNlcnRlZCAoPGlucz4pICYgRGVsZXRlZCAoPGRlbD4pXG4gICAgI3skY3NzLXZhci1wcmVmaXh9aW5zLWNvbG9yOiAje2NvbG9yLm1peCgkamFkZS00NTAsICR6aW5jLTc1MCl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWRlbC1jb2xvcjogI3tjb2xvci5taXgoJHJlZC01MDAsICR6aW5jLTc1MCl9O1xuXG4gICAgLy8gQmxvY2txdW90ZVxuICAgICN7JGNzcy12YXItcHJlZml4fWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1ibG9ja3F1b3RlLWZvb3Rlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW11dGVkLWNvbG9yKTtcbiAgfVxuXG4gIC8vIEJ1dHRvblxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L2J1dHRvblwiKSB7XG4gICAgLy8gVG8gZGlzYWJsZSBib3gtc2hhZG93LCByZW1vdmUgdGhlIHZhciBvciBzZXQgdG8gJzAgMCAwIHJnYmEoMCwgMCwgMCwgMCknXG4gICAgLy8gRG9uJ3QgdXNlLCAnbm9uZSwgJ2ZhbHNlLCAnbnVsbCcsICcwJywgZXRjLlxuICAgICN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ib3gtc2hhZG93OiAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICAgICN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93OiAwIDAgMCByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLy8gVGFibGVcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC90YWJsZVwiKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9dGFibGUtYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH10YWJsZS1yb3ctc3RyaXBwZWQtYmFja2dyb3VuZC1jb2xvcjogI3tyZ2JhKCR6aW5jLTUwMCwgMC4wMzc1KX07XG4gIH1cblxuICAvLyBDb2RlXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbnRlbnQvY29kZVwiKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Y29kZS1iYWNrZ3JvdW5kLWNvbG9yOiAje2NvbG9yLm1peCgkc2xhdGUtNTAsICR3aGl0ZSwgNzUlKX07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Y29kZS1jb2xvcjogI3skemluYy01NTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvZGUta2JkLWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Y29kZS1rYmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIEZvcm0gZWxlbWVudHNcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiZm9ybXMvYmFzaWNzXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYmFja2dyb3VuZC1jb2xvcjogI3tjb2xvci5taXgoJHNsYXRlLTUwLCAkd2hpdGUsIDI1JSl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRzbGF0ZS0xMDB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3I6ICN7JHNsYXRlLTE1MH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWNvbG9yOiAjeyR6aW5jLTg1MH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtY29sb3IpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogI3skd2hpdGV9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ib3JkZXIpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYm9yZGVyKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtZGlzYWJsZWQtb3BhY2l0eTogMC41O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1pbnZhbGlkLWJvcmRlci1jb2xvcjogI3tjb2xvci5taXgoJHJlZC01MDAsICR6aW5jLTM1MCl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1pbnZhbGlkLWFjdGl2ZS1ib3JkZXItY29sb3I6ICN7Y29sb3IubWl4KFxuICAgICAgICAkcmVkLTUwMCxcbiAgICAgICAgJHppbmMtMzUwLFxuICAgICAgICA3NSVcbiAgICAgICl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1pbnZhbGlkLWZvY3VzLWNvbG9yOiB2YXIoXG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtaW52YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yXG4gICAgKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtYm9yZGVyLWNvbG9yOiAje2NvbG9yLm1peCgkamFkZS00NTAsICR6aW5jLTM1MCl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC12YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yOiAje2NvbG9yLm1peChcbiAgICAgICAgJGphZGUtNDUwLFxuICAgICAgICAkemluYy0zNTAsXG4gICAgICAgIDc1JVxuICAgICAgKX07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXZhbGlkLWZvY3VzLWNvbG9yOiB2YXIoXG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvclxuICAgICk7XG4gIH1cblxuICAvLyBTd2l0Y2ggKGlucHV0W3R5cGU9XCJjaGVja2JveFwiXVtyb2xlPVwic3dpdGNoXCJdKVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9jaGVja2JveC1yYWRpby1zd2l0Y2hcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fXN3aXRjaC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRzbGF0ZS0yMDB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fXN3aXRjaC1jaGVja2VkLWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgICN7JGNzcy12YXItcHJlZml4fXN3aXRjaC1jb2xvcjogI3skd2hpdGV9O1xuICAgICN7JGNzcy12YXItcHJlZml4fXN3aXRjaC10aHVtYi1ib3gtc2hhZG93OiB0aGVtZS1jb2xvcnMuZ2V0KFwic3dpdGNoLXRodW1iLWJveC1zaGFkb3dcIiwgXCJsaWdodFwiKTtcbiAgfVxuXG4gIC8vIFJhbmdlIChpbnB1dFt0eXBlPVwicmFuZ2VcIl0pXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2lucHV0LXJhbmdlXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1yYW5nZS1ib3JkZXItY29sb3I6ICN7JHNsYXRlLTEwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9cmFuZ2UtYWN0aXZlLWJvcmRlci1jb2xvcjogI3skc2xhdGUtMjAwfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1yYW5nZS10aHVtYi1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1yYW5nZS10aHVtYi1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1yYW5nZS10aHVtYi1hY3RpdmUtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJhY2tncm91bmQpO1xuICB9XG5cbiAgLy8gQWNjb3JkaW9uICg8ZGV0YWlscz4pXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvYWNjb3JkaW9uXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1hY2NvcmRpb24tYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1hY2NvcmRpb24tYWN0aXZlLXN1bW1hcnktY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWhvdmVyKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1hY2NvcmRpb24tY2xvc2Utc3VtbWFyeS1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1hY2NvcmRpb24tb3Blbi1zdW1tYXJ5LWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtY29sb3IpO1xuICB9XG5cbiAgLy8gQ2FyZCAoPGFydGljbGU+KVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2NhcmRcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNhcmQtYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3IpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWNhcmQtYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtYm9yZGVyLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1jYXJkLWJveC1zaGFkb3c6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3gtc2hhZG93KTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1jYXJkLXNlY3Rpb25pbmctYmFja2dyb3VuZC1jb2xvcjogI3tjb2xvci5taXgoJHNsYXRlLTUwLCAkd2hpdGUsIDI1JSl9O1xuICB9XG5cbiAgLy8gRHJvcGRvd24gKGRldGFpbHMuZHJvcGRvd24pXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvZHJvcGRvd25cIikgYW5kICRlbmFibGUtY2xhc3NlcyB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9ZHJvcGRvd24tYmFja2dyb3VuZC1jb2xvcjogI3skd2hpdGV9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWRyb3Bkb3duLWJvcmRlci1jb2xvcjogI3skc2xhdGUtNTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWRyb3Bkb3duLWJveC1zaGFkb3c6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3gtc2hhZG93KTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRzbGF0ZS01MH07XG4gIH1cblxuICAvLyBMb2FkaW5nIChbYXJpYS1idXN5PXRydWVdKVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2xvYWRpbmdcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fWxvYWRpbmctc3Bpbm5lci1vcGFjaXR5OiAwLjU7XG4gIH1cblxuICAvLyBNb2RhbCAoPGRpYWxvZz4pXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvbW9kYWxcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fW1vZGFsLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogI3tyZ2JhKGNvbG9yLm1peCgkemluYy0xMDAsICR6aW5jLTUwKSwgMC43NSl9O1xuICB9XG5cbiAgLy8gUHJvZ3Jlc3NcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9wcm9ncmVzc1wiKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9cHJvZ3Jlc3MtYmFja2dyb3VuZC1jb2xvcjogI3skc2xhdGUtMTAwfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1wcm9ncmVzcy1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYmFja2dyb3VuZCk7XG4gIH1cblxuICAvLyBUb29sdGlwIChbZGF0YS10b29sdGlwXSlcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy90b29sdGlwXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH10b29sdGlwLWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH10b29sdGlwLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtaW52ZXJzZSk7XG4gIH1cblxuICAvLyBGb3JtIHZhbGlkYXRpb24gaWNvbnNcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiZm9ybXMvYmFzaWNzXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1pY29uLXZhbGlkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nI3tmdW5jdGlvbnMuZGlzcGxheS1yZ2IoY29sb3IubWl4KCRqYWRlLTQ1MCwgJHppbmMtMzUwKSl9JyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzIwIDYgOSAxNyA0IDEyJyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0VcIik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9aWNvbi1pbnZhbGlkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nI3tmdW5jdGlvbnMuZGlzcGxheS1yZ2IoY29sb3IubWl4KCRyZWQtNTAwLCAkemluYy0zNTAsIDc1JSkpfScgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDY2lyY2xlIGN4PScxMicgY3k9JzEyJyByPScxMCclM0UlM0MvY2lyY2xlJTNFJTNDbGluZSB4MT0nMTInIHkxPSc4JyB4Mj0nMTInIHkyPScxMiclM0UlM0MvbGluZSUzRSUzQ2xpbmUgeDE9JzEyJyB5MT0nMTYnIHgyPScxMi4wMScgeTI9JzE2JyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRVwiKTtcbiAgfVxuXG4gIC8vIEZvY3VzIGZvciBidXR0b25zLCByYWRpbyBhbmQgc2VsZWN0XG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2Jhc2ljc1wiKSB7XG4gICAgaW5wdXQ6aXMoXG4gICAgICAgIFt0eXBlPVwic3VibWl0XCJdLFxuICAgICAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICAgICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICAgICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgICAgW3R5cGU9XCJyYWRpb1wiXSxcbiAgICAgICAgW3R5cGU9XCJmaWxlXCJdXG4gICAgICApIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktZm9jdXMpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6Y29sb3JcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uLy4uL2NvbG9yc1wiIGFzICo7XG5AdXNlIFwiLi4vLi4vc2V0dGluZ3NcIiBhcyAqO1xuQHVzZSBcIi4uLy4uL2hlbHBlcnMvZnVuY3Rpb25zXCI7XG5AdXNlIFwidGhlbWUtY29sb3JzXCI7XG5cbi8vIERlZmF1bHQ6IERhcmsgdGhlbWVcbkBtaXhpbiB0aGVtZSB7XG4gIGNvbG9yLXNjaGVtZTogZGFyaztcbiAgI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcjogI3tjb2xvci5taXgoJHNsYXRlLTk1MCwgJHNsYXRlLTkwMCl9O1xuXG4gIC8vIFRleHQgY29sb3JcbiAgI3skY3NzLXZhci1wcmVmaXh9Y29sb3I6ICN7JHppbmMtMjAwfTtcblxuICAvLyBUZXh0IHNlbGVjdGlvbiBjb2xvclxuICAjeyRjc3MtdmFyLXByZWZpeH10ZXh0LXNlbGVjdGlvbi1jb2xvcjogdGhlbWUtY29sb3JzLmdldChcInRleHQtc2VsZWN0aW9uLWNvbG9yXCIsIFwiZGFya1wiKTtcblxuICAvLyBNdXRlZCBjb2xvcnNcbiAgI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtY29sb3I6ICN7JHppbmMtNDUwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtYm9yZGVyLWNvbG9yOiAjeyRzbGF0ZS04NTB9O1xuXG4gIC8vIFByaW1hcnkgY29sb3JzXG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnk6IHRoZW1lLWNvbG9ycy5nZXQoXCJwcmltYXJ5XCIsIFwiZGFya1wiKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1iYWNrZ3JvdW5kOiB0aGVtZS1jb2xvcnMuZ2V0KFwicHJpbWFyeS1iYWNrZ3JvdW5kXCIsIFwiZGFya1wiKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ib3JkZXI6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LXVuZGVybGluZTogdGhlbWUtY29sb3JzLmdldChcInByaW1hcnktdW5kZXJsaW5lXCIsIFwiZGFya1wiKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ob3ZlcjogdGhlbWUtY29sb3JzLmdldChcInByaW1hcnktaG92ZXJcIiwgXCJkYXJrXCIpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHRoZW1lLWNvbG9ycy5nZXQoXCJwcmltYXJ5LWhvdmVyLWJhY2tncm91bmRcIiwgXCJkYXJrXCIpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWhvdmVyLWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXItdW5kZXJsaW5lOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ob3Zlcik7XG4gICN7JGNzcy12YXItcHJlZml4fXByaW1hcnktZm9jdXM6IHRoZW1lLWNvbG9ycy5nZXQoXCJwcmltYXJ5LWZvY3VzXCIsIFwiZGFya1wiKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1pbnZlcnNlOiB0aGVtZS1jb2xvcnMuZ2V0KFwicHJpbWFyeS1pbnZlcnNlXCIsIFwiZGFya1wiKTtcblxuICAvLyBTZWNvbmRhcnkgY29sb3JzXG4gICN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeTogI3skemluYy0zNTB9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktYmFja2dyb3VuZDogI3skc2xhdGUtNjAwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LXVuZGVybGluZTogI3tyZ2JhKCR6aW5jLTM1MCwgMC41KX07XG4gICN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1ob3ZlcjogI3skemluYy0yNTB9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogI3skc2xhdGUtNTUwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyLWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyLXVuZGVybGluZTogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1ob3Zlcik7XG4gICN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1mb2N1czogI3tyZ2JhKCRzbGF0ZS0zNTAsIDAuMjUpfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWludmVyc2U6ICN7JHdoaXRlfTtcblxuICAvLyBDb250cmFzdCBjb2xvcnNcbiAgI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3Q6ICN7JHNsYXRlLTEwMH07XG4gICN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWJhY2tncm91bmQ6ICN7JHNsYXRlLTUwfTtcbiAgI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtYm9yZGVyOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtYmFja2dyb3VuZCk7XG4gICN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LXVuZGVybGluZTogI3tyZ2JhKCRzbGF0ZS0xMDAsIDAuNSl9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3ZlcjogI3skd2hpdGV9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kOiAjeyR3aGl0ZX07XG4gICN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWhvdmVyLWJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWhvdmVyLWJhY2tncm91bmQpO1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3Zlci11bmRlcmxpbmU6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3Zlcik7XG4gICN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWZvY3VzOiAje3JnYmEoJHNsYXRlLTE1MCwgMC4yNSl9O1xuICAjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1pbnZlcnNlOiAjeyRibGFja307XG5cbiAgLy8gQm94IHNoYWRvd1xuICAjeyRjc3MtdmFyLXByZWZpeH1ib3gtc2hhZG93OiBmdW5jdGlvbnMuc2hhZG93KGNvbG9yLm1peCgkYmxhY2ssICRzbGF0ZS05NTApKTtcblxuICAvLyBUeXBvZ3JhcGh5XG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbnRlbnQvdHlwb2dyYXBoeVwiKSB7XG4gICAgLy8gSGVhZGluZ3MgY29sb3JzXG4gICAgI3skY3NzLXZhci1wcmVmaXh9aDEtY29sb3I6ICN7JHppbmMtNTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWgyLWNvbG9yOiAjeyR6aW5jLTEwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9aDMtY29sb3I6ICN7JHppbmMtMjAwfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1oNC1jb2xvcjogI3skemluYy0yNTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWg1LWNvbG9yOiAjeyR6aW5jLTMwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9aDYtY29sb3I6ICN7JHppbmMtNDAwfTtcblxuICAgIC8vIEhpZ2hsaWdodGVkIHRleHQgKDxtYXJrPilcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1tYXJrLWJhY2tncm91bmQtY29sb3I6ICN7JGF6dXJlLTc1MH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9bWFyay1jb2xvcjogI3skd2hpdGV9O1xuXG4gICAgLy8gSW5zZXJ0ZWQgKDxpbnM+KSAmIERlbGV0ZWQgKDxkZWw+KVxuICAgICN7JGNzcy12YXItcHJlZml4fWlucy1jb2xvcjogI3tjb2xvci5taXgoJGphZGUtNDUwLCAkemluYy0yMDApfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1kZWwtY29sb3I6ICN7Y29sb3IubWl4KCRyZWQtNTAwLCAkemluYy0yMDApfTtcblxuICAgIC8vIEJsb2NrcXVvdGVcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW11dGVkLWJvcmRlci1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YmxvY2txdW90ZS1mb290ZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1tdXRlZC1jb2xvcik7XG4gIH1cblxuICAvLyBCdXR0b25cbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC9idXR0b25cIikge1xuICAgIC8vIFRvIGRpc2FibGUgYm94LXNoYWRvdywgcmVtb3ZlIHRoZSB2YXIgb3Igc2V0IHRvICcwIDAgMCByZ2JhKDAsIDAsIDAsIDApJ1xuICAgIC8vIERvbid0IHVzZSwgJ25vbmUsICdmYWxzZSwgJ251bGwnLCAnMCcsIGV0Yy5cbiAgICAjeyRjc3MtdmFyLXByZWZpeH1idXR0b24tYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1idXR0b24taG92ZXItYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8vIFRhYmxlXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbnRlbnQvdGFibGVcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fXRhYmxlLWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW11dGVkLWJvcmRlci1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9dGFibGUtcm93LXN0cmlwcGVkLWJhY2tncm91bmQtY29sb3I6ICN7cmdiYSgkemluYy01MDAsIDAuMDM3NSl9O1xuICB9XG5cbiAgLy8gQ29kZVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L2NvZGVcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvZGUtYmFja2dyb3VuZC1jb2xvcjogI3tjb2xvci5taXgoJHNsYXRlLTkwMCwgJHNsYXRlLTg1MCwgNzUlKX07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Y29kZS1jb2xvcjogI3skemluYy00MDB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvZGUta2JkLWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Y29kZS1rYmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIEZvcm0gZWxlbWVudHNcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiZm9ybXMvYmFzaWNzXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYmFja2dyb3VuZC1jb2xvcjogI3tjb2xvci5taXgoJHNsYXRlLTkwMCwgJHNsYXRlLTg1MCl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRzbGF0ZS04MDB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3I6ICN7JHNsYXRlLTgwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWNvbG9yOiAjeyR6aW5jLTEwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXBsYWNlaG9sZGVyLWNvbG9yOiAjeyR6aW5jLTQwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAje2NvbG9yLm1peChcbiAgICAgICAgJHNsYXRlLTkwMCxcbiAgICAgICAgJHNsYXRlLTg1MCxcbiAgICAgICAgNzUlXG4gICAgICApfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYm9yZGVyKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtZm9jdXMtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJvcmRlcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWRpc2FibGVkLW9wYWNpdHk6IDAuNTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtaW52YWxpZC1ib3JkZXItY29sb3I6ICN7Y29sb3IubWl4KCRyZWQtNTAwLCAkc2xhdGUtNjAwKX07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcjogI3tjb2xvci5taXgoXG4gICAgICAgICRyZWQtNTAwLFxuICAgICAgICAkc2xhdGUtNjAwLFxuICAgICAgICA3NSVcbiAgICAgICl9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1pbnZhbGlkLWZvY3VzLWNvbG9yOiB2YXIoXG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtaW52YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yXG4gICAgKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtYm9yZGVyLWNvbG9yOiAje2NvbG9yLm1peCgkamFkZS00NTAsICRzbGF0ZS02MDApfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvcjogI3tjb2xvci5taXgoXG4gICAgICAgICRqYWRlLTQ1MCxcbiAgICAgICAgJHNsYXRlLTYwMCxcbiAgICAgICAgNzUlXG4gICAgICApfTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtZm9jdXMtY29sb3I6IHZhcihcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC12YWxpZC1hY3RpdmUtYm9yZGVyLWNvbG9yXG4gICAgKTtcbiAgfVxuXG4gIC8vIFN3aXRjaCAoaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW3JvbGU9XCJzd2l0Y2hcIl0pXG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2NoZWNrYm94LXJhZGlvLXN3aXRjaFwiKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9c3dpdGNoLWJhY2tncm91bmQtY29sb3I6ICN7JHNsYXRlLTc1MH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9c3dpdGNoLWNoZWNrZWQtYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYmFja2dyb3VuZCk7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9c3dpdGNoLWNvbG9yOiAjeyR3aGl0ZX07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9c3dpdGNoLXRodW1iLWJveC1zaGFkb3c6IHRoZW1lLWNvbG9ycy5nZXQoXCJzd2l0Y2gtdGh1bWItYm94LXNoYWRvd1wiLCBcImRhcmtcIik7XG4gIH1cblxuICAvLyBSYW5nZSAoaW5wdXRbdHlwZT1cInJhbmdlXCJdKVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9pbnB1dC1yYW5nZVwiKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9cmFuZ2UtYm9yZGVyLWNvbG9yOiAjeyRzbGF0ZS04NTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fXJhbmdlLWFjdGl2ZS1ib3JkZXItY29sb3I6ICN7JHNsYXRlLTgwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9cmFuZ2UtdGh1bWItYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9cmFuZ2UtdGh1bWItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9cmFuZ2UtdGh1bWItYWN0aXZlLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIC8vIEFjY29yZGlvbiAoPGRldGFpbHM+KVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2FjY29yZGlvblwiKSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YWNjb3JkaW9uLWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW11dGVkLWJvcmRlci1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YWNjb3JkaW9uLWFjdGl2ZS1zdW1tYXJ5LWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ob3Zlcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YWNjb3JkaW9uLWNsb3NlLXN1bW1hcnktY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YWNjb3JkaW9uLW9wZW4tc3VtbWFyeS1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW11dGVkLWNvbG9yKTtcbiAgfVxuXG4gIC8vIENhcmQgKDxhcnRpY2xlPilcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9jYXJkXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1jYXJkLWJhY2tncm91bmQtY29sb3I6ICN7JHNsYXRlLTkwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Y2FyZC1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jYXJkLWJhY2tncm91bmQtY29sb3IpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWNhcmQtYm94LXNoYWRvdzogdmFyKCN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3cpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWNhcmQtc2VjdGlvbmluZy1iYWNrZ3JvdW5kLWNvbG9yOiAje2NvbG9yLm1peCgkc2xhdGUtOTAwLCAkc2xhdGUtODUwLCA3NSUpfTtcbiAgfVxuXG4gIC8vIERyb3Bkb3duIChkZXRhaWxzLmRyb3Bkb3duKVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2Ryb3Bkb3duXCIpIGFuZCAkZW5hYmxlLWNsYXNzZXMge1xuICAgICN7JGNzcy12YXItcHJlZml4fWRyb3Bkb3duLWJhY2tncm91bmQtY29sb3I6ICN7JHNsYXRlLTkwMH07XG4gICAgI3skY3NzLXZhci1wcmVmaXh9ZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAjeyRzbGF0ZS04NTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fWRyb3Bkb3duLWJveC1zaGFkb3c6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3gtc2hhZG93KTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRzbGF0ZS04NTB9O1xuICB9XG5cbiAgLy8gTG9hZGluZyAoW2FyaWEtYnVzeT10cnVlXSlcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9sb2FkaW5nXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1sb2FkaW5nLXNwaW5uZXItb3BhY2l0eTogMC41O1xuICB9XG5cbiAgLy8gTW9kYWwgKDxkaWFsb2c+KVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL21vZGFsXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1tb2RhbC1vdmVybGF5LWJhY2tncm91bmQtY29sb3I6ICN7cmdiYShjb2xvci5taXgoJGJsYWNrLCAkemluYy05NTApLCAwLjc1KX07XG4gIH1cblxuICAvLyBQcm9ncmVzc1xuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL3Byb2dyZXNzXCIpIHtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1wcm9ncmVzcy1iYWNrZ3JvdW5kLWNvbG9yOiAjeyRzbGF0ZS04NTB9O1xuICAgICN7JGNzcy12YXItcHJlZml4fXByb2dyZXNzLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIC8vIFRvb2x0aXAgKFtkYXRhLXRvb2x0aXBdKVxuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL3Rvb2x0aXBcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWJhY2tncm91bmQpO1xuICAgICN7JGNzcy12YXItcHJlZml4fXRvb2x0aXAtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1pbnZlcnNlKTtcbiAgfVxuXG4gIC8vIEZvcm0gdmFsaWRhdGlvbiBpY29uc1xuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9iYXNpY3NcIikge1xuICAgICN7JGNzcy12YXItcHJlZml4fWljb24tdmFsaWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScje2Z1bmN0aW9ucy5kaXNwbGF5LXJnYihjb2xvci5taXgoJGphZGUtNDUwLCAkc2xhdGUtNjAwKSl9JyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzIwIDYgOSAxNyA0IDEyJyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0VcIik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9aWNvbi1pbnZhbGlkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nI3tmdW5jdGlvbnMuZGlzcGxheS1yZ2IoY29sb3IubWl4KCRyZWQtNTAwLCAkc2xhdGUtNjAwKSl9JyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzEwJyUzRSUzQy9jaXJjbGUlM0UlM0NsaW5lIHgxPScxMicgeTE9JzgnIHgyPScxMicgeTI9JzEyJyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMTInIHkxPScxNicgeDI9JzEyLjAxJyB5Mj0nMTYnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICB9XG5cbiAgLy8gRm9jdXMgZm9yIGJ1dHRvbnMsIHJhZGlvIGFuZCBzZWxlY3RcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiZm9ybXMvYmFzaWNzXCIpIHtcbiAgICBpbnB1dDppcyhcbiAgICAgICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgICAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgICAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgICBbdHlwZT1cInJhZGlvXCJdLFxuICAgICAgICBbdHlwZT1cImZpbGVcIl1cbiAgICAgICkge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWZvY3VzLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hldnJvbiBpY29uc1xuICBAaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2FjY29yZGlvblwiKSBvciBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvZHJvcGRvd25cIikge1xuICAgIC8vIENoYW5nZSB0aGUgaWNvbiBjb2xvciB0byBibGFjayBmb3IgYWNjb3JkaW9uIGFuZCBkcm9wZG93biAuY29udHJhc3QgYnV0dG9uc1xuICAgIEBpZiAkZW5hYmxlLWNsYXNzZXMge1xuICAgICAgI3skcGFyZW50LXNlbGVjdG9yfSBkZXRhaWxzIHtcbiAgICAgICAgc3VtbWFyeSB7XG4gICAgICAgICAgJltyb2xlPVwiYnV0dG9uXCJdLmNvbnRyYXN0Om5vdCgub3V0bGluZSkge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTG9hZGluZyBpY29uIChhbmltYXRlZClcbiAgQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9sb2FkaW5nXCIpIHtcbiAgICAvLyBDaGFuZ2UgdGhlIGljb24gY29sb3IgdG8gYmxhY2sgZm9yIC5jb250cmFzdCBidXR0b25zXG4gICAgQGlmICRlbmFibGUtY2xhc3NlcyB7XG4gICAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IFthcmlhLWJ1c3k9XCJ0cnVlXCJdOm5vdChpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSkge1xuICAgICAgICAmLmNvbnRyYXN0OmlzKFxuICAgICAgICAgICAgYnV0dG9uLFxuICAgICAgICAgICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgICAgICAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICAgICAgICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgICAgICAgICBbcm9sZT1cImJ1dHRvblwiXVxuICAgICAgICAgICk6bm90KC5vdXRsaW5lKSB7XG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwibGF5b3V0L2RvY3VtZW50XCIpIHtcbiAgLyoqXG4gICAqIERvY3VtZW50XG4gICAqIENvbnRlbnQtYm94ICYgUmVzcG9uc2l2ZSB0eXBvZ3JhcGh5XG4gICAqL1xuXG4gIC8vIFJlYm9vdCBiYXNlZCBvbiA6XG4gIC8vIC0gbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG4gIC8vIC0gc2FuaXRpemUuY3NzIHYxMy4wLjAgfCBDQzAgMS4wIFVuaXZlcnNhbCB8IGdpdGh1Yi5jb20vY3NzdG9vbHMvc2FuaXRpemUuY3NzXG4gIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuXG4gIC8vIDEuIEFkZCBib3JkZXIgYm94IHNpemluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAvLyAyLiBCYWNrZ3JvdW5kcyBkbyBub3QgcmVwZWF0IGJ5IGRlZmF1bHQgKG9waW5pb25hdGVkKVxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQWRkIHRleHQgZGVjb3JhdGlvbiBpbmhlcml0YW5jZSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAvLyAyLiBBZGQgdmVydGljYWwgYWxpZ25tZW50IGluaGVyaXRhbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpXG4gIDo6YmVmb3JlLFxuICA6OmFmdGVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IC8vIDFcbiAgICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAvLyAyLiBCcmVha3Mgd29yZHMgdG8gcHJldmVudCBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAvLyAzLiBVc2UgYSA0LXNwYWNlIHRhYiB3aWR0aCBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAvLyA0LiBSZW1vdmUgdGhlIGdyZXkgaGlnaGxpZ2h0IG9uIGxpbmtzIGluIGlPUyAob3BpbmlvbmF0ZWQpXG4gIC8vIDUuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TXG4gIDp3aGVyZSg6cm9vdCksXG4gIDp3aGVyZSg6aG9zdCkge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIDRcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDVcbiAgICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyA1XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9udC13ZWlnaHQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1saW5lLWhlaWdodCk7IC8vIDFcbiAgICBmb250LWZhbWlseTogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtZmFtaWx5KTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH10ZXh0LXVuZGVybGluZS1vZmZzZXQpO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgLy8gMlxuICAgIHRhYi1zaXplOiA0OyAvLyAzXG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwibGF5b3V0L2xhbmRtYXJrc1wiKSB7XG4gIC8qKlxuICAgKiBMYW5kbWFya3NcbiAgICovXG5cbiAgLy8gUmVib290IGJhc2VkIG9uIDpcbiAgLy8gLSBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcbiAgLy8gLSBzYW5pdGl6ZS5jc3MgdjEzLjAuMCB8IENDMCAxLjAgVW5pdmVyc2FsIHwgZ2l0aHViLmNvbS9jc3N0b29scy9zYW5pdGl6ZS5jc3NcbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZClcbiAgYm9keSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwOyAvLyAxXG4gIH1cblxuICAvLyBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRVxuICBtYWluIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFBpY29cbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gI3skc2VtYW50aWMtcm9vdC1lbGVtZW50fSB7XG4gICAgPiBoZWFkZXIsXG4gICAgPiBtYWluLFxuICAgID4gZm9vdGVyIHtcbiAgICAgIC8vIDxoZWFkZXI+LCA8bWFpbj4sIDxmb290ZXI+IGFzIGNvbnRhaW5lcnNcbiAgICAgIEBpZiAkZW5hYmxlLXNlbWFudGljLWNvbnRhaW5lciB7XG4gICAgICAgICRmaXJzdC1icmVha3BvaW50OiB0cnVlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgcGFkZGluZzogdmFyKCN7JGNzcy12YXItcHJlZml4fWJsb2NrLXNwYWNpbmctdmVydGljYWwpXG4gICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWJsb2NrLXNwYWNpbmctaG9yaXpvbnRhbCk7XG5cbiAgICAgICAgQGlmICRlbmFibGUtdmlld3BvcnQge1xuICAgICAgICAgIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWVzIHtcbiAgICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQoJHZhbHVlcywgXCJicmVha3BvaW50XCIpKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXAuZ2V0KCR2YWx1ZXMsIFwidmlld3BvcnRcIik7XG4gICAgICAgICAgICAgICAgQGlmICRmaXJzdC1icmVha3BvaW50IHtcbiAgICAgICAgICAgICAgICAgICRmaXJzdC1icmVha3BvaW50OiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlZ3VsYXIgdmVydGljYWwgc3BhY2luZ3MgZm9yIDxoZWFkZXI+LCA8bWFpbj4sIDxmb290ZXI+XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwibGF5b3V0L3NlY3Rpb25cIikge1xuICAvKipcbiAgICogU2VjdGlvblxuICAgKi9cblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKTtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJsYXlvdXQvY29udGFpbmVyXCIpIGFuZCAkZW5hYmxlLWNsYXNzZXMge1xuICAvKipcbiAgICogQ29udGFpbmVyXG4gICAqL1xuXG4gIC5jb250YWluZXIsXG4gIC5jb250YWluZXItZmx1aWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICAkZmlyc3QtYnJlYWtwb2ludDogdHJ1ZTtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgJHZhbHVlcyB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KCR2YWx1ZXMsIFwiYnJlYWtwb2ludFwiKSkge1xuICAgICAgICAgIG1heC13aWR0aDogbWFwLmdldCgkdmFsdWVzLCBcInZpZXdwb3J0XCIpO1xuICAgICAgICAgIEBpZiAkZmlyc3QtYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAkZmlyc3QtYnJlYWtwb2ludDogZmFsc2U7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJsYXlvdXQvZ3JpZFwiKSBhbmQgJGVuYWJsZS1jbGFzc2VzIHtcbiAgLyoqXG4gICAqIEdyaWRcbiAgICogTWluaW1hbCBncmlkIHN5c3RlbSB3aXRoIGF1dG8tbGF5b3V0IGNvbHVtbnNcbiAgICovXG5cbiAgLmdyaWQge1xuICAgIGdyaWQtY29sdW1uLWdhcDogdmFyKCN7JGNzcy12YXItcHJlZml4fWdyaWQtY29sdW1uLWdhcCk7XG4gICAgZ3JpZC1yb3ctZ2FwOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Z3JpZC1yb3ctZ2FwKTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGlmIG1hcC5nZXQoJGJyZWFrcG9pbnRzLCBcIm1kXCIpIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KG1hcC5nZXQoJGJyZWFrcG9pbnRzLCBcIm1kXCIpLCBcImJyZWFrcG9pbnRcIikpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgwJSwgMWZyKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+ICoge1xuICAgICAgbWluLXdpZHRoOiAwOyAvLyBIQUNLIGZvciBjaGlsZHJlbiBpbiBvdmVyZmxvd1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJsYXlvdXQvb3ZlcmZsb3ctYXV0b1wiKSBhbmQgJGVuYWJsZS1jbGFzc2VzIHtcbiAgLyoqXG4gICAqIE92ZXJmbG93IGF1dG9cbiAgICovXG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSAub3ZlcmZsb3ctYXV0byB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC90eXBvZ3JhcGh5XCIpIHtcbiAgLyoqXG4gICAqIFR5cG9ncmFwaHlcbiAgICovXG5cbiAgLy8gUmVib290IGJhc2VkIG9uIDpcbiAgLy8gLSBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcbiAgLy8gLSBzYW5pdGl6ZS5jc3MgdjEzLjAuMCB8IENDMCAxLjAgVW5pdmVyc2FsIHwgZ2l0aHViLmNvbS9jc3N0b29scy9zYW5pdGl6ZS5jc3NcbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGIsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vyc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHN1YixcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBzdXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6IDAuNzVlbTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBQaWNvXG4gIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYWRkcmVzcyxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBibG9ja3F1b3RlLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGRsLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IG9sLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHAsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gcHJlLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHRhYmxlLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHVsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigjeyRjc3MtdmFyLXByZWZpeH10eXBvZ3JhcGh5LXNwYWNpbmctdmVydGljYWwpO1xuICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29sb3IpO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtd2VpZ2h0KTtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDEsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDIsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDMsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDQsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDUsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDYge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKCN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy12ZXJ0aWNhbCk7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb250LXdlaWdodCk7XG4gICAgZm9udC1zaXplOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKCN7JGNzcy12YXItcHJlZml4fWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LWZhbWlseTogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvbnQtZmFtaWx5KTtcbiAgfVxuXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDEge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aDEtY29sb3IpO1xuICB9XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDIge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aDItY29sb3IpO1xuICB9XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDMge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aDMtY29sb3IpO1xuICB9XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDQge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aDQtY29sb3IpO1xuICB9XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDUge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aDUtY29sb3IpO1xuICB9XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaDYge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aDYtY29sb3IpO1xuICB9XG5cbiAgLy8gTWFyZ2luLXRvcCBmb3IgaGVhZGluZ3MgYWZ0ZXIgYSBibG9ja1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9XG4gICAgOndoZXJlKGFydGljbGUsIGFkZHJlc3MsIGJsb2NrcXVvdGUsIGRsLCBmaWd1cmUsIGZvcm0sIG9sLCBwLCBwcmUsIHRhYmxlLCB1bCkge1xuICAgIH4gOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigjeyRjc3MtdmFyLXByZWZpeH10eXBvZ3JhcGh5LXNwYWNpbmctdG9wKTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKCN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy12ZXJ0aWNhbCk7XG4gIH1cblxuICAvLyBIZWFkaW5nIGdyb3VwXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaGdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKTtcblxuICAgID4gKiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICA+ICo6bm90KDpmaXJzdC1jaGlsZCk6bGFzdC1jaGlsZCB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW11dGVkLWNvbG9yKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvbnQtd2VpZ2h0OiB1bnNldDtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBMaXN0c1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDp3aGVyZShvbCwgdWwpIHtcbiAgICBsaSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH10eXBvZ3JhcGh5LXNwYWNpbmctdmVydGljYWwpICogMC4yNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFyZ2luLXRvcCBmb3IgbmVzdGVkIGxpc3RzXG4gIC8vIDEuIFJlbW92ZSB0aGUgbWFyZ2luIG9uIG5lc3RlZCBsaXN0cyBpbiBDaHJvbWUsIEVkZ2UsIElFLCBhbmQgU2FmYXJpXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gOndoZXJlKGRsLCBvbCwgdWwpIDp3aGVyZShkbCwgb2wsIHVsKSB7XG4gICAgbWFyZ2luOiAwOyAvLyAxXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKSAqIDAuMjUpO1xuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSB1bCBsaSB7XG4gICAgbGlzdC1zdHlsZTogc3F1YXJlO1xuICB9XG5cbiAgLy8gSGlnaGxpZ2h0ZWQgdGV4dFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IG1hcmsge1xuICAgIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fW1hcmstYmFja2dyb3VuZC1jb2xvcik7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1tYXJrLWNvbG9yKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICAvLyBCbG9ja3F1b3RlXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYmxvY2txdW90ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKSAwO1xuICAgIHBhZGRpbmc6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKTtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDAuMjVyZW0gc29saWQgdmFyKCN7JGNzcy12YXItcHJlZml4fWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItaW5saW5lLXN0YXJ0OiAwLjI1cmVtIHNvbGlkIHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLWlubGluZS1lbmQ6IG5vbmU7XG5cbiAgICBmb290ZXIge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9dHlwb2dyYXBoeS1zcGFjaW5nLXZlcnRpY2FsKSAqIDAuNSk7XG4gICAgICBjb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIC8vIDEuIFJlbW92ZSB1bmRlcmxpbmUgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLy8gMVxuICAgIGN1cnNvcjogaGVscDtcbiAgfVxuXG4gIC8vIEluc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucyB7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1pbnMtY29sb3IpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIGRlbFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGRlbCB7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1kZWwtY29sb3IpO1xuICB9XG5cbiAgLy8gc2VsZWN0aW9uXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH10ZXh0LXNlbGVjdGlvbi1jb2xvcik7XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC9saW5rXCIpIHtcbiAgLyoqXG4gICAqIExpbmtcbiAgICovXG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6d2hlcmUoYTpub3QoW3JvbGU9XCJidXR0b25cIl0pKSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbcm9sZT1cImxpbmtcIl0ge1xuICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeSk7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9dW5kZXJsaW5lOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS11bmRlcmxpbmUpO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3IpOyAvLyAxXG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9dGV4dC1kZWNvcmF0aW9uKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH11bmRlcmxpbmUpO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xMjVlbTtcblxuICAgIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICBjb2xvciB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHJhbnNpdGlvbiksXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbiB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHJhbnNpdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXIpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9dW5kZXJsaW5lOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ob3Zlci11bmRlcmxpbmUpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIHZhcigjeyRjc3MtdmFyLXByZWZpeH1vdXRsaW5lLXdpZHRoKSB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1mb2N1cyk7XG4gICAgfVxuXG4gICAgQGlmICRlbmFibGUtY2xhc3NlcyB7XG4gICAgICAvLyBTZWNvbmRhcnlcbiAgICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Y29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnkpO1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH11bmRlcmxpbmU6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktdW5kZXJsaW5lKTtcblxuICAgICAgICAmOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cykge1xuICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyKTtcbiAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH11bmRlcmxpbmU6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXItdW5kZXJsaW5lKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDb250cmFzdFxuICAgICAgJi5jb250cmFzdCB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QpO1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH11bmRlcmxpbmU6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC11bmRlcmxpbmUpO1xuXG4gICAgICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Y29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1ob3Zlcik7XG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9dW5kZXJsaW5lOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtaG92ZXItdW5kZXJsaW5lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYSB7XG4gICAgJltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29udGVudC9idXR0b25cIikge1xuICAvKipcbiAgICogQnV0dG9uXG4gICAqL1xuXG4gIC8vIFJlYm9vdCBiYXNlZCBvbiA6XG4gIC8vIC0gbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG4gIC8vIC0gc2FuaXRpemUuY3NzIHYxMy4wLjAgfCBDQzAgMS4wIFVuaXZlcnNhbCB8IGdpdGh1Yi5jb20vY3NzdG9vbHMvc2FuaXRpemUuY3NzXG4gIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuXG4gIC8vIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIG9uIGNvbnRyb2xzIGluIFNhZmFyaVxuICAvLyAzLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7IC8vIDJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gM1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IC8vIDFcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBidXR0b25zIGluIGlPUyBhbmQgU2FmYXJpXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYnV0dG9uLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwic3VibWl0XCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwicmVzZXRcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJidXR0b25cIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUGljb1xuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGJ1dHRvbixcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cInN1Ym1pdFwiXSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cInJlc2V0XCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiYnV0dG9uXCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiZmlsZVwiXTo6ZmlsZS1zZWxlY3Rvci1idXR0b24sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3JvbGU9XCJidXR0b25cIl0ge1xuICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWJhY2tncm91bmQpO1xuICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYm9yZGVyKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaW52ZXJzZSk7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogdmFyKCN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgICBwYWRkaW5nOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpXG4gICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gICAgYm9yZGVyOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXJhZGl1cyk7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKCN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3cpO1xuICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9udC13ZWlnaHQpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogdmFyKCN7JGNzcy12YXItcHJlZml4fWxpbmUtaGVpZ2h0KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICBjb2xvciB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHJhbnNpdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSkpLFxuICAgICY6aXMoOmhvdmVyLCA6YWN0aXZlLCA6Zm9jdXMpIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ob3Zlci1ib3JkZXIpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogdmFyKFxuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1idXR0b24taG92ZXItYm94LXNoYWRvdyxcbiAgICAgICAgMCAwIDAgcmdiYSgwLCAwLCAwLCAwKVxuICAgICAgKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1pbnZlcnNlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSkpOmZvY3VzIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3c6XG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1idXR0b24taG92ZXItYm94LXNoYWRvdywgMCAwIDAgcmdiYSgwLCAwLCAwLCAwKSksXG4gICAgICAgIDAgMCAwIHZhcigjeyRjc3MtdmFyLXByZWZpeH1vdXRsaW5lLXdpZHRoKSB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cInN1Ym1pdFwiXSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cInJlc2V0XCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG4gIH1cblxuICAvLyAuc2Vjb25kYXJ5LCAuY29udHJhc3QgJiAub3V0bGluZVxuICBAaWYgJGVuYWJsZS1jbGFzc2VzIHtcbiAgICAvLyBTZWNvbmRhcnlcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IDppcyhidXR0b24sIFt0eXBlPVwic3VibWl0XCJdLCBbdHlwZT1cImJ1dHRvblwiXSwgW3JvbGU9XCJidXR0b25cIl0pLnNlY29uZGFyeSxcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwicmVzZXRcIl0sXG4gICAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cImZpbGVcIl06OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktYm9yZGVyKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWludmVyc2UpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cykge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQpO1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXItYm9yZGVyKTtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Y29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaW52ZXJzZSk7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pKTpmb2N1cyB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3c6XG4gICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKSxcbiAgICAgICAgICAwIDAgMCB2YXIoI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aCkgdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1mb2N1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ29udHJhc3RcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IDppcyhidXR0b24sIFt0eXBlPVwic3VibWl0XCJdLCBbdHlwZT1cImJ1dHRvblwiXSwgW3JvbGU9XCJidXR0b25cIl0pLmNvbnRyYXN0IHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb250cmFzdC1iYWNrZ3JvdW5kKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWJvcmRlcik7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWludmVyc2UpO1xuXG4gICAgICAmOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cykge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWhvdmVyLWJvcmRlcik7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtaW52ZXJzZSk7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pKTpmb2N1cyB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3c6XG4gICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKSxcbiAgICAgICAgICAwIDAgMCB2YXIoI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aCkgdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWZvY3VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPdXRsaW5lIChwcmltYXJ5KVxuICAgICN7JHBhcmVudC1zZWxlY3Rvcn0gOmlzKGJ1dHRvbiwgW3R5cGU9XCJzdWJtaXRcIl0sIFt0eXBlPVwiYnV0dG9uXCJdLCBbcm9sZT1cImJ1dHRvblwiXSkub3V0bGluZSxcbiAgICBbdHlwZT1cInJlc2V0XCJdLm91dGxpbmUge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnkpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeSk7XG5cbiAgICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXIpO1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPdXRsaW5lIChzZWNvbmRhcnkpXG4gICAgI3skcGFyZW50LXNlbGVjdG9yfVxuICAgICAgOmlzKGJ1dHRvbiwgW3R5cGU9XCJzdWJtaXRcIl0sIFt0eXBlPVwiYnV0dG9uXCJdLCBbcm9sZT1cImJ1dHRvblwiXSkub3V0bGluZS5zZWNvbmRhcnksXG4gICAgW3R5cGU9XCJyZXNldFwiXS5vdXRsaW5lIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5KTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeSk7XG5cbiAgICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyKTtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c2Vjb25kYXJ5LWhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPdXRsaW5lIChjb250cmFzdClcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9XG4gICAgICA6aXMoYnV0dG9uLCBbdHlwZT1cInN1Ym1pdFwiXSwgW3R5cGU9XCJidXR0b25cIl0sIFtyb2xlPVwiYnV0dG9uXCJdKS5vdXRsaW5lLmNvbnRyYXN0IHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QpO1xuXG4gICAgICAmOmlzKFthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pLCA6aG92ZXIsIDphY3RpdmUsIDpmb2N1cykge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWNvbnRyYXN0LWhvdmVyKTtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29udHJhc3QtaG92ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gU2Vjb25kYXJ5IGJ1dHRvbiB3aXRob3V0IC5jbGFzc1xuICAgICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJyZXNldFwiXSxcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiZmlsZVwiXTo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1ib3JkZXIpO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Y29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaW52ZXJzZSk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aXMoW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSksIDpob3ZlciwgOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCk7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1ob3Zlci1ib3JkZXIpO1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1pbnZlcnNlKTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3c6XG4gICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93LCAwIDAgMCByZ2JhKDAsIDAsIDAsIDApKSxcbiAgICAgICAgICAwIDAgMCB2YXIoI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aCkgdmFyKCN7JGNzcy12YXItcHJlZml4fXNlY29uZGFyeS1mb2N1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQnV0dG9uIFtkaXNhYmxlZF1cbiAgI3skcGFyZW50LXNlbGVjdG9yfVxuICAgIDp3aGVyZShidXR0b24sIFt0eXBlPVwic3VibWl0XCJdLCBbdHlwZT1cInJlc2V0XCJdLCBbdHlwZT1cImJ1dHRvblwiXSwgW3JvbGU9XCJidXR0b25cIl0pW2Rpc2FibGVkXSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfVxuICAgIDp3aGVyZShmaWVsZHNldFtkaXNhYmxlZF0pXG4gICAgOmlzKGJ1dHRvbiwgW3R5cGU9XCJzdWJtaXRcIl0sIFt0eXBlPVwiYnV0dG9uXCJdLCBbdHlwZT1cInJlc2V0XCJdLCBbcm9sZT1cImJ1dHRvblwiXSkge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L2VtYmVkZGVkXCIpIHtcbiAgLyoqXG4gICAqIEVtYmVkZGVkIGNvbnRlbnRcbiAgICovXG5cbiAgLy8gUmVib290IGJhc2VkIG9uIDpcbiAgLy8gLSBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcbiAgLy8gLSBzYW5pdGl6ZS5jc3MgdjEzLjAuMCB8IENDMCAxLjAgVW5pdmVyc2FsIHwgZ2l0aHViLmNvbS9jc3N0b29scy9zYW5pdGl6ZS5jc3NcbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbiAgLy8gQ2hhbmdlIHRoZSBhbGlnbm1lbnQgb24gbWVkaWEgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZClcbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6d2hlcmUoYXVkaW8sIGNhbnZhcywgaWZyYW1lLCBpbWcsIHN2ZywgdmlkZW8pIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS1cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBhdWRpbyxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSB2aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtN1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpZnJhbWVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gOndoZXJlKGlmcmFtZSkge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gIC8vIDIuIFJlc3BvbnNpdmUgYnkgZGVmYXVsdFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAyXG4gICAgaGVpZ2h0OiBhdXRvOyAvLyAyXG4gICAgYm9yZGVyLXN0eWxlOiBub25lOyAvLyAxXG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIGZpbGwgY29sb3IgdG8gbWF0Y2ggdGhlIHRleHQgY29sb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZClcbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6d2hlcmUoc3ZnOm5vdChbZmlsbF0pKSB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUVcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBzdmc6bm90KDpyb290KSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBzdmc6bm90KDpob3N0KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L2ZpZ3VyZVwiKSB7XG4gIC8qKlxuICAgKiBGaWd1cmVcbiAgICovXG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBmaWd1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKSAqIDAuNSkgMDtcbiAgICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb250ZW50L21pc2NcIikge1xuICAvKipcbiAgICogTWlzY1xuICAgKi9cblxuICAvLyBSZWJvb3QgYmFzZWQgb24gOlxuICAvLyAtIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzc1xuICAvLyAtIHNhbml0aXplLmNzcyB2MTMuMC4wIHwgQ0MwIDEuMCBVbml2ZXJzYWwgfCBnaXRodWIuY29tL2Nzc3Rvb2xzL3Nhbml0aXplLmNzc1xuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBvZiBib3JkZXIgY29sb3IgaW4gRmlyZWZveFxuICAvLyAyLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaHIge1xuICAgIGhlaWdodDogMDsgLy8gMlxuICAgIG1hcmdpbjogdmFyKCN7JGNzcy12YXItcHJlZml4fXR5cG9ncmFwaHktc3BhY2luZy12ZXJ0aWNhbCkgMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigjeyRjc3MtdmFyLXByZWZpeH1tdXRlZC1ib3JkZXItY29sb3IpO1xuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAxXG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCtcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbaGlkZGVuXSxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSB0ZW1wbGF0ZSB7XG4gICAgQGlmICRlbmFibGUtaW1wb3J0YW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS1cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBjYW52YXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJmb3Jtcy9iYXNpY3NcIikge1xuICAvLyBIZWxwZXJcbiAgJGhlbHBlci1wcmV2aW91cy10YWdzOiBcImlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBmaWVsZHNldFwiO1xuICAvKipcbiAgICogQmFzaWNzIGZvcm0gZWxlbWVudHNcbiAgICovXG5cbiAgLy8gUmVib290IGJhc2VkIG9uIDpcbiAgLy8gLSBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcbiAgLy8gLSBzYW5pdGl6ZS5jc3MgdjEzLjAuMCB8IENDMCAxLjAgVW5pdmVyc2FsIHwgZ2l0aHViLmNvbS9jc3N0b29scy9zYW5pdGl6ZS5jc3NcbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnNcbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaW5wdXQsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gb3B0Z3JvdXAsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gc2VsZWN0LFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHRleHRhcmVhIHtcbiAgICBtYXJnaW46IDA7IC8vIDJcbiAgICBmb250LXNpemU6IDFyZW07IC8vIDFcbiAgICBsaW5lLWhlaWdodDogdmFyKCN7JGNzcy12YXItcHJlZml4fWxpbmUtaGVpZ2h0KTsgLy8gMVxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvLyAxXG4gICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucHV0IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUVcbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFXG4gIC8vIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgLy8gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnNcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBsZWdlbmQge1xuICAgIG1heC13aWR0aDogMTAwJTsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDNcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUVcbiAgI3skcGFyZW50LXNlbGVjdG9yfSB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87IC8vIDFcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8vIDJcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPU1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG4gICAgZm9udDogaW5oZXJpdDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgb2YgZm9jdXMgb3V0bGluZXMgaW4gRmlyZWZveFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIH1cblxuICAvLyAgUmVtb3ZlIHRoZSBmb2N1cyBvdXRsaW5lIGluIEZpcmVmb3hcbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGFkZGl0aW9uYWwgOmludmFsaWQgc3R5bGVzIGluIEZpcmVmb3hcbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6LW1vei11aS1pbnZhbGlkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSBpbmNvbnNpc3RlbnQgYXBwZWFyYW5jZSBpbiBJRSAob3BpbmlvbmF0ZWQpXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZClcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cImZpbGVcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gIH1cblxuICAvLyBQaWNvXG4gIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuXG4gIC8vIEZvcmNlIGhlaWdodCBmb3IgYWx0ZXJuYXRpdmVzIGlucHV0IHR5cGVzXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0sIFt0eXBlPVwicmFkaW9cIl0sIFt0eXBlPVwicmFuZ2VcIl0pIHtcbiAgICBoZWlnaHQ6IGNhbGMoXG4gICAgICAoMXJlbSAqIHZhcigjeyRjc3MtdmFyLXByZWZpeH1saW5lLWhlaWdodCkpICtcbiAgICAgICAgKHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAyKSArXG4gICAgICAgICh2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKSAqIDIpXG4gICAgKTtcbiAgfVxuXG4gIC8vIEZpZWxkc2V0XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gZmllbGRzZXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvLyBMYWJlbCAmIGxlZ2VuZFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGxhYmVsLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZykgKiAwLjM3NSk7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWxhYmVsLWZvbnQtd2VpZ2h0LCB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9udC13ZWlnaHQpKTtcbiAgfVxuXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKSAqIDAuNSk7XG4gIH1cblxuICAvLyBCbG9ja3MsIDEwMCVcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSksXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gc2VsZWN0LFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFJlc2V0IGFwcGVhcmFuY2UgKE5vdCBDaGVja2JveGVzLCBSYWRpb3MsIFJhbmdlIGFuZCBGaWxlKVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdLCBbdHlwZT1cInJhbmdlXCJdLCBbdHlwZT1cImZpbGVcIl0pLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHNlbGVjdCxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSB0ZXh0YXJlYSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBwYWRkaW5nOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpXG4gICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gIH1cblxuICAvLyBDb21tb25zIHN0eWxlc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucHV0LFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHNlbGVjdCxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSB0ZXh0YXJlYSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYm9yZGVyLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1jb2xvcik7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItcmFkaXVzKTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdyk7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb250LXdlaWdodCk7XG5cbiAgICBAaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gICAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigjeyRjc3MtdmFyLXByZWZpeH10cmFuc2l0aW9uKSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigjeyRjc3MtdmFyLXByZWZpeH10cmFuc2l0aW9uKSxcbiAgICAgICAgY29sb3IgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICBib3gtc2hhZG93IHZhcigjeyRjc3MtdmFyLXByZWZpeH10cmFuc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgJiBGb2N1c1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9XG4gICAgaW5wdXQ6bm90KFxuICAgICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgW3R5cGU9XCJyYWRpb1wiXSxcbiAgICAgIFtyZWFkb25seV1cbiAgICApLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDp3aGVyZShzZWxlY3QsIHRleHRhcmVhKTpub3QoW3JlYWRvbmx5XSkge1xuICAgICY6aXMoOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvclxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgJiBGb2N1c1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9XG4gICAgaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdLCBbdHlwZT1cImJ1dHRvblwiXSwgW3R5cGU9XCJyZXNldFwiXSwgW3JvbGU9XCJzd2l0Y2hcIl0sIFtyZWFkb25seV0pLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDp3aGVyZShzZWxlY3QsIHRleHRhcmVhKTpub3QoW3JlYWRvbmx5XSkge1xuICAgICY6aXMoOmFjdGl2ZSwgOmZvY3VzKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9jdXNcbiAgI3skcGFyZW50LXNlbGVjdG9yfVxuICAgIGlucHV0Om5vdChcbiAgICAgIFt0eXBlPVwic3VibWl0XCJdLFxuICAgICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgICAgW3R5cGU9XCJyYW5nZVwiXSxcbiAgICAgIFt0eXBlPVwiZmlsZVwiXSxcbiAgICAgIFtyZWFkb25seV1cbiAgICApLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDp3aGVyZShzZWxlY3QsIHRleHRhcmVhKTpub3QoW3JlYWRvbmx5XSkge1xuICAgICY6Zm9jdXMge1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogMFxuICAgICAgICAwXG4gICAgICAgIDBcbiAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtZm9jdXMtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdLCBbdHlwZT1cImJ1dHRvblwiXSwgW3R5cGU9XCJyZXNldFwiXSlbZGlzYWJsZWRdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHNlbGVjdFtkaXNhYmxlZF0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gdGV4dGFyZWFbZGlzYWJsZWRdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGxhYmVsW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9XG4gICAgOndoZXJlKGZpZWxkc2V0W2Rpc2FibGVkXSlcbiAgICA6aXMoaW5wdXQ6bm90KFt0eXBlPVwic3VibWl0XCJdLCBbdHlwZT1cImJ1dHRvblwiXSwgW3R5cGU9XCJyZXNldFwiXSksIHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgICBvcGFjaXR5OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWRpc2FibGVkLW9wYWNpdHkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBsYWJlbFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSBpbnB1dFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAvLyBBcmlhLWludmFsaWRcbiAgI3skcGFyZW50LXNlbGVjdG9yfSA6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgICAmOm5vdChcbiAgICAgICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgICAgW3R5cGU9XCJyYWRpb1wiXSxcbiAgICAgICAgW3R5cGU9XCJkYXRlXCJdLFxuICAgICAgICBbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAgICAgICBbdHlwZT1cIm1vbnRoXCJdLFxuICAgICAgICBbdHlwZT1cInRpbWVcIl0sXG4gICAgICAgIFt0eXBlPVwid2Vla1wiXSxcbiAgICAgICAgW3R5cGU9XCJyYW5nZVwiXVxuICAgICAgKSB7XG4gICAgICAmW2FyaWEtaW52YWxpZF0ge1xuICAgICAgICBAaWYgJGVuYWJsZS1pbXBvcnRhbnQge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoXG4gICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKyAxLjVyZW1cbiAgICAgICAgICApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogY2FsYyhcbiAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNXJlbVxuICAgICAgICAgICkgIWltcG9ydGFudDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKyAxLjVyZW0pO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNXJlbSk7XG4gICAgICAgIH1cbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgfVxuXG4gICAgICAmW2FyaWEtaW52YWxpZD1cImZhbHNlXCJdOm5vdChzZWxlY3QpIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKCN7JGNzcy12YXItcHJlZml4fWljb24tdmFsaWQpO1xuICAgICAgfVxuXG4gICAgICAmW2FyaWEtaW52YWxpZD1cInRydWVcIl06bm90KHNlbGVjdCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aWNvbi1pbnZhbGlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2FyaWEtaW52YWxpZD1cImZhbHNlXCJdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC12YWxpZC1ib3JkZXItY29sb3IpO1xuXG4gICAgICAmOmlzKDphY3RpdmUsIDpmb2N1cykge1xuICAgICAgICBAaWYgJGVuYWJsZS1pbXBvcnRhbnQge1xuICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKFxuICAgICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXZhbGlkLWFjdGl2ZS1ib3JkZXItY29sb3JcbiAgICAgICAgICApICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAmOm5vdChbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdKSB7XG4gICAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3gtc2hhZG93OiAwXG4gICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aClcbiAgICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC12YWxpZC1mb2N1cy1jb2xvcikgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKFxuICAgICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXZhbGlkLWFjdGl2ZS1ib3JkZXItY29sb3JcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgJjpub3QoW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSkge1xuICAgICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogMFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtZm9jdXMtY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtaW52YWxpZC1ib3JkZXItY29sb3IpO1xuXG4gICAgICAmOmlzKDphY3RpdmUsIDpmb2N1cykge1xuICAgICAgICBAaWYgJGVuYWJsZS1pbXBvcnRhbnQge1xuICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKFxuICAgICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtYWN0aXZlLWJvcmRlci1jb2xvclxuICAgICAgICAgICkgIWltcG9ydGFudDtcblxuICAgICAgICAgICY6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0sIFt0eXBlPVwicmFkaW9cIl0pIHtcbiAgICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWJveC1zaGFkb3c6IDBcbiAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1vdXRsaW5lLXdpZHRoKVxuICAgICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtZm9jdXMtY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcihcbiAgICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1pbnZhbGlkLWFjdGl2ZS1ib3JkZXItY29sb3JcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgJjpub3QoW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSkge1xuICAgICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Ym94LXNoYWRvdzogMFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtaW52YWxpZC1mb2N1cy1jb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgW2Rpcj1cInJ0bFwiXSB7XG4gICAgI3skcGFyZW50LXNlbGVjdG9yfSA6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgICAgICY6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0sIFt0eXBlPVwicmFkaW9cIl0pIHtcbiAgICAgICAgJjppcyhbYXJpYS1pbnZhbGlkXSwgW2FyaWEtaW52YWxpZD1cInRydWVcIl0sIFthcmlhLWludmFsaWQ9XCJmYWxzZVwiXSkge1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBsZWZ0IDAuNzVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlclxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucHV0OjpwbGFjZWhvbGRlcixcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgI3skcGFyZW50LXNlbGVjdG9yfSB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gc2VsZWN0OmludmFsaWQge1xuICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLy8gTWFyZ2luIGJvdHRvbSAoTm90IENoZWNrYm94ZXMgYW5kIFJhZGlvcylcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSksXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gc2VsZWN0LFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHRleHRhcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG4gIH1cblxuICAvLyBTZWxlY3RcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBzZWxlY3Qge1xuICAgIC8vIFVuc3R5bGUgdGhlIGNhcmV0IG9uIGA8c2VsZWN0PmBzIGluIElFMTArLlxuICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpub3QoW211bHRpcGxlXSwgW3NpemVdKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNXJlbSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICsgMS41cmVtKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1pY29uLWNoZXZyb24pO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDAuNzVyZW07XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gYXV0bztcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgJlttdWx0aXBsZV0ge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkaXI9XCJydGxcIl0ge1xuICAgICN7JHBhcmVudC1zZWxlY3Rvcn0gc2VsZWN0IHtcbiAgICAgICY6bm90KFttdWx0aXBsZV0sIFtzaXplXSkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdCAwLjc1cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRleHRhcmVhXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gdGV4dGFyZWEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG5cbiAgICAmW2FyaWEtaW52YWxpZF0ge1xuICAgICAgQGlmICRlbmFibGUtaW1wb3J0YW50IHtcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9aWNvbi1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgKDFyZW0gKiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bGluZS1oZWlnaHQpKSArXG4gICAgICAgICAgICAodmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIDIpICtcbiAgICAgICAgICAgICh2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKSAqIDIpXG4gICAgICAgICk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCByaWdodCAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSB2YXIoI3skY3NzLXZhci1wcmVmaXh9aWNvbi1oZWlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImxheW91dC9ncmlkXCIpIGFuZCAkZW5hYmxlLWNsYXNzZXMge1xuICAgICRoZWxwZXItcHJldmlvdXMtdGFnczogJGhlbHBlci1wcmV2aW91cy10YWdzICsgXCIsIC5ncmlkXCI7XG4gIH1cblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IDp3aGVyZSgjeyRoZWxwZXItcHJldmlvdXMtdGFnc30pIHtcbiAgICArIHNtYWxsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKSAqIC0wLjc1KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKTtcbiAgICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bXV0ZWQtY29sb3IpO1xuICAgIH1cbiAgICAmW2FyaWEtaW52YWxpZD1cImZhbHNlXCJdIHtcbiAgICAgICsgc21hbGwge1xuICAgICAgICBjb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWlucy1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICAgICZbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICArIHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1kZWwtY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgSW5wdXQgaW5zaWRlIGEgbGFiZWxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBsYWJlbCB7XG4gICAgPiA6d2hlcmUoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpIHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fXNwYWNpbmcpICogMC4yNSk7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCIuLi9zZXR0aW5nc1wiIGFzICo7XG5cbkBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2NoZWNrYm94LXJhZGlvLXN3aXRjaFwiKSB7XG4gIC8qKlxuICAgKiBDaGVja2JveGVzLCBSYWRpb3MgYW5kIFN3aXRjaGVzXG4gICAqL1xuXG4gIC8vIExhYmVsc1xuICAvLyBOb3Qgd29ya2luZyBpbiBGaXJlZm94LCB3aGljaCBkb2Vzbid0IHN1cHBvcnQgdGhlIGA6aGFzKClgIHBzZXVkby1jbGFzc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGxhYmVsIHtcbiAgICAmOmhhcyhbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdKSB7XG4gICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogMS4yNWVtO1xuICAgIGhlaWdodDogMS4yNWVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjEyNWVtO1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjVlbTtcbiAgICBib3JkZXItd2lkdGg6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGgpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjo6LW1zLWNoZWNrIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIHVuc3R5bGUgSUUgY2hlY2tib3hlc1xuICAgIH1cblxuICAgICY6Y2hlY2tlZCxcbiAgICAmOmNoZWNrZWQ6YWN0aXZlLFxuICAgICY6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYm9yZGVyKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1pY29uLWNoZWNrYm94KTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMC43NWVtIGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cblxuICAgICYgfiBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2tib3hlc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICY6aW5kZXRlcm1pbmF0ZSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1iYWNrZ3JvdW5kKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktYm9yZGVyKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1pY29uLW1pbnVzKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMC43NWVtIGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJhZGlvc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICY6Y2hlY2tlZCxcbiAgICAmOmNoZWNrZWQ6YWN0aXZlLFxuICAgICY6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1pbnZlcnNlKTtcbiAgICAgIGJvcmRlci13aWR0aDogMC4zNWVtO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTd2l0Y2hlc1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiY2hlY2tib3hcIl1bcm9sZT1cInN3aXRjaFwiXSB7XG4gICAgI3skY3NzLXZhci1wcmVmaXh9YmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXN3aXRjaC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAjeyRjc3MtdmFyLXByZWZpeH1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXN3aXRjaC1jb2xvcik7XG5cbiAgICAvLyBDb25maWdcbiAgICAkc3dpdGNoLWhlaWdodDogMS4yNWVtO1xuICAgICRzd2l0Y2gtd2lkdGg6IDIuMjVlbTtcbiAgICAkc3dpdGNoLXRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAvLyBTdHlsZXNcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJvcmRlci13aWR0aCkgc29saWQgdmFyKCN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3IpO1xuICAgIGxpbmUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICAgICY6bm90KFthcmlhLWludmFsaWRdKSB7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zd2l0Y2gtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y29sb3IpO1xuICAgICAgYm94LXNoYWRvdzogdmFyKCN7JGNzcy12YXItcHJlZml4fXN3aXRjaC10aHVtYi1ib3gtc2hhZG93KTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG5cbiAgICAgIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbWFyZ2luICRzd2l0Y2gtdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zd2l0Y2gtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zd2l0Y2gtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zd2l0Y2gtY2hlY2tlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fXN3aXRjaC1jaGVja2VkLWJhY2tncm91bmQtY29sb3IpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogY2FsYygjeyRzd2l0Y2gtd2lkdGh9IC0gI3skc3dpdGNoLWhlaWdodH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFyaWEtaW52YWxpZFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJjaGVja2JveFwiXVtyb2xlPVwic3dpdGNoXCJdIHtcbiAgICAmW2FyaWEtaW52YWxpZD1cImZhbHNlXCJdIHtcbiAgICAgICY6Y2hlY2tlZCxcbiAgICAgICY6Y2hlY2tlZDphY3RpdmUsXG4gICAgICAmOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICAgICY6Y2hlY2tlZCxcbiAgICAmOmNoZWNrZWQ6YWN0aXZlLFxuICAgICY6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAmW2FyaWEtaW52YWxpZD1cInRydWVcIl0ge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtYm9yZGVyLWNvbG9yXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0eXBlPVwicmFkaW9cIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3R5cGU9XCJjaGVja2JveFwiXVtyb2xlPVwic3dpdGNoXCJdIHtcbiAgICAmW2FyaWEtaW52YWxpZD1cImZhbHNlXCJdIHtcbiAgICAgICY6Y2hlY2tlZCxcbiAgICAgICY6Y2hlY2tlZDphY3RpdmUsXG4gICAgICAmOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtYm9yZGVyLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpjaGVja2VkLFxuICAgICY6Y2hlY2tlZDphY3RpdmUsXG4gICAgJjpjaGVja2VkOmZvY3VzIHtcbiAgICAgICZbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWJvcmRlci1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCIuLi9zZXR0aW5nc1wiIGFzICo7XG5cbkBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImZvcm1zL2lucHV0LXNlYXJjaFwiKSB7XG4gIC8qKlxuICAgKiBJbnB1dCB0eXBlIHNlYXJjaFxuICAgKi9cblxuICAvLyA6bm90KCkgYXJlIG5lZWRlZCB0byBhZGQgU3BlY2lmaWNpdHkgYW5kIGF2b2lkICFpbXBvcnRhbnQgb24gcGFkZGluZ1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdLCBbdHlwZT1cInJhbmdlXCJdLCBbdHlwZT1cImZpbGVcIl0pIHtcbiAgICAmW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICsgMS43NXJlbSk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aWNvbi1zZWFyY2gpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyXG4gICAgICAgIGxlZnRcbiAgICAgICAgY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKyAwLjEyNXJlbSk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gYXV0bztcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgICAgICZbYXJpYS1pbnZhbGlkXSB7XG4gICAgICAgIEBpZiAkZW5hYmxlLWltcG9ydGFudCB7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKyAxLjc1cmVtXG4gICAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyhcbiAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSArIDEuNzVyZW1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAgICAgY2VudGVyIGxlZnQgMS4xMjVyZW0sXG4gICAgICAgICAgY2VudGVyIHJpZ2h0IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgICZbYXJpYS1pbnZhbGlkPVwiZmFsc2VcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aWNvbi1zZWFyY2gpLCB2YXIoI3skY3NzLXZhci1wcmVmaXh9aWNvbi12YWxpZCk7XG4gICAgICB9XG5cbiAgICAgICZbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1pY29uLXNlYXJjaCksIHZhcigjeyRjc3MtdmFyLXByZWZpeH1pY29uLWludmFsaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkaXI9XCJydGxcIl0ge1xuICAgICN7JHBhcmVudC1zZWxlY3Rvcn0gOndoZXJlKGlucHV0KSB7XG4gICAgICAmOm5vdChbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdLCBbdHlwZT1cInJhbmdlXCJdLCBbdHlwZT1cImZpbGVcIl0pIHtcbiAgICAgICAgJlt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgMS4xMjVyZW07XG5cbiAgICAgICAgICAmW2FyaWEtaW52YWxpZF0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgICAgICAgICAgY2VudGVyIHJpZ2h0IDEuMTI1cmVtLFxuICAgICAgICAgICAgICBjZW50ZXIgbGVmdCAwLjc1cmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2FjY29yZGlvblwiKSB7XG4gIC8qKlxuICAgKiBBY2NvcmRpb24gKDxkZXRhaWxzPilcbiAgICovXG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZyk7XG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICBAaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigjeyRjc3MtdmFyLXByZWZpeH10cmFuc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgJjpub3QoW3JvbGVdKSB7XG4gICAgICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9YWNjb3JkaW9uLWNsb3NlLXN1bW1hcnktY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXNldCBtYXJrZXJcbiAgICAgICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOjptYXJrZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOjotbW96LWxpc3QtYnVsbGV0IHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgfVxuXG4gICAgICAvLyBNYXJrZXJcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fXNwYWNpbmcsIDFyZW0pICogMC41KTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9aWNvbi1jaGV2cm9uKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgY29udGVudDogXCJcIjtcblxuICAgICAgICBAaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigjeyRjc3MtdmFyLXByZWZpeH10cmFuc2l0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAmOm5vdChbcm9sZV0pIHtcbiAgICAgICAgICBjb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWFjY29yZGlvbi1hY3RpdmUtc3VtbWFyeS1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgJjpub3QoW3JvbGVdKSB7XG4gICAgICAgICAgb3V0bGluZTogdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpIHNvbGlkIHZhcigjeyRjc3MtdmFyLXByZWZpeH1wcmltYXJ5LWZvY3VzKTtcbiAgICAgICAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9c3BhY2luZywgMXJlbSkgKiAwLjUpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVHlwZSBidXR0b25cbiAgICAgICZbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIC8vIE1hcmtlclxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDFyZW0gKiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bGluZS1oZWlnaHQsIDEuNSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3BlblxuICAgICZbb3Blbl0ge1xuICAgICAgPiBzdW1tYXJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKCN7JGNzcy12YXItcHJlZml4fXNwYWNpbmcpO1xuXG4gICAgICAgICY6bm90KFtyb2xlXSkge1xuICAgICAgICAgICY6bm90KDpmb2N1cykge1xuICAgICAgICAgICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1hY2NvcmRpb24tb3Blbi1zdW1tYXJ5LWNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBbZGlyPVwicnRsXCJdIHtcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IGRldGFpbHMge1xuICAgICAgc3VtbWFyeSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2NhcmRcIikge1xuICAvKipcbiAgICogQ2FyZCAoPGFydGljbGU+KVxuICAgKi9cblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGFydGljbGUge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKTtcbiAgICBwYWRkaW5nOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy12ZXJ0aWNhbClcbiAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItcmFkaXVzKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y2FyZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y2FyZC1ib3gtc2hhZG93KTtcblxuICAgID4gaGVhZGVyLFxuICAgID4gZm9vdGVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy1ob3Jpem9udGFsKSAqIC0xKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xuICAgICAgcGFkZGluZzogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy12ZXJ0aWNhbCkgKiAwLjY2KVxuICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1jYXJkLXNlY3Rpb25pbmctYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgPiBoZWFkZXIge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy12ZXJ0aWNhbCkgKiAtMSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy12ZXJ0aWNhbCk7XG4gICAgICBib3JkZXItYm90dG9tOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKVxuICAgICAgICBzb2xpZFxuICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Y2FyZC1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItcmFkaXVzKTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICA+IGZvb3RlciB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9YmxvY2stc3BhY2luZy12ZXJ0aWNhbCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1ibG9jay1zcGFjaW5nLXZlcnRpY2FsKSAqIC0xKTtcbiAgICAgIGJvcmRlci10b3A6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGgpXG4gICAgICAgIHNvbGlkXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1jYXJkLWJvcmRlci1jb2xvcik7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKCN7JGNzcy12YXItcHJlZml4fWJvcmRlci1yYWRpdXMpO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKCN7JGNzcy12YXItcHJlZml4fWJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJjb21wb25lbnRzL2Ryb3Bkb3duXCIpIGFuZCAkZW5hYmxlLWNsYXNzZXMge1xuICAvKipcbiAgICogRHJvcGRvd24gKGRldGFpbHMuZHJvcGRvd24pXG4gICAqL1xuXG4gIC8vIENvbnRhaW5lclxuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBkZXRhaWxzLmRyb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgIC8vIE1hcmtlclxuICAgIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuICAgID4gc3VtbWFyeSxcbiAgICA+IGJ1dHRvbixcbiAgICA+IGEge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGhlaWdodDogY2FsYygxcmVtICogdmFyKCN7JGNzcy12YXItcHJlZml4fWxpbmUtaGVpZ2h0LCAxLjUpKTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMC4yNXJlbTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAvLyBUT0RPOiBmaW5kIG91dCB3aHkgd2UgbmVlZCB0aGlzIG1hZ2ljIG51bWJlciAoMC4yIHJlbSlcbiAgICAgICAgLy8gZm9yIHRoZSBtYXJrZXIgdG8gYmUgYWxpZ25lZCB3aXRoIHRoZSByZWd1bGFyIHNlbGVjdFxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVYKDAuMnJlbSk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1pY29uLWNoZXZyb24pO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRhaW5lciB0eXBlIGFjY29yZGlvblxuICAvLyBpbnNpZGUgYSBuYXZcbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gbmF2IGRldGFpbHMuZHJvcGRvd24ge1xuICAgIC8vIE92ZXJyaWRlIGhlaWdodFxuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBCdXR0b24gYXMgYSBzZWxlY3RcbiAgLy8gaW5zaWRlIGNvbnRhaW5lciB0eXBlIGFjY29yZGlvblxuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBkZXRhaWxzLmRyb3Bkb3duID4gc3VtbWFyeTpub3QoW3JvbGVdKSB7XG4gICAgaGVpZ2h0OiBjYWxjKFxuICAgICAgMXJlbSAqXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1saW5lLWhlaWdodCkgK1xuICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpICpcbiAgICAgICAgMiArXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGgpICpcbiAgICAgICAgMlxuICAgICk7XG4gICAgcGFkZGluZzogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKVxuICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgIGJvcmRlcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWJvcmRlci13aWR0aClcbiAgICAgIHNvbGlkXG4gICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCN7JGNzcy12YXItcHJlZml4fWJvcmRlci1yYWRpdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtcGxhY2Vob2xkZXItY29sb3IpO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICBib3JkZXItY29sb3IgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICBjb2xvciB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHJhbnNpdGlvbiksXG4gICAgICAgIGJveC1zaGFkb3cgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiAwXG4gICAgICAgIDBcbiAgICAgICAgMFxuICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aClcbiAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcik7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgZm9jdXMgdmlzaWJsZSBmcm9tIGFjY29yZGlvbiBjb21wb25lbnRcbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBBcmlhLWludmFsaWRcbiAgICAmW2FyaWEtaW52YWxpZD1cImZhbHNlXCJdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3I6IHZhcihcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXZhbGlkLWJvcmRlci1jb2xvclxuICAgICAgKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoXG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC12YWxpZC1mb2N1cy1jb2xvclxuICAgICAgKTtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1mb2N1cy1jb2xvcjogdmFyKFxuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtdmFsaWQtZm9jdXMtY29sb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgJlthcmlhLWludmFsaWQ9XCJ0cnVlXCJdIHtcbiAgICAgICN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1ib3JkZXItY29sb3I6IHZhcihcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtYm9yZGVyLWNvbG9yXG4gICAgICApO1xuICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWFjdGl2ZS1ib3JkZXItY29sb3I6IHZhcihcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtZm9jdXMtY29sb3JcbiAgICAgICk7XG4gICAgICAjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtZm9jdXMtY29sb3I6IHZhcihcbiAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LWludmFsaWQtZm9jdXMtY29sb3JcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJvcGRvd24gaW5zaWRlIGEgbmF2XG4gIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IG5hdiBkZXRhaWxzLmRyb3Bkb3duIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIC0xKSAwO1xuXG4gICAgPiBzdW1tYXJ5IHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlWCgwcmVtKTtcbiAgICAgIH1cblxuICAgICAgJjpub3QoW3JvbGVdKSB7XG4gICAgICAgIC8vIE92ZXJyaWRlIGhlaWdodFxuICAgICAgICBoZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgKDFyZW0gKiB2YXIoI3skY3NzLXZhci1wcmVmaXh9bGluZS1oZWlnaHQpKSArXG4gICAgICAgICAgICAodmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1saW5rLXNwYWNpbmctdmVydGljYWwpICogMilcbiAgICAgICAgKTtcbiAgICAgICAgcGFkZGluZzogY2FsYyhcbiAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsKSAtXG4gICAgICAgICAgICAgICh2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKSAqIDIpXG4gICAgICAgICAgKVxuICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpO1xuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMFxuICAgICAgICAgICAgMFxuICAgICAgICAgICAgMFxuICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW91dGxpbmUtd2lkdGgpXG4gICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1mb2N1cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWJtZW51XG4gIC8vIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk1xuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGRldGFpbHMuZHJvcGRvd24gPiBzdW1tYXJ5ICsgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgei1pbmRleDogOTk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9b3V0bGluZS13aWR0aCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItcmFkaXVzKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9ZHJvcGRvd24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKCN7JGNzcy12YXItcHJlZml4fWRyb3Bkb3duLWJveC1zaGFkb3cpO1xuICAgIGNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9ZHJvcGRvd24tY29sb3IpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3BhY2l0eTogMDtcblxuICAgIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIG9wYWNpdHkgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICB0cmFuc2Zvcm0gMHMgZWFzZS1pbi1vdXQgMXM7XG4gICAgfVxuXG4gICAgJltkaXI9XCJydGxcIl0ge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmc6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIDAuNSlcbiAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fWZvcm0tZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpICogMC41KTtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy12ZXJ0aWNhbCkgKiAwLjUpO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpICogLTAuNSlcbiAgICAgICAgICBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKSAqIC0xKTtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9Zm9ybS1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpICogMC41KVxuICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1mb3JtLWVsZW1lbnQtc3BhY2luZy1ob3Jpem9udGFsKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1jb2xvcik7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJlthcmlhLWN1cnJlbnRdOm5vdChbYXJpYS1jdXJyZW50PVwiZmFsc2VcIl0pIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9ZHJvcGRvd24taG92ZXItYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGFiZWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLy8gTm90IHdvcmtpbmcgaW4gRmlyZWZveCwgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHRoZSBgOmhhcygpYCBwc2V1ZG8tY2xhc3NcbiAgICAgICY6aGFzKGxhYmVsKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1kcm9wZG93bi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBCdXR0b24gb3BlbmVkXG4gIC8vIGluc2lkZSBjb250YWluZXIgdHlwZSBhY2NvcmRpb25cbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gZGV0YWlscy5kcm9wZG93bltvcGVuXSA+IHN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvLyBNZW51IG9wZW5lZFxuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcbiAgLy8gMS4gSW5zaWRlIGNvbnRhaW5lciB0eXBlIGFjY29yZGlvblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGRldGFpbHMuZHJvcGRvd25bb3Blbl0gPiBzdW1tYXJ5IHtcbiAgICArIHVsIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgQGlmICRlbmFibGUtdHJhbnNpdGlvbnMge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgdmFyKCN7JGNzcy12YXItcHJlZml4fXRyYW5zaXRpb24pLFxuICAgICAgICAgIHRyYW5zZm9ybSAwcyBlYXNlLWluLW91dCAwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDbG9zZSBmb3IgZHJvcGRvd25cbiAgLy8gaW5zaWRlIGNvbnRhaW5lciB0eXBlIGFjY29yZGlvblxuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBkZXRhaWxzLmRyb3Bkb3duW29wZW5dID4gc3VtbWFyeSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBpbnNldDogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuICAvLyBMYWJlbFxuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBsYWJlbCA+IGRldGFpbHMuZHJvcGRvd24ge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fXNwYWNpbmcpICogMC4yNSk7XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwiY29tcG9uZW50cy9ncm91cFwiKSB7XG4gIC8qKlxuICAgKiBHcm91cCAoW3JvbGU9XCJncm91cFwiXSwgW3JvbGU9XCJzZWFyY2hcIl0pXG4gICAqL1xuXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3JvbGU9XCJzZWFyY2hcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW3JvbGU9XCJncm91cFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigjeyRjc3MtdmFyLXByZWZpeH1zcGFjaW5nKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXJhZGl1cyk7XG4gICAgYm94LXNoYWRvdzogdmFyKCN7JGNzcy12YXItcHJlZml4fWdyb3VwLWJveC1zaGFkb3csIDAgMCAwIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoI3skY3NzLXZhci1wcmVmaXh9dHJhbnNpdGlvbik7XG5cbiAgICA+ICosXG4gICAgaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0sIFt0eXBlPVwicmFkaW9cIl0pLFxuICAgIHNlbGVjdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgIH1cblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbcm9sZT1cImJ1dHRvblwiXSxcbiAgICBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSksXG4gICAgc2VsZWN0IHtcbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKSAqIC0xKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgc2VsZWN0b3IoOmhhcygqKSkge1xuICAgICAgLy8gR3JvdXAgYm94IHNoYWRvdyB3aGVuIGEgYnV0dG9uIGlzIGZvY3VzZWRcbiAgICAgICY6aGFzKGJ1dHRvbjpmb2N1cywgW3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsIFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLCBbcm9sZT1cImJ1dHRvblwiXTpmb2N1cykge1xuICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ncm91cC1ib3gtc2hhZG93OiB2YXIoXG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9Z3JvdXAtYm94LXNoYWRvdy1mb2N1cy13aXRoLWJ1dHRvblxuICAgICAgICApO1xuXG4gICAgICAgIGlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdLCBbdHlwZT1cInJhZGlvXCJdKSxcbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwIGJveCBzaGFkb3cgd2hlbiBhbiBpbnB1dCBpcyBmb2N1c2VkXG4gICAgICAmOmhhcyhpbnB1dDpub3QoW3R5cGU9XCJzdWJtaXRcIl0sIFt0eXBlPVwiYnV0dG9uXCJdKTpmb2N1cywgc2VsZWN0OmZvY3VzKSB7XG4gICAgICAgICN7JGNzcy12YXItcHJlZml4fWdyb3VwLWJveC1zaGFkb3c6IHZhcihcbiAgICAgICAgICAjeyRjc3MtdmFyLXByZWZpeH1ncm91cC1ib3gtc2hhZG93LWZvY3VzLXdpdGgtaW5wdXRcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGFwdCBib3ggc2hhZG93IGZvciBidXR0b25zXG4gICAgICAgIGJ1dHRvbixcbiAgICAgICAgW3R5cGU9XCJzdWJtaXRcIl0sXG4gICAgICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgICAgICBbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgICAgI3skY3NzLXZhci1wcmVmaXh9YnV0dG9uLWJveC1zaGFkb3c6IDAgMCAwIHZhcigjeyRjc3MtdmFyLXByZWZpeH1ib3JkZXItd2lkdGgpXG4gICAgICAgICAgICB2YXIoI3skY3NzLXZhci1wcmVmaXh9cHJpbWFyeS1ib3JkZXIpO1xuICAgICAgICAgICN7JGNzcy12YXItcHJlZml4fWJ1dHRvbi1ob3Zlci1ib3gtc2hhZG93OiAwIDAgMCB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKVxuICAgICAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fXByaW1hcnktaG92ZXItYm9yZGVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgYnV0dG9uIGJveCBzaGFkb3cgaWYgd2UgaGF2ZSBhIGdyb3VwIGJveCBzaGFkb3dcbiAgICAgIGJ1dHRvbixcbiAgICAgIFt0eXBlPVwic3VibWl0XCJdLFxuICAgICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgICAgW3JvbGU9XCJidXR0b25cIl0ge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbcm9sZT1cInNlYXJjaFwiXSB7XG4gICAgPiAqIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cmVtO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCIuLi9zZXR0aW5nc1wiIGFzICo7XG5cbkBpZiBtYXAuZ2V0KCRtb2R1bGVzLCBcImNvbXBvbmVudHMvbmF2XCIpIHtcbiAgLyoqXG4gICAqIE5hdlxuICAgKi9cblxuICAvLyBSZWJvb3QgYmFzZWQgb24gOlxuICAvLyAtIHNhbml0aXplLmNzcyB2MTMuMC4wIHwgQ0MwIDEuMCBVbml2ZXJzYWwgfCBnaXRodWIuY29tL2Nzc3Rvb2xzL3Nhbml0aXplLmNzc1xuXG4gIC8vIFByZXZlbnQgVm9pY2VPdmVyIGZyb20gaWdub3JpbmcgbGlzdCBzZW1hbnRpY3MgaW4gU2FmYXJpIChvcGluaW9uYXRlZClcbiAgOndoZXJlKG5hdiBsaSk6OmJlZm9yZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY29udGVudDogXCJcXDIwMEJcIjtcbiAgfVxuXG4gIC8vIFBpY29cbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBuYXYsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gbmF2IHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBuYXYge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIG9sLFxuICAgIHVsIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xuICAgICAgfVxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCkgKiAtMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogdmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1lbGVtZW50LXNwYWNpbmctdmVydGljYWwpXG4gICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtZWxlbWVudC1zcGFjaW5nLWhvcml6b250YWwpO1xuXG4gICAgICA6d2hlcmUoYSwgW3JvbGU9XCJsaW5rXCJdKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsKSAqIC0xKVxuICAgICAgICAgIGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1saW5rLXNwYWNpbmctaG9yaXpvbnRhbCkgKiAtMSk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsKVxuICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgJjpub3QoOmhvdmVyKSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE1pbmltYWwgc3VwcG9ydCBmb3IgYnV0dG9ucyBhbmQgZm9ybXMgZWxlbWVudHNcbiAgICAgIGJ1dHRvbixcbiAgICAgIFtyb2xlPVwiYnV0dG9uXCJdLFxuICAgICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgICBpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSwgW3R5cGU9XCJyYWRpb1wiXSwgW3R5cGU9XCJyYW5nZVwiXSwgW3R5cGU9XCJmaWxlXCJdKSxcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogY2FsYyhcbiAgICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLXZlcnRpY2FsKSAtXG4gICAgICAgICAgICAgICh2YXIoI3skY3NzLXZhci1wcmVmaXh9Ym9yZGVyLXdpZHRoKSAqIDIpXG4gICAgICAgICAgKVxuICAgICAgICAgIHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJyZWFkY3J1bWJcbiAgICAmW2FyaWEtbGFiZWw9XCJicmVhZGNydW1iXCJdIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuXG4gICAgICAmIHVsIGxpIHtcbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1saW5rLXNwYWNpbmctaG9yaXpvbnRhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBtYXJnaW46IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1saW5rLXNwYWNpbmctdmVydGljYWwpICogLTEpIDA7XG4gICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogY2FsYyh2YXIoI3skY3NzLXZhci1wcmVmaXh9bmF2LWxpbmstc3BhY2luZy1ob3Jpem9udGFsKSAqIC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1saW5rLXNwYWNpbmctaG9yaXpvbnRhbCkgKiA0KTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtbGluay1zcGFjaW5nLWhvcml6b250YWwpICogLTEpO1xuICAgICAgICAgICAgY29udGVudDogdmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1icmVhZGNydW1iLWRpdmlkZXIpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigjeyRjc3MtdmFyLXByZWZpeH1tdXRlZC1jb2xvcik7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBNaW5pbWFsIHN1cHBvcnQgZm9yIGFyaWEtY3VycmVudFxuICAgICAgJiBhW2FyaWEtY3VycmVudF06bm90KFthcmlhLWN1cnJlbnQ9XCJmYWxzZVwiXSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgTmF2XG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYXNpZGUge1xuICAgIG5hdixcbiAgICBvbCxcbiAgICB1bCxcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigjeyRjc3MtdmFyLXByZWZpeH1uYXYtZWxlbWVudC1zcGFjaW5nLXZlcnRpY2FsKSAqIDAuNSlcbiAgICAgICAgdmFyKCN7JGNzcy12YXItcHJlZml4fW5hdi1lbGVtZW50LXNwYWNpbmctaG9yaXpvbnRhbCk7XG5cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLy8gTWluaW1hbCBzdXBwb3J0IGZvciBsaW5rcyBhcyBidXR0b25zXG4gICAgICBbcm9sZT1cImJ1dHRvblwiXSB7XG4gICAgICAgIG1hcmdpbjogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBCcmVhZGNydW1iIFJUTFxuICBbZGlyPVwicnRsXCJdIHtcbiAgICAjeyRwYXJlbnQtc2VsZWN0b3J9IG5hdiB7XG4gICAgICAmW2FyaWEtbGFiZWw9XCJicmVhZGNydW1iXCJdIHtcbiAgICAgICAgJiB1bCBsaSB7XG4gICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIDo6YWZ0ZXIge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlxcXFxcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcIi4uL3NldHRpbmdzXCIgYXMgKjtcblxuQGlmIG1hcC5nZXQoJG1vZHVsZXMsIFwidXRpbGl0aWVzL2FjY2Vzc2liaWxpdHlcIikge1xuICAvKipcbiAgICogQWNjZXNzaWJpbGl0eSAmIFVzZXIgaW50ZXJhY3Rpb25cbiAgICovXG5cbiAgLy8gQmFzZWQgb24gOlxuICAvLyAtIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzc1xuICAvLyAtIHNhbml0aXplLmNzcyB2MTMuMC4wIHwgQ0MwIDEuMCBVbml2ZXJzYWwgfCBnaXRodWIuY29tL2Nzc3Rvb2xzL3Nhbml0aXplLmNzc1xuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcblxuICAvLyBBY2Nlc3NpYmlsaXR5XG5cbiAgLy8gQ2hhbmdlIHRoZSBjdXJzb3Igb24gY29udHJvbCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFthcmlhLWNvbnRyb2xzXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSBjdXJzb3Igb24gZGlzYWJsZWQsIG5vdC1lZGl0YWJsZSwgb3Igb3RoZXJ3aXNlIGlub3BlcmFibGUgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZClcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0sXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgZGlzcGxheSBvbiB2aXN1YWxseSBoaWRkZW4gYWNjZXNzaWJsZSBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKVxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFthcmlhLWhpZGRlbj1cImZhbHNlXCJdW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IGluaXRpYWw7XG4gIH1cblxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFthcmlhLWhpZGRlbj1cImZhbHNlXCJdW2hpZGRlbl06bm90KDpmb2N1cykge1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLy8gVXNlciBpbnRlcmFjdGlvblxuICAvLyBSZW1vdmUgdGhlIHRhcHBpbmcgZGVsYXkgaW4gSUUgMTBcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBhLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGFyZWEsXG4gICN7JHBhcmVudC1zZWxlY3Rvcn0gYnV0dG9uLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGlucHV0LFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IGxhYmVsLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHNlbGVjdCxcbiAgI3skcGFyZW50LXNlbGVjdG9yfSBzdW1tYXJ5LFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IHRleHRhcmVhLFxuICAjeyRwYXJlbnQtc2VsZWN0b3J9IFt0YWJpbmRleF0ge1xuICAgIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgfVxuXG4gIC8vIFBpY29cbiAgLy8g4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTXG5cbiAgI3skcGFyZW50LXNlbGVjdG9yfSBbZGlyPVwicnRsXCJdIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiLi4vc2V0dGluZ3NcIiBhcyAqO1xuXG5AaWYgbWFwLmdldCgkbW9kdWxlcywgXCJ1dGlsaXRpZXMvcmVkdWNlLW1vdGlvblwiKSBhbmQgZW5hYmxlLXRyYW5zaXRpb25zIGFuZCBlbmFibGUtaW1wb3J0YW50IHtcbiAgLyoqXG4gICAqIFJlZHVjZSBNb3Rpb24gRmVhdHVyZXNcbiAgICovXG5cbiAgLy8gQmFzZWQgb24gOlxuICAvLyAtIHNhbml0aXplLmNzcyB2MTMuMC4wIHwgQ0MwIDEuMCBVbml2ZXJzYWwgfCBnaXRodWIuY29tL2Nzc3Rvb2xzL3Nhbml0aXplLmNzc1xuICAvLyDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJNcblxuICAvLyAxLiBSZW1vdmUgYW5pbWF0aW9ucyB3aGVuIG1vdGlvbiBpcyByZWR1Y2VkIChvcGluaW9uYXRlZClcbiAgLy8gMi4gUmVtb3ZlIGZpeGVkIGJhY2tncm91bmQgYXR0YWNobWVudHMgd2hlbiBtb3Rpb24gaXMgcmVkdWNlZCAob3BpbmlvbmF0ZWQpXG4gIC8vIDMuIFJlbW92ZSB0aW1lZCBzY3JvbGxpbmcgYmVoYXZpb3JzIHdoZW4gbW90aW9uIGlzIHJlZHVjZWQgKG9waW5pb25hdGVkKVxuICAvLyA0LiBSZW1vdmUgdHJhbnNpdGlvbnMgd2hlbiBtb3Rpb24gaXMgcmVkdWNlZCAob3BpbmlvbmF0ZWQpXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgI3skcGFyZW50LXNlbGVjdG9yfSAqOm5vdChbYXJpYS1idXN5PVwidHJ1ZVwiXSksXG4gICAgI3skcGFyZW50LXNlbGVjdG9yfSA6bm90KFthcmlhLWJ1c3k9XCJ0cnVlXCJdKTo6YmVmb3JlLFxuICAgICN7JHBhcmVudC1zZWxlY3Rvcn0gOm5vdChbYXJpYS1idXN5PVwidHJ1ZVwiXSk6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogaW5pdGlhbCAhaW1wb3J0YW50OyAvLyAyXG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDFtcyAhaW1wb3J0YW50OyAvLyAxXG4gICAgICBhbmltYXRpb24tZGVsYXk6IC0xbXMgIWltcG9ydGFudDsgLy8gMVxuICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50OyAvLyAxXG4gICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDsgLy8gM1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDsgLy8gNFxuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHMgIWltcG9ydGFudDsgLy8gNFxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnY29uZmlncy92YXJpYWJsZXMnIGFzICo7XG5cbi8vIFRlbWEgU29saXRvXG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdLFxuOnJvb3Q6bm90KFtkYXRhLXRoZW1lPVwiZGFya1wiXSkge1xuXG4gIC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tdC1iYWNrZ3JvdW5kLWNvbG9yLCAjeyRtdC1iYWNrZ3JvdW5kLWNvbG9yfSk7XG4gIC0tcGljby1jb2xvcjogdmFyKC0tbXQtY29sb3IsICN7JG10LWNvbG9yfSk7XG4gIC0tcGljby10ZXh0LXNlbGVjdGlvbi1jb2xvcjogcmdiYSgyLCAxNTQsIDIzMiwgMC4yNSk7XG5cbiAgLS1waWNvLW11dGVkLWNvbG9yOiAjNjQ2Yjc5O1xuICAtLXBpY28tbXV0ZWQtYm9yZGVyLWNvbG9yOiByZ2IoMjMxLCAyMzQsIDIzOS41KTtcblxuICAtLXBpY28tcHJpbWFyeTogdmFyKC0tbXQtcHJpbWFyeS1jb2xvciwgI3skbXQtcHJpbWFyeS1jb2xvcn0pO1xuICAtLXBpY28tcHJpbWFyeS1iYWNrZ3JvdW5kOiB2YXIoLS1tdC1wcmltYXJ5LWNvbG9yLCAjeyRtdC1wcmltYXJ5LWNvbG9yfSk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLW10LXByaW1hcnktY29sb3ItZGFya2VuLCAjeyRtdC1wcmltYXJ5LWNvbG9yLWRhcmtlbn0pO1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci11bmRlcmxpbmU6IHZhcigtLW10LXByaW1hcnktY29sb3IsICN7JG10LXByaW1hcnktY29sb3J9KTtcbiAgLS1waWNvLXByaW1hcnktYm9yZGVyOiB2YXIoLS1tdC1wcmltYXJ5LWNvbG9yLCAjeyRtdC1wcmltYXJ5LWNvbG9yfSk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyOiB2YXIoLS1tdC1wcmltYXJ5LWNvbG9yLWRhcmtlbiwgI3skbXQtcHJpbWFyeS1jb2xvci1kYXJrZW59KTtcbiAgLS1waWNvLXByaW1hcnktdW5kZXJsaW5lOiB2YXIoLS1tdC1wcmltYXJ5LWNvbG9yLWxpZ2h0ZW4sICN7JG10LXByaW1hcnktY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tcHJpbWFyeS1mb2N1czogdmFyKC0tbXQtcHJpbWFyeS1jb2xvci1saWdodGVuLCAjeyRtdC1wcmltYXJ5LWNvbG9yLWxpZ2h0ZW59KTtcbiAgLS1waWNvLXByaW1hcnktaW52ZXJzZTogdmFyKC0tbXQtcHJpbWFyeS1pbnZlcnNlLWNvbG9yLCAjeyRtdC1wcmltYXJ5LWludmVyc2UtY29sb3J9KTtcblxuICAtLXBpY28tc2Vjb25kYXJ5OiB2YXIoLS1tdC1zZWNvbmRhcnktY29sb3IsICN7JG10LXNlY29uZGFyeS1jb2xvcn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LWJhY2tncm91bmQ6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvciwgI3skbXQtc2Vjb25kYXJ5LWNvbG9yfSk7XG4gIC0tcGljby1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogdmFyKC0tbXQtc2Vjb25kYXJ5LWNvbG9yLWRhcmtlbiwgI3skbXQtc2Vjb25kYXJ5LWNvbG9yLWRhcmtlbn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLXVuZGVybGluZTogdmFyKC0tbXQtc2Vjb25kYXJ5LWNvbG9yLCAjeyRtdC1zZWNvbmRhcnktY29sb3J9KTtcbiAgLS1waWNvLXNlY29uZGFyeS1ib3JkZXI6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvciwgI3skbXQtc2Vjb25kYXJ5LWNvbG9yfSk7XG4gIC0tcGljby1zZWNvbmRhcnktaG92ZXI6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvci1kYXJrZW4sICN7JG10LXNlY29uZGFyeS1jb2xvci1kYXJrZW59KTtcbiAgLS1waWNvLXNlY29uZGFyeS11bmRlcmxpbmU6IHZhcigtLW10LXNlY29uZGFyeS1jb2xvci1saWdodGVuLCAjeyRtdC1zZWNvbmRhcnktY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LWZvY3VzOiB2YXIoLS1tdC1zZWNvbmRhcnktY29sb3ItbGlnaHRlbiwgI3skbXQtc2Vjb25kYXJ5LWNvbG9yLWxpZ2h0ZW59KTtcbiAgLS1waWNvLXNlY29uZGFyeS1pbnZlcnNlOiB2YXIoLS1tdC1zZWNvbmRhcnktaW52ZXJzZS1jb2xvciwgI3skbXQtc2Vjb25kYXJ5LWludmVyc2UtY29sb3J9KTtcblxuICAtLXBpY28tY29udHJhc3Q6IHZhcigtLW10LWNvbnRyYXN0LWNvbG9yLCAjeyRtdC1jb250cmFzdC1jb2xvcn0pO1xuICAtLXBpY28tY29udHJhc3QtYmFja2dyb3VuZDogdmFyKC0tbXQtY29udHJhc3QtY29sb3IsICN7JG10LWNvbnRyYXN0LWNvbG9yfSk7XG4gIC0tcGljby1jb250cmFzdC1ob3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1tdC1jb250cmFzdC1jb2xvci1kYXJrZW4sICN7JG10LWNvbnRyYXN0LWNvbG9yLWRhcmtlbn0pO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1tdC1jb250cmFzdC1jb2xvciwgI3skbXQtY29udHJhc3QtY29sb3J9KTtcbiAgLS1waWNvLWNvbnRyYXN0LWJvcmRlcjogdmFyKC0tbXQtY29udHJhc3QtY29sb3IsICN7JG10LWNvbnRyYXN0LWNvbG9yfSk7XG4gIC0tcGljby1jb250cmFzdC1ob3ZlcjogdmFyKC0tbXQtY29udHJhc3QtY29sb3ItZGFya2VuLCAjeyRtdC1jb250cmFzdC1jb2xvci1kYXJrZW59KTtcbiAgLS1waWNvLWNvbnRyYXN0LXVuZGVybGluZTogdmFyKC0tbXQtY29udHJhc3QtY29sb3ItbGlnaHRlbiwgI3skbXQtY29udHJhc3QtY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tY29udHJhc3QtZm9jdXM6IHZhcigtLW10LWNvbnRyYXN0LWNvbG9yLWxpZ2h0ZW4sICN7JG10LWNvbnRyYXN0LWNvbG9yLWxpZ2h0ZW59KTtcbiAgLS1waWNvLWNvbnRyYXN0LWludmVyc2U6IHZhcigtLW10LWNvbnRyYXN0LWludmVyc2UtY29sb3IsICN7JG10LWNvbnRyYXN0LWludmVyc2UtY29sb3J9KTtcblxuICAtLXBpY28tZm9udC1mYW1pbHk6IHZhcigtLW10LWZvbnQtZmFtaWx5LCAjeyRtdC1mb250LWZhbWlseX0pO1xuICAtLXBpY28tZm9udC1zaXplOiB2YXIoLS1tdC1mb250LXNpemUsICN7JG10LWZvbnQtc2l6ZX0pO1xuICAtLXBpY28tbGluZS1oZWlnaHQ6IHZhcigtLW10LWxpbmUtaGVpZ2h0LCAjeyRtdC1saW5lLWhlaWdodH0pO1xuICAtLXBpY28tZm9udC13ZWlnaHQ6IHZhcigtLW10LWZvbnQtd2VpZ2h0LCAjeyRtdC1mb250LXdlaWdodH0pO1xuICAtLXBpY28taGVhZGluZy1mb250LXdlaWdodDogdmFyKC0tbXQtaGVhZGluZy1mb250LXdlaWdodCwgI3skbXQtaGVhZGluZy1mb250LXdlaWdodH0pO1xuICAtLXBpY28tbGV0dGVyLXNwYWNpbmc6IHZhcigtLW10LWxldHRlci1zcGFjaW5nLCAjeyRtdC1sZXR0ZXItc3BhY2luZ30pO1xuXG4gIC0tcGljby1ibG9jay1zcGFjaW5nLXZlcnRpY2FsOiAxLjVyZW07XG5cbn1cblxuLy8gVGVtYSBEYXJrXG5bZGF0YS10aGVtZT1cImRhcmtcIl0sXG46cm9vdFtkYXRhLXRoZW1lPVwiZGFya1wiXSB7XG5cblxuICAtLXBpY28tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbXQtdGRhcmstYmFja2dyb3VuZC1jb2xvciwgI3skbXQtdGRhcmstYmFja2dyb3VuZC1jb2xvcn0pO1xuICAtLXBpY28tY29sb3I6IHZhcigtLW10LXRkYXJrLWNvbG9yLCAjeyRtdC10ZGFyay1jb2xvcn0pO1xuICAtLXBpY28tdGV4dC1zZWxlY3Rpb24tY29sb3I6IHJnYmEoMiwgMTU0LCAyMzIsIDAuMjUpO1xuXG4gIC0tcGljby1tdXRlZC1jb2xvcjogIzY0NmI3OTtcbiAgLS1waWNvLW11dGVkLWJvcmRlci1jb2xvcjogcmdiKDIzMSwgMjM0LCAyMzkuNSk7XG5cbiAgLS1waWNvLXByaW1hcnk6IHZhcigtLW10LXRkYXJrLXByaW1hcnktY29sb3IsICN7JG10LXRkYXJrLXByaW1hcnktY29sb3J9KTtcbiAgLS1waWNvLXByaW1hcnktYmFja2dyb3VuZDogdmFyKC0tbXQtdGRhcmstcHJpbWFyeS1jb2xvciwgI3skbXQtdGRhcmstcHJpbWFyeS1jb2xvcn0pO1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLWxpZ2h0ZW4sICN7JG10LXRkYXJrLXByaW1hcnktY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tcHJpbWFyeS1ob3Zlci11bmRlcmxpbmU6IHZhcigtLW10LXRkYXJrLXByaW1hcnktY29sb3IsICN7JG10LXRkYXJrLXByaW1hcnktY29sb3J9KTtcbiAgLS1waWNvLXByaW1hcnktYm9yZGVyOiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLCAjeyRtdC10ZGFyay1wcmltYXJ5LWNvbG9yfSk7XG4gIC0tcGljby1wcmltYXJ5LWhvdmVyOiB2YXIoLS1tdC10ZGFyay1wcmltYXJ5LWNvbG9yLWxpZ2h0ZW4sICN7JG10LXRkYXJrLXByaW1hcnktY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tcHJpbWFyeS11bmRlcmxpbmU6IHZhcigtLW10LXRkYXJrLXByaW1hcnktY29sb3ItZGFya2VuLCAjeyRtdC10ZGFyay1wcmltYXJ5LWNvbG9yLWRhcmtlbn0pO1xuICAtLXBpY28tcHJpbWFyeS1mb2N1czogdmFyKC0tbXQtdGRhcmstcHJpbWFyeS1jb2xvci1kYXJrZW4sICN7JG10LXRkYXJrLXByaW1hcnktY29sb3ItZGFya2VufSk7XG4gIC0tcGljby1wcmltYXJ5LWludmVyc2U6IHZhcigtLW10LXRkYXJrLXByaW1hcnktaW52ZXJzZS1jb2xvciwgI3skbXQtdGRhcmstcHJpbWFyeS1pbnZlcnNlLWNvbG9yfSk7XG5cbiAgLS1waWNvLXNlY29uZGFyeTogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLCAjeyRtdC10ZGFyay1zZWNvbmRhcnktY29sb3J9KTtcbiAgLS1waWNvLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiB2YXIoLS1tdC10ZGFyay1zZWNvbmRhcnktY29sb3IsICN7JG10LXRkYXJrLXNlY29uZGFyeS1jb2xvcn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLW10LXRkYXJrLXNlY29uZGFyeS1jb2xvci1saWdodGVuLCAjeyRtdC10ZGFyay1zZWNvbmRhcnktY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LWhvdmVyLXVuZGVybGluZTogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLCAjeyRtdC10ZGFyay1zZWNvbmRhcnktY29sb3J9KTtcbiAgLS1waWNvLXNlY29uZGFyeS1ib3JkZXI6IHZhcigtLW10LXRkYXJrLXNlY29uZGFyeS1jb2xvciwgI3skbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yfSk7XG4gIC0tcGljby1zZWNvbmRhcnktaG92ZXI6IHZhcigtLW10LXRkYXJrLXNlY29uZGFyeS1jb2xvci1saWdodGVuLCAjeyRtdC10ZGFyay1zZWNvbmRhcnktY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LXVuZGVybGluZTogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLWRhcmtlbiwgI3skbXQtdGRhcmstc2Vjb25kYXJ5LWNvbG9yLWRhcmtlbn0pO1xuICAtLXBpY28tc2Vjb25kYXJ5LWZvY3VzOiB2YXIoLS1tdC10ZGFyay1zZWNvbmRhcnktY29sb3ItZGFya2VuLCAjeyRtdC10ZGFyay1zZWNvbmRhcnktY29sb3ItZGFya2VufSk7XG4gIC0tcGljby1zZWNvbmRhcnktaW52ZXJzZTogdmFyKC0tbXQtdGRhcmstc2Vjb25kYXJ5LWludmVyc2UtY29sb3IsICN7JG10LXRkYXJrLXNlY29uZGFyeS1pbnZlcnNlLWNvbG9yfSk7XG5cbiAgLS1waWNvLWNvbnRyYXN0OiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1jb2xvciwgI3skbXQtdGRhcmstY29udHJhc3QtY29sb3J9KTtcbiAgLS1waWNvLWNvbnRyYXN0LWJhY2tncm91bmQ6IHZhcigtLW10LXRkYXJrLWNvbnRyYXN0LWNvbG9yLCAjeyRtdC10ZGFyay1jb250cmFzdC1jb2xvcn0pO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tbXQtdGRhcmstY29udHJhc3QtY29sb3ItbGlnaHRlbiwgI3skbXQtdGRhcmstY29udHJhc3QtY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tY29udHJhc3QtaG92ZXItdW5kZXJsaW5lOiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1jb2xvciwgI3skbXQtdGRhcmstY29udHJhc3QtY29sb3J9KTtcbiAgLS1waWNvLWNvbnRyYXN0LWJvcmRlcjogdmFyKC0tbXQtdGRhcmstY29udHJhc3QtY29sb3IsICN7JG10LXRkYXJrLWNvbnRyYXN0LWNvbG9yfSk7XG4gIC0tcGljby1jb250cmFzdC1ob3ZlcjogdmFyKC0tbXQtdGRhcmstY29udHJhc3QtY29sb3ItbGlnaHRlbiwgI3skbXQtdGRhcmstY29udHJhc3QtY29sb3ItbGlnaHRlbn0pO1xuICAtLXBpY28tY29udHJhc3QtdW5kZXJsaW5lOiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1jb2xvci1kYXJrZW4sICN7JG10LXRkYXJrLWNvbnRyYXN0LWNvbG9yLWRhcmtlbn0pO1xuICAtLXBpY28tY29udHJhc3QtZm9jdXM6IHZhcigtLW10LXRkYXJrLWNvbnRyYXN0LWNvbG9yLWRhcmtlbiwgI3skbXQtdGRhcmstY29udHJhc3QtY29sb3ItZGFya2VufSk7XG4gIC0tcGljby1jb250cmFzdC1pbnZlcnNlOiB2YXIoLS1tdC10ZGFyay1jb250cmFzdC1pbnZlcnNlLWNvbG9yLCAjeyRtdC10ZGFyay1jb250cmFzdC1pbnZlcnNlLWNvbG9yfSk7XG5cbiAgLS1waWNvLWZvbnQtZmFtaWx5OiB2YXIoLS1tdC1mb250LWZhbWlseSwgI3skbXQtZm9udC1mYW1pbHl9KTtcbiAgLS1waWNvLWZvbnQtc2l6ZTogdmFyKC0tbXQtZm9udC1zaXplLCAjeyRtdC1mb250LXNpemV9KTtcbiAgLS1waWNvLWxpbmUtaGVpZ2h0OiB2YXIoLS1tdC1saW5lLWhlaWdodCwgI3skbXQtbGluZS1oZWlnaHR9KTtcbiAgLS1waWNvLWZvbnQtd2VpZ2h0OiB2YXIoLS1tdC1mb250LXdlaWdodCwgI3skbXQtZm9udC13ZWlnaHR9KTtcbiAgLS1waWNvLWhlYWRpbmctZm9udC13ZWlnaHQ6IHZhcigtLW10LWhlYWRpbmctZm9udC13ZWlnaHQsICN7JG10LWhlYWRpbmctZm9udC13ZWlnaHR9KTtcbiAgLS1waWNvLWxldHRlci1zcGFjaW5nOiB2YXIoLS1tdC1sZXR0ZXItc3BhY2luZywgI3skbXQtbGV0dGVyLXNwYWNpbmd9KTtcblxuICAtLXBpY28tYmxvY2stc3BhY2luZy12ZXJ0aWNhbDogMS41cmVtO1xuXG59XG5cbiIsIkB1c2UgJ2NvbmZpZ3MvdmFyaWFibGVzJyBhcyAqO1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tdC1oZWFkaW5nLWZvbnQtZmFtaWx5LCAjeyRtdC1oZWFkaW5nLWZvbnQtZmFtaWx5fSk7XG59XG5cbnVsIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xufVxuXG5ibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn0iLCJodG1sIHtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIGJvZHkge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0td3AtYWRtaW4tLWFkbWluLWJhci0taGVpZ2h0LCAwcHgpO1xuICAgICAgICA+LnNpdGUtaGVhZGVyLFxuICAgICAgICA+LmhlYWRlci1uYXYtbWVudSxcbiAgICAgICAgPi5tYWluLWdyaWQsXG4gICAgICAgID4uc2l0ZS1mb290ZXIsXG4gICAgICAgID4ucGFnZS1pbnRybyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgICAgIC0xcHggMCAwIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpLFxuICAgICAgICAgICAgICAgIDFweCAwIDAgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxvZ28tbGlnaHQsXG4ubG9nby1saWdodC1hbmQtZGFyayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5sb2dvLWRhcmsge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAubG9nby1saWdodCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5sb2dvLWRhcmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udmlzdWFsbHktaGlkZGVuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4uYnJpZCAqW3JvbGU9XCJidXR0b25cIl0sXG4uYnJpZC1jbG9zZSAqW3JvbGU9XCJidXR0b25cIl0ge1xuICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgYm9yZGVyOiBpbml0aWFsO1xufVxuXG4uYnJpZCAqW3JvbGU9XCJidXR0b25cIl06Zm9jdXMsXG4uYnJpZC1jbG9zZSAqW3JvbGU9XCJidXR0b25cIl06Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn0iLCJAdXNlICcuLi8uLi9ub2RlX21vZHVsZXMvQHBpY29jc3MvcGljby9zY3NzL19zZXR0aW5ncy5zY3NzJyBhcyBwaWNvLXNldHRpbmdzO1xuQHVzZSAnc2FzczptYXAnO1xuXG5AbWl4aW4gbWVkaWFfbWluX3dpZHRoKCRzaXplKSB7XG4gIEBpZiBtYXAuaGFzLWtleShwaWNvLXNldHRpbmdzLiRicmVha3BvaW50cywgJHNpemUpIHtcbiAgICAkYnA6IG1hcC5nZXQobWFwLmdldChwaWNvLXNldHRpbmdzLiRicmVha3BvaW50cywgJHNpemUpLCAnYnJlYWtwb2ludCcpO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnApIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCLimqDvuI8gQnJlYWtwb2ludCBgI3skc2l6ZX1gIG5vbiB0cm92YXRvIGluIFBpY28uXCI7XG4gIH1cbn1cbiIsIkB1c2UgJ2NvbmZpZ3MvdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbWl4aW5zL19tZWRpYV9taW5fd2lkdGgnIGFzICo7XG5cblxuYm9keS5ob21lIHtcbiAgICA+LnNpdGUtaGVhZGVyOm5vdCguaXMtc3RpY2t5KSB7XG4gICAgICAgIC5oZWFkZXItY2VudGVyPmEge1xuXG4gICAgICAgICAgICAubG9nby1saWdodCxcbiAgICAgICAgICAgIC5sb2dvLWxpZ2h0LWFuZC1kYXJrLFxuICAgICAgICAgICAgLmxvZ28tZGFyayB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKHNtKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBcblxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbmJvZHk+LnNpdGUtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnktaW52ZXJzZSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgaGVpZ2h0OiAkbXQtc2l0ZS1oZWFkZXItaGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCk7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCk7XG4gICAgei1pbmRleDogJG10LXppbmRleC1oZWFkZXI7XG5cbiAgICAmLmlzLXN0aWNreSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiB2YXIoLS13cC1hZG1pbi0tYWRtaW4tYmFyLS1oZWlnaHQsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cblxuICAgIC5oZWFkZXItbGVmdCxcbiAgICAuaGVhZGVyLXJpZ2h0IHtcbiAgICAgICAgd2lkdGg6ICRtdC1zaXRlLWhlYWRlci1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5tZW51LXRvZ2dsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICAuaGVhZGVyLWNlbnRlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID5hPmltZyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgPmEgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcGljby1wcmltYXJ5LWludmVyc2UpO1xuICAgICAgICB9XG4gICAgfVxufSIsIkB1c2UgJ21peGlucy9fbWVkaWFfbWluX3dpZHRoJyBhcyAqO1xuXG5ib2R5ID4gLnNpdGUtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLmZvb3Rlci1zZXBhcmF0b3Ige1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xuICAgIH1cblxuICAgIC5mb290ZXItY29sdW1ucyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBnYXA6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKHNtKSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgICBnYXA6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAqIDEuNSk7XG4gICAgICAgIH1cbiAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZWRpYV9taW5fd2lkdGgobGcpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgICAgICAgIGdhcDogMnJlbTtcbiAgICAgICAgfVxuICAgICAgXG4gICAgICAgIC5mb290ZXItY29sIHtcbiAgICAgICAgICA+IHN0cm9uZyB7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYV9taW5fd2lkdGgoc20pIHtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICBcbiAgICAgICAgICAudzNjLWxvZ28ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB1bCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuOTVyZW07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgIFxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgIFxuICAgICAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIC5mb290ZXItY3JlZGl0cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCkgdmFyKC0tcGljby1zcGFjaW5nKTtcblxuICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAdXNlICdjb25maWdzL3ZhcmlhYmxlcycgYXMgKjtcblxuYm9keS5hZG1pbi1iYXIge1xuICAuc2lkZWJhci1oYW1idXJnZXIge1xuICAgICAgdG9wOiAwO1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgdG9wOiA0NnB4O1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc4MnB4KSB7XG4gICAgICAgICAgdG9wOiAzMnB4O1xuICAgICAgfVxuICB9XG59XG5cbi5zaWRlYmFyLWhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogODV2dztcbiAgbWF4LXdpZHRoOiA1NjBweDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB6LWluZGV4OiAkbXQtemluZGV4LXNpZGViYXItaGFtYnVyZ2VyO1xuXG4gICYub3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgJi1vdmVybGF5IHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgei1pbmRleDogMTkwMDtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi52aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gICYtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJi1sb2dvIHtcbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cblxuICAmLWNsb3NlIHtcbiAgICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXBpY28tY29sb3IpLCAjMDAwIDIwJSk7XG4gICAgfVxuICB9XG5cbiAgJi1jb250cm9scyB7XG4gICAgbWFyZ2luOiB2YXIoLS1waWNvLXNwYWNpbmcpIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLmZvbnQtc2l6ZS1jb250cm9scyB7XG4gICAgICBidXR0b24ge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDQpIGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpOztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGhlbWUtdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAwLjJyZW07XG5cbiAgICAgIGxhYmVsLFxuICAgICAgaW5wdXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1zZWFyY2gge1xuICAgIG1hcmdpbjogdmFyKC0tcGljby1zcGFjaW5nKSAwO1xuXG4gICAgJj4qOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IC41cmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogLjVyZW07XG4gICAgfVxuXG4gICAgJj4qOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IC41cmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IC41cmVtO1xuICAgIH1cbiAgfVxuXG4gICYtbWVudSB7XG4gICAgbWFyZ2luOiB2YXIoLS1waWNvLXNwYWNpbmcpIDA7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC5hY2NvcmRpb24ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmLXRvZ2dsZSxcbiAgICAgICYtbGluayB7XG4gICAgICAgIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1waWNvLXNwYWNpbmcpIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAtLXBpY28tY29sb3I6IHZhcigtLXBpY28tY29sb3IpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1waWNvLWNvbG9yKSwgIzAwMCAyMCUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG5cbiAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGljby1jb2xvciksICMwMDAgMjAlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmNvbHVtbnMtMiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc29jaWFsLWxpbmtzIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgLS1waWNvLWNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogMDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1waWNvLWNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIC0tcGljby1jb2xvcjogdmFyKC0tcGljby1jb2xvcik7XG4gICAgICAgICAgICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGljby1jb2xvciksICMwMDAgMjAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJib2R5Pi5oZWFkZXItbmF2LW1lbnUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDQpIGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDEuMzMpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG5cblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgaGVpZ2h0OiA2cHg7XG4gIH1cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB9XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMikgdHJhbnNwYXJlbnQ7XG5cbiAgLm1lbnUtc2Nyb2xsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgbGkge1xuICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gNCk7XG5cbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcbiAgICAgICAgZm9udC1zaXplOiAuOTVyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtLjAxcmVtO1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWhvdmVyKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29udHJhc3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQHVzZSAnY29uZmlncy92YXJpYWJsZXMnIGFzICo7XG5AdXNlICdtaXhpbnMvX21lZGlhX21pbl93aWR0aCcgYXMgKjtcblxuXG5ib2R5LmhvbWUuaGFzLWhlYWRlci1zdGlja3kge1xuICAgID4ucGFnZS1pbnRybyB7XG4gICAgICAgIC5pbnRyby1jb2wtY2VudGVyIHtcbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuYm9keS5ob21lIHtcbiAgICA+LnBhZ2UtaW50cm8ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhX21pbl93aWR0aChzbSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5ib2R5Pi5wYWdlLWludHJvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgIG1hcmdpbjogMCBhdXRvOyAgICBcbiAgICBwYWRkaW5nOiB2YXIoLS1waWNvLXNwYWNpbmcpIHZhcigtLXBpY28tc3BhY2luZykgMCB2YXIoLS1waWNvLXNwYWNpbmcpO1xuXG4gICAgLmludHJvLWNvbCB7XG5cbiAgICAgICAgJi5pbnRyby1jb2wtbGVmdCxcbiAgICAgICAgJi5pbnRyby1jb2wtcmlnaHQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaW50cm8tY29sLWNlbnRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXBpY28tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAgICAgICAgIC5oMS1zdWJ0aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDQ1JTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4yNWVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgICAgICAgICAmLnBhZ2UtaW50cm8taW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYV9taW5fd2lkdGgobGcpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5pbnRyby1jb2wge1xuXG4gICAgICAgICAgICAmLmludHJvLWNvbC1sZWZ0LFxuICAgICAgICAgICAgJi5pbnRyby1jb2wtcmlnaHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogOTBweFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmludHJvLWNvbC1jZW50ZXIge1xuICAgICAgICAgICAgICAgIGZsZXg6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQHVzZSAnbWl4aW5zL19tZWRpYV9taW5fd2lkdGgnIGFzICo7XG5cbi5tYWluLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgXG4gICAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSAwIDAgMDtcbiAgXG4gICAgJi53aXRoLXNpZGViYXIge1xuICAgICAgICBnYXA6IDA7XG4gIFxuICAgICAgICBAaW5jbHVkZSBtZWRpYV9taW5fd2lkdGgobGcpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcbiAgICAgICAgfVxuICBcbiAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKHh4bCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyLjJmciAuOGZyO1xuICAgICAgICB9XG4gICAgfVxuICB9IiwiQHVzZSAnbWl4aW5zL19tZWRpYV9taW5fd2lkdGgnIGFzICo7XG5cbi5tYWluLWNvbnRlbnQge1xuXG4gICAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSB2YXIoLS1waWNvLXNwYWNpbmcpIDAgdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKHNtKSB7XG4gICAgICAgcGFkZGluZzogMCB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgIH1cbn0iLCJAdXNlICdtaXhpbnMvX21lZGlhX21pbl93aWR0aCcgYXMgKjtcblxuLm1haW4tc2lkZWJhciB7XG5cbiAgICBwYWRkaW5nOiAwIHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcGljby1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhX21pbl93aWR0aChzbSkge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgLTFweCAwIDAgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvciksXG4gICAgICAgICAgICAxcHggMCAwIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xuICAgIH1cblxuICAgID4ud2lkZ2V0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAud2lkZ2V0Lm5rLWZlZWQtcmVhZGVyLWxpc3QtZmVlZC1ydWJyaWNhIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLndpZGdldC1zaWRlYmFyLWZlYXR1cmVkLXBvaS1saXN0YSB7XG5cbiAgICAgICAgYXJ0aWNsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMikgYXV0bztcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKHNtKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWd1cmUge1xuICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcGljby1ib3JkZXItcmFkaXVzKSB2YXIoLS1waWNvLWJvcmRlci1yYWRpdXMpIDAgMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhX21pbl93aWR0aChzbSkge1xuICAgICAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gMTA7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvc3QtbWV0YSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKHNtKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWFfbWluX3dpZHRoKGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmxhbmNpbyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IC43cmVtO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcGljby1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpICogLTEuNSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAuN3JlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmZlYXR1cmVkIC5wb3N0LW1ldGEgaDIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jb21wYWN0IC5wb3N0LW1ldGEgaDIge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufSIsIi53aWRnZXQge1xuXG4gICAgLndpZGdldC10aXRsZS1pbWcsXG4gICAgLndpZGdldC10aXRsZSB7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcblxuICAgICAgICA+aW1nLFxuICAgICAgICA+c3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNjBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgID5zcGFuIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBpY28tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcGljby1wcmltYXJ5KTtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDQpIGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1waWNvLXByaW1hcnkpO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndpZGdldC10aXRsZS1pbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgIH1cblxuICAgIC53aWRnZXQtZm9vdGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXBpY28tc3BhY2luZyk7XG5cbiAgICAgICAgYVtyb2xlPVwiYnV0dG9uXCJdIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDQpIHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiXG5AdXNlICdtaXhpbnMvX21lZGlhX21pbl93aWR0aCcgYXMgKjtcblxuYmxvY2txdW90ZSB7XG4gICAgcGFkZGluZzogMCAwIDAgdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5Aa2V5ZnJhbWVzIGJsaW5rZXIge1xuNTAlIHtcbiAgICBvcGFjaXR5OiAwLjM7XG59XG59XG4uY29tbWVudC1mb3JtLXVybCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4ud3AtY2FwdGlvbiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi53cC1jYXB0aW9uIGltZyxcbmltZy5zaXplLWZ1bGwsXG5pbWcuc2l6ZS1sYXJnZSxcbmltZy5zaXplLW1lZGl1bSxcbmltZy5zaXplLXRodW1ibmFpbCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuaW1nLCBcbmZpZ3VyZSxcbmRpdi53cC1jYXB0aW9uIHtcbiAgICAmLmFsaWducmlnaHQge1xuICAgICAgICBmbG9hdDpub25lO1xuICAgICAgICBtYXJnaW46IC4ycmVtIGF1dG8gdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhX21pbl93aWR0aChzbSkge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luOiAuMnJlbSAwIHZhcigtLXBpY28tc3BhY2luZykgdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmFsaWdubGVmdCB7XG4gICAgICAgIGZsb2F0Om5vbmU7XG4gICAgICAgIG1hcmdpbjogLjJyZW0gYXV0byB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYV9taW5fd2lkdGgoc20pIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAuMnJlbSB2YXIoLS1waWNvLXNwYWNpbmcpIHZhcigtLXBpY28tc3BhY2luZykgMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH0gICBcbiAgICAmLmFsaWdubm9uZSB7XG4gICAgICAgIG1hcmdpbjogLjJyZW0gdmFyKC0tcGljby1zcGFjaW5nKSB2YXIoLS1waWNvLXNwYWNpbmcpIDA7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH0gICAgXG4gICAgJi5hbGlnbmNlbnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIH1cbn1cblxuLndwLWNhcHRpb24tdGV4dCB7XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICBtYXJnaW46MDtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiN3cGFkbWluYmFyIHtcbiAgICB6LWluZGV4OiA5OTk5OTk5O1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xufVxuXG5pZnJhbWUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn0iLCIuY29udGFpbmVyLmNvbnRhaW5lci1sZGIxIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1waWNvLXNwYWNpbmcpIHZhcigtLXBpY28tc3BhY2luZykgMCB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpLCAxcHggMCAwIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xufVxuXG5cbi5tYWluLXNpZGViYXIgLndpZGdldC1uay1hZHYtcHJpbnQ6bm90KDpoYXMoPiAqOm5vdCg6ZW1wdHkpKSkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuZGl2W2lkXj1mbHgtXSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjowIGF1dG87XG59XG5cbmRpdltpZF49Zmx4X25lY3JvXSB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpICogMik7XG59XG5cbmRpdltpZF49Zmx4LWluaXppYXRpdmVdIHtcbiAgICBtYXJnaW46IHZhcigtLXBpY28tc3BhY2luZykgYXV0byB2YXIoLS1waWNvLXNwYWNpbmcpIGF1dG87XG59XG5cbmRpdltpZF49Zmx4LWluaXppYXRpdmVdOm5vdCg6aGFzKD4gKjpub3QoOmVtcHR5KSkpICB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG5kaXZbaWRePWZseC1pbmZlZWRdIHtcbiAgICBtYXJnaW46IHZhcigtLXBpY28tc3BhY2luZykgYXV0byB2YXIoLS1waWNvLXNwYWNpbmcpIGF1dG87XG59XG5cbmRpdltpZF49Zmx4LWluZmVlZF06bm90KDpoYXMoPiAqOm5vdCg6ZW1wdHkpKSkgIHtcbiAgICBtYXJnaW46IDA7XG59IiwiQHVzZSAnbWl4aW5zL19tZWRpYV9taW5fd2lkdGgnIGFzICo7XG5cbmJvZHkuc2luZ2xlLW5rX25lY3JvIHtcbiAgICAubWFpbi1jb250ZW50IHtcbiAgICAgICAgLm5lY3JvbG9naS1zaW5nbGUge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAubmVjcm9sb2dpby1oZWFkZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXBpY28tc3BhY2luZykgMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1waWNvLWJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yKTtcblxuICAgICAgICAgICAgICAgIC50aXBvIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5lY3JvbG9naW8tZ3JpZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLXBpY28tc3BhY2luZyk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYV9taW5fd2lkdGgobWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0ZnIgOGZyO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGVmdC1jb2wge1xuICAgICAgICAgICAgICAgIC5wb3N0LWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IDYgLyA3O1xuICAgICAgICAgICAgICAgICAgICAvKiBjcm9wIGZpc3NvIDY6NyAqL1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgICAgIGltZyxcbiAgICAgICAgICAgICAgICAgICAgLndwLXBvc3QtaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm5hbWUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5hbm5pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC4zNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuODU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIENvbG9ubmEgZGVzdHJhOiB0ZXN0byAqL1xuICAgICAgICAgICAgLnJpZ2h0LWNvbCB7XG4gICAgICAgICAgICAgICAgLmludGVzdGF6aW9uZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXBpY28tc3BhY2luZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnBvc3QtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgLjllbSAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdWwsXG4gICAgICAgICAgICAgICAgICAgIG9sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDFlbSAxLjI1ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmZ1bmVyYWxlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKSB2YXIoLS1waWNvLXNwYWNpbmcpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnJpbmdyYXppYW1lbnRpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIEZvb3RlcjogYm9yZG8gc29wcmEgZSBibG9jY2hpIGEgcmlnYSAoc3RhY2tlZCkgKi9cbiAgICAgICAgICAgIC5uZWNyb2xvZ2lvLWZvb3RlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcGljby1zcGFjaW5nKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogLjlyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXBpY28tYmxvY2txdW90ZS1ib3JkZXItY29sb3IpO1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdhcDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpIC8gMik7XG5cbiAgICAgICAgICAgICAgICAuZm9vdGVyLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyA0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucG9zdC1sYXN0LXVwZGF0ZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IC45O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm5lY3JvbG9naS1jb21tZW50cyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1waWNvLXNwYWNpbmcpICogMik7XG5cbiAgICAgICAgICAgICAgICAuY29tbWVudHNfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvbW1lbnRzLWxpc3Qge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb21tZW50IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tcGljby1zcGFjaW5nKSAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcGljby1ibG9ja3F1b3RlLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jb21tZW50X19tZXRhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDQpIGNhbGModmFyKC0tcGljby1zcGFjaW5nKSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjRyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb21tZW50X19hdXRob3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb21tZW50X19kYXRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IC45NWVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmNvbW1lbnRfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMWVtIDEuMjVlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb21tZW50LWZvcm1fX3RpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1waWNvLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1waWNvLXByaW1hcnkpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvbW1lbnQtcmVzcG9uZCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb21tZW50LWZvcm0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXBpY28tc3BhY2luZykgLyAyKTtcblxuICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDhyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il19 */
