/* src/styles/layers.css */
@layer reset, tokens, base, patterns, components, views, overrides;

/* src/styles/reset.css */
@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  * {
    margin: 0;
    padding: 0;
  }
  html {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
    scroll-behavior: smooth;
  }
  body {
    min-height: 100dvh;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
  }
  img,
  picture,
  video,
  canvas,
  svg {
    display: block;
    max-width: 100%;
  }
  input,
  button,
  textarea,
  select {
    font: inherit;
    color: inherit;
    background: transparent;
    border: 0;
  }
  button {
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    text-align: inherit;
  }
  button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  ul,
  ol {
    list-style: none;
  }
  p,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    overflow-wrap: break-word;
  }
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .skip-link {
    position: absolute;
    top: -100px;
    left: 0;
    padding: var(--sp-2) var(--sp-4);
    background: var(--c-bolt);
    color: var(--c-bg);
    font-family: var(--f-body);
    font-size: var(--t-sm);
    font-weight: 600;
    z-index: 9999;
    transition: top var(--m-fast) var(--m-snappy);
  }
  .skip-link:focus {
    top: 0;
    outline: 2px solid var(--c-ink);
    outline-offset: 2px;
  }
  :focus-visible {
    outline: 2px solid var(--c-bolt);
    outline-offset: 2px;
    border-radius: 2px;
  }
  :focus:not(:focus-visible) {
    outline: none;
  }
}

/* src/styles/tokens.css */
@layer tokens {
  :root {
    --c-bg: oklch(0.13 0.020 270);
    --c-surface: oklch(0.17 0.022 270);
    --c-surface-2: oklch(0.21 0.024 270);
    --c-surface-3: oklch(0.25 0.025 270);
    --c-line: oklch(0.30 0.020 270);
    --c-line-2: oklch(0.40 0.020 270);
    --c-text-mute: oklch(0.55 0.030 270);
    --c-text-dim: oklch(0.72 0.025 270);
    --c-text: oklch(0.92 0.015 270);
    --c-ink: oklch(0.97 0.010 95);
    --c-bolt: oklch(0.86 0.18 92);
    --c-bolt-deep: oklch(0.74 0.15 82);
    --c-lime: oklch(0.85 0.20 138);
    --c-lime-deep: oklch(0.72 0.18 138);
    --c-crimson: oklch(0.65 0.22 20);
    --c-crimson-deep: oklch(0.55 0.20 20);
    --c-indigo: oklch(0.72 0.18 260);
    --c-indigo-deep: oklch(0.60 0.16 260);
    --c-amber: oklch(0.80 0.16 60);
    --c-club: var(--c-bolt);
    --c-club-deep: var(--c-bolt-deep);
    --f-body:
      "Inter",
      -apple-system,
      BlinkMacSystemFont,
      "Segoe UI",
      Roboto,
      sans-serif;
    --f-display:
      "Bebas Neue",
      "Arial Narrow",
      sans-serif;
    --f-editorial:
      "Fraunces",
      Georgia,
      "Times New Roman",
      serif;
    --f-stencil:
      "Big Shoulders Stencil Display",
      Impact,
      sans-serif;
    --f-typewriter:
      "Special Elite",
      "Courier New",
      monospace;
    --f-mono:
      "JetBrains Mono",
      ui-monospace,
      SFMono-Regular,
      Menlo,
      monospace;
    --t-xs: 0.6875rem;
    --t-sm: 0.8125rem;
    --t-base: 0.9375rem;
    --t-md: 1.0625rem;
    --t-lg: 1.25rem;
    --t-xl: 1.5rem;
    --t-2xl: 2rem;
    --t-3xl: 2.75rem;
    --t-4xl: 3.5rem;
    --t-5xl: 5rem;
    --lh-tight: 1.05;
    --lh-snug: 1.2;
    --lh-base: 1.45;
    --lh-loose: 1.65;
    --tr-tight: -0.02em;
    --tr-base: 0;
    --tr-loose: 0.04em;
    --tr-caps: 0.08em;
    --sp-0: 0;
    --sp-1: 0.25rem;
    --sp-2: 0.5rem;
    --sp-3: 0.75rem;
    --sp-4: 1rem;
    --sp-5: 1.5rem;
    --sp-6: 2rem;
    --sp-7: 3rem;
    --sp-8: 4rem;
    --sp-9: 6rem;
    --r-1: 4px;
    --r-2: 8px;
    --r-3: 12px;
    --r-4: 16px;
    --r-5: 20px;
    --r-pill: 9999px;
    --r-circle: 50%;
    --m-spring: cubic-bezier(0.22, 1, 0.36, 1);
    --m-celebrate: cubic-bezier(0.34, 1.56, 0.64, 1);
    --m-linear: linear;
    --m-snappy: cubic-bezier(0.4, 0, 0.2, 1);
    --m-fast: 140ms;
    --m-base: 220ms;
    --m-slow: 420ms;
    --m-deliberate: 620ms;
    --glass-blur: blur(20px) saturate(1.4);
    --glass-bg: oklch(0.13 0.020 270 / 0.6);
    --glass-border: oklch(0.30 0.020 270 / 0.4);
    --shadow-1: 0 1px 2px oklch(0 0 0 / 0.4);
    --shadow-2: 0 2px 8px oklch(0 0 0 / 0.5), 0 0 0 1px oklch(0 0 0 / 0.2);
    --shadow-3: 0 8px 24px oklch(0 0 0 / 0.55), 0 2px 4px oklch(0 0 0 / 0.3);
    --shadow-4: 0 16px 48px oklch(0 0 0 / 0.6), 0 4px 8px oklch(0 0 0 / 0.35);
    --bp-sm: 320px;
    --bp-md: 480px;
    --bp-lg: 720px;
    --bp-xl: 1024px;
    --z-tabbar: 50;
    --z-topbar: 60;
    --z-modal: 100;
    --z-popover: 110;
    --z-toast: 200;
    --z-overlay: 300;
    --sa-top: env(safe-area-inset-top, 0px);
    --sa-right: env(safe-area-inset-right, 0px);
    --sa-bottom: env(safe-area-inset-bottom, 0px);
    --sa-left: env(safe-area-inset-left, 0px);
  }
  @media (prefers-contrast: more) {
    :root {
      --c-text: oklch(0.99 0 0);
      --c-text-dim: oklch(0.85 0.020 270);
      --c-text-mute: oklch(0.70 0.020 270);
      --c-line: oklch(0.45 0.020 270);
      --c-line-2: oklch(0.55 0.020 270);
    }
  }
}

/* src/styles/base.css */
@layer base {
  html {
    background: var(--c-bg);
  }
  body {
    font-family: var(--f-body);
    font-size: var(--t-base);
    line-height: var(--lh-base);
    color: var(--c-text);
    background: var(--c-bg);
    display: grid;
    grid-template-rows: auto 1fr auto;
    grid-template-areas: "topbar" "main" "tabbar";
    padding-top: var(--sa-top);
    background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.045'/></svg>");
    background-size: 200px 200px;
  }
  .appbar {
    grid-area: topbar;
    position: sticky;
    top: 0;
    z-index: var(--z-topbar, 1100);
    background:
      linear-gradient(
        180deg,
        #05070ff2,
        #05070fe0);
    backdrop-filter: blur(18px) saturate(1.2);
    -webkit-backdrop-filter: blur(18px) saturate(1.2);
    border-bottom: 1px solid var(--c-line);
    box-shadow:
      0 1px 0 oklch(0.86 0.18 92 / 0.18),
      0 2px 0 oklch(0.86 0.18 92 / 0.06),
      0 8px 24px rgba(0, 0, 0, 0.45);
  }
  @supports not (backdrop-filter: blur(1px)) {
    .appbar {
      background: var(--c-bg);
    }
  }
  .appbar-inner {
    max-width: 860px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    min-width: 0;
  }
  .brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 0 1 auto;
  }
  .brand > div {
    min-width: 0;
    flex: 0 1 auto;
  }
  .brand-mark {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    overflow: hidden;
    position: relative;
    background: #060D2E;
    box-shadow:
      0 0 0 1px oklch(0.86 0.18 92 / 0.32),
      0 0 0 3px oklch(0.86 0.18 92 / 0.08),
      0 10px 26px oklch(0.86 0.18 92 / 0.22),
      0 1px 0 rgba(255, 255, 255, 0.05) inset;
    transform: rotate(-2deg);
    transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
  }
  .brand-mark:hover {
    transform: rotate(0deg) scale(1.04);
  }
  .brand-mark svg {
    width: 100%;
    height: 100%;
    display: block;
  }
  .brand-mark img {
    border-radius: inherit;
  }
  .brand-name {
    font-family: var(--f-display);
    font-weight: 400;
    font-size: 24px;
    letter-spacing: 0.01em;
    line-height: 0.95;
    color: var(--c-text);
    text-transform: uppercase;
  }
  .brand-sub {
    display: block;
    font-family: var(--f-mono);
    font-size: 11px;
    color: var(--c-bolt);
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin-top: 2px;
  }
  .live-badge {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px 8px 10px;
    background: oklch(0.13 0.020 270 / 0.6);
    border: 1px solid var(--c-line);
    border-radius: 2px;
    font-family: var(--f-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    transition: all 180ms ease;
    cursor: pointer;
    flex-shrink: 0;
    white-space: nowrap;
  }
  .live-badge .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--c-text-mute);
    transition: all 160ms ease;
    flex-shrink: 0;
  }
  .live-badge:hover {
    color: var(--c-text);
    border-color: var(--c-surface-2);
  }
  .live-badge.loading .dot {
    background: var(--c-bolt);
    animation: liveBadgePulse 0.8s linear infinite;
  }
  .live-badge.loading {
    color: var(--c-bolt);
    border-color: oklch(0.86 0.18 92 / 0.35);
  }
  .live-badge.connected {
    color: var(--c-lime);
    border-color: oklch(0.85 0.20 138 / 0.45);
    background: oklch(0.85 0.20 138 / 0.08);
  }
  .live-badge.connected .dot {
    background: var(--c-lime);
    box-shadow: 0 0 0 3px oklch(0.85 0.20 138 / 0.22);
    animation: liveBadgePulse 2.2s ease-in-out infinite;
  }
  @keyframes liveBadgePulse {
    0%, 100% {
      box-shadow: 0 0 0 2px oklch(0.85 0.20 138 / 0.2);
    }
    50% {
      box-shadow: 0 0 0 6px oklch(0.85 0.20 138 / 0);
    }
  }
  .hamburger-btn {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    background: oklch(0.13 0.020 270 / 0.65);
    border: 1px solid oklch(0.86 0.18 92 / 0.32);
    border-radius: 2px;
    color: var(--c-bolt);
    cursor: pointer;
    transition: all 180ms cubic-bezier(0.22, 1, 0.36, 1);
    position: relative;
    flex-shrink: 0;
  }
  .hamburger-btn::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--c-bolt);
    box-shadow: 0 0 10px oklch(0.86 0.18 92 / 0.55);
  }
  .hamburger-btn:hover {
    background: oklch(0.21 0.024 270 / 0.6);
    border-color: oklch(0.86 0.18 92 / 0.6);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px oklch(0.86 0.18 92 / 0.22);
  }
  .hamburger-btn svg {
    width: 20px;
    height: 20px;
    display: block;
  }
  .hamburger-btn.on {
    background: var(--c-bolt);
    color: oklch(0.13 0.020 270);
    border-color: var(--c-bolt);
    box-shadow: 0 0 14px oklch(0.86 0.18 92 / 0.55);
  }
  .hamburger-btn.on::before {
    background: oklch(0.13 0.020 270);
    box-shadow: none;
  }
  body[data-mode=womens] .appbar {
    position: sticky;
  }
  body[data-mode=womens] .appbar::after {
    content: "WOMEN'S FOOTBALL";
    position: absolute;
    bottom: -11px;
    right: 12px;
    font-family: var(--f-display);
    font-size: 9px;
    letter-spacing: 0.22em;
    color: var(--c-bolt);
    background: oklch(0.13 0.020 270);
    padding: 1px 8px 2px;
    border: 1px solid var(--c-bolt);
    border-radius: 3px;
    z-index: 5;
    pointer-events: none;
  }
  .appbar {
    position: sticky;
  }
  @media (max-width: 520px) {
    .appbar-inner {
      padding: 12px 14px;
      gap: 10px;
    }
    .brand-sub {
      font-size: 10.5px;
      letter-spacing: 0.2em;
    }
    .brand {
      gap: 10px;
    }
    .brand-mark {
      width: 36px;
      height: 36px;
      flex-shrink: 0;
    }
    .live-badge {
      padding: 7px 10px 7px 9px;
      font-size: 9.5px;
      letter-spacing: 0.18em;
      gap: 6px;
    }
    .hamburger-btn {
      width: 44px;
      height: 44px;
    }
    .brand-name {
      font-size: 20px;
    }
  }
  .mode-toggle {
    display: inline-flex;
    align-items: stretch;
    background: var(--c-surface);
    border: 1px solid var(--c-line);
    border-radius: 999px;
    padding: 4px;
    gap: 2px;
    margin: 6px 0 var(--sp-4);
    box-shadow: var(--shadow-1);
  }
  .mode-toggle .mode-tab {
    background: transparent;
    color: var(--c-text-dim);
    border: 0;
    padding: 13px 18px;
    min-height: 44px;
    border-radius: 999px;
    font-family: var(--f-display);
    font-size: 12px;
    letter-spacing: 0.18em;
    font-weight: 600;
    cursor: pointer;
    transition:
      background 180ms,
      color 180ms,
      box-shadow 180ms;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-transform: uppercase;
  }
  .mode-toggle .mode-tab:hover {
    color: var(--c-text);
  }
  .mode-toggle .mode-tab.active {
    background: var(--c-bolt);
    color: oklch(0.13 0.020 270);
    box-shadow: 0 0 0 1px var(--c-bolt), 0 4px 14px oklch(0.86 0.18 92 / 0.35);
  }
  .mode-toggle .mt-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.55;
  }
  .mode-toggle .mode-tab.active .mt-dot {
    opacity: 1;
  }
  @keyframes livePulse {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.5;
    }
  }
  @keyframes sheetUp {
    from {
      transform: translateY(100%);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }
  @keyframes fadeIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes fadeOut {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }
  @keyframes sealLand {
    0% {
      transform: scale(0.2) rotate(-30deg);
      opacity: 0;
    }
    60% {
      transform: scale(1.15) rotate(-8deg);
      opacity: 1;
    }
    80% {
      transform: scale(0.95) rotate(-4deg);
    }
    100% {
      transform: scale(1) rotate(-6deg);
    }
  }
  @keyframes headlineFade {
    from {
      transform: translateY(12px);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }
  ff-fixture-card:focus-visible,
  ff-club-tile:focus-visible,
  ff-fan-tile:focus-visible {
    outline: 2px solid var(--c-bolt);
    outline-offset: 2px;
    border-radius: var(--r-2);
  }
  @media (prefers-reduced-motion: reduce) {
    .topbar,
    .tabbar {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
    .live-dot[data-state=live] {
      animation: none !important;
    }
    .skeleton {
      animation: none !important;
      background: var(--c-surface-2) !important;
    }
  }
  .tab,
  .topbar-btn,
  button[role=switch] {
    min-width: 44px;
    min-height: 44px;
  }
  @media (prefers-contrast: more) {
    .topbar,
    .tabbar {
      border-color: var(--c-ink) !important;
    }
    .card,
    ff-fixture-card,
    ff-club-tile {
      border: 1px solid var(--c-line-2) !important;
    }
  }
  .main {
    grid-area: main;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    padding-bottom: calc(64px + var(--sa-bottom));
    container-type: inline-size;
  }
  .view {
    min-height: 100%;
    padding: var(--sp-4);
    padding-bottom: var(--sp-7);
    view-transition-name: var(--view-transition, none);
  }
  .view[hidden] {
    display: none;
  }
  .tabbar {
    grid-area: tabbar;
    position: sticky;
    bottom: 0;
    z-index: var(--z-tabbar);
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: stretch;
    height: calc(60px + var(--sa-bottom));
    padding-bottom: var(--sa-bottom);
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border-top: 1px solid var(--c-line);
  }
  .tabbar .tab-label {
    font-size: 9px;
    letter-spacing: 0.04em;
  }
  @supports not (backdrop-filter: blur(1px)) {
    .tabbar {
      background: var(--c-bg);
    }
  }
  .tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sp-1);
    color: var(--c-text-mute);
    transition: color var(--m-fast) var(--m-snappy), transform var(--m-fast) var(--m-snappy);
    padding: var(--sp-2);
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
  }
  .tab:active {
    transform: scale(0.94);
  }
  .tab[aria-selected=true] {
    color: var(--c-ink);
  }
  .tab[aria-selected=true] .tab-icon {
    color: var(--c-bolt);
    filter: drop-shadow(0 0 6px oklch(0.86 0.18 92 / 0.45));
  }
  .tab-icon-wrap {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
  }
  .tab-icon {
    width: 22px;
    height: 22px;
    display: block;
    transition: color var(--m-fast) var(--m-snappy), filter var(--m-fast) var(--m-snappy);
  }
  .tab-label {
    font-family: var(--f-mono);
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
  }
  .search-overlay {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    background: oklch(0.05 0.020 270 / 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    display: flex;
    flex-direction: column;
    padding-top: calc(var(--sa-top) + var(--sp-3));
    padding-left: var(--sp-4);
    padding-right: var(--sp-4);
    animation: searchOverlayIn var(--m-base) var(--m-spring);
  }
  .search-overlay[hidden] {
    display: none;
  }
  @keyframes searchOverlayIn {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  .search-overlay-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--sp-3);
    align-items: center;
  }
  .search-field {
    grid-column: 1;
    height: 48px;
    background: var(--c-surface-2);
    border: 1px solid var(--c-line);
    border-radius: var(--r-3);
    padding: 0 var(--sp-4);
    font-family: var(--f-body);
    font-size: var(--t-md);
    color: var(--c-text);
    outline: none;
  }
  .search-field::placeholder {
    color: var(--c-text-mute);
  }
  .search-field:focus {
    border-color: var(--c-bolt);
  }
  .search-close {
    grid-column: 2;
    width: 48px;
    height: 48px;
    border-radius: var(--r-circle);
    background: var(--c-surface-2);
    color: var(--c-text);
    font-size: var(--t-md);
  }
  .search-results {
    grid-column: 1 / -1;
    margin-top: var(--sp-4);
    overflow-y: auto;
    flex: 1;
  }
}

/* src/styles/patterns.css */
@layer patterns {
  .club-themed {
    --c-club: var(--club-accent, var(--c-bolt));
    --c-club-secondary: var(--club-secondary, var(--c-club));
    --c-club-deep: color-mix(in oklch, var(--c-club) 75%, oklch(0.12 0.020 270));
    --c-club-tint: color-mix(in oklch, var(--c-club) 25%, oklch(0.18 0.022 270));
    --c-club-glow: color-mix(in oklch, var(--c-club) 50%, transparent);
    --c-club-edge: color-mix(in oklch, var(--c-club) 40%, var(--c-line));
    --c-club-fg: var(--club-on-primary, oklch(0.99 0 0));
  }
  @supports (color: contrast-color(red)) {
    .club-themed {
      --c-club-fg: contrast-color(var(--c-club));
    }
  }
  .club-surface-tint {
    background:
      linear-gradient(
        180deg,
        var(--c-club-tint) 0%,
        var(--c-surface) 75%);
  }
  .club-surface-deep {
    background:
      linear-gradient(
        180deg,
        var(--c-club) 0%,
        var(--c-club-deep) 100%);
    color: var(--c-club-fg);
  }
  .club-edge-left {
    border-left: 3px solid var(--c-club);
    background:
      linear-gradient(
        90deg,
        var(--c-club-tint) 0%,
        transparent 60%);
  }
  .club-halo-top-right {
    position: relative;
    isolation: isolate;
  }
  .club-halo-top-right::before {
    content: "";
    position: absolute;
    inset: -30% -10% auto auto;
    width: 280px;
    height: 280px;
    background:
      radial-gradient(
        circle at center,
        var(--c-club-glow) 0%,
        transparent 65%);
    pointer-events: none;
    z-index: -1;
    mix-blend-mode: screen;
  }
  .club-mesh {
    position: relative;
    background:
      radial-gradient(
        ellipse 55% 45% at 18% 12%,
        color-mix(in oklch, var(--c-club-secondary) 55%, transparent) 0%,
        transparent 60%),
      radial-gradient(
        ellipse 55% 45% at 88% 28%,
        var(--c-club-glow) 0%,
        transparent 60%),
      radial-gradient(
        ellipse 65% 45% at 45% 105%,
        color-mix(in oklch, var(--c-club) 35%, transparent) 0%,
        transparent 55%),
      linear-gradient(
        180deg,
        var(--c-club-tint) 0%,
        var(--c-surface) 75%);
  }
  .club-crest-disc {
    background:
      radial-gradient(
        circle at 30% 25%,
        color-mix(in oklch, var(--c-club) 80%, white) 0%,
        var(--c-club) 65%,
        var(--c-club-deep) 100%);
    color: var(--c-club-fg);
    box-shadow:
      inset 0 1px 0 oklch(1 0 0 / 0.20),
      inset 0 -8px 14px oklch(0 0 0 / 0.18),
      0 8px 18px var(--c-club-glow);
  }
  .spatial-card {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    --tilt-depth: 0px;
    transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(var(--tilt-depth));
    transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
    transform-style: preserve-3d;
    will-change: transform;
  }
  .spatial-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
      radial-gradient(
        circle at calc(50% + (var(--tilt-y) / 6deg * 25%)) calc(50% + (var(--tilt-x) / -6deg * 25%)),
        oklch(1 0 0 / 0.12) 0%,
        transparent 55%);
    mix-blend-mode: overlay;
    opacity: calc(min(1, max(0, (var(--tilt-depth) / 8px))));
    transition: opacity 240ms cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 1;
  }
  .spatial-card .spatial-card-inner,
  .spatial-card .hero-card-inner,
  .spatial-card .editor-card-inner {
    transform: translateZ(var(--tilt-lift, 0px));
    transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
  }
  @media (prefers-reduced-motion: reduce) {
    .spatial-card {
      transform: none !important;
      transition: none;
    }
    .spatial-card::after {
      opacity: 0;
    }
  }
  .programme-masthead {
    position: relative;
    background: var(--c-surface);
    border-radius: var(--r-3);
    padding: var(--sp-5) var(--sp-4);
    margin-bottom: var(--sp-5);
    overflow: hidden;
    isolation: isolate;
  }
  .programme-masthead::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.07'/></svg>");
    background-size: 200px 200px;
    mix-blend-mode: overlay;
    pointer-events: none;
    z-index: 1;
  }
  .programme-masthead::after {
    content: attr(data-issue);
    position: absolute;
    top: -6px;
    right: var(--sp-4);
    font-family: var(--f-stencil);
    font-size: clamp(4rem, 18vw, 7rem);
    font-weight: 900;
    color: var(--c-bolt);
    opacity: 0.10;
    line-height: 0.85;
    z-index: 0;
    pointer-events: none;
  }
  .programme-masthead-inner {
    position: relative;
    z-index: 2;
  }
  .programme-kicker {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    margin-bottom: var(--sp-2);
  }
  .programme-kicker .dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--c-bolt);
  }
  .programme-headline {
    font-family: var(--f-display);
    font-size: clamp(var(--t-3xl), 9vw, var(--t-4xl));
    font-weight: 400;
    line-height: var(--lh-tight);
    letter-spacing: var(--tr-base);
    text-transform: uppercase;
    color: var(--c-ink);
    margin-bottom: var(--sp-2);
  }
  .programme-subhead {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: var(--t-md);
    line-height: var(--lh-base);
    color: var(--c-text-dim);
    max-width: 32ch;
  }
  .programme-headline-anchor {
    position: relative;
    display: inline-block;
  }
  .programme-headline-anchor::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 4px;
    background: var(--c-bolt);
    transform: skewY(-1.5deg);
    opacity: 0.85;
  }
  .almanac-section-head {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    margin: var(--sp-6) 0 var(--sp-4);
  }
  .almanac-section-head::before,
  .almanac-section-head::after {
    content: "";
    flex: 1;
    height: 1px;
    background:
      linear-gradient(
        to right,
        transparent 0%,
        var(--c-bolt) 50%,
        transparent 100%);
    opacity: 0.5;
  }
  .almanac-section-head-text {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: var(--t-md);
    color: var(--c-text-dim);
    letter-spacing: var(--tr-base);
    white-space: nowrap;
    text-transform: lowercase;
  }
  .wax-seal {
    --seal-size: 56px;
    --seal-color: var(--c-lime);
    width: var(--seal-size);
    height: var(--seal-size);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--f-stencil);
    font-size: calc(var(--seal-size) * 0.32);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: oklch(0.18 0.025 270);
    background:
      radial-gradient(
        circle at 35% 30%,
        oklch(from var(--seal-color) calc(l + 0.1) c h),
        var(--seal-color) 60%,
        oklch(from var(--seal-color) calc(l - 0.15) c h) 100%);
    transform: rotate(-6deg);
    box-shadow:
      inset 0 1px 0 oklch(1 0 0 / 0.3),
      inset 0 -3px 6px oklch(0 0 0 / 0.25),
      0 4px 12px oklch(0 0 0 / 0.4);
    position: relative;
  }
  .wax-seal::before {
    content: "";
    position: absolute;
    inset: 4px;
    border: 1.5px dashed oklch(0.18 0.025 270 / 0.4);
    border-radius: 50%;
  }
  .wax-seal--bronze {
    --seal-color: oklch(0.65 0.10 60);
  }
  .wax-seal--silver {
    --seal-color: oklch(0.78 0.02 270);
  }
  .wax-seal--gold {
    --seal-color: var(--c-bolt);
  }
  .wax-seal--lime {
    --seal-color: var(--c-lime);
  }
  .crest {
    --crest-size: 32px;
    width: var(--crest-size);
    height: var(--crest-size);
    border-radius: 50%;
    background: var(--c-surface-2);
    display: grid;
    place-items: center;
    overflow: hidden;
    flex-shrink: 0;
    border: 1px solid var(--c-line);
  }
  .crest img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .crest--lg {
    --crest-size: 56px;
  }
  .crest--xl {
    --crest-size: 80px;
  }
  .crest--xxl {
    --crest-size: 120px;
  }
  .crest-initials {
    font-family: var(--f-display);
    font-size: calc(var(--crest-size) * 0.4);
    font-weight: 400;
    letter-spacing: 0.02em;
    color: var(--c-text-mute);
    text-transform: uppercase;
  }
  .chip-rail {
    display: flex;
    gap: var(--sp-2);
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: var(--sp-2) var(--sp-1);
    margin: 0 calc(-1 * var(--sp-4));
    padding-left: var(--sp-4);
    padding-right: var(--sp-4);
    -webkit-mask-image:
      linear-gradient(
        to right,
        transparent 0,
        black calc(0% + var(--sp-4)),
        black calc(100% - 24px),
        transparent 100%);
    mask-image:
      linear-gradient(
        to right,
        transparent 0,
        black calc(0% + var(--sp-4)),
        black calc(100% - 24px),
        transparent 100%);
  }
  .chip-rail::-webkit-scrollbar {
    display: none;
  }
  .chip {
    flex-shrink: 0;
    min-height: 32px;
    padding: var(--sp-2) var(--sp-3);
    border-radius: var(--r-pill);
    background: var(--c-surface);
    border: 1px solid var(--c-line);
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    text-transform: uppercase;
    letter-spacing: var(--tr-caps);
    color: var(--c-text-dim);
    white-space: nowrap;
    transition:
      background var(--m-fast) var(--m-snappy),
      color var(--m-fast) var(--m-snappy),
      border-color var(--m-fast) var(--m-snappy);
  }
  .chip[aria-pressed=true] {
    background: var(--c-bolt);
    color: var(--c-bg);
    border-color: var(--c-bolt);
  }
  .chip:hover {
    color: var(--c-text);
  }
  .hairline-bolt {
    height: 1px;
    background:
      linear-gradient(
        to right,
        transparent,
        var(--c-bolt),
        transparent);
    opacity: 0.6;
    border: 0;
    margin: var(--sp-4) 0;
  }
  .card {
    background: var(--c-surface);
    border-radius: var(--r-3);
    padding: var(--sp-4);
    border: 1px solid var(--c-line);
  }
  .stack-1 > * + * {
    margin-top: var(--sp-1);
  }
  .stack-2 > * + * {
    margin-top: var(--sp-2);
  }
  .stack-3 > * + * {
    margin-top: var(--sp-3);
  }
  .stack-4 > * + * {
    margin-top: var(--sp-4);
  }
  .stack-5 > * + * {
    margin-top: var(--sp-5);
  }
  .stack-6 > * + * {
    margin-top: var(--sp-6);
  }
  .inline-2 {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
  }
  .inline-3 {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
  }
  .inline-4 {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
  }
}

/* src/styles/components.css */
@layer components {
  ff-masthead {
    display: block;
  }
  ff-fixture-card {
    display: block;
    background: var(--c-surface);
    border-radius: var(--r-3);
    padding: var(--sp-3) var(--sp-4);
    border-left: 3px solid var(--c-bolt);
    container-type: inline-size;
    transition: background var(--m-fast) var(--m-snappy);
  }
  ff-fixture-card:hover {
    background: var(--c-surface-2);
  }
  ff-fixture-card .fc-comp {
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    margin-bottom: var(--sp-2);
  }
  ff-fixture-card .fc-teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--sp-3);
  }
  ff-fixture-card .fc-team {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    min-width: 0;
  }
  ff-fixture-card .fc-team--home {
    justify-content: flex-end;
  }
  ff-fixture-card .fc-team-name {
    font-family: var(--f-display);
    font-size: var(--t-md);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  ff-fixture-card .fc-score {
    font-family: var(--f-stencil);
    font-weight: 900;
    font-size: var(--t-xl);
    color: var(--c-bolt);
    letter-spacing: 0.06em;
    text-align: center;
    min-width: 60px;
  }
  ff-fixture-card .fc-vs {
    font-family: var(--f-stencil);
    font-weight: 900;
    font-size: var(--t-md);
    color: var(--c-text-mute);
  }
  ff-fixture-card .fc-time {
    font-family: var(--f-mono);
    font-size: var(--t-sm);
    color: var(--c-text-dim);
  }
  ff-fixture-card .fc-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    margin-top: var(--sp-2);
    padding-top: var(--sp-2);
    border-top: 1px solid var(--c-line);
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    color: var(--c-text-mute);
  }
  ff-club-tile {
    display: block;
    background: var(--c-surface);
    border-radius: var(--r-3);
    overflow: hidden;
    transition: transform var(--m-fast) var(--m-snappy);
  }
  ff-club-tile:active {
    transform: translateX(2px);
  }
  ff-club-tile .ct-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
  }
  ff-club-tile .ct-name {
    font-family: var(--f-display);
    font-size: var(--t-md);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
  }
  ff-club-tile .ct-meta {
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    color: var(--c-text-mute);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  ff-stamp-seal {
    display: inline-block;
  }
  ff-leaderboard-row {
    display: block;
    padding: var(--sp-2) var(--sp-4);
    border-bottom: 1px solid var(--c-line);
    container-type: inline-size;
  }
  ff-leaderboard-row .lb-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--sp-3);
  }
  ff-leaderboard-row .lb-rank {
    font-family: var(--f-mono);
    font-size: var(--t-sm);
    font-weight: 600;
    color: var(--c-text-dim);
    width: 28px;
    text-align: center;
  }
  ff-leaderboard-row .lb-name {
    font-family: var(--f-display);
    font-size: var(--t-md);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
  }
  ff-leaderboard-row .lb-score {
    font-family: var(--f-stencil);
    font-weight: 700;
    font-size: var(--t-md);
    color: var(--c-bolt);
  }
  ff-empty-state {
    display: block;
    text-align: center;
    padding: var(--sp-7) var(--sp-4);
  }
  ff-empty-state .es-headline {
    font-family: var(--f-stencil);
    font-weight: 900;
    font-size: var(--t-2xl);
    text-transform: uppercase;
    color: var(--c-bolt);
    letter-spacing: 0.04em;
    margin-bottom: var(--sp-2);
  }
  ff-empty-state .es-sub {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: var(--t-md);
    color: var(--c-text-dim);
    max-width: 36ch;
    margin: 0 auto;
  }
  .skeleton {
    background:
      linear-gradient(
        90deg,
        var(--c-surface) 25%,
        var(--c-surface-2) 50%,
        var(--c-surface) 75%);
    background-size: 200% 100%;
    border-radius: var(--r-2);
    animation: skeletonShimmer 1.6s var(--m-snappy) infinite;
  }
  @keyframes skeletonShimmer {
    0% {
      background-position: 200% 0;
    }
    100% {
      background-position: -200% 0;
    }
  }
  .sk-block {
    display: block;
  }
  .sk-hero {
    padding: 18px 20px 20px;
    border-radius: 18px;
    background: var(--c-surface);
    border: 1px solid var(--c-line);
  }
  .sk-hero-strip {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 18px;
  }
  .sk-hero-body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 14px;
    align-items: center;
    justify-items: center;
  }
  .sk-hero-team {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .sk-rows {
    display: grid;
    gap: 8px;
  }
  .sk-row {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px;
    border-radius: 12px;
    background: oklch(0.18 0.020 270);
    border: 1px solid var(--c-line);
  }
  .sk-row-body {
    min-width: 0;
  }
  .sk-fixtures {
    display: grid;
    gap: 10px;
  }
  .sk-fixture {
    padding: 12px 14px;
    border-radius: 12px;
    background: oklch(0.18 0.020 270);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-line-2);
  }
  .sk-fixture-teams {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .sk-editor {
    padding: 20px 22px 22px;
    border-radius: 18px;
    background: var(--c-surface);
    border: 1px solid var(--c-line);
  }
  .sk-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .sk-fade-out {
    animation: skFadeOut 180ms var(--m-snappy) forwards;
  }
  .sk-fade-in {
    animation: skFadeIn 240ms var(--m-snappy) 60ms forwards;
    opacity: 0;
  }
  @keyframes skFadeOut {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }
  @keyframes skFadeIn {
    from {
      opacity: 0;
      transform: translateY(4px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .skeleton {
      animation: none;
      opacity: 0.7;
    }
    .sk-fade-out,
    .sk-fade-in {
      animation: none;
      opacity: 1;
    }
  }
  .club-sheet-backdrop {
    position: fixed;
    inset: 0;
    background: oklch(0 0 0 / 0.45);
    z-index: calc(var(--z-modal) - 1);
    animation: fadeIn var(--m-base) var(--m-snappy);
  }
  @supports (backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px)) {
    .club-sheet-backdrop {
      background: oklch(0 0 0 / 0.30);
      -webkit-backdrop-filter: blur(6px);
      backdrop-filter: blur(6px);
    }
  }
  .club-sheet {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--z-modal);
    height: 95vh;
    padding: 0 0 var(--sa-bottom);
    display: flex;
    flex-direction: column;
    border-top-left-radius: var(--r-5);
    border-top-right-radius: var(--r-5);
    box-shadow: var(--shadow-4);
    background: var(--c-bg);
    border-top: 1px solid var(--c-line);
    contain: layout;
    will-change: transform;
    animation: sheetUp var(--m-slow) var(--m-spring);
  }
  .club-sheet[data-detent=large] {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .club-sheet[data-detent=large] .club-sheet-grabber {
    opacity: 0.4;
  }
  .club-sheet-body {
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 var(--sp-4) var(--sp-5);
    display: grid;
    gap: var(--sp-3);
    -webkit-overflow-scrolling: touch;
  }
  @supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)) {
    .club-sheet {
      background: var(--glass-bg);
      -webkit-backdrop-filter: var(--glass-blur);
      backdrop-filter: var(--glass-blur);
      border-top: 1px solid var(--glass-border);
    }
  }
  .club-sheet-grabber-wrap {
    padding: 10px 0 6px;
    display: flex;
    justify-content: center;
    cursor: grab;
    touch-action: none;
  }
  .club-sheet-grabber-wrap:active {
    cursor: grabbing;
  }
  .club-sheet-grabber {
    width: 44px;
    height: 5px;
    border-radius: var(--r-pill);
    background: var(--c-line-2);
    transition: width var(--m-fast) var(--m-snappy), background var(--m-fast) var(--m-snappy);
  }
  .club-sheet-grabber-wrap:active .club-sheet-grabber {
    width: 60px;
    background: var(--c-bolt);
  }
  .club-sheet-close {
    position: absolute;
    top: var(--sp-3);
    right: var(--sp-3);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: oklch(0.25 0.020 270 / 0.7);
    color: var(--c-text);
    font-size: 18px;
    line-height: 1;
    display: grid;
    place-items: center;
    z-index: 2;
    border: 1px solid oklch(0.40 0.020 270 / 0.4);
  }
  .club-sheet-close:hover {
    background: oklch(0.30 0.020 270 / 0.8);
  }
  .club-sheet-hero {
    position: relative;
    padding: var(--sp-4) var(--sp-4) var(--sp-5);
    overflow: hidden;
    isolation: isolate;
  }
  .club-sheet-hero-row {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--sp-4);
    align-items: center;
  }
  .club-sheet-crest {
    width: 84px;
    height: 84px;
    border-radius: var(--r-circle);
    display: grid;
    place-items: center;
    font-family: var(--f-display);
    font-size: 30px;
    letter-spacing: 0.02em;
  }
  .club-sheet-name {
    font-family: var(--f-display);
    font-size: var(--t-2xl);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
    line-height: 1.05;
  }
  .club-sheet-loc {
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    margin-top: 4px;
  }
  .club-sheet-body {
    padding: 0 var(--sp-4) var(--sp-5);
    display: grid;
    gap: var(--sp-3);
  }
  .club-sheet-card {
    background:
      linear-gradient(
        90deg,
        color-mix(in oklch, var(--club-accent, var(--c-bolt)) 14%, oklch(0.20 0.022 270 / 0.55)) 0%,
        oklch(0.20 0.022 270 / 0.55) 30%);
    border: 1px solid oklch(0.30 0.020 270 / 0.4);
    border-left: 3px solid var(--club-accent, var(--c-bolt));
    border-radius: var(--r-3);
    padding: var(--sp-4);
  }
  .club-sheet-card--visit {
    border-left-color: var(--c-lime);
  }
  .club-sheet-card--visit.empty {
    border-left-style: dashed;
    border-left-color: var(--c-line);
  }
  .club-sheet-eyebrow {
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    margin-bottom: var(--sp-1);
  }
  .club-sheet-value {
    font-family: var(--f-display);
    font-size: var(--t-md);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
  }
  .club-sheet-meta {
    display: flex;
    gap: var(--sp-4);
    margin-top: var(--sp-2);
    font-family: var(--f-mono);
    font-size: var(--t-xs);
    color: var(--c-text-dim);
  }
  .club-sheet-visits-num {
    font-family: var(--f-stencil);
    font-weight: 900;
    font-size: var(--t-3xl);
    line-height: 1;
  }
  .club-sheet-visits-num.has-visits {
    color: var(--c-lime);
  }
  .club-sheet-visits-num.no-visits {
    color: var(--c-text-mute);
  }
  .club-sheet-visits-line {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: var(--t-sm);
    color: var(--c-text-dim);
    margin-top: var(--sp-2);
  }
  @media (prefers-reduced-motion: reduce) {
    .club-sheet {
      animation: none;
    }
    .club-sheet-backdrop {
      animation: none;
    }
  }
  .ptr-ribbon {
    position: fixed;
    top: var(--sa-top, 0);
    left: 0;
    right: 0;
    height: 3px;
    background: var(--c-bolt);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 60ms var(--m-snappy);
    z-index: var(--z-overlay);
    pointer-events: none;
    will-change: transform, opacity;
  }
  .ptr-ribbon.ready {
    box-shadow: 0 0 0 1px oklch(0.86 0.18 92 / 0.4), 0 0 18px var(--c-bolt);
  }
  .ptr-ribbon.refreshing {
    transform: scaleX(1);
    background:
      linear-gradient(
        90deg,
        var(--c-bolt-deep) 0%,
        var(--c-bolt) 50%,
        var(--c-bolt-deep) 100%);
    background-size: 220% 100%;
    animation: ptrShimmer 1.2s linear infinite;
    box-shadow: 0 0 20px oklch(0.86 0.18 92 / 0.65);
  }
  .ptr-ribbon.settle {
    transform: scaleX(1);
    opacity: 0;
    transition: opacity var(--m-base) var(--m-snappy);
  }
  @keyframes ptrShimmer {
    from {
      background-position: 220% 0;
    }
    to {
      background-position: -220% 0;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .ptr-ribbon {
      transition: none;
    }
    .ptr-ribbon.refreshing {
      animation: none;
    }
  }
  .lp-arming {
    animation: lpArm 300ms var(--m-snappy) forwards;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
  }
  @keyframes lpArm {
    0% {
      transform: scale(1);
      filter: brightness(1);
    }
    100% {
      transform: scale(0.97);
      filter: brightness(1.05);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .lp-arming {
      animation: none;
    }
  }
  .ctx-menu-backdrop {
    position: fixed;
    inset: 0;
    background: oklch(0 0 0 / 0.35);
    z-index: calc(var(--z-modal) + 5);
    animation: fadeIn 150ms var(--m-snappy);
    transition: backdrop-filter 200ms var(--m-snappy), -webkit-backdrop-filter 200ms var(--m-snappy);
  }
  @supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px)) {
    .ctx-menu-backdrop.settled {
      -webkit-backdrop-filter: blur(12px);
      backdrop-filter: blur(12px);
    }
  }
  .ctx-menu {
    position: fixed;
    z-index: calc(var(--z-modal) + 6);
    background: var(--c-surface-2);
    border: 1px solid var(--c-line-2);
    border-radius: 14px;
    padding: 6px;
    box-shadow:
      0 12px 36px oklch(0 0 0 / 0.5),
      0 0 0 1px oklch(0.86 0.18 92 / 0.15),
      inset 0 1px 0 oklch(1 0 0 / 0.05);
    animation: ctxMenuIn 220ms cubic-bezier(0.32, 0.72, 0, 1);
    overflow: hidden;
  }
  @supports (backdrop-filter: blur(24px)) or (-webkit-backdrop-filter: blur(24px)) {
    .ctx-menu {
      background: oklch(0.20 0.022 270 / 0.85);
      -webkit-backdrop-filter: blur(24px) saturate(1.5);
      backdrop-filter: blur(24px) saturate(1.5);
    }
  }
  @keyframes ctxMenuIn {
    0% {
      opacity: 0;
      transform: scale(0.85);
    }
    100% {
      opacity: 1;
      transform: scale(1);
    }
  }
  .ctx-menu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 0;
    background: transparent;
    cursor: pointer;
    border-radius: 8px;
    color: var(--c-text);
    font-family: var(--f-body);
    font-size: 14.5px;
    font-weight: 500;
    letter-spacing: 0;
    text-align: left;
    transition: background var(--m-fast) var(--m-snappy);
  }
  .ctx-menu-item + .ctx-menu-item {
    margin-top: 2px;
  }
  .ctx-menu-item:hover,
  .ctx-menu-item:focus-visible {
    background: oklch(0.30 0.024 270 / 0.5);
    outline: 0;
  }
  .ctx-menu-item:active {
    background: oklch(0.86 0.18 92 / 0.15);
  }
  .ctx-menu-item--danger {
    color: var(--c-crimson);
  }
  .ctx-menu-item-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    opacity: 0.7;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
  }
  .ctx-menu-item-icon[data-icon=open] {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M213.7,82.3l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.7,82.3ZM160,51.3,188.7,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48Z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M213.7,82.3l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.7,82.3ZM160,51.3,188.7,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48Z'/></svg>");
  }
  .ctx-menu-item-icon[data-icon=favourite] {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86A16.46,16.46,0,0,0,21.72,114.81L66.69,153,53.18,210.9a16.4,16.4,0,0,0,24.6,17.8l50.21-31,50.21,31a16.4,16.4,0,0,0,24.6-17.8L189.34,153l44.92-38.19A16.36,16.36,0,0,0,239.18,97.26ZM179.4,142.85a8,8,0,0,0-2.61,8L191,212.39h0L128,173.43a8,8,0,0,0-8.4,0L56.66,212.39l14.21-61.59a8,8,0,0,0-2.61-8L20.93,102.61l62.36-5a8,8,0,0,0,6.86-4.92l24-58h0l24,58a8,8,0,0,0,6.86,4.92l62.36,5Z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M239.18,97.26A16.38,16.38,0,0,0,224.92,86l-59-4.76L143.14,26.15a16.36,16.36,0,0,0-30.27,0L90.11,81.23,31.08,86A16.46,16.46,0,0,0,21.72,114.81L66.69,153,53.18,210.9a16.4,16.4,0,0,0,24.6,17.8l50.21-31,50.21,31a16.4,16.4,0,0,0,24.6-17.8L189.34,153l44.92-38.19A16.36,16.36,0,0,0,239.18,97.26ZM179.4,142.85a8,8,0,0,0-2.61,8L191,212.39h0L128,173.43a8,8,0,0,0-8.4,0L56.66,212.39l14.21-61.59a8,8,0,0,0-2.61-8L20.93,102.61l62.36-5a8,8,0,0,0,6.86-4.92l24-58h0l24,58a8,8,0,0,0,6.86,4.92l62.36,5Z'/></svg>");
  }
  .ctx-menu-item-icon[data-icon=wishlist] {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Zm0,177.57-51.77-32.35a8,8,0,0,0-8.48,0L72,209.57V48H184Z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M184,32H72A16,16,0,0,0,56,48V224a8,8,0,0,0,12.24,6.78L128,193.43l59.77,37.35A8,8,0,0,0,200,224V48A16,16,0,0,0,184,32Zm0,177.57-51.77-32.35a8,8,0,0,0-8.48,0L72,209.57V48H184Z'/></svg>");
  }
  .ctx-menu-item-icon[data-icon=map] {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M228.92,49.69a8,8,0,0,0-6.86-1.45L160.93,63.52,99.58,32.84a8,8,0,0,0-5.52-.6l-64,16A8,8,0,0,0,24,56V200a8,8,0,0,0,9.94,7.76l61.13-15.28,61.35,30.68A8.15,8.15,0,0,0,160,224a8,8,0,0,0,1.94-.24l64-16A8,8,0,0,0,232,200V56A8,8,0,0,0,228.92,49.69ZM104,52.94l48,24V203.06l-48-24ZM40,62.25l48-12v127.5l-48,12Zm176,131.5-48,12V78.25l48-12Z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M228.92,49.69a8,8,0,0,0-6.86-1.45L160.93,63.52,99.58,32.84a8,8,0,0,0-5.52-.6l-64,16A8,8,0,0,0,24,56V200a8,8,0,0,0,9.94,7.76l61.13-15.28,61.35,30.68A8.15,8.15,0,0,0,160,224a8,8,0,0,0,1.94-.24l64-16A8,8,0,0,0,232,200V56A8,8,0,0,0,228.92,49.69ZM104,52.94l48,24V203.06l-48-24ZM40,62.25l48-12v127.5l-48,12Zm176,131.5-48,12V78.25l48-12Z'/></svg>");
  }
  .ctx-menu-item-icon[data-icon=share] {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M229.66,77.66l-32,32a8,8,0,0,1-11.32-11.32L204.69,80H136a72,72,0,0,0,0,144h40a8,8,0,0,1,0,16H136a88,88,0,0,1,0-176h68.69L186.34,45.66a8,8,0,0,1,11.32-11.32l32,32A8,8,0,0,1,229.66,77.66Z'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23000'><path d='M229.66,77.66l-32,32a8,8,0,0,1-11.32-11.32L204.69,80H136a72,72,0,0,0,0,144h40a8,8,0,0,1,0,16H136a88,88,0,0,1-176H136a88,88,0,0,1,0-176h68.69L186.34,45.66a8,8,0,0,1,11.32-11.32l32,32A8,8,0,0,1,229.66,77.66Z'/></svg>");
  }
  @media (prefers-reduced-motion: reduce) {
    .ctx-menu {
      animation: none;
    }
    .ctx-menu-backdrop {
      animation: none;
    }
  }
  .search-ask-cta {
    display: block;
    width: 100%;
    margin-top: var(--sp-4);
    padding: 12px 14px;
    background:
      linear-gradient(
        90deg,
        color-mix(in oklch, var(--c-bolt) 14%, var(--c-surface)) 0%,
        var(--c-surface) 100%);
    border: 1px solid var(--c-line);
    border-radius: 12px;
    color: var(--c-bolt);
    font-family: var(--f-body);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background var(--m-fast) var(--m-snappy);
  }
  .search-ask-cta:hover {
    background:
      linear-gradient(
        90deg,
        color-mix(in oklch, var(--c-bolt) 22%, var(--c-surface)) 0%,
        var(--c-surface-2) 100%);
  }
  .ask-backdrop {
    position: fixed;
    inset: 0;
    background: oklch(0 0 0 / 0.55);
    z-index: var(--z-overlay);
    animation: fadeIn var(--m-base) var(--m-snappy);
  }
  @supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px)) {
    .ask-backdrop {
      -webkit-backdrop-filter: blur(12px);
      backdrop-filter: blur(12px);
      background: oklch(0 0 0 / 0.40);
    }
  }
  .ask-surface {
    position: fixed;
    top: calc(var(--sa-top) + 20px);
    left: 16px;
    right: 16px;
    max-width: 640px;
    margin: 0 auto;
    z-index: calc(var(--z-overlay) + 1);
    background: var(--c-surface);
    border: 1px solid var(--c-line-2);
    border-radius: 18px;
    padding: 16px 16px 20px;
    box-shadow: var(--shadow-4);
    max-height: calc(100vh - 60px - var(--sa-top));
    overflow-y: auto;
    overscroll-behavior: contain;
    animation: askIn 280ms cubic-bezier(0.22, 1, 0.36, 1);
  }
  @supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)) {
    .ask-surface {
      background: oklch(0.17 0.022 270 / 0.85);
      -webkit-backdrop-filter: blur(24px) saturate(1.4);
      backdrop-filter: blur(24px) saturate(1.4);
    }
  }
  @keyframes askIn {
    from {
      opacity: 0;
      transform: translateY(-12px) scale(0.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }
  .ask-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
  }
  .ask-title {
    font-family: var(--f-body);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.02em;
    color: var(--c-text);
  }
  .ask-sparkle {
    filter: drop-shadow(0 0 4px oklch(0.86 0.18 92 / 0.5));
  }
  .ask-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--c-surface-2);
    color: var(--c-text);
    border: 1px solid var(--c-line);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    display: grid;
    place-items: center;
  }
  .ask-close:hover {
    background: var(--c-surface-3);
  }
  .ask-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    margin-bottom: 16px;
  }
  .ask-input {
    width: 100%;
    padding: 12px 14px;
    background: oklch(0.13 0.020 270);
    border: 1px solid var(--c-line);
    border-radius: 12px;
    color: var(--c-text);
    font-family: var(--f-body);
    font-size: 15.5px;
    line-height: 1.4;
  }
  .ask-input:focus {
    outline: 2px solid var(--c-bolt);
    outline-offset: 1px;
    border-color: transparent;
  }
  .ask-input::placeholder {
    color: var(--c-text-mute);
  }
  .ask-submit {
    width: 44px;
    border: 0;
    border-radius: 12px;
    background: var(--c-bolt);
    color: oklch(0.13 0.020 270);
    font-size: 20px;
    font-weight: 700;
    cursor: pointer;
    transition: transform var(--m-fast) var(--m-snappy);
  }
  .ask-submit:hover {
    transform: translateY(-1px);
  }
  .ask-submit:active {
    transform: scale(0.96);
  }
  .ask-suggestions-eyebrow,
  .ask-list-label,
  .ask-answer-eyebrow {
    font-family: var(--f-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    margin-bottom: 8px;
  }
  .ask-suggestions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .ask-chip {
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--c-surface-2);
    border: 1px solid var(--c-line);
    color: var(--c-text);
    font-family: var(--f-body);
    font-size: 12.5px;
    cursor: pointer;
    transition: background var(--m-fast) var(--m-snappy);
  }
  .ask-chip:hover {
    background: var(--c-surface-3);
    border-color: var(--c-bolt);
  }
  .ask-loading {
    display: flex;
    gap: 10px;
    align-items: center;
    color: var(--c-text-dim);
    font-family: var(--f-mono);
    font-size: 12.5px;
  }
  .ask-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid var(--c-line);
    border-top-color: var(--c-bolt);
    border-radius: 50%;
    animation: askSpin 0.9s linear infinite;
  }
  @keyframes askSpin {
    to {
      transform: rotate(360deg);
    }
  }
  .ask-text {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: 15.5px;
    line-height: 1.5;
    color: var(--c-text);
    margin: 0;
  }
  .ask-fallback-hint {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: oklch(0.13 0.020 270);
    border: 1px dashed var(--c-line);
    font-family: var(--f-mono);
    font-size: 10.5px;
    letter-spacing: 0.04em;
    color: var(--c-text-mute);
  }
  .ask-answer .ask-list-rows {
    display: grid;
    gap: 6px;
  }
  .ask-row {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 8px 10px;
    border-radius: 10px;
    background: oklch(0.20 0.022 270);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--club-accent, var(--c-bolt));
    cursor: pointer;
    text-align: left;
    transition: background var(--m-fast) var(--m-snappy), transform var(--m-fast) var(--m-snappy);
  }
  .ask-row:hover {
    background: var(--c-surface-2);
    transform: translateX(2px);
  }
  .ask-row-crest {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background:
      radial-gradient(
        circle at 30% 25%,
        color-mix(in oklch, var(--club-accent, var(--c-bolt)) 80%, white) 0%,
        var(--club-accent, var(--c-bolt)) 70%);
    color: oklch(0.99 0 0 / 0.95);
    font-family: var(--f-display);
    font-size: 13px;
    letter-spacing: 0.02em;
    box-shadow: inset 0 1px 0 oklch(1 0 0 / 0.15);
  }
  .ask-row-name {
    font-family: var(--f-display);
    font-size: 14.5px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .ask-row-meta {
    font-family: var(--f-body);
    font-size: 11px;
    color: var(--c-text-mute);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .ask-row-meta-end {
    font-family: var(--f-stencil);
    font-weight: 700;
    font-size: 13px;
    color: var(--c-bolt);
    letter-spacing: 0.04em;
  }
  .ask-fixture {
    padding: 10px 12px;
    border-radius: 10px;
    background: oklch(0.20 0.022 270);
    border: 1px solid var(--c-line);
  }
  .ask-fixture-tag {
    font-family: var(--f-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: var(--c-bolt);
    margin-bottom: 4px;
  }
  .ask-fixture-teams {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    font-family: var(--f-display);
    font-size: 14.5px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
  }
  .ask-fixture-vs {
    font-family: var(--f-stencil);
    color: var(--c-text-mute);
    font-size: 13px;
  }
  .ask-fixture-score {
    font-family: var(--f-stencil);
    font-weight: 900;
    color: var(--c-bolt);
    font-size: 16px;
  }
  .ask-fixture-meta {
    font-family: var(--f-mono);
    font-size: 11px;
    color: var(--c-text-mute);
    margin-top: 4px;
    letter-spacing: 0.02em;
  }
  .ask-stats {
    padding: 18px 16px 18px;
    border-radius: 14px;
    background:
      linear-gradient(
        180deg,
        #121621,
        #0a0d17);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-bolt);
    text-align: left;
  }
  .ask-stats-big {
    font-family: var(--f-stencil);
    font-weight: 900;
    font-size: 56px;
    line-height: 0.95;
    color: var(--c-bolt);
    letter-spacing: -0.01em;
  }
  .ask-stats-caption {
    font-family: var(--f-display);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--c-text);
    margin-top: 8px;
  }
  .ask-stats-sub {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: 13px;
    color: var(--c-text-dim);
    margin-top: 10px;
    line-height: 1.45;
  }
  .ask-disambig {
    margin: 8px 0 12px;
    padding: 10px 12px;
    background: oklch(0.13 0.020 270 / 0.6);
    border: 1px dashed var(--c-line);
    border-radius: 10px;
  }
  .ask-disambig-label {
    font-family: var(--f-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-text-mute);
    margin-bottom: 8px;
  }
  .ask-disambig-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .ask-chip--disambig {
    border-color: var(--c-bolt);
    color: var(--c-bolt);
  }
  @media (prefers-reduced-motion: reduce) {
    .ask-surface {
      animation: none;
    }
    .ask-spinner {
      animation: none;
      border-top-color: var(--c-bolt);
    }
  }
  .ghost-backdrop {
    position: fixed;
    inset: 0;
    background: oklch(0.04 0.020 30 / 0.75);
    z-index: var(--z-overlay);
    animation: fadeIn 280ms var(--m-snappy);
  }
  @supports (backdrop-filter: blur(14px)) or (-webkit-backdrop-filter: blur(14px)) {
    .ghost-backdrop {
      -webkit-backdrop-filter: blur(14px);
      backdrop-filter: blur(14px);
    }
  }
  .ghost-surface {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: calc(var(--z-overlay) + 1);
    max-width: 640px;
    margin: 0 auto;
    max-height: 90vh;
    overflow-y: auto;
    background: oklch(0.13 0.020 30);
    border-top: 1px solid var(--c-line-2);
    border-top-left-radius: var(--r-5);
    border-top-right-radius: var(--r-5);
    padding: 16px 18px calc(24px + var(--sa-bottom));
    box-shadow: var(--shadow-4);
    animation: sheetUp 420ms var(--m-spring);
  }
  .ghost-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .ghost-eyebrow {
    font-family: var(--f-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: oklch(0.65 0.10 50);
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }
  .ghost-eyebrow-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: oklch(0.65 0.15 30);
    box-shadow: 0 0 8px oklch(0.65 0.15 30 / 0.6);
  }
  .ghost-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: oklch(0.20 0.020 30);
    border: 1px solid oklch(0.30 0.020 30);
    color: var(--c-text);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
  }
  .ghost-title {
    font-family: var(--f-display);
    font-size: clamp(28px, 7vw, 40px);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: oklch(0.95 0.02 60);
    line-height: 1.05;
    margin: 14px 0 4px;
  }
  .ghost-loc {
    font-family: var(--f-typewriter);
    font-size: 13px;
    color: oklch(0.65 0.05 50);
    margin: 0 0 16px;
    letter-spacing: 0.04em;
  }
  .ghost-tnow {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid oklch(0.30 0.020 30);
    margin-bottom: 16px;
    -webkit-user-select: none;
    user-select: none;
    touch-action: pan-y;
    --slider: 50%;
  }
  .ghost-tnow-layer {
    position: absolute;
    inset: 0;
  }
  .ghost-tnow-layer img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .ghost-tnow-then {
    clip-path: polygon(0 0, var(--slider) 0, var(--slider) 100%, 0 100%);
  }
  .ghost-tnow-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    font-family: var(--f-display);
    font-size: 32px;
    color: oklch(0.95 0.02 60 / 0.4);
    letter-spacing: 0.16em;
  }
  .ghost-tnow-handle {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--slider);
    width: 2px;
    background: oklch(0.95 0.02 60);
    cursor: ew-resize;
    box-shadow: 0 0 12px oklch(0.95 0.02 60 / 0.6);
  }
  .ghost-tnow-handle-bar {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: oklch(0.95 0.02 60);
    box-shadow: 0 0 0 4px oklch(0.04 0.020 30), 0 0 18px oklch(0.95 0.02 60 / 0.7);
  }
  .ghost-tnow-label {
    position: absolute;
    top: 12px;
    font-family: var(--f-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: oklch(0.95 0.02 60);
    padding: 4px 8px;
    border-radius: 4px;
    background: oklch(0.04 0.020 30 / 0.6);
  }
  .ghost-tnow-label-then {
    left: 12px;
  }
  .ghost-tnow-label-now {
    right: 12px;
  }
  .ghost-blurb p {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: 14px;
    line-height: 1.55;
    color: oklch(0.85 0.02 50);
    margin: 0 0 18px;
  }
  .ghost-actions {
    display: grid;
    gap: 8px;
  }
  .ghost-btn {
    display: block;
    text-align: center;
    padding: 14px 16px;
    border-radius: 12px;
    font-family: var(--f-body);
    font-weight: 600;
    font-size: 14.5px;
    letter-spacing: 0.02em;
    cursor: pointer;
    border: 1px solid transparent;
    text-decoration: none;
  }
  .ghost-btn--primary {
    background: oklch(0.86 0.18 92);
    color: oklch(0.13 0.020 270);
  }
  .ghost-btn--secondary {
    background: oklch(0.20 0.020 30);
    color: oklch(0.95 0.02 60);
    border-color: oklch(0.30 0.020 30);
  }
  .ghost-btn--disabled {
    background: oklch(0.18 0.020 30);
    color: oklch(0.50 0.020 30);
    cursor: not-allowed;
  }
  @media (prefers-reduced-motion: reduce) {
    .ghost-surface {
      animation: none;
    }
    .ghost-backdrop {
      animation: none;
    }
  }
  .pv-backdrop {
    position: fixed;
    inset: 0;
    background: oklch(0 0 0 / 0.55);
    z-index: var(--z-overlay);
    animation: fadeIn 220ms var(--m-snappy);
  }
  @supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px)) {
    .pv-backdrop {
      -webkit-backdrop-filter: blur(10px);
      backdrop-filter: blur(10px);
      background: oklch(0 0 0 / 0.35);
    }
  }
  .pv-sheet {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: calc(var(--z-overlay) + 1);
    max-width: 640px;
    margin: 0 auto;
    background: var(--c-surface);
    border-top: 1px solid var(--c-line-2);
    border-top-left-radius: var(--r-5);
    border-top-right-radius: var(--r-5);
    padding: 16px 18px calc(24px + var(--sa-bottom));
    box-shadow: var(--shadow-4);
    animation: sheetUp 360ms var(--m-spring);
  }
  @supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)) {
    .pv-sheet {
      background: oklch(0.17 0.022 270 / 0.92);
      -webkit-backdrop-filter: blur(28px) saturate(1.4);
      backdrop-filter: blur(28px) saturate(1.4);
    }
  }
  .pv-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
  }
  .pv-title {
    font-family: var(--f-display);
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--c-ink);
  }
  .pv-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--c-surface-2);
    border: 1px solid var(--c-line);
    color: var(--c-text);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
  }
  .pv-picker {
    display: grid;
    gap: 10px;
  }
  .pv-lede {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: 14px;
    color: var(--c-text-dim);
    line-height: 1.5;
    margin: 0 0 6px;
  }
  .pv-btn {
    display: block;
    width: 100%;
    text-align: center;
    padding: 14px 16px;
    border-radius: 12px;
    font-family: var(--f-body);
    font-weight: 600;
    font-size: 14.5px;
    letter-spacing: 0.02em;
    cursor: pointer;
    border: 1px solid transparent;
  }
  .pv-btn--primary {
    background: var(--c-bolt);
    color: oklch(0.13 0.020 270);
  }
  .pv-btn--secondary {
    background: var(--c-surface-2);
    color: var(--c-text);
    border-color: var(--c-line);
  }
  .pv-btn:hover {
    filter: brightness(1.05);
  }
  .pv-btn:active {
    transform: scale(0.98);
  }
  .pv-tier-hint {
    font-family: var(--f-mono);
    font-size: 10.5px;
    color: var(--c-text-mute);
    margin-top: 8px;
    line-height: 1.5;
  }
  .pv-tier-hint strong {
    color: var(--c-bolt);
    font-weight: 600;
  }
  .pv-busy {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 24px 0;
    font-family: var(--f-mono);
    font-size: 13px;
    color: var(--c-text-dim);
  }
  .pv-result {
    display: grid;
    gap: 14px;
  }
  .photo-verify-result {
    padding: 14px 16px;
    border-radius: 12px;
    background: oklch(0.13 0.020 270 / 0.5);
    border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-bolt);
  }
  .photo-verify-tier {
    font-family: var(--f-display);
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
  }
  .photo-verify-confidence,
  .photo-verify-extracted > * {
    font-family: var(--f-mono);
    font-size: 11.5px;
    color: var(--c-text-dim);
    margin: 4px 0;
  }
  .photo-verify-reason {
    font-family: var(--f-editorial);
    font-style: italic;
    font-size: 13px;
    color: var(--c-text);
    margin-top: 8px;
    line-height: 1.5;
  }
  .photo-verify-stub-note {
    font-family: var(--f-mono);
    font-size: 10.5px;
    color: var(--c-text-mute);
    margin-top: 8px;
    padding: 6px 8px;
    background: oklch(0.13 0.020 270);
    border: 1px dashed var(--c-line);
    border-radius: 6px;
  }
  @media (prefers-reduced-motion: reduce) {
    .pv-sheet {
      animation: none;
    }
    .pv-backdrop {
      animation: none;
    }
  }
  @keyframes scoreFlash {
    0% {
      box-shadow: 0 0 0 0 oklch(0.86 0.18 92 / 0.55);
      background-color: oklch(0.86 0.18 92 / 0.12);
    }
    35% {
      box-shadow: 0 0 0 6px oklch(0.86 0.18 92 / 0.35);
      background-color: oklch(0.86 0.18 92 / 0.18);
      transform: scale(1.015);
    }
    100% {
      box-shadow: 0 0 0 0 oklch(0.86 0.18 92 / 0);
    }
  }
  .score-flash {
    animation: scoreFlash 900ms var(--m-celebrate);
    transform-origin: center center;
  }
  [data-score-text] {
    display: inline-block;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    min-width: 2ch;
    transform-origin: center center;
    contain: layout paint;
  }
  @keyframes scoreAxisPulse {
    0% {
      font-variation-settings: "wght" 700;
      color: var(--c-bolt);
      transform: scale(1);
    }
    30% {
      font-variation-settings: "wght" 900;
      color: var(--c-lime);
      transform: scale(1.06);
    }
    100% {
      font-variation-settings: "wght" 700;
      color: var(--c-bolt);
      transform: scale(1);
    }
  }
  @keyframes scoreAxisPulseFav {
    0% {
      font-variation-settings: "wght" 700;
      color: var(--c-bolt);
      transform: scale(1);
    }
    25% {
      font-variation-settings: "wght" 900;
      color: var(--c-lime);
      transform: scale(1.12);
    }
    100% {
      font-variation-settings: "wght" 700;
      color: var(--c-bolt);
      transform: scale(1);
    }
  }
  .score-axis-pulse {
    animation: scoreAxisPulse 600ms var(--m-celebrate);
    will-change:
      font-variation-settings,
      color,
      transform;
  }
  .score-axis-pulse--fav {
    animation: scoreAxisPulseFav 900ms var(--m-celebrate);
  }
  @media (prefers-reduced-motion: reduce) {
    .score-flash {
      animation: none;
    }
    @keyframes scoreAxisPulseReduced {
      0% {
        color: var(--c-bolt);
      }
      30% {
        color: var(--c-lime);
      }
      100% {
        color: var(--c-bolt);
      }
    }
    .score-axis-pulse,
    .score-axis-pulse--fav {
      animation: scoreAxisPulseReduced 300ms ease-out;
      transform: none;
    }
  }
}

/* src/styles/views.css */
.ff-live-masthead,
.ff-results-masthead,
.ff-terrace-masthead {
  position: relative;
  padding: var(--sp-5) var(--sp-4) var(--sp-4);
  border-bottom: 1px solid var(--c-line);
  background:
    radial-gradient(
      ellipse 600px 200px at top right,
      oklch(0.20 0.022 270 / 0.4),
      transparent 70%),
    var(--c-surface);
}
.ff-live-kicker,
.ff-results-kicker,
.ff-terrace-kicker {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--c-bolt);
  margin-bottom: var(--sp-2);
}
.ff-live-headline,
.ff-results-headline,
.ff-terrace-headline {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(28px, 6vw, 40px);
  line-height: 1;
  letter-spacing: 0.005em;
  text-transform: uppercase;
  margin: 0 0 var(--sp-2);
  color: var(--c-ink);
}
.ff-live-sub,
.ff-results-sub,
.ff-terrace-sub {
  font-family: var(--f-editorial);
  font-style: italic;
  font-size: 14px;
  color: var(--c-text-dim);
  margin: 0;
  max-width: 50ch;
}
.ff-live-section-title,
.ff-results-date-head,
.ff-terrace-section-title {
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--c-bolt);
  text-transform: uppercase;
  margin: var(--sp-4) var(--sp-4) var(--sp-2);
  display: flex;
  align-items: center;
  gap: 12px;
}
.ff-live-section-title::after,
.ff-results-date-head::after,
.ff-terrace-section-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      var(--c-bolt),
      transparent);
  opacity: 0.5;
}
.ff-live-section-title.is-live {
  color: var(--c-lime);
}
.ff-live-section-title.is-live::after {
  background:
    linear-gradient(
      90deg,
      var(--c-lime),
      transparent);
}
.ff-live-rows,
.ff-results-rows {
  display: flex;
  flex-direction: column;
}
.ff-live-row,
.ff-results-row {
  display: grid;
  grid-template-columns: 72px 1fr;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--c-line);
  transition: background var(--m-fast) var(--m-snappy);
}
.ff-live-row:last-child,
.ff-results-row:last-child {
  border-bottom: 0;
}
.ff-live-row:hover,
.ff-results-row:hover {
  background: var(--c-surface-2);
}
.ff-live-row.is-live {
  background:
    linear-gradient(
      90deg,
      oklch(0.85 0.20 138 / 0.04),
      transparent);
}
.ff-live-league,
.ff-results-league {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  color: var(--c-text-mute);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.ff-live-clubs,
.ff-results-clubs {
  display: grid;
  grid-template-columns: 1fr 56px 1fr;
  align-items: center;
  gap: var(--sp-2);
}
.ff-live-team,
.ff-results-team {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.ff-live-team-away,
.ff-results-team:nth-child(3) {
  flex-direction: row-reverse;
  text-align: right;
}
.ff-live-crest,
.ff-results-crest {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex-shrink: 0;
}
.ff-live-crest-fallback,
.ff-results-crest-fallback {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-bolt);
  color: #0F1014;
  display: grid;
  place-items: center;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 10px;
  flex-shrink: 0;
}
.ff-live-team-name,
.ff-results-team-name {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--c-text);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ff-live-score,
.ff-results-score {
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: 18px;
  text-align: center;
  color: var(--c-ink);
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}
.ff-live-row.is-live .ff-live-score {
  color: var(--c-lime);
}
.ff-live-empty,
.ff-results-empty {
  font-family: var(--f-editorial);
  font-style: italic;
  font-size: 14px;
  color: var(--c-text-mute);
  padding: var(--sp-3) var(--sp-4);
  margin: 0;
}
.ff-results-chips {
  display: flex;
  gap: 6px;
  padding: var(--sp-3) var(--sp-4);
  overflow-x: auto;
  scrollbar-width: none;
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-line);
}
.ff-results-chips::-webkit-scrollbar {
  display: none;
}
.ff-results-chip {
  flex: 0 0 auto;
  padding: 5px 11px;
  border: 0;
  border-radius: 999px;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--c-surface-2);
  color: var(--c-text);
  cursor: pointer;
  white-space: nowrap;
}
.ff-results-chip:hover {
  background: var(--c-surface-3);
}
.ff-results-chip.is-active {
  background: var(--c-bolt);
  color: #0F1014;
}
.ff-results-date {
  padding-bottom: var(--sp-2);
}
.ff-results-date-head {
  font-size: 11px;
}
.ff-results-scope {
  display: flex;
  gap: 4px;
  padding: var(--sp-3) var(--sp-4) var(--sp-2);
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-line-soft, var(--c-line));
}
.ff-results-scope-btn {
  flex: 1;
  padding: 8px 10px;
  border: 1px solid var(--c-line);
  background: var(--c-surface);
  color: var(--c-text-mute);
  font-family: var(--f-mono);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--m-fast) var(--m-snappy);
}
.ff-results-scope-btn:first-child {
  border-radius: 4px 0 0 4px;
}
.ff-results-scope-btn:last-child {
  border-radius: 0 4px 4px 0;
}
.ff-results-scope-btn:not(:last-child) {
  border-right: 0;
}
.ff-results-scope-btn:hover {
  background: var(--c-surface-2);
  color: var(--c-text);
}
.ff-results-scope-btn.is-active {
  background: var(--c-ink);
  color: var(--c-bolt);
  border-color: var(--c-ink);
  z-index: 1;
}
.ff-results-nations {
  padding-top: var(--sp-2);
}
.ff-results-nation-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
}
.ff-results-nation-chip.is-europe {
  border: 1px solid color-mix(in oklch, var(--c-bolt) 40%, transparent);
}
.ff-results-nation-chip.is-europe.is-active {
  border-color: var(--c-bolt);
}
.ff-results-nation-name {
  letter-spacing: 0.04em;
}
.ff-results-nation-count {
  font-family: var(--f-mono);
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0.04em;
  opacity: 0.6;
  padding-left: 2px;
}
.ff-results-nation-chip.is-active .ff-results-nation-count {
  opacity: 0.7;
}
.ff-results-comps {
  display: flex;
  gap: 6px;
  padding: 0 var(--sp-4) var(--sp-3);
  overflow-x: auto;
  scrollbar-width: none;
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-line);
}
.ff-results-comps::-webkit-scrollbar {
  display: none;
}
.ff-results-comps .ff-results-chip {
  padding: 4px 10px;
  font-size: 10px;
}
.ff-results-comps .ff-results-chip.is-cup-chip {
  background: var(--c-surface-3);
  border: 1px dashed color-mix(in oklch, var(--c-bolt) 30%, transparent);
}
.ff-results-comps .ff-results-chip.is-cup-chip.is-active {
  background: var(--c-bolt);
  border-style: solid;
}
.ff-results-cup-round {
  padding: 0;
  margin-top: var(--sp-3);
}
.ff-results-cup-round-bar {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  width: 100%;
  padding: var(--sp-2) var(--sp-4);
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
}
.ff-results-cup-round-bar:hover .ff-results-cup-round-label {
  color: var(--c-bolt);
}
.ff-results-cup-rule {
  flex: 1;
  height: 1px;
  border: 0;
  background:
    linear-gradient(
      90deg,
      transparent,
      color-mix(in oklch, var(--c-bolt) 35%, transparent),
      transparent);
}
.ff-results-cup-round-meta {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  flex: 0 0 auto;
  white-space: nowrap;
}
.ff-results-cup-round-label {
  font-family: var(--f-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: 16px;
  color: var(--c-ink);
  transition: color var(--m-fast) var(--m-snappy);
}
.ff-results-cup-round-when {
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--c-text-mute);
  letter-spacing: 0.04em;
}
.ff-results-cup-round-count {
  font-family: var(--f-mono);
  font-size: 9px;
  color: var(--c-text-mute);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ff-results-cup-round-body {
  display: none;
  flex-direction: column;
  padding: var(--sp-2) 0 var(--sp-3);
}
.ff-results-cup-round.is-open .ff-results-cup-round-body {
  display: flex;
}
.ff-results-cup-row {
  display: grid;
  grid-template-columns: 52px 1fr;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-4);
  border-bottom: 1px solid var(--c-line);
}
.ff-results-cup-row:last-child {
  border-bottom: 0;
}
.ff-results-cup-row.is-upcoming .ff-results-cup-score {
  color: var(--c-text-mute);
  font-size: 12px;
}
.ff-results-cup-when {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--f-mono);
  color: var(--c-text-mute);
  line-height: 1.1;
}
.ff-results-cup-when .cw-dow {
  font-size: 9px;
  letter-spacing: 0.08em;
}
.ff-results-cup-when .cw-day {
  font-family: var(--f-stencil);
  font-size: 18px;
  color: var(--c-ink);
  font-weight: 900;
}
.ff-results-cup-when .cw-mon {
  font-size: 9px;
  letter-spacing: 0.08em;
}
.ff-results-cup-fix {
  display: grid;
  grid-template-columns: 1fr 56px 1fr;
  align-items: center;
  gap: var(--sp-2);
}
.ff-results-cup-side {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.ff-results-cup-side-away {
  flex-direction: row-reverse;
  text-align: right;
}
.ff-results-cup-name {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--c-text);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ff-results-cup-crest {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex-shrink: 0;
}
.ff-results-cup-crest-fallback {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-bolt);
  color: #0F1014;
  display: grid;
  place-items: center;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 10px;
  flex-shrink: 0;
}
.ff-results-cup-score {
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: 18px;
  text-align: center;
  color: var(--c-ink);
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}
.ff-results-cup-final {
  position: relative;
  padding: var(--sp-5) var(--sp-4) var(--sp-5);
  margin-top: var(--sp-4);
  text-align: center;
}
.ff-results-cup-final-rules {
  height: 4px;
  background:
    linear-gradient(
      90deg,
      transparent,
      var(--c-bolt) 20%,
      var(--c-bolt) 80%,
      transparent),
    linear-gradient(
      90deg,
      transparent,
      color-mix(in oklch, var(--c-bolt) 50%, transparent) 30%,
      color-mix(in oklch, var(--c-bolt) 50%, transparent) 70%,
      transparent);
  background-size: 100% 1px, 100% 1px;
  background-position: 0 1px, 0 3px;
  background-repeat: no-repeat;
}
.ff-results-cup-final-banner {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: var(--sp-3);
  padding: var(--sp-3) 0 var(--sp-1);
}
.ff-results-cup-final-kicker {
  color: var(--c-text-mute);
  font-family: var(--f-mono);
}
.ff-results-cup-final-label {
  font-family: var(--f-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: 28px;
  color: var(--c-bolt);
  letter-spacing: 0.01em;
}
.ff-results-cup-final-when {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--c-text-mute);
  margin-bottom: var(--sp-4);
}
.ff-results-cup-final-body {
  padding: 0 var(--sp-4);
}
.ff-results-cup-final-match {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--sp-3);
}
.ff-results-cup-final-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
}
.ff-results-cup-final-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
}
.ff-results-cup-final-crest {
  width: 56px;
  height: 56px;
  object-fit: contain;
}
.ff-results-cup-final-crest-fallback {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--c-bolt);
  color: #0F1014;
  display: grid;
  place-items: center;
  font-family: var(--f-display);
  font-weight: 900;
  font-size: 24px;
}
.ff-results-cup-final-name {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-ink);
  text-align: center;
}
.ff-results-cup-final-score {
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: 36px;
  color: var(--c-bolt);
  font-variant-numeric: tabular-nums;
}
.ff-results-cup-final-match.is-upcoming .ff-results-cup-final-score {
  font-family: var(--f-editorial);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: var(--c-text-mute);
}
.ff-terrace-section {
  padding: 0 var(--sp-4);
  margin-bottom: var(--sp-4);
}
.ff-terrace-rivals {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.ff-terrace-row {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: 8px;
}
.ff-terrace-row.is-me {
  background:
    linear-gradient(
      90deg,
      oklch(0.86 0.18 92 / 0.10),
      var(--c-surface));
  border-color: var(--c-bolt);
}
.ff-terrace-rank {
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: 18px;
  color: var(--c-bolt);
  text-align: center;
}
.ff-terrace-name {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.ff-terrace-name-text {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 16px;
  text-transform: uppercase;
  color: var(--c-text);
}
.ff-terrace-name-tag {
  background: var(--c-bolt);
  color: #0F1014;
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: 9px;
  letter-spacing: 0.1em;
  padding: 2px 5px;
  border-radius: 3px;
}
.ff-terrace-stamps {
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-mute);
}
.ff-terrace-prose,
.ff-terrace-prose-italic {
  font-family: var(--f-editorial);
  font-size: 15px;
  line-height: 1.55;
  color: var(--c-text-dim);
  max-width: 60ch;
  margin: 0 0 var(--sp-3);
}
.ff-terrace-prose-italic {
  font-style: italic;
  font-size: 13px;
  color: var(--c-text-mute);
  margin-top: var(--sp-3);
}
.ff-terrace-coming {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.ff-terrace-coming li {
  font-family: var(--f-editorial);
  font-size: 14px;
  color: var(--c-text-dim);
  padding-left: 18px;
  position: relative;
}
.ff-terrace-coming li::before {
  content: "◆";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--c-bolt);
  font-size: 10px;
}

/* src/styles/home.css */
ff-home-hero {
  display: block;
  margin: var(--sp-3) var(--sp-3) var(--sp-4);
  --scroll-t: 0;
}
.hero-card-inner {
  transform: translateY(calc((var(--scroll-t, 0) - 0.5) * -32px));
  will-change: transform;
}
.hero-card-veil {
  opacity: 0.4;
}
.hero-card {
  position: relative;
  border-radius: 18px;
  padding: 18px 20px 20px;
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-2);
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: box-shadow 220ms var(--m-snappy);
}
.hero-card:hover {
  box-shadow: var(--shadow-3);
}
.hero-card:active {
  transform: scale(0.99);
}
.hero-card-inner {
  position: relative;
  z-index: 2;
  will-change: transform;
}
.hero-card-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(
      ellipse 80% 60% at 20% 10%,
      oklch(0.86 0.18 92 / 0.10),
      transparent 65%),
    radial-gradient(
      ellipse 70% 50% at 90% 100%,
      oklch(0.85 0.20 138 / 0.10),
      transparent 60%);
  opacity: 0;
  z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
  .hero-card-inner {
    animation: none;
    transform: none;
  }
  .hero-card-veil {
    animation: none;
    opacity: 0;
  }
}
.hero-card.is-live {
  border-color: oklch(0.85 0.20 138 / 0.45);
}
.hero-card.is-live::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse 600px 200px at 50% 0%,
      oklch(0.85 0.20 138 / 0.10),
      transparent 70%);
  pointer-events: none;
  animation: heroLivePulse 3.6s ease-in-out infinite;
}
@keyframes heroLivePulse {
  0%, 100% {
    opacity: 0.55;
  }
  50% {
    opacity: 1;
  }
}
.hero-strip {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  z-index: 2;
}
.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--f-body);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.08);
  color: var(--c-text);
}
.hero-tag-live {
  background: var(--c-lime);
  color: oklch(0.13 0.020 270);
}
.hero-tag-live::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: oklch(0.13 0.020 270);
  animation: liveDotPulse 1.4s ease-in-out infinite;
}
.hero-tag-soon {
  background: var(--c-bolt);
  color: oklch(0.13 0.020 270);
}
.hero-tag-today {
  background: oklch(0.72 0.18 260);
  color: oklch(0.13 0.020 270);
}
.hero-tag-weekend {
  background: oklch(0.80 0.16 60);
  color: oklch(0.13 0.020 270);
}
.hero-tag-upcoming {
  background: rgba(255, 255, 255, 0.10);
  color: var(--c-text);
}
@keyframes liveDotPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(0.7);
  }
}
.hero-league {
  font-family: var(--f-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--c-text-dim);
}
.hero-time {
  margin-left: auto;
  font-family: var(--f-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--c-text-mute);
  text-transform: uppercase;
}
.hero-body {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  z-index: 2;
}
.hero-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  min-width: 0;
}
.hero-crest {
  width: 56px;
  height: 56px;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.35));
}
.hero-crest-fallback {
  display: grid;
  place-items: center;
  background:
    linear-gradient(
      135deg,
      var(--c-surface-3),
      var(--c-surface-2));
  border: 1px solid var(--c-line);
  border-radius: 50%;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 18px;
  color: var(--c-text);
}
.hero-team-name {
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.01em;
  color: var(--c-text);
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 12ch;
}
.hero-score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 64px;
}
.hero-score-text {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 38px;
  letter-spacing: 0.02em;
  color: var(--c-ink);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.hero-score.is-live .hero-score-text {
  color: var(--c-lime);
}
.hero-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-lime);
  box-shadow: 0 0 8px var(--c-lime);
  animation: liveDotPulse 1.4s ease-in-out infinite;
}
.hero-meta {
  position: relative;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--c-line);
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--c-text-mute);
  z-index: 2;
}
.hero-fallback-body {
  padding: 8px 0;
}
.hero-fallback-headline {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  color: var(--c-ink);
}
.hero-fallback-sub {
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-dim);
  margin: 0;
}
ff-home-quick-actions {
  display: block;
  margin: 0 var(--sp-3) var(--sp-4);
}
.qa-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 2px 0 4px;
}
.qa-row::-webkit-scrollbar {
  display: none;
}
.qa-chip {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border: 1px solid var(--c-line);
  border-radius: 999px;
  background: var(--c-surface);
  color: var(--c-text);
  cursor: pointer;
  transition: all var(--m-fast) var(--m-snappy);
  -webkit-tap-highlight-color: transparent;
}
.qa-chip:hover {
  background: var(--c-surface-2);
}
.qa-chip:active {
  transform: scale(0.96);
}
.qa-chip-label {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.qa-chip-badge {
  display: inline-grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: var(--c-bolt);
  color: oklch(0.13 0.020 270);
  border-radius: 999px;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.qa-chip-accent {
  background:
    linear-gradient(
      135deg,
      color(xyz 0.612 0.634 0.08 / 0.2),
      color(xyz 0.612 0.634 0.08 / 0.051));
  border-color: oklch(0.86 0.18 92 / 0.45);
}
.qa-chip-pulse .qa-chip-badge {
  background: var(--c-lime);
  animation: chipBadgePulse 2s ease-in-out infinite;
}
@keyframes chipBadgePulse {
  0%, 100% {
    box-shadow: 0 0 0 0 oklch(0.85 0.20 138 / 0.55);
  }
  50% {
    box-shadow: 0 0 0 6px oklch(0.85 0.20 138 / 0);
  }
}
ff-home-myteam {
  display: block;
  margin: 0 var(--sp-3) var(--sp-4);
}
.myteam-card {
  border: 1px solid var(--c-line);
  border-radius: 16px;
  background: var(--c-surface);
  padding: 16px;
  cursor: pointer;
  transition: transform var(--m-fast) var(--m-snappy), box-shadow var(--m-fast) var(--m-snappy);
}
.myteam-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-2);
}
.myteam-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.myteam-crest {
  width: 44px;
  height: 44px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.25));
}
.myteam-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--c-bolt);
  text-transform: uppercase;
  margin-bottom: 2px;
}
.myteam-name {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
  color: var(--c-text);
  line-height: 1.1;
}
.myteam-rows {
  display: flex;
  flex-direction: column;
}
.myteam-row {
  display: grid;
  grid-template-columns: 36px 18px 24px 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 10px 0;
  border-top: 1px solid var(--c-line);
}
.myteam-row-empty {
  padding: 12px 0;
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--c-text-mute);
  grid-template-columns: 1fr;
}
.myteam-row-label {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.myteam-row-vs {
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--c-text-dim);
  text-align: center;
}
.myteam-row-crest {
  width: 22px;
  height: 22px;
  object-fit: contain;
}
.myteam-row-crest-fallback {
  border-radius: 50%;
  background: var(--c-surface-3);
  display: grid;
  place-items: center;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 11px;
  color: var(--c-text);
}
.myteam-row-opp {
  font-family: var(--f-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--c-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.myteam-row-score {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  color: var(--c-ink);
}
.myteam-empty {
  padding: 20px 16px 18px;
  text-align: center;
}
.myteam-empty-pile {
  display: flex;
  justify-content: center;
  gap: -16px;
  margin-bottom: 12px;
}
.myteam-empty-crest {
  width: 38px;
  height: 38px;
  object-fit: contain;
  border-radius: 50%;
  background: var(--c-surface-2);
  padding: 4px;
  border: 2px solid var(--c-surface);
  margin-left: -10px;
}
.myteam-empty-crest:first-child {
  margin-left: 0;
}
.myteam-empty-title {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
  color: var(--c-text);
  margin: 0 0 6px;
}
.myteam-empty-sub {
  font-family: var(--f-body);
  font-size: 13px;
  line-height: 1.5;
  color: var(--c-text-dim);
  margin: 0 auto 14px;
  max-width: 36ch;
}
.myteam-empty-cta {
  padding: 9px 18px;
  background: var(--c-bolt);
  color: oklch(0.13 0.020 270);
  border: 0;
  border-radius: 999px;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  box-shadow: 0 4px 14px oklch(0.86 0.18 92 / 0.35);
}
ff-home-live-ticker {
  display: block;
  margin: 0 0 var(--sp-4);
}
ff-home-live-ticker[hidden] {
  display: none;
}
.lt-wrap {
  padding-left: var(--sp-3);
}
.lt-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 var(--sp-3) 8px 0;
}
.lt-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-lime);
  box-shadow: 0 0 8px var(--c-lime);
  animation: liveDotPulse 1.4s ease-in-out infinite;
}
.lt-title {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.01em;
  color: var(--c-text);
  margin: 0;
}
.lt-count {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 12px;
  color: oklch(0.13 0.020 270);
  background: var(--c-lime);
  padding: 1px 8px;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.lt-strip {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 4px 0 8px;
  scroll-snap-type: x mandatory;
}
.lt-strip::-webkit-scrollbar {
  display: none;
}
.lt-card {
  flex: 0 0 162px;
  padding: 12px;
  border-radius: 14px;
  background:
    linear-gradient(
      180deg,
      oklch(0.85 0.20 138 / 0.05),
      transparent 60%),
    var(--c-surface);
  border: 1px solid oklch(0.85 0.20 138 / 0.25);
  scroll-snap-align: start;
  cursor: pointer;
  transition: transform var(--m-fast) var(--m-snappy);
}
.lt-card:hover {
  transform: translateY(-1px);
}
.lt-card-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 3px 0;
}
.lt-crest {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex-shrink: 0;
}
.lt-crest-fallback {
  border-radius: 50%;
  background: var(--c-surface-3);
  display: grid;
  place-items: center;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 11px;
  color: var(--c-text);
}
.lt-team {
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 13px;
  color: var(--c-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lt-score-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid oklch(0.85 0.20 138 / 0.15);
}
.lt-score {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 18px;
  color: var(--c-lime);
  font-variant-numeric: tabular-nums;
}
.lt-minute {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--c-lime);
  text-transform: uppercase;
}
ff-home-discovery {
  display: block;
  margin: 0 var(--sp-3) var(--sp-4);
}
.disc-card {
  position: relative;
  border-radius: 16px;
  padding: 18px;
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-2);
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: transform var(--m-fast) var(--m-snappy), box-shadow var(--m-fast) var(--m-snappy);
}
.disc-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-3);
}
.disc-card:active {
  transform: scale(0.99);
}
.disc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-bolt);
  margin-bottom: 12px;
}
.disc-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-bolt);
  box-shadow: 0 0 6px oklch(0.86 0.18 92 / 0.55);
}
.disc-body {
  display: grid;
  grid-template-columns: 1fr 72px;
  gap: 14px;
  align-items: start;
}
.disc-text {
  min-width: 0;
}
.disc-headline {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 19px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin: 0 0 8px;
}
.disc-prose {
  font-family: var(--f-body);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--c-text-dim);
  margin: 0 0 10px;
}
.disc-meta {
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--c-text-mute);
}
.disc-club-name {
  font-weight: 600;
  color: var(--c-text);
}
.disc-crest {
  width: 72px;
  height: 72px;
  object-fit: contain;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.35));
}
.disc-crest-fallback {
  border-radius: 50%;
  background: var(--c-bolt);
  color: oklch(0.13 0.020 270);
  display: grid;
  place-items: center;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 32px;
}
ff-home-ghost-spotlight {
  display: block;
  margin: 0 var(--sp-3) var(--sp-4);
}
.ghost-spotlight {
  position: relative;
  border-radius: 16px;
  padding: 18px;
  background:
    radial-gradient(
      ellipse 380px 240px at 100% 0%,
      oklch(0.55 0.020 50 / 0.10),
      transparent 65%),
    linear-gradient(
      165deg,
      #0f1118,
      #05070f);
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-2);
  cursor: pointer;
  overflow: hidden;
  transition: transform var(--m-fast) var(--m-snappy), box-shadow var(--m-fast) var(--m-snappy);
}
.ghost-spotlight:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-3);
}
.ghost-spotlight:active {
  transform: scale(0.99);
}
.ghost-spotlight-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: oklch(0.65 0.020 50);
  margin-bottom: 12px;
}
.ghost-spotlight-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: oklch(0.65 0.020 50);
  box-shadow: 0 0 6px oklch(0.65 0.020 50 / 0.40);
}
.ghost-spotlight-body {
  display: grid;
  grid-template-columns: 1fr 56px;
  gap: 14px;
  align-items: start;
}
.ghost-spotlight-text {
  min-width: 0;
}
.ghost-spotlight-headline {
  font-family: var(--f-editorial, var(--f-body));
  font-style: italic;
  font-weight: 600;
  font-size: 21px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--c-ink);
  margin: 0 0 6px;
}
.ghost-spotlight-era {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--c-text-mute);
  margin: 0 0 10px;
  text-transform: uppercase;
}
.ghost-spotlight-prose {
  font-family: var(--f-body);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--c-text-dim);
  margin: 0 0 10px;
}
.ghost-spotlight-meta {
  font-family: var(--f-body);
  font-size: 12px;
  color: var(--c-text-mute);
}
.ghost-spotlight-arrow {
  color: var(--c-text-dim);
  font-weight: 600;
}
.ghost-spotlight-sigil {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background:
    radial-gradient(
      circle at 30% 30%,
      oklch(0.32 0.020 50 / 0.30),
      transparent 70%),
    linear-gradient(
      135deg,
      #13161d,
      #060911);
  border: 1px solid oklch(0.30 0.015 50 / 0.40);
  box-shadow: inset 0 1px 0 oklch(0.50 0.020 50 / 0.20);
}
.ghost-spotlight-sigil-mark {
  font-family: var(--f-editorial, serif);
  font-size: 30px;
  color: oklch(0.55 0.020 50);
  line-height: 1;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.4));
}
.ghost-spotlight-cta {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid oklch(0.25 0.010 270);
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: oklch(0.65 0.020 50);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ghost-spotlight-chevron {
  font-size: 13px;
}
.hero-fallback-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.hero-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 13px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--c-line);
  border-radius: 999px;
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text);
  cursor: pointer;
  transition: background var(--m-fast) var(--m-snappy), transform var(--m-fast);
  -webkit-tap-highlight-color: transparent;
}
.hero-chip:hover {
  background: rgba(255, 255, 255, 0.12);
}
.hero-chip:active {
  transform: scale(0.96);
}
.hero-chip-icon {
  font-size: 14px;
  filter: grayscale(0.4) brightness(1.2);
}
.hero-tag-fav {
  background:
    linear-gradient(
      135deg,
      var(--c-bolt),
      oklch(0.78 0.18 88));
  color: oklch(0.13 0.020 270);
  box-shadow: 0 2px 8px oklch(0.86 0.18 92 / 0.4);
}
ff-home-pyramid {
  display: block;
  margin: 0 var(--sp-3) var(--sp-4);
}
.pyr-card {
  position: relative;
  border-radius: 16px;
  padding: 18px;
  background:
    radial-gradient(
      ellipse 360px 220px at 0% 100%,
      oklch(0.72 0.18 260 / 0.10),
      transparent 60%),
    linear-gradient(
      165deg,
      var(--c-surface),
      var(--c-surface-2));
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-2);
  cursor: pointer;
  transition: transform var(--m-fast) var(--m-snappy), box-shadow var(--m-fast) var(--m-snappy);
}
.pyr-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-3);
}
.pyr-card:active {
  transform: scale(0.99);
}
.pyr-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--f-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-bolt);
  margin-bottom: 10px;
}
.pyr-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-bolt);
  box-shadow: 0 0 6px oklch(0.86 0.18 92 / 0.55);
}
.pyr-name {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  margin: 0 0 8px;
}
.pyr-line {
  font-family: var(--f-body);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--c-text-dim);
  margin: 0 0 14px;
}
.pyr-table {
  display: flex;
  flex-direction: column;
  background: oklch(0.13 0.020 270 / 0.35);
  border: 1px solid var(--c-line);
  border-radius: 10px;
  overflow: hidden;
}
.pyr-row {
  display: grid;
  grid-template-columns: 30px 1fr 42px 50px 50px;
  gap: 6px;
  padding: 8px 12px;
  align-items: center;
  font-family: var(--f-body);
  font-size: 13px;
  border-top: 1px solid oklch(0.30 0.020 270 / 0.3);
}
.pyr-row:first-child {
  border-top: 0;
}
.pyr-row-head {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-mute);
  background: oklch(0.13 0.020 270 / 0.4);
}
.pyr-pos {
  font-weight: 700;
  color: var(--c-bolt);
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.pyr-club {
  font-weight: 500;
  color: var(--c-text);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.pyr-stat {
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: var(--c-text-dim);
}
.pyr-pts {
  color: var(--c-text);
  font-weight: 700;
}
.pyr-fallback {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.pyr-stat-tile {
  padding: 14px 10px;
  background: oklch(0.13 0.020 270 / 0.35);
  border: 1px solid var(--c-line);
  border-radius: 10px;
  text-align: center;
}
.pyr-stat-num {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 20px;
  color: var(--c-bolt);
  letter-spacing: -0.02em;
  margin-bottom: 2px;
}
.pyr-stat-lbl {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.pyr-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--c-line);
  font-family: var(--f-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-dim);
}
.pyr-cta-arrow {
  color: var(--c-bolt);
  font-size: 16px;
}
ff-home-stamps {
  display: block;
  margin: 0 var(--sp-3) var(--sp-4);
}
.stamps-card {
  position: relative;
  border-radius: 16px;
  padding: 18px;
  background:
    radial-gradient(
      ellipse 320px 200px at 100% 0%,
      oklch(0.86 0.18 92 / 0.08),
      transparent 60%),
    var(--c-surface);
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-1);
}
.stamps-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--c-bolt);
  text-transform: uppercase;
  margin-bottom: 12px;
}
.stamps-stat-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center;
  margin-bottom: 16px;
}
.stamps-count {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.stamps-count-num {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 38px;
  line-height: 1;
  color: var(--c-ink);
  font-variant-numeric: tabular-nums;
}
.stamps-count-lbl {
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--c-text-mute);
}
.stamps-milestone {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.stamps-milestone-bar {
  height: 6px;
  background: oklch(0.13 0.020 270 / 0.5);
  border-radius: 999px;
  overflow: hidden;
}
.stamps-milestone-fill {
  height: 100%;
  background:
    linear-gradient(
      90deg,
      var(--c-bolt),
      oklch(0.78 0.18 88));
  border-radius: 999px;
  transition: width var(--m-slow) var(--m-snappy);
}
.stamps-milestone-text {
  font-family: var(--f-body);
  font-size: 11.5px;
  font-weight: 500;
  color: var(--c-text-mute);
}
.stamps-recent-grid {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.stamps-recent-crest {
  width: 40px;
  height: 40px;
  object-fit: contain;
  background: oklch(0.13 0.020 270 / 0.5);
  border: 1px solid var(--c-line);
  border-radius: 50%;
  padding: 4px;
}
.stamps-recent-crest-fallback {
  display: grid;
  place-items: center;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 12px;
  color: var(--c-text);
}
.stamps-empty {
  text-align: center;
}
.stamps-empty-head {
  margin-bottom: 14px;
}
.stamps-empty-title {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 19px;
  letter-spacing: -0.02em;
  color: var(--c-text);
  margin: 0 0 6px;
}
.stamps-empty-sub {
  font-family: var(--f-body);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--c-text-dim);
  margin: 0 auto;
  max-width: 36ch;
}
.stamps-empty-samples {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
  margin: 16px 0 18px;
}
.stamps-sample-crest {
  width: 36px;
  height: 36px;
  object-fit: contain;
  background: oklch(0.13 0.020 270 / 0.5);
  border: 1px solid var(--c-line);
  border-radius: 50%;
  padding: 3px;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
}
.stamps-sample-crest-fallback {
  display: grid;
  place-items: center;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 11px;
  color: var(--c-text);
}
.stamps-empty-cta {
  padding: 10px 20px;
  background: var(--c-bolt);
  color: oklch(0.13 0.020 270);
  border: 0;
  border-radius: 999px;
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  box-shadow: 0 4px 14px oklch(0.86 0.18 92 / 0.35);
  transition: transform var(--m-fast);
}
.stamps-empty-cta:active {
  transform: scale(0.96);
}
.home-section-head {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: -0.01em;
  color: var(--c-text);
  text-transform: none;
  padding: 0 var(--sp-4);
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.home-section-head-count {
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 12px;
  color: var(--c-text-mute);
}
ff-home-nearby {
  display: block;
  margin: var(--sp-4) var(--sp-3) var(--sp-4);
}
.nearby-card {
  position: relative;
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: 18px;
  padding: 16px 18px 18px;
  box-shadow: var(--shadow-1);
  overflow: hidden;
}
.nearby-card--cta {
  background:
    linear-gradient(
      180deg,
      #0d111c,
      #0a0d17);
}
.nearby-card--cta::before {
  content: "";
  position: absolute;
  inset: -50% -20% auto auto;
  width: 220px;
  height: 220px;
  background:
    radial-gradient(
      circle,
      var(--c-bolt) 0%,
      transparent 60%);
  opacity: 0.10;
  pointer-events: none;
}
.nearby-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-text-mute);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.nearby-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--c-bolt);
  box-shadow: 0 0 8px var(--c-bolt);
}
.nearby-cta-headline {
  font-family: var(--f-display);
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--c-ink);
  line-height: 1.1;
  margin: 0 0 6px;
}
.nearby-cta-line {
  font-family: var(--f-body);
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--c-text-dim);
  margin: 0 0 14px;
  max-width: 36ch;
}
.nearby-cta-btn {
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--c-bolt);
  color: oklch(0.13 0.020 270);
  border: 0;
  cursor: pointer;
  transition: transform var(--m-fast) var(--m-snappy), box-shadow var(--m-fast) var(--m-snappy);
}
.nearby-cta-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px oklch(0.86 0.18 92 / 0.45);
}
.nearby-cta-btn:active {
  transform: scale(0.98);
}
.nearby-cta-btn:disabled {
  opacity: 0.6;
  cursor: progress;
}
.nearby-rows {
  display: grid;
  gap: 8px;
  margin-top: 4px;
}
.nearby-row {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border-radius: 12px;
  background:
    linear-gradient(
      90deg,
      color-mix(in oklch, var(--club-accent, var(--c-bolt)) 12%, oklch(0.20 0.022 270)) 0%,
      oklch(0.20 0.022 270) 50%);
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--club-accent, var(--c-bolt));
  cursor: pointer;
  text-align: left;
  transition: background var(--m-fast) var(--m-snappy), transform var(--m-fast) var(--m-snappy);
}
.nearby-row:hover {
  background:
    linear-gradient(
      90deg,
      color-mix(in oklch, var(--club-accent, var(--c-bolt)) 20%, var(--c-surface-2)) 0%,
      var(--c-surface-2) 55%);
  transform: translateX(2px);
}
.nearby-row:active {
  transform: scale(0.99);
}
.nearby-crest {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(
      circle at 30% 25%,
      color-mix(in oklch, var(--club-accent, var(--c-bolt)) 80%, white) 0%,
      var(--club-accent, var(--c-bolt)) 65%,
      color-mix(in oklch, var(--club-accent, var(--c-bolt)) 65%, oklch(0.12 0.020 270)) 100%);
  color: oklch(0.99 0 0 / 0.95);
  font-family: var(--f-display);
  font-size: 15px;
  letter-spacing: 0.02em;
  box-shadow:
    inset 0 1px 0 oklch(1 0 0 / 0.18),
    inset 0 -4px 8px oklch(0 0 0 / 0.15),
    0 4px 10px color-mix(in oklch, var(--club-accent, var(--c-bolt)) 40%, transparent);
}
.nearby-row-body {
  min-width: 0;
}
.nearby-row-name {
  font-family: var(--f-display);
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--c-ink);
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nearby-row-meta {
  font-family: var(--f-body);
  font-size: 11.5px;
  color: var(--c-text-mute);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nearby-dist {
  font-family: var(--f-stencil);
  font-weight: 700;
  font-size: 15px;
  color: var(--c-bolt);
  letter-spacing: 0.04em;
  padding-left: 8px;
}
@media (prefers-reduced-motion: reduce) {
  .nearby-row {
    transition: none;
  }
  .nearby-cta-btn {
    transition: none;
  }
}
ff-home-editor {
  display: block;
  margin: var(--sp-4) var(--sp-3);
}
.editor-card {
  position: relative;
  background:
    linear-gradient(
      180deg,
      #121621,
      #0a0d17);
  border: 1px solid var(--c-line);
  border-radius: 18px;
  padding: 20px 22px 22px;
  box-shadow: var(--shadow-2);
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  transition: transform 220ms var(--m-snappy), box-shadow 220ms var(--m-snappy);
}
.editor-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-3);
}
.editor-card:active {
  transform: scale(0.995);
}
.editor-card:focus-visible {
  outline: 2px solid var(--c-bolt);
  outline-offset: 2px;
}
.editor-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      ellipse 60% 50% at 90% -10%,
      color-mix(in oklch, var(--club-accent, var(--c-bolt)) 50%, transparent) 0%,
      transparent 60%),
    radial-gradient(
      ellipse 70% 40% at 10% 110%,
      color-mix(in oklch, var(--club-accent, var(--c-bolt)) 30%, transparent) 0%,
      transparent 55%);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
  mix-blend-mode: screen;
}
.editor-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode: overlay;
  opacity: 0.55;
  pointer-events: none;
  z-index: 1;
}
.editor-card > * {
  position: relative;
  z-index: 2;
}
.editor-eyebrow {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-text-mute);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}
.editor-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-bolt);
  box-shadow: 0 0 6px var(--c-bolt);
}
.editor-headline-row {
  margin-bottom: 4px;
}
.editor-fixture {
  font-family: var(--f-display);
  font-size: clamp(22px, 6vw, 30px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--c-ink);
  line-height: 1.05;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
}
.editor-team {
  color: var(--c-ink);
}
.editor-score {
  font-family: var(--f-stencil);
  font-weight: 900;
  font-size: clamp(28px, 8vw, 40px);
  color: var(--c-bolt);
  letter-spacing: 0.04em;
  text-shadow: 0 2px 0 oklch(0.13 0.02 270 / 0.6);
}
.editor-league {
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-text-dim);
  margin: 8px 0 14px;
}
.editor-body {
  font-family: var(--f-editorial);
  font-style: italic;
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--c-text);
  margin: 0 0 16px;
  text-indent: 0;
}
.editor-body::first-letter {
  font-family: var(--f-display);
  font-size: 2.2em;
  font-style: normal;
  font-weight: 700;
  float: left;
  line-height: 0.95;
  padding-right: 8px;
  padding-top: 4px;
  color: var(--c-bolt);
  letter-spacing: -0.02em;
}
.editor-foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--c-line);
}
.editor-byline {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--c-text-dim);
  letter-spacing: 0.05em;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: help;
}
.editor-byline--ai {
  color: var(--c-text);
}
.editor-sparkle {
  font-size: 12px;
  filter: drop-shadow(0 0 4px oklch(0.86 0.18 92 / 0.6));
}
.editor-fresh {
  color: var(--c-text-mute);
  font-weight: 400;
}
.editor-cta {
  font-family: var(--f-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--c-bolt);
}
.editor-card--wire {
  background: oklch(0.16 0.018 270);
}
.editor-card--wire::before {
  opacity: 0.06;
}
.editor-card--wire .editor-body--wire {
  font-family: var(--f-body);
  font-style: normal;
  font-size: 14px;
  color: var(--c-text-dim);
  line-height: 1.5;
}
.editor-card--wire .editor-body--wire::first-letter {
  font-size: inherit;
  float: none;
  color: inherit;
  padding: 0;
}
.editor-source {
  margin: 14px -6px 6px;
  padding: 8px 12px;
  border: 1px solid var(--c-line);
  border-radius: 10px;
  background: oklch(0.13 0.020 270 / 0.4);
}
.editor-source-summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-mute);
  list-style: none;
}
.editor-source-summary::-webkit-details-marker {
  display: none;
}
.editor-source-summary::marker {
  content: "";
}
.editor-source-chevron {
  transition: transform 220ms var(--m-spring);
  color: var(--c-bolt);
  font-size: 18px;
  line-height: 1;
}
.editor-source[open] .editor-source-chevron {
  transform: rotate(90deg);
}
.editor-source-body {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  animation: editorSourceIn 280ms var(--m-spring);
}
@keyframes editorSourceIn {
  from {
    opacity: 0;
    transform: translateY(-2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.editor-source-row {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 10px;
  font-family: var(--f-mono);
  font-size: 11px;
  line-height: 1.5;
}
.editor-source-key {
  color: var(--c-text-mute);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.editor-source-val {
  color: var(--c-text);
}
@media (max-width: 360px) {
  .editor-body::first-letter {
    font-size: 1.8em;
  }
  .editor-fixture {
    font-size: 19px;
  }
  .editor-score {
    font-size: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .editor-card {
    transition: none;
  }
  .editor-source-chevron {
    transition: none;
  }
  .editor-source-body {
    animation: none;
  }
}
ff-home-brief {
  display: block;
  margin: var(--sp-3) var(--sp-3) var(--sp-2);
}
.brief-card {
  position: relative;
  padding: 14px 16px 12px;
  border-radius: 14px;
  background: oklch(0.15 0.020 270 / 0.6);
  border: 1px solid oklch(0.22 0.020 270 / 0.5);
  border-left: 3px solid var(--c-bolt);
  overflow: hidden;
}
@supports (backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px)) {
  .brief-card {
    -webkit-backdrop-filter: blur(12px) saturate(1.2);
    backdrop-filter: blur(12px) saturate(1.2);
  }
}
.brief-card--fallback {
  border-left-style: dashed;
  border-left-color: var(--c-line);
}
.brief-body {
  font-family: var(--f-editorial);
  font-style: italic;
  font-size: 15px;
  line-height: 1.5;
  color: var(--c-text);
  margin: 0 0 10px;
}
.brief-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.brief-byline {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  color: var(--c-text-mute);
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: help;
}
.brief-byline--ai {
  color: var(--c-text-dim);
}
.brief-sparkle {
  filter: drop-shadow(0 0 4px oklch(0.86 0.18 92 / 0.5));
}
.brief-fresh {
  color: var(--c-text-mute);
}
.brief-trust {
  margin: 8px 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: oklch(0.86 0.18 92 / 0.06);
  border: 1px solid oklch(0.86 0.18 92 / 0.18);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  animation: briefTrustIn 320ms var(--m-spring);
}
@keyframes briefTrustIn {
  from {
    opacity: 0;
    transform: translateY(-2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.brief-trust-text {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--c-text-dim);
  flex: 1;
  min-width: 0;
}
.brief-trust-dismiss {
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.02em;
  color: var(--c-bolt);
  background: transparent;
  border: 0;
  padding: 2px 6px;
  cursor: pointer;
  white-space: nowrap;
}
.brief-trust-dismiss:hover {
  color: var(--c-bolt-deep);
}
@media (prefers-reduced-motion: reduce) {
  .brief-card {
    transition: none;
  }
  .brief-trust {
    animation: none;
  }
}

/* node_modules/leaflet/dist/leaflet.css */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
  position: absolute;
  left: 0;
  top: 0;
}
.leaflet-container {
  overflow: hidden;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}
.leaflet-tile::selection {
  background: transparent;
}
.leaflet-safari .leaflet-tile {
  image-rendering: -webkit-optimize-contrast;
}
.leaflet-safari .leaflet-tile-container {
  width: 1600px;
  height: 1600px;
  -webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
  display: block;
}
.leaflet-container .leaflet-overlay-pane svg {
  max-width: none !important;
  max-height: none !important;
}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
  max-width: none !important;
  max-height: none !important;
  width: auto;
  padding: 0;
}
.leaflet-container img.leaflet-tile {
  mix-blend-mode: plus-lighter;
}
.leaflet-container.leaflet-touch-zoom {
  -ms-touch-action: pan-x pan-y;
  touch-action: pan-x pan-y;
}
.leaflet-container.leaflet-touch-drag {
  -ms-touch-action: pinch-zoom;
  touch-action: none;
  touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
  -ms-touch-action: none;
  touch-action: none;
}
.leaflet-container {
  -webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
  -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
  filter: inherit;
  visibility: hidden;
}
.leaflet-tile-loaded {
  visibility: inherit;
}
.leaflet-zoom-box {
  width: 0;
  height: 0;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 800;
}
.leaflet-overlay-pane svg {
  -moz-user-select: none;
}
.leaflet-pane {
  z-index: 400;
}
.leaflet-tile-pane {
  z-index: 200;
}
.leaflet-overlay-pane {
  z-index: 400;
}
.leaflet-shadow-pane {
  z-index: 500;
}
.leaflet-marker-pane {
  z-index: 600;
}
.leaflet-tooltip-pane {
  z-index: 650;
}
.leaflet-popup-pane {
  z-index: 700;
}
.leaflet-map-pane canvas {
  z-index: 100;
}
.leaflet-map-pane svg {
  z-index: 200;
}
.leaflet-vml-shape {
  width: 1px;
  height: 1px;
}
.lvml {
  behavior: url(#default#VML);
  display: inline-block;
  position: absolute;
}
.leaflet-control {
  position: relative;
  z-index: 800;
  pointer-events: visiblePainted;
  pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
  position: absolute;
  z-index: 1000;
  pointer-events: none;
}
.leaflet-top {
  top: 0;
}
.leaflet-right {
  right: 0;
}
.leaflet-bottom {
  bottom: 0;
}
.leaflet-left {
  left: 0;
}
.leaflet-control {
  float: left;
  clear: both;
}
.leaflet-right .leaflet-control {
  float: right;
}
.leaflet-top .leaflet-control {
  margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
  margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
  margin-left: 10px;
}
.leaflet-right .leaflet-control {
  margin-right: 10px;
}
.leaflet-fade-anim .leaflet-popup {
  opacity: 0;
  -webkit-transition: opacity 0.2s linear;
  -moz-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
  opacity: 1;
}
.leaflet-zoom-animated {
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
svg.leaflet-zoom-animated {
  will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
  -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
  -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
  transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
  -webkit-transition: none;
  -moz-transition: none;
  transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
  visibility: hidden;
}
.leaflet-interactive {
  cursor: pointer;
}
.leaflet-grab {
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
  cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
  cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
  cursor: move;
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing;
}
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
  pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
  pointer-events: visiblePainted;
  pointer-events: auto;
}
.leaflet-container {
  background: #ddd;
  outline-offset: 1px;
}
.leaflet-container a {
  color: #0078A8;
}
.leaflet-zoom-box {
  border: 2px dotted #38f;
  background: rgba(255, 255, 255, 0.5);
}
.leaflet-container {
  font-family:
    "Helvetica Neue",
    Arial,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
}
.leaflet-bar {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65);
  border-radius: 4px;
}
.leaflet-bar a {
  background-color: #fff;
  border-bottom: 1px solid #ccc;
  width: 26px;
  height: 26px;
  line-height: 26px;
  display: block;
  text-align: center;
  text-decoration: none;
  color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
  background-position: 50% 50%;
  background-repeat: no-repeat;
  display: block;
}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
  background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
  cursor: default;
  background-color: #f4f4f4;
  color: #bbb;
}
.leaflet-touch .leaflet-bar a {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.leaflet-touch .leaflet-bar a:first-child {
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}
.leaflet-touch .leaflet-bar a:last-child {
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
}
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
  font:
    bold 18px "Lucida Console",
    Monaco,
    monospace;
  text-indent: 1px;
}
.leaflet-touch .leaflet-control-zoom-in,
.leaflet-touch .leaflet-control-zoom-out {
  font-size: 22px;
}
.leaflet-control-layers {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  background: #fff;
  border-radius: 5px;
}
.leaflet-control-layers-toggle {
  background-image: url("./layers-55W3Q4RM.png");
  width: 36px;
  height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
  background-image: url("./layers-2x-TBM42ERR.png");
  background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
  width: 44px;
  height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
  display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
  display: block;
  position: relative;
}
.leaflet-control-layers-expanded {
  padding: 6px 10px 6px 6px;
  color: #333;
  background: #fff;
}
.leaflet-control-layers-scrollbar {
  overflow-y: scroll;
  overflow-x: hidden;
  padding-right: 5px;
}
.leaflet-control-layers-selector {
  margin-top: 2px;
  position: relative;
  top: 1px;
}
.leaflet-control-layers label {
  display: block;
  font-size: 13px;
  font-size: 1.08333em;
}
.leaflet-control-layers-separator {
  height: 0;
  border-top: 1px solid #ddd;
  margin: 5px -10px 5px -6px;
}
.leaflet-default-icon-path {
  background-image: url("./marker-icon-2V3QKKVC.png");
}
.leaflet-container .leaflet-control-attribution {
  background: #fff;
  background: rgba(255, 255, 255, 0.8);
  margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
  padding: 0 5px;
  color: #333;
  line-height: 1.4;
}
.leaflet-control-attribution a {
  text-decoration: none;
}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
  text-decoration: underline;
}
.leaflet-attribution-flag {
  display: inline !important;
  vertical-align: baseline !important;
  width: 1em;
  height: 0.6669em;
}
.leaflet-left .leaflet-control-scale {
  margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
  margin-bottom: 5px;
}
.leaflet-control-scale-line {
  border: 2px solid #777;
  border-top: none;
  line-height: 1.1;
  padding: 2px 5px 1px;
  white-space: nowrap;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.8);
  text-shadow: 1px 1px #fff;
}
.leaflet-control-scale-line:not(:first-child) {
  border-top: 2px solid #777;
  border-bottom: none;
  margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
  border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
  box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
  border: 2px solid rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}
.leaflet-popup {
  position: absolute;
  text-align: center;
  margin-bottom: 20px;
}
.leaflet-popup-content-wrapper {
  padding: 1px;
  text-align: left;
  border-radius: 12px;
}
.leaflet-popup-content {
  margin: 13px 24px 13px 20px;
  line-height: 1.3;
  font-size: 13px;
  font-size: 1.08333em;
  min-height: 1px;
}
.leaflet-popup-content p {
  margin: 17px 0;
  margin: 1.3em 0;
}
.leaflet-popup-tip-container {
  width: 40px;
  height: 20px;
  position: absolute;
  left: 50%;
  margin-top: -1px;
  margin-left: -20px;
  overflow: hidden;
  pointer-events: none;
}
.leaflet-popup-tip {
  width: 17px;
  height: 17px;
  padding: 1px;
  margin: -10px auto 0;
  pointer-events: auto;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: white;
  color: #333;
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
}
.leaflet-container a.leaflet-popup-close-button {
  position: absolute;
  top: 0;
  right: 0;
  border: none;
  text-align: center;
  width: 24px;
  height: 24px;
  font:
    16px/24px Tahoma,
    Verdana,
    sans-serif;
  color: #757575;
  text-decoration: none;
  background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
  color: #585858;
}
.leaflet-popup-scrolled {
  overflow: auto;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
  -ms-zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
  width: 24px;
  margin: 0 auto;
  -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
  filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
  border: 1px solid #999;
}
.leaflet-div-icon {
  background: #fff;
  border: 1px solid #666;
}
.leaflet-tooltip {
  position: absolute;
  padding: 6px;
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 3px;
  color: #222;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  pointer-events: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.leaflet-tooltip.leaflet-interactive {
  cursor: pointer;
  pointer-events: auto;
}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
  position: absolute;
  pointer-events: none;
  border: 6px solid transparent;
  background: transparent;
  content: "";
}
.leaflet-tooltip-bottom {
  margin-top: 6px;
}
.leaflet-tooltip-top {
  margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
  left: 50%;
  margin-left: -6px;
}
.leaflet-tooltip-top:before {
  bottom: 0;
  margin-bottom: -12px;
  border-top-color: #fff;
}
.leaflet-tooltip-bottom:before {
  top: 0;
  margin-top: -12px;
  margin-left: -6px;
  border-bottom-color: #fff;
}
.leaflet-tooltip-left {
  margin-left: -6px;
}
.leaflet-tooltip-right {
  margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
  top: 50%;
  margin-top: -6px;
}
.leaflet-tooltip-left:before {
  right: 0;
  margin-right: -12px;
  border-left-color: #fff;
}
.leaflet-tooltip-right:before {
  left: 0;
  margin-left: -12px;
  border-right-color: #fff;
}
@media print {
  .leaflet-control {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* node_modules/leaflet.markercluster/dist/MarkerCluster.css */
.leaflet-cluster-anim .leaflet-marker-icon,
.leaflet-cluster-anim .leaflet-marker-shadow {
  -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
  -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
  -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
  transition: transform 0.3s ease-out, opacity 0.3s ease-in;
}
.leaflet-cluster-spider-leg {
  -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;
  -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;
  -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;
  transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
}

/* node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css */
.marker-cluster-small {
  background-color: rgba(181, 226, 140, 0.6);
}
.marker-cluster-small div {
  background-color: rgba(110, 204, 57, 0.6);
}
.marker-cluster-medium {
  background-color: rgba(241, 211, 87, 0.6);
}
.marker-cluster-medium div {
  background-color: rgba(240, 194, 12, 0.6);
}
.marker-cluster-large {
  background-color: rgba(253, 156, 115, 0.6);
}
.marker-cluster-large div {
  background-color: rgba(241, 128, 23, 0.6);
}
.leaflet-oldie .marker-cluster-small {
  background-color: rgb(181, 226, 140);
}
.leaflet-oldie .marker-cluster-small div {
  background-color: rgb(110, 204, 57);
}
.leaflet-oldie .marker-cluster-medium {
  background-color: rgb(241, 211, 87);
}
.leaflet-oldie .marker-cluster-medium div {
  background-color: rgb(240, 194, 12);
}
.leaflet-oldie .marker-cluster-large {
  background-color: rgb(253, 156, 115);
}
.leaflet-oldie .marker-cluster-large div {
  background-color: rgb(241, 128, 23);
}
.marker-cluster {
  background-clip: padding-box;
  border-radius: 20px;
}
.marker-cluster div {
  width: 30px;
  height: 30px;
  margin-left: 5px;
  margin-top: 5px;
  text-align: center;
  border-radius: 15px;
  font:
    12px "Helvetica Neue",
    Arial,
    Helvetica,
    sans-serif;
}
.marker-cluster span {
  line-height: 30px;
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3N0eWxlcy9sYXllcnMuY3NzIiwgIi4uLy4uL3NyYy9zdHlsZXMvcmVzZXQuY3NzIiwgIi4uLy4uL3NyYy9zdHlsZXMvdG9rZW5zLmNzcyIsICIuLi8uLi9zcmMvc3R5bGVzL2Jhc2UuY3NzIiwgIi4uLy4uL3NyYy9zdHlsZXMvcGF0dGVybnMuY3NzIiwgIi4uLy4uL3NyYy9zdHlsZXMvY29tcG9uZW50cy5jc3MiLCAiLi4vLi4vc3JjL3N0eWxlcy92aWV3cy5jc3MiLCAiLi4vLi4vc3JjL3N0eWxlcy9ob21lLmNzcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbGVhZmxldC9kaXN0L2xlYWZsZXQuY3NzIiwgIi4uLy4uL25vZGVfbW9kdWxlcy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvZGlzdC9NYXJrZXJDbHVzdGVyLmNzcyIsICIuLi8uLi9ub2RlX21vZHVsZXMvbGVhZmxldC5tYXJrZXJjbHVzdGVyL2Rpc3QvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXHJcbiAgIGxheWVycy5jc3Mg4oCUIGV4cGxpY2l0IEBsYXllciBjYXNjYWRlIG9yZGVyXHJcblxyXG4gICBQZXIgQ0xBVURFLm1kIFBoYXNlLTEgwqcxNiDigJQgQGxheWVyIGVsaW1pbmF0ZXMgIWltcG9ydGFudCBkZWJ0IGJ5XHJcbiAgIG1ha2luZyBjYXNjYWRlIG9yZGVyIGV4cGxpY2l0LiBPcmRlciBiZWxvdyBpcyB0aGUgTEFXOyBzcGVjaWZpY1xyXG4gICBzdHlsZXMgd2l0aGluIGVhY2ggbGF5ZXIgYXJlIHN0aWxsIGNhc2NhZGUtb3JkZXJlZCwgYnV0IGxheWVyXHJcbiAgIHdpbnMgdGllcy4gUGF0dGVybnMgdHJ1bXAgdG9rZW5zOyBjb21wb25lbnRzIHRydW1wIHBhdHRlcm5zO1xyXG4gICBvdmVycmlkZXMgdHJ1bXAgZXZlcnl0aGluZy5cclxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXHJcblxyXG5AbGF5ZXIgcmVzZXQsIHRva2VucywgYmFzZSwgcGF0dGVybnMsIGNvbXBvbmVudHMsIHZpZXdzLCBvdmVycmlkZXM7XHJcbiIsICIvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcclxuICAgcmVzZXQuY3NzIOKAlCBtb2Rlcm4gbWluaW11bSByZXNldFxyXG5cclxuICAgSW5zcGlyZWQgYnkgSm9zaCBDb21lYXUncyByZXNldCArIEFuZHkgQmVsbCdzIENVQkUtQ1NTIHJlc2V0LlxyXG4gICBEZXNpZ25lZCBmb3IgZGFyay1ieS1kZWZhdWx0IGVkaXRvcmlhbCBhcHAsIG5vIGxpZ2h0IG1vZGUuXHJcbiAgIEZlZWRzIGludG8gQGxheWVyIHJlc2V0IChsb3dlc3QgcHJpb3JpdHkpLlxyXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cclxuXHJcbkBsYXllciByZXNldCB7XHJcblxyXG4gICosXHJcbiAgKjo6YmVmb3JlLFxyXG4gICo6OmFmdGVyIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG5cclxuICAqIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICBodG1sIHtcclxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcclxuICB9XHJcblxyXG4gIGJvZHkge1xyXG4gICAgbWluLWhlaWdodDogMTAwZHZoO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICBpbWcsXHJcbiAgcGljdHVyZSxcclxuICB2aWRlbyxcclxuICBjYW52YXMsXHJcbiAgc3ZnIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQsXHJcbiAgYnV0dG9uLFxyXG4gIHRleHRhcmVhLFxyXG4gIHNlbGVjdCB7XHJcbiAgICBmb250OiBpbmhlcml0O1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogMDtcclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIGJ1dHRvbjpkaXNhYmxlZCB7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcblxyXG4gIHVsLFxyXG4gIG9sIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBwLFxyXG4gIGgxLFxyXG4gIGgyLFxyXG4gIGgzLFxyXG4gIGg0LFxyXG4gIGg1LFxyXG4gIGg2IHtcclxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgfVxyXG5cclxuICAvKiBSZWR1Y2VkLW1vdGlvbiBwcmVmZXJlbmNlIOKAlCBraWxsIGFsbCBhbmltYXRpb24gcGVyIENMQVVERS5tZCDCpzguNTAgKi9cclxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gICAgKixcclxuICAgICo6OmJlZm9yZSxcclxuICAgICo6OmFmdGVyIHtcclxuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcclxuICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xyXG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcclxuICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBWaXN1YWxseS1oaWRkZW4gaGVscGVyIChzY3JlZW4tcmVhZGVyLW9ubHkg4oCUIGFjY2Vzc2liaWxpdHkpICovXHJcbiAgLnZpc3VhbGx5LWhpZGRlbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMXB4O1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAtMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gIH1cclxuXHJcbiAgLyogU2tpcCBsaW5rIOKAlCBhcHBlYXJzIG9uIFRhYiBmb2N1cyAqL1xyXG4gIC5za2lwLWxpbmsge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMTAwcHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtNCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtYmcpO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXQtc20pO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHotaW5kZXg6IDk5OTk7XHJcbiAgICB0cmFuc2l0aW9uOiB0b3AgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG5cclxuICAuc2tpcC1saW5rOmZvY3VzIHtcclxuICAgIHRvcDogMDtcclxuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWluayk7XHJcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xyXG4gIH1cclxuXHJcbiAgLyogRm9jdXMtdmlzaWJsZSBzdHlsaW5nIOKAlCBVSyDCpzguMzYgc2libGluZzogZXZlcnkgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgIGdldHMgYSB2aXNpYmxlIHJpbmcgb24ga2V5Ym9hcmQgZm9jdXMsIG5vbmUgb24gcG9pbnRlciBmb2N1cyAqL1xyXG4gIDpmb2N1cy12aXNpYmxlIHtcclxuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWJvbHQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICB9XHJcblxyXG4gIDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG59XHJcbiIsICIvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcclxuICAgdG9rZW5zLmNzcyDigJQgRml0YmF3IEZhY3RvcnkgRXVyb3BlIHYzIGRlc2lnbiB0b2tlbnNcclxuXHJcbiAgIFRoZSBhZXN0aGV0aWMgc3BpbmUuIEV2ZXJ5IGNvbXBvbmVudCByZWFkcyBmcm9tIGhlcmUuIFBlclxyXG4gICBERUNJU0lPTi1SRUFEWS5tZCDCp1wiVm9pY2UgbGFkZGVyXCIgdjEuMCBzaGlwcyBBbG1hbmFjIHZvaWNlIGFjcm9zc1xyXG4gICBhbGwgb2YgRXVyb3BlIOKAlCB0aGVzZSB0b2tlbnMgZW5jb2RlIHRoYXQgdm9pY2UuXHJcblxyXG4gICBSZWFkaW5nIG9yZGVyIGluIENTUyBjYXNjYWRlIChkZWZpbmVkIGluIGxheWVycy5jc3MpOlxyXG4gICAgIHJlc2V0IOKGkiB0b2tlbnMgKHRoaXMgZmlsZSkg4oaSIHBhdHRlcm5zIOKGkiBjb21wb25lbnRzIOKGkiBvdmVycmlkZXNcclxuXHJcbiAgIENvbG9yIHBoaWxvc29waHk6IG9rbGNoKCkgZm9yIHBlcmNlcHR1YWxseS11bmlmb3JtIGludGVycG9sYXRpb24uXHJcbiAgIGBjb2xvci1taXgoaW4gb2tsY2gsIC4uLilgIHByb2R1Y2VzIHByZWRpY3RhYmxlIG1pZC10b25lcyAoc1JHQlxyXG4gICBtdWRkaWVzIHRoZW0pLiBDcml0aWNhbCBmb3IgRXVyb3BlIHdoZXJlIDUwKyB0ZWFtLWNvbG91ciBncmFkaWVudHNcclxuICAgbWF0dGVyLlxyXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cclxuXHJcbkBsYXllciB0b2tlbnMge1xyXG5cclxuICA6cm9vdCB7XHJcbiAgICAvKiDilIDilIAgQ29sb3VycyDigJQgYmFzZSBzY2FsZSAoMTItc3RlcCBuZXV0cmFsLCBva2xjaCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgICAvKiBOZWFyLWJsYWNrIGVkaXRvcmlhbCBwYXBlci1zdG9jayBiYWNrZ3JvdW5kIChOT1QgT0xFRCB0cnVlIGJsYWNrKS5cclxuICAgICAgIFJlYWRzIGFzIFdpc2RlbiAvIExldHRlcmJveGQsIG5vdCBhcyBBcHBsZSBTcG9ydHMuICovXHJcbiAgICAtLWMtYmc6ICAgICAgICAgICBva2xjaCgwLjEzIDAuMDIwIDI3MCk7ICAgICAvKiAjMEYxMDE0IHBhcGVyLXN0b2NrICovXHJcbiAgICAtLWMtc3VyZmFjZTogICAgICBva2xjaCgwLjE3IDAuMDIyIDI3MCk7ICAgICAvKiBjYXJkIHN1cmZhY2UgKi9cclxuICAgIC0tYy1zdXJmYWNlLTI6ICAgIG9rbGNoKDAuMjEgMC4wMjQgMjcwKTsgICAgIC8qIG5lc3RlZCBzdXJmYWNlICovXHJcbiAgICAtLWMtc3VyZmFjZS0zOiAgICBva2xjaCgwLjI1IDAuMDI1IDI3MCk7ICAgICAvKiBob3ZlciAvIGZvY3VzICovXHJcbiAgICAtLWMtbGluZTogICAgICAgICBva2xjaCgwLjMwIDAuMDIwIDI3MCk7ICAgICAvKiBoYWlybGluZXMgKi9cclxuICAgIC0tYy1saW5lLTI6ICAgICAgIG9rbGNoKDAuNDAgMC4wMjAgMjcwKTsgICAgIC8qIGRpdmlkZXJzICovXHJcblxyXG4gICAgLS1jLXRleHQtbXV0ZTogICAgb2tsY2goMC41NSAwLjAzMCAyNzApOyAgICAgLyogbWV0YWRhdGEsIGNhcHRpb25zICovXHJcbiAgICAtLWMtdGV4dC1kaW06ICAgICBva2xjaCgwLjcyIDAuMDI1IDI3MCk7ICAgICAvKiBzZWNvbmRhcnkgY29weSAqL1xyXG4gICAgLS1jLXRleHQ6ICAgICAgICAgb2tsY2goMC45MiAwLjAxNSAyNzApOyAgICAgLyogcHJpbWFyeSBjb3B5ICovXHJcbiAgICAtLWMtaW5rOiAgICAgICAgICBva2xjaCgwLjk3IDAuMDEwIDk1KTsgICAgICAvKiB3aGl0ZS1vbi1wYXBlciAqL1xyXG5cclxuICAgIC8qIOKUgOKUgCBDb2xvdXJzIOKAlCBhY2NlbnQgKyBzZW1hbnRpYyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAgIC8qIEJvbHQgeWVsbG93IOKAlCB0aGUgZWRpdG9yaWFsIHNpZ25hdHVyZTsgVUsgYXBwJ3MgbG9hZC1iZWFyaW5nIGFjY2VudCAqL1xyXG4gICAgLS1jLWJvbHQ6ICAgICAgICAgb2tsY2goMC44NiAwLjE4ICA5Mik7ICAgICAgLyogI0ZGRDAwMCBib2x0IHllbGxvdyAqL1xyXG4gICAgLS1jLWJvbHQtZGVlcDogICAgb2tsY2goMC43NCAwLjE1ICA4Mik7XHJcblxyXG4gICAgLyogTGltZSDigJQgdmVyaWZpZWQgLyBzdWNjZXNzIC8gXCJ5b3Ugd2VyZSB0aGVyZVwiICovXHJcbiAgICAtLWMtbGltZTogICAgICAgICBva2xjaCgwLjg1IDAuMjAgMTM4KTtcclxuICAgIC0tYy1saW1lLWRlZXA6ICAgIG9rbGNoKDAuNzIgMC4xOCAxMzgpO1xyXG5cclxuICAgIC8qIENyaW1zb24g4oCUIGVycm9yIC8gYWxlcnQgLyBtaXNtYXRjaCAqL1xyXG4gICAgLS1jLWNyaW1zb246ICAgICAgb2tsY2goMC42NSAwLjIyICAyMCk7XHJcbiAgICAtLWMtY3JpbXNvbi1kZWVwOiBva2xjaCgwLjU1IDAuMjAgIDIwKTtcclxuXHJcbiAgICAvKiBJbmRpZ28g4oCUIGluZm9ybWF0aW9uYWwgLyBsaW5rICovXHJcbiAgICAtLWMtaW5kaWdvOiAgICAgICBva2xjaCgwLjcyIDAuMTggMjYwKTtcclxuICAgIC0tYy1pbmRpZ28tZGVlcDogIG9rbGNoKDAuNjAgMC4xNiAyNjApO1xyXG5cclxuICAgIC8qIEFtYmVyIOKAlCB3YXJuaW5nIC8gcGVuZGluZyAqL1xyXG4gICAgLS1jLWFtYmVyOiAgICAgICAgb2tsY2goMC44MCAwLjE2ICA2MCk7XHJcblxyXG4gICAgLyogUGVyLWNsdWIgYWNjZW50IOKAlCBzZXQgcGVyIHJlbmRlciB2aWEgaW5saW5lIHN0eWxlIChjb21wdXRlZFxyXG4gICAgICAgZnJvbSBjcmVzdCBkb21pbmFudCBwaXhlbCBieSBleHRyYWN0LWNsdWItYWNjZW50LmpzIHdvcmtlcikgKi9cclxuICAgIC0tYy1jbHViOiAgICAgICAgIHZhcigtLWMtYm9sdCk7XHJcbiAgICAtLWMtY2x1Yi1kZWVwOiAgICB2YXIoLS1jLWJvbHQtZGVlcCk7XHJcblxyXG4gICAgLyog4pSA4pSAIFR5cG9ncmFwaHkgc3RhY2tzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gICAgLyogSW50ZXIg4oCUIHZhcmlhYmxlLWF4aXMgaW50ZXJmYWNlIGJvZHkgKG5ldyBmb3IgdjMsIHJlcGxhY2VzIFVLXHJcbiAgICAgICBhcHAncyBtaXgtYW5kLW1hdGNoKS4gNDAwLzUwMC82MDAvNzAwIGNvdmVycyBhbGwgaW50ZXJmYWNlIHRleHQuICovXHJcbiAgICAtLWYtYm9keTogICAgICAgICAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjtcclxuXHJcbiAgICAvKiBCZWJhcyBOZXVlIOKAlCBkaXNwbGF5IGhlYWRsaW5lcyAodXBwZXJjYXNlLCB0aWdodCB0cmFja2luZykgKi9cclxuICAgIC0tZi1kaXNwbGF5OiAgICAgICdCZWJhcyBOZXVlJywgJ0FyaWFsIE5hcnJvdycsIHNhbnMtc2VyaWY7XHJcblxyXG4gICAgLyogRnJhdW5jZXMgaXRhbGljIOKAlCBlZGl0b3JpYWwgLyBhbG1hbmFjIC8gXCJ5b3Ugd2VyZSB0aGVyZVwiIHZvaWNlICovXHJcbiAgICAtLWYtZWRpdG9yaWFsOiAgICAnRnJhdW5jZXMnLCBHZW9yZ2lhLCAnVGltZXMgTmV3IFJvbWFuJywgc2VyaWY7XHJcblxyXG4gICAgLyogQmlnIFNob3VsZGVycyBTdGVuY2lsIOKAlCBzdGF0IG51bWJlcnMsIFwiVlNcIiwgc2NvcmVsaW5lIGFuY2hvcnMgKi9cclxuICAgIC0tZi1zdGVuY2lsOiAgICAgICdCaWcgU2hvdWxkZXJzIFN0ZW5jaWwgRGlzcGxheScsIEltcGFjdCwgc2Fucy1zZXJpZjtcclxuXHJcbiAgICAvKiBTcGVjaWFsIEVsaXRlIOKAlCBuYXJyYXRpdmUgdm9pY2UgZm9yIGVtcHR5IHN0YXRlcyArIGtpY2tlcnMgKi9cclxuICAgIC0tZi10eXBld3JpdGVyOiAgICdTcGVjaWFsIEVsaXRlJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xyXG5cclxuICAgIC8qIEpldEJyYWlucyBNb25vIOKAlCBtZXRhZGF0YSwgbGVhZ3VlIGNvZGVzLCBJRHMgKExpbmVhci1JRHMgcGF0dGVybikgKi9cclxuICAgIC0tZi1tb25vOiAgICAgICAgICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBtb25vc3BhY2U7XHJcblxyXG4gICAgLyog4pSA4pSAIFR5cGUgc2NhbGUgKHJvb3QtcmVsYXRpdmUgKyBsaW5lLWhlaWdodCArIHRyYWNraW5nKSDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAgIC0tdC14czogICAgICAgICAgIDAuNjg3NXJlbTsgICAgIC8qIDExcHgg4oCUIHRpbnkgY2FwdGlvbnMgKi9cclxuICAgIC0tdC1zbTogICAgICAgICAgIDAuODEyNXJlbTsgICAgIC8qIDEzcHgg4oCUIHNlY29uZGFyeSBjb3B5ICovXHJcbiAgICAtLXQtYmFzZTogICAgICAgICAwLjkzNzVyZW07ICAgICAvKiAxNXB4IOKAlCBib2R5ICovXHJcbiAgICAtLXQtbWQ6ICAgICAgICAgICAxLjA2MjVyZW07ICAgICAvKiAxN3B4IOKAlCBlbXBoYXNpc2VkIGJvZHkgKi9cclxuICAgIC0tdC1sZzogICAgICAgICAgIDEuMjVyZW07ICAgICAgIC8qIDIwcHgg4oCUIHNlY3Rpb24gaGVhZHMgKi9cclxuICAgIC0tdC14bDogICAgICAgICAgIDEuNXJlbTsgICAgICAgIC8qIDI0cHgg4oCUIHBhbmVsIGhlYWRzICovXHJcbiAgICAtLXQtMnhsOiAgICAgICAgICAycmVtOyAgICAgICAgICAvKiAzMnB4IOKAlCBtYXN0aGVhZCBIMiAqL1xyXG4gICAgLS10LTN4bDogICAgICAgICAgMi43NXJlbTsgICAgICAgLyogNDRweCDigJQgbWFzdGhlYWQgSDEgKHNtYWxsIHNjcmVlbikgKi9cclxuICAgIC0tdC00eGw6ICAgICAgICAgIDMuNXJlbTsgICAgICAgIC8qIDU2cHgg4oCUIG1hc3RoZWFkIEgxIChtZWRpdW0rKSAqL1xyXG4gICAgLS10LTV4bDogICAgICAgICAgNXJlbTsgICAgICAgICAgLyogODBweCDigJQgaGVybyAqL1xyXG5cclxuICAgIC0tbGgtdGlnaHQ6ICAgICAgIDEuMDU7XHJcbiAgICAtLWxoLXNudWc6ICAgICAgICAxLjI7XHJcbiAgICAtLWxoLWJhc2U6ICAgICAgICAxLjQ1O1xyXG4gICAgLS1saC1sb29zZTogICAgICAgMS42NTtcclxuXHJcbiAgICAtLXRyLXRpZ2h0OiAgICAgICAtMC4wMmVtO1xyXG4gICAgLS10ci1iYXNlOiAgICAgICAgIDA7XHJcbiAgICAtLXRyLWxvb3NlOiAgICAgICAgMC4wNGVtO1xyXG4gICAgLS10ci1jYXBzOiAgICAgICAgIDAuMDhlbTsgICAgICAgLyogdXBwZXJjYXNlIHRyYWNraW5nICovXHJcblxyXG4gICAgLyog4pSA4pSAIFNwYWNpbmcgc2NhbGUgKDRweC1zdGVwcGVkIExvd2VyOyA4cHgtc3RlcHBlZCBIaWdoZXIpIOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gICAgLS1zcC0wOiAgICAgICAgICAgMDtcclxuICAgIC0tc3AtMTogICAgICAgICAgIDAuMjVyZW07ICAgICAgIC8qIDQgKi9cclxuICAgIC0tc3AtMjogICAgICAgICAgIDAuNXJlbTsgICAgICAgIC8qIDggKi9cclxuICAgIC0tc3AtMzogICAgICAgICAgIDAuNzVyZW07ICAgICAgIC8qIDEyICovXHJcbiAgICAtLXNwLTQ6ICAgICAgICAgICAxcmVtOyAgICAgICAgICAvKiAxNiAqL1xyXG4gICAgLS1zcC01OiAgICAgICAgICAgMS41cmVtOyAgICAgICAgLyogMjQgKi9cclxuICAgIC0tc3AtNjogICAgICAgICAgIDJyZW07ICAgICAgICAgIC8qIDMyICovXHJcbiAgICAtLXNwLTc6ICAgICAgICAgICAzcmVtOyAgICAgICAgICAvKiA0OCAqL1xyXG4gICAgLS1zcC04OiAgICAgICAgICAgNHJlbTsgICAgICAgICAgLyogNjQgKi9cclxuICAgIC0tc3AtOTogICAgICAgICAgIDZyZW07ICAgICAgICAgIC8qIDk2ICovXHJcblxyXG4gICAgLyog4pSA4pSAIFJhZGlpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gICAgLS1yLTE6ICAgICAgICAgICAgNHB4O1xyXG4gICAgLS1yLTI6ICAgICAgICAgICAgOHB4O1xyXG4gICAgLS1yLTM6ICAgICAgICAgICAgMTJweDtcclxuICAgIC0tci00OiAgICAgICAgICAgIDE2cHg7XHJcbiAgICAtLXItNTogICAgICAgICAgICAyMHB4O1xyXG4gICAgLS1yLXBpbGw6ICAgICAgICAgOTk5OXB4O1xyXG4gICAgLS1yLWNpcmNsZTogICAgICAgNTAlO1xyXG5cclxuICAgIC8qIOKUgOKUgCBNb3Rpb24g4oCUIE9ORSBzaGFyZWQgc3ByaW5nLCBwZXIgU3RyZWFtIDIgZGVlcC1zcGVjIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gICAgLyogQWxsIHRyYW5zaXRpb25zL2FuaW1hdGlvbnMgdXNlIHRoaXMgY3VydmUgdW5sZXNzIGV4cGxpY2l0bHlcclxuICAgICAgIGNlbGVicmF0aW5nIHNvbWV0aGluZyAodGhlbiB1c2UgLS1tLWNlbGVicmF0ZSkuICovXHJcbiAgICAtLW0tc3ByaW5nOiAgICAgICBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XHJcbiAgICAtLW0tY2VsZWJyYXRlOiAgICBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XHJcbiAgICAtLW0tbGluZWFyOiAgICAgICBsaW5lYXI7XHJcbiAgICAtLW0tc25hcHB5OiAgICAgICBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xyXG5cclxuICAgIC0tbS1mYXN0OiAgICAgICAgIDE0MG1zO1xyXG4gICAgLS1tLWJhc2U6ICAgICAgICAgMjIwbXM7XHJcbiAgICAtLW0tc2xvdzogICAgICAgICA0MjBtcztcclxuICAgIC0tbS1kZWxpYmVyYXRlOiAgIDYyMG1zO1xyXG5cclxuICAgIC8qIOKUgOKUgCBHbGFzcyAvIGJsdXIgc3VyZmFjZXMgKExpcXVpZCBHbGFzcy1lcmEgYXBwcm94aW1hdGlvbikg4pSA4pSA4pSA4pSAICovXHJcbiAgICAvKiBIZWF2eSBsaWZ0IG9uIENhcGFjaXRvciBXZWJWaWV3IOKAlCBmZWF0dXJlLWRldGVjdCBzdXBwb3J0LiAqL1xyXG4gICAgLS1nbGFzcy1ibHVyOiAgICAgYmx1cigyMHB4KSBzYXR1cmF0ZSgxLjQpO1xyXG4gICAgLS1nbGFzcy1iZzogICAgICAgb2tsY2goMC4xMyAwLjAyMCAyNzAgLyAwLjYpO1xyXG4gICAgLS1nbGFzcy1ib3JkZXI6ICAgb2tsY2goMC4zMCAwLjAyMCAyNzAgLyAwLjQpO1xyXG5cclxuICAgIC8qIOKUgOKUgCBFbGV2YXRpb24gLyBzaGFkb3cg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgICAtLXNoYWRvdy0xOiAgICAgICAwIDFweCAycHggb2tsY2goMCAwIDAgLyAwLjQpO1xyXG4gICAgLS1zaGFkb3ctMjogICAgICAgMCAycHggOHB4IG9rbGNoKDAgMCAwIC8gMC41KSwgMCAwIDAgMXB4IG9rbGNoKDAgMCAwIC8gMC4yKTtcclxuICAgIC0tc2hhZG93LTM6ICAgICAgIDAgOHB4IDI0cHggb2tsY2goMCAwIDAgLyAwLjU1KSwgMCAycHggNHB4IG9rbGNoKDAgMCAwIC8gMC4zKTtcclxuICAgIC0tc2hhZG93LTQ6ICAgICAgIDAgMTZweCA0OHB4IG9rbGNoKDAgMCAwIC8gMC42KSwgMCA0cHggOHB4IG9rbGNoKDAgMCAwIC8gMC4zNSk7XHJcblxyXG4gICAgLyog4pSA4pSAIENvbnRhaW5lciBxdWVyeSBicmVha3BvaW50cyAocGVyIFBoYXNlLTEgwqcxNiDigJQgQGNvbnRhaW5lclxyXG4gICAgICAgICAgIHJlcGxhY2VzIEBtZWRpYSB0aHJvdWdob3V0LiBTbWFsbD1waG9uZSBuYXJyb3csIG1kPXBob25lIHdpZGUsXHJcbiAgICAgICAgICAgbGc9dGFibGV0IHBvcnRyYWl0LCB4bD10YWJsZXQgbGFuZHNjYXBlIC8gZGVza3RvcCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgICAtLWJwLXNtOiAgICAgICAgICAzMjBweDtcclxuICAgIC0tYnAtbWQ6ICAgICAgICAgIDQ4MHB4O1xyXG4gICAgLS1icC1sZzogICAgICAgICAgNzIwcHg7XHJcbiAgICAtLWJwLXhsOiAgICAgICAgICAxMDI0cHg7XHJcblxyXG4gICAgLyog4pSA4pSAIFotaW5kZXgg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgICAtLXotdGFiYmFyOiAgICAgICA1MDtcclxuICAgIC0tei10b3BiYXI6ICAgICAgIDYwO1xyXG4gICAgLS16LW1vZGFsOiAgICAgICAgMTAwO1xyXG4gICAgLS16LXBvcG92ZXI6ICAgICAgMTEwO1xyXG4gICAgLS16LXRvYXN0OiAgICAgICAgMjAwO1xyXG4gICAgLS16LW92ZXJsYXk6ICAgICAgMzAwO1xyXG5cclxuICAgIC8qIOKUgOKUgCBTYWZlIGFyZWFzIChpT1Mgbm90Y2ggLyBEeW5hbWljIElzbGFuZCAvIGhvbWUgaW5kaWNhdG9yKSDilIDilIAgKi9cclxuICAgIC0tc2EtdG9wOiAgICAgICAgIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpO1xyXG4gICAgLS1zYS1yaWdodDogICAgICAgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KTtcclxuICAgIC0tc2EtYm90dG9tOiAgICAgIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpO1xyXG4gICAgLS1zYS1sZWZ0OiAgICAgICAgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LCAwcHgpO1xyXG4gIH1cclxuXHJcbiAgLyogSGlnaC1jb250cmFzdCBwcmVmZXJlbmNlIG92ZXJyaWRlIChVSyDCpzguNTAgcmVkdWNlZC1tb3Rpb24gc2libGluZ1xyXG4gICAgIGZvciBhY2Nlc3NpYmlsaXR5KSAqL1xyXG4gIEBtZWRpYSAocHJlZmVycy1jb250cmFzdDogbW9yZSkge1xyXG4gICAgOnJvb3Qge1xyXG4gICAgICAtLWMtdGV4dDogICAgICAgb2tsY2goMC45OSAwIDApO1xyXG4gICAgICAtLWMtdGV4dC1kaW06ICAgb2tsY2goMC44NSAwLjAyMCAyNzApO1xyXG4gICAgICAtLWMtdGV4dC1tdXRlOiAgb2tsY2goMC43MCAwLjAyMCAyNzApO1xyXG4gICAgICAtLWMtbGluZTogICAgICAgb2tsY2goMC40NSAwLjAyMCAyNzApO1xyXG4gICAgICAtLWMtbGluZS0yOiAgICAgb2tsY2goMC41NSAwLjAyMCAyNzApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCAiLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXHJcbiAgIGJhc2UuY3NzIOKAlCBib2R5IC8gdG9wYmFyIC8gdGFiYmFyIC8gdmlldyBjb250YWluZXJcclxuXHJcbiAgIFRoZSBzdHJ1Y3R1cmFsIGNocm9tZSB0aGF0IGhvbGRzIGV2ZXJ5IHZpZXcuIFBlciBQaGFzZS0xIMKnMTksIGZvdXJcclxuICAgdGFicyAoSG9tZSAvIE1hdGNoZGF5IC8gTWFwIC8gUGFzc3BvcnQpIHdpdGggZ2xvYmFsIFNlYXJjaCBvdmVybGF5LlxyXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cclxuXHJcbkBsYXllciBiYXNlIHtcclxuXHJcbiAgLyog4pSA4pSAIERvY3VtZW50IHJvb3QgKyBib2R5IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIGh0bWwge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZyk7XHJcbiAgfVxyXG5cclxuICBib2R5IHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LWJhc2UpO1xyXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWJhc2UpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnKTtcclxuXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcclxuICAgICAgXCJ0b3BiYXJcIlxyXG4gICAgICBcIm1haW5cIlxyXG4gICAgICBcInRhYmJhclwiO1xyXG5cclxuICAgIC8qIEFjY291bnQgZm9yIGlPUyBzYWZlIGFyZWFzICovXHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc2EtdG9wKTtcclxuXHJcbiAgICAvKiBTdWJ0bGUgcGFwZXItZ3JhaW4gYmFja2dyb3VuZCDigJQgU1ZHIHR1cmJ1bGVuY2UgcGVyIENMQVVERS5tZCDCpzguOS5cclxuICAgICAgIEFkZHMgdGFjdGlsZSBmZWVsOyB+emVybyBwZXJmIGNvc3QuICovXHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHZpZXdCb3g9JzAgMCAyMDAgMjAwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J24nPjxmZVR1cmJ1bGVuY2UgYmFzZUZyZXF1ZW5jeT0nMC44NScgbnVtT2N0YXZlcz0nMicgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbHRlcj0ndXJsKCUyM24pJyBvcGFjaXR5PScwLjA0NScvPjwvc3ZnPlwiKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwcHggMjAwcHg7XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgQXBwIGJhciAoVUsgRm9vdGJhbGwgRmFjdG9yeSBwYXJpdHkg4oCUIHBvcnRlZCAyMDI2LTA1LTExKSDilIDilIDilIDilIAgKi9cclxuICAuYXBwYmFyIHtcclxuICAgIGdyaWQtYXJlYTogdG9wYmFyO1xyXG4gICAgcG9zaXRpb246IHN0aWNreTsgdG9wOiAwOyB6LWluZGV4OiB2YXIoLS16LXRvcGJhciwgMTEwMCk7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rbGNoKDAuMTMgMC4wMjAgMjcwIC8gMC45NSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2tsY2goMC4xMyAwLjAyMCAyNzAgLyAwLjg4KSk7XHJcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMThweCkgc2F0dXJhdGUoMS4yKTtcclxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpIHNhdHVyYXRlKDEuMik7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICAgIC8qIFNpZ25hdHVyZSBib2x0LXllbGxvdyBlbGVjdHJpYyB1bmRlcmxpbmUgKi9cclxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDAgb2tsY2goMC44NiAwLjE4IDkyIC8gMC4xOCksXHJcbiAgICAgICAgICAgICAgICAwIDJweCAwIG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMDYpLFxyXG4gICAgICAgICAgICAgICAgMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuNDUpO1xyXG4gIH1cclxuICBAc3VwcG9ydHMgbm90IChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkge1xyXG4gICAgLmFwcGJhciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmcpOyB9XHJcbiAgfVxyXG5cclxuICAuYXBwYmFyLWlubmVyIHtcclxuICAgIG1heC13aWR0aDogODYwcHg7IG1hcmdpbjogMCBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNHB4O1xyXG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gIH1cclxuXHJcbiAgLyogQnJhbmQg4oCUIHNocmlua2FibGUgc2xvdDsgc3RhdHVzIHBpbGwgKyBoYW1idXJnZXIgYXJlIGZpeGVkLXNpemUgKi9cclxuICAuYnJhbmQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7IG1pbi13aWR0aDogMDsgZmxleDogMCAxIGF1dG87IH1cclxuICAuYnJhbmQgPiBkaXYgeyBtaW4td2lkdGg6IDA7IGZsZXg6IDAgMSBhdXRvOyB9XHJcblxyXG4gIC5icmFuZC1tYXJrIHtcclxuICAgIHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMDYwRDJFO1xyXG4gICAgYm94LXNoYWRvdzpcclxuICAgICAgMCAwIDAgMXB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMzIpLFxyXG4gICAgICAwIDAgMCAzcHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC4wOCksXHJcbiAgICAgIDAgMTBweCAyNnB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMjIpLFxyXG4gICAgICAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSkgaW5zZXQ7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMmRlZyk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMjIsMSwwLjM2LDEpO1xyXG4gIH1cclxuICAuYnJhbmQtbWFyazpob3ZlciB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEuMDQpOyB9XHJcbiAgLmJyYW5kLW1hcmsgc3ZnIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgZGlzcGxheTogYmxvY2s7IH1cclxuICAuYnJhbmQtbWFyayBpbWcgeyBib3JkZXItcmFkaXVzOiBpbmhlcml0OyB9XHJcblxyXG4gIC5icmFuZC1uYW1lIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XHJcbiAgICBsaW5lLWhlaWdodDogMC45NTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB9XHJcblxyXG4gIC5icmFuZC1zdWIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjJlbTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgfVxyXG5cclxuICAvKiBMaXZlLWRhdGEgYmFkZ2Ug4oCUIHN0YWRpdW0gc2NvcmVib2FyZCBsaWdodCAqL1xyXG4gIC5saXZlLWJhZGdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XHJcbiAgICBwYWRkaW5nOiA4cHggMTJweCA4cHggMTBweDtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwIC8gMC42KTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMTgwbXMgZWFzZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB9XHJcbiAgLmxpdmUtYmFkZ2UgLmRvdCB7XHJcbiAgICB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDE2MG1zIGVhc2U7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcbiAgLmxpdmUtYmFkZ2U6aG92ZXIgeyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXN1cmZhY2UtMik7IH1cclxuICAubGl2ZS1iYWRnZS5sb2FkaW5nIC5kb3Qge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib2x0KTtcclxuICAgIGFuaW1hdGlvbjogbGl2ZUJhZGdlUHVsc2UgMC44cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgfVxyXG4gIC5saXZlLWJhZGdlLmxvYWRpbmcgeyBjb2xvcjogdmFyKC0tYy1ib2x0KTsgYm9yZGVyLWNvbG9yOiBva2xjaCgwLjg2IDAuMTggOTIgLyAwLjM1KTsgfVxyXG4gIC5saXZlLWJhZGdlLmNvbm5lY3RlZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1saW1lKTtcclxuICAgIGJvcmRlci1jb2xvcjogb2tsY2goMC44NSAwLjIwIDEzOCAvIDAuNDUpO1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC44NSAwLjIwIDEzOCAvIDAuMDgpO1xyXG4gIH1cclxuICAubGl2ZS1iYWRnZS5jb25uZWN0ZWQgLmRvdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWxpbWUpO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IG9rbGNoKDAuODUgMC4yMCAxMzggLyAwLjIyKTtcclxuICAgIGFuaW1hdGlvbjogbGl2ZUJhZGdlUHVsc2UgMi4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuICB9XHJcbiAgQGtleWZyYW1lcyBsaXZlQmFkZ2VQdWxzZSB7XHJcbiAgICAwJSwgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDJweCBva2xjaCgwLjg1IDAuMjAgMTM4IC8gMC4yKTsgfVxyXG4gICAgNTAlICAgICAgeyBib3gtc2hhZG93OiAwIDAgMCA2cHggb2tsY2goMC44NSAwLjIwIDEzOCAvIDApOyB9XHJcbiAgfVxyXG5cclxuICAvKiBIYW1idXJnZXIg4oCUIHNldHRpbmdzIHNoZWV0IHRyaWdnZXIgKi9cclxuICAuaGFtYnVyZ2VyLWJ0biB7XHJcbiAgICB3aWR0aDogNDRweDsgaGVpZ2h0OiA0NHB4O1xyXG4gICAgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwIC8gMC42NSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBva2xjaCgwLjg2IDAuMTggOTIgLyAwLjMyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDE4MG1zIGN1YmljLWJlemllcigwLjIyLDEsMC4zNiwxKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gIH1cclxuICAuaGFtYnVyZ2VyLWJ0bjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyBib3R0b206IDA7IHdpZHRoOiAzcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC41NSk7XHJcbiAgfVxyXG4gIC5oYW1idXJnZXItYnRuOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMjEgMC4wMjQgMjcwIC8gMC42KTtcclxuICAgIGJvcmRlci1jb2xvcjogb2tsY2goMC44NiAwLjE4IDkyIC8gMC42KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC4yMik7XHJcbiAgfVxyXG4gIC5oYW1idXJnZXItYnRuIHN2ZyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbiAgLmhhbWJ1cmdlci1idG4ub24ge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib2x0KTtcclxuICAgIGNvbG9yOiBva2xjaCgwLjEzIDAuMDIwIDI3MCk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMTRweCBva2xjaCgwLjg2IDAuMTggOTIgLyAwLjU1KTtcclxuICB9XHJcbiAgLmhhbWJ1cmdlci1idG4ub246OmJlZm9yZSB7IGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTsgYm94LXNoYWRvdzogbm9uZTsgfVxyXG5cclxuICAvKiBXb21lbidzLW1vZGUgYXBwYmFyIHJpYmJvbiDigJQgVUsgcGF0dGVybjogc21hbGwgYm9sdC15ZWxsb3cgdGFnIGF0XHJcbiAgICAgdGhlIGJvdHRvbS1yaWdodCBvZiB0aGUgYXBwYmFyIHdoZW4gbW9kZSB0b2dnbGUgaXMgb24gV29tZW4ncyAqL1xyXG4gIGJvZHlbZGF0YS1tb2RlPVwid29tZW5zXCJdIC5hcHBiYXIgeyBwb3NpdGlvbjogc3RpY2t5OyB9XHJcbiAgYm9keVtkYXRhLW1vZGU9XCJ3b21lbnNcIl0gLmFwcGJhcjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJ1dPTUVOXFwnUyBGT09UQkFMTCc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogLTExcHg7IHJpZ2h0OiAxMnB4O1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IDlweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjIyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICAgIHBhZGRpbmc6IDFweCA4cHggMnB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib2x0KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIHotaW5kZXg6IDU7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcbiAgLyogTWFrZSBhcHBiYXIgYSBwb3NpdGlvbmluZyBjb250ZXh0IGZvciB0aGUgOjphZnRlciByaWJib24gKi9cclxuICAuYXBwYmFyIHsgcG9zaXRpb246IHN0aWNreTsgfVxyXG5cclxuICBAbWVkaWEgKG1heC13aWR0aDogNTIwcHgpIHtcclxuICAgIC5hcHBiYXItaW5uZXIgeyBwYWRkaW5nOiAxMnB4IDE0cHg7IGdhcDogMTBweDsgfVxyXG4gICAgLmJyYW5kLXN1YiB7IGZvbnQtc2l6ZTogMTAuNXB4OyBsZXR0ZXItc3BhY2luZzogMC4yZW07IH1cclxuICAgIC5icmFuZCB7IGdhcDogMTBweDsgfVxyXG4gICAgLmJyYW5kLW1hcmsgeyB3aWR0aDogMzZweDsgaGVpZ2h0OiAzNnB4OyBmbGV4LXNocmluazogMDsgfVxyXG4gICAgLmxpdmUtYmFkZ2UgeyBwYWRkaW5nOiA3cHggMTBweCA3cHggOXB4OyBmb250LXNpemU6IDkuNXB4OyBsZXR0ZXItc3BhY2luZzogMC4xOGVtOyBnYXA6IDZweDsgfVxyXG4gICAgLmhhbWJ1cmdlci1idG4geyB3aWR0aDogNDRweDsgaGVpZ2h0OiA0NHB4OyB9XHJcbiAgICAuYnJhbmQtbmFtZSB7IGZvbnQtc2l6ZTogMjBweDsgfVxyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIE1vZGUgdG9nZ2xlIChIb21lIHZpZXcg4oCUIFVLIHBhdHRlcm4pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC5tb2RlLXRvZ2dsZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICAgIHBhZGRpbmc6IDRweDtcclxuICAgIGdhcDogMnB4O1xyXG4gICAgbWFyZ2luOiA2cHggMCB2YXIoLS1zcC00KTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0xKTtcclxuICB9XHJcbiAgLm1vZGUtdG9nZ2xlIC5tb2RlLXRhYiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIHBhZGRpbmc6IDEzcHggMThweDtcclxuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE4MG1zLCBjb2xvciAxODBtcywgYm94LXNoYWRvdyAxODBtcztcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIC5tb2RlLXRvZ2dsZSAubW9kZS10YWI6aG92ZXIgeyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxyXG4gIC5tb2RlLXRvZ2dsZSAubW9kZS10YWIuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBjb2xvcjogb2tsY2goMC4xMyAwLjAyMCAyNzApO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWMtYm9sdCksIDAgNHB4IDE0cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC4zNSk7XHJcbiAgfVxyXG4gIC5tb2RlLXRvZ2dsZSAubXQtZG90IHtcclxuICAgIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XHJcbiAgICBvcGFjaXR5OiAwLjU1O1xyXG4gIH1cclxuICAubW9kZS10b2dnbGUgLm1vZGUtdGFiLmFjdGl2ZSAubXQtZG90IHsgb3BhY2l0eTogMTsgfVxyXG5cclxuICBAa2V5ZnJhbWVzIGxpdmVQdWxzZSB7XHJcbiAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH1cclxuICAgIDUwJSB7IG9wYWNpdHk6IDAuNTsgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzaGVldFVwIHtcclxuICAgIGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7IG9wYWNpdHk6IDA7IH1cclxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7ICAgIG9wYWNpdHk6IDE7IH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgZmFkZUluIHtcclxuICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XHJcbiAgICB0byAgIHsgb3BhY2l0eTogMTsgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBmYWRlT3V0IHtcclxuICAgIGZyb20geyBvcGFjaXR5OiAxOyB9XHJcbiAgICB0byAgIHsgb3BhY2l0eTogMDsgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzZWFsTGFuZCB7XHJcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjIpIHJvdGF0ZSgtMzBkZWcpOyBvcGFjaXR5OiAwOyB9XHJcbiAgICA2MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KSByb3RhdGUoLThkZWcpOyBvcGFjaXR5OiAxOyB9XHJcbiAgICA4MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSByb3RhdGUoLTRkZWcpOyB9XHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoLTZkZWcpOyB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIGhlYWRsaW5lRmFkZSB7XHJcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpOyBvcGFjaXR5OiAwOyB9XHJcbiAgICB0byAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyAgICBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgQTExeSBwb2xpc2ggKFNwcmludCA2KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuXHJcbiAgLyogRm9yY2UtdmlzaWJsZSBmb2N1cyByaW5ncyBvbiBhbGwgY3VzdG9tIGVsZW1lbnRzICovXHJcbiAgZmYtZml4dHVyZS1jYXJkOmZvY3VzLXZpc2libGUsXHJcbiAgZmYtY2x1Yi10aWxlOmZvY3VzLXZpc2libGUsXHJcbiAgZmYtZmFuLXRpbGU6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1ib2x0KTtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xyXG4gIH1cclxuXHJcbiAgLyogUmVkdWNlZC1tb3Rpb24gZ2F0ZXMgcGVyIFdDQUcgMi4yIEFBICovXHJcbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAgIC50b3BiYXIsXHJcbiAgICAudGFiYmFyIHtcclxuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAubGl2ZS1kb3RbZGF0YS1zdGF0ZT1cImxpdmVcIl0ge1xyXG4gICAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5za2VsZXRvbiB7XHJcbiAgICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UtMikgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIFRvdWNoIHRhcmdldCBmbG9vciA0NMOXNDQgKEFwcGxlIEhJRykgKi9cclxuICAudGFiLFxyXG4gIC50b3BiYXItYnRuLFxyXG4gIGJ1dHRvbltyb2xlPVwic3dpdGNoXCJdIHtcclxuICAgIG1pbi13aWR0aDogNDRweDtcclxuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XHJcbiAgfVxyXG5cclxuICAvKiBIaWdoLWNvbnRyYXN0IHByZWZlcmVuY2Ug4oCUIHJlaW5mb3JjZSBib3JkZXIgdmlzaWJpbGl0eSAqL1xyXG4gIEBtZWRpYSAocHJlZmVycy1jb250cmFzdDogbW9yZSkge1xyXG4gICAgLnRvcGJhcixcclxuICAgIC50YWJiYXIge1xyXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtaW5rKSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmNhcmQsXHJcbiAgICBmZi1maXh0dXJlLWNhcmQsXHJcbiAgICBmZi1jbHViLXRpbGUge1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUtMikgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBNYWluIGNvbnRlbnQgaG9zdCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAubWFpbiB7XHJcbiAgICBncmlkLWFyZWE6IG1haW47XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluO1xyXG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoNjRweCArIHZhcigtLXNhLWJvdHRvbSkpO1xyXG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xyXG4gIH1cclxuXHJcbiAgLnZpZXcge1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgIHBhZGRpbmc6IHZhcigtLXNwLTQpO1xyXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwLTcpO1xyXG5cclxuICAgIC8qIFZpZXcgVHJhbnNpdGlvbnMgQVBJIOKAlCBhc3NpZ25zIGEgdHJhbnNpdGlvbi1uYW1lIHBlciB2aWV3IHNvXHJcbiAgICAgICBjcm9zcy12aWV3IG1vcnBocyB3b3JrLiBpT1MgVUEtZ2F0ZWQgZmFsbGJhY2sgaW4gcm91dGVyLmpzICovXHJcbiAgICB2aWV3LXRyYW5zaXRpb24tbmFtZTogdmFyKC0tdmlldy10cmFuc2l0aW9uLCBub25lKTtcclxuICB9XHJcblxyXG4gIC52aWV3W2hpZGRlbl0ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBUYWIgYmFyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC50YWJiYXIge1xyXG4gICAgZ3JpZC1hcmVhOiB0YWJiYXI7XHJcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgei1pbmRleDogdmFyKC0tei10YWJiYXIpO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIC8qIDYgdGFicyAoVUsgRm9vdGJhbGwgRmFjdG9yeSBwYXJpdHkpICovXHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICBoZWlnaHQ6IGNhbGMoNjBweCArIHZhcigtLXNhLWJvdHRvbSkpO1xyXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhLWJvdHRvbSk7XHJcblxyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ2xhc3MtYmcpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS1nbGFzcy1ibHVyKTtcclxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS1nbGFzcy1ibHVyKTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIH1cclxuICAvKiA2IHRhYnMgaXMgZGVuc2Ug4oCUIHNsaWdodGx5IHRpZ2h0ZXIgbGFiZWxzICovXHJcbiAgLnRhYmJhciAudGFiLWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogOXB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcclxuICB9XHJcblxyXG4gIEBzdXBwb3J0cyBub3QgKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSB7XHJcbiAgICAudGFiYmFyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZyk7IH1cclxuICB9XHJcblxyXG4gIC50YWIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLXNwLTEpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpLFxyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tc3AtMik7XHJcbiAgICBtaW4taGVpZ2h0OiA0NHB4OyAvKiBBcHBsZSBISUcgdG91Y2ggdGFyZ2V0ICovXHJcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgLnRhYjphY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk0KTtcclxuICB9XHJcblxyXG4gIC50YWJbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xyXG4gICAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICB9XHJcblxyXG4gIC8qIFVLIHVzZXMgZmlsbGVkIFBob3NwaG9yLXN0eWxlIFNWR3MgKGZpbGw6IGN1cnJlbnRDb2xvcikgc28gdGhlXHJcbiAgICAgYWN0aXZlIHN0YXRlIGNvbG91cnMgdmlhIGBjb2xvcmAgcmF0aGVyIHRoYW4gYHN0cm9rZWAuICovXHJcbiAgLnRhYlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSAudGFiLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA2cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC40NSkpO1xyXG4gIH1cclxuXHJcbiAgLnRhYi1pY29uLXdyYXAge1xyXG4gICAgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICAgIHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHg7XHJcbiAgfVxyXG4gIC50YWItaWNvbiB7XHJcbiAgICB3aWR0aDogMjJweDtcclxuICAgIGhlaWdodDogMjJweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG5cclxuICAudGFiLWxhYmVsIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gICAgZm9udC1zaXplOiA5LjVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIFNlYXJjaCBvdmVybGF5IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC5zZWFyY2gtb3ZlcmxheSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBpbnNldDogMDtcclxuICAgIHotaW5kZXg6IHZhcigtLXotb3ZlcmxheSk7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjA1IDAuMDIwIDI3MCAvIDAuOTIpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xyXG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLXNhLXRvcCkgKyB2YXIoLS1zcC0zKSk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwLTQpO1xyXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3AtNCk7XHJcbiAgICBhbmltYXRpb246IHNlYXJjaE92ZXJsYXlJbiB2YXIoLS1tLWJhc2UpIHZhcigtLW0tc3ByaW5nKTtcclxuICB9XHJcblxyXG4gIC5zZWFyY2gtb3ZlcmxheVtoaWRkZW5dIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIHNlYXJjaE92ZXJsYXlJbiB7XHJcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxyXG4gICAgdG8geyBvcGFjaXR5OiAxOyB9XHJcbiAgfVxyXG5cclxuICAuc2VhcmNoLW92ZXJsYXktaW5uZXIge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XHJcbiAgICBnYXA6IHZhcigtLXNwLTMpO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5zZWFyY2gtZmllbGQge1xyXG4gICAgZ3JpZC1jb2x1bW46IDE7XHJcbiAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UtMik7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcclxuICAgIHBhZGRpbmc6IDAgdmFyKC0tc3AtNCk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC1tZCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuc2VhcmNoLWZpZWxkOjpwbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7IH1cclxuICAuc2VhcmNoLWZpZWxkOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvbHQpOyB9XHJcblxyXG4gIC5zZWFyY2gtY2xvc2Uge1xyXG4gICAgZ3JpZC1jb2x1bW46IDI7XHJcbiAgICB3aWR0aDogNDhweDtcclxuICAgIGhlaWdodDogNDhweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2lyY2xlKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS0yKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LW1kKTtcclxuICB9XHJcblxyXG4gIC5zZWFyY2gtcmVzdWx0cyB7XHJcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3AtNCk7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgZmxleDogMTtcclxuICB9XHJcbn1cclxuIiwgIi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxyXG4gICBwYXR0ZXJucy5jc3Mg4oCUIHJlLXVzYWJsZSBkZXNpZ24gcGF0dGVybnNcclxuXHJcbiAgIFBlciBDTEFVREUubWQgwqc4LjMwIOKAlCB0aGVzZSBhcmUgdGhlIHBhdHRlcm5zIGNvbXBvbmVudHMgcmV1c2Ugc29cclxuICAgd2UgZG9uJ3QgZHJpZnQgYmFjayB0byBiZXNwb2tlIGdlbmVyaWMgc3VyZmFjZXMuIElzc3VlIG1hc3RoZWFkLFxyXG4gICB3YXgtc2VhbCBzdGFtcCwgYWxtYW5hYyBjYXB0aW9uLCBwcm9ncmFtbWUgc3RyaXAsIGV0Yy5cclxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXHJcblxyXG5AbGF5ZXIgcGF0dGVybnMge1xyXG5cclxuICAvKiDilIDilIAgQ2x1Yi10aGVtZWQgcGFsZXR0ZSDigJQgZGVyaXZlIGEgNC1jb2xvciBzeXN0ZW0gZnJvbSBvbmUgaW5wdXQg4pSAICovXHJcbiAgLypcclxuICAgICBTdXJmYWNlcyB0aGF0IHNob3VsZCBhZG9wdCBhIGNsdWIncyBjb2xvdXIgc2V0IGAtLWMtY2x1YmAgKGVpdGhlclxyXG4gICAgIGZyb20gYHN0eWxlPVwiLS1jLWNsdWI6I0RDMDUyRFwiYCBvciB2aWEgSlMgaW50ZXJwb2xhdGlvbjsgdGhlIHNhbWVcclxuICAgICBgLS1jbHViLWFjY2VudGAgdmFyIHVzZWQgZWxzZXdoZXJlIGlzIHRoZSBjYW5vbmljYWwgc291cmNlIOKAlCB3ZVxyXG4gICAgIGFsaWFzIHRvIGAtLWMtY2x1YmAgaGVyZSBzbyBleGlzdGluZyBjb21wb25lbnRzIGRvbid0IGNodXJuKS5cclxuXHJcbiAgICAgRnJvbSB0aGUgc2luZ2xlIGJhc2UgY29sb3Igd2UgZGVyaXZlOlxyXG4gICAgICAgLS1jLWNsdWIgICAgICAgICAgICBiYXNlICh0aGUgaW5wdXQg4oCUIHZpdmlkKVxyXG4gICAgICAgLS1jLWNsdWItZGVlcCAgICAgICBzYW1lIGh1ZSwgZGFya2VyIChzaGVldCBlZGdlcywgZGVlcCBibGVlZHMpXHJcbiAgICAgICAtLWMtY2x1Yi10aW50ICAgICAgIHNhbWUgaHVlLCBuZWFyLXdoaXRlIChtaWQgYmFja2dyb3VuZHMpXHJcbiAgICAgICAtLWMtY2x1Yi1nbG93ICAgICAgIGJhc2UgYXQgNDAlIGFscGhhIChyYWRpYWwgYmxlZWQpXHJcbiAgICAgICAtLWMtY2x1Yi1mb3JlZ3JvdW5kICBjb250cmFzdC1jb2xvciB0ZXh0IChhdXRvIHdoaXRlL2JsYWNrKVxyXG5cclxuICAgICBBbGwgY29tcHV0ZWQgdmlhIGNvbG9yLW1peChpbiBva2xjaCwgLi4uKSDigJQgcGVyY2VwdHVhbGx5IHVuaWZvcm1cclxuICAgICBpbnRlcnBvbGF0aW9uOyBtdWRkaWVyIFJHQiBtaXhlcyBhcmUgYXZvaWRlZC5cclxuICAgKi9cclxuICAuY2x1Yi10aGVtZWQge1xyXG4gICAgLyogSW5wdXRzIChzZXQgaW5saW5lIGJ5IEpTIGNvbnN1bWVycyk6XHJcbiAgICAgICAgIC0tY2x1Yi1hY2NlbnQgICAgIHByaW1hcnkgYnJhbmQgY29sb3IgKGhleClcclxuICAgICAgICAgLS1jbHViLXNlY29uZGFyeSAgY3VyYXRlZCBjb21wYW5pb24gKGhleCkg4oCUIGZhbGxzIGJhY2sgdG8gcHJpbWFyeVxyXG4gICAgICAgICAtLWNsdWItb24tcHJpbWFyeSB0ZXh0LW9uLXByaW1hcnkgKGhleCkg4oCUIHByZS1jb21wdXRlZCB2aWEgV0NBRyAqL1xyXG4gICAgLS1jLWNsdWI6ICAgICAgICAgICB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSk7XHJcbiAgICAtLWMtY2x1Yi1zZWNvbmRhcnk6IHZhcigtLWNsdWItc2Vjb25kYXJ5LCB2YXIoLS1jLWNsdWIpKTtcclxuXHJcbiAgICAvKiBNaXgtcGVyY2VudGFnZSBjbGFtcHMgcGVyIGRlZXAtZGl2ZTogZGVlcCAyNSUsIHRpbnQgNzUlLCBnbG93IDkwJS5cclxuICAgICAgIEJvdW5kcyBPS0xDSCBtaWRwb2ludCBtdWRkaW5lc3Mgb24gdWx0cmEtc2F0dXJhdGVkIGh1ZXMgbGlrZVxyXG4gICAgICAgQm9ydXNzaWEgeWVsbG93IC8gQmF5ZXJuIHJlZC4gKi9cclxuICAgIC0tYy1jbHViLWRlZXA6ICBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWMtY2x1YikgNzUlLCBva2xjaCgwLjEyIDAuMDIwIDI3MCkpO1xyXG4gICAgLS1jLWNsdWItdGludDogIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1jbHViKSAyNSUsIG9rbGNoKDAuMTggMC4wMjIgMjcwKSk7XHJcbiAgICAtLWMtY2x1Yi1nbG93OiAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jLWNsdWIpIDUwJSwgdHJhbnNwYXJlbnQpO1xyXG4gICAgLS1jLWNsdWItZWRnZTogIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1jbHViKSA0MCUsIHZhcigtLWMtbGluZSkpO1xyXG5cclxuICAgIC8qIEZvcmVncm91bmQgdGV4dCDigJQgcHJlLWNvbXB1dGVkIGF0IGJ1aWxkIHZpYSBXQ0FHIGx1bWluYW5jZS5cclxuICAgICAgIFVuaXZlcnNhbCBmYWxsYmFjayB0byBib2x0LWJyaWdodCB3aGl0ZS4gUHJvZ3Jlc3NpdmUtZW5oYW5jZVxyXG4gICAgICAgdG8gY29udHJhc3QtY29sb3IoKSB3aGVyZSBzdXBwb3J0ZWQgKFNhZmFyaSAyNiAvIENocm9tZSAxNDcrKS4gKi9cclxuICAgIC0tYy1jbHViLWZnOiB2YXIoLS1jbHViLW9uLXByaW1hcnksIG9rbGNoKDAuOTkgMCAwKSk7XHJcbiAgfVxyXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbnRyYXN0LWNvbG9yKHJlZCkpIHtcclxuICAgIC5jbHViLXRoZW1lZCB7XHJcbiAgICAgIC0tYy1jbHViLWZnOiBjb250cmFzdC1jb2xvcih2YXIoLS1jLWNsdWIpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIFN1cmZhY2UgdHJlYXRtZW50cyB0aGF0IFJFQUQgdGhlIHBhbGV0dGUg4oCUIGFwcGx5IG9uIGFueSBlbGVtZW50XHJcbiAgICAgbWFya2VkIC5jbHViLXRoZW1lZC4gKi9cclxuXHJcbiAgLmNsdWItc3VyZmFjZS10aW50IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgMTgwZGVnLFxyXG4gICAgICB2YXIoLS1jLWNsdWItdGludCkgMCUsXHJcbiAgICAgIHZhcigtLWMtc3VyZmFjZSkgNzUlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLmNsdWItc3VyZmFjZS1kZWVwIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgMTgwZGVnLFxyXG4gICAgICB2YXIoLS1jLWNsdWIpIDAlLFxyXG4gICAgICB2YXIoLS1jLWNsdWItZGVlcCkgMTAwJVxyXG4gICAgKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWNsdWItZmcpO1xyXG4gIH1cclxuXHJcbiAgLmNsdWItZWRnZS1sZWZ0IHtcclxuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tYy1jbHViKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgOTBkZWcsXHJcbiAgICAgIHZhcigtLWMtY2x1Yi10aW50KSAwJSxcclxuICAgICAgdHJhbnNwYXJlbnQgNjAlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLmNsdWItaGFsby10b3AtcmlnaHQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xyXG4gIH1cclxuICAuY2x1Yi1oYWxvLXRvcC1yaWdodDo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaW5zZXQ6IC0zMCUgLTEwJSBhdXRvIGF1dG87XHJcbiAgICB3aWR0aDogMjgwcHg7XHJcbiAgICBoZWlnaHQ6IDI4MHB4O1xyXG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KFxyXG4gICAgICBjaXJjbGUgYXQgY2VudGVyLFxyXG4gICAgICB2YXIoLS1jLWNsdWItZ2xvdykgMCUsXHJcbiAgICAgIHRyYW5zcGFyZW50IDY1JVxyXG4gICAgKTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuO1xyXG4gIH1cclxuXHJcbiAgLyogTWVzaCBncmFkaWVudCDigJQgMyByYWRpYWwgYmxlZWRzIGF0IG9yZ2FuaWMgcG9zaXRpb25zLCBtaXhpbmdcclxuICAgICBwcmltYXJ5IEFORCBzZWNvbmRhcnkgKHBlciBkZWVwLWRpdmU6IDItYmxvYiBmZWVscyBsaWtlIFwiYmFubmVyXCIsXHJcbiAgICAgMy1ibG9iIGZlZWxzIGxpa2UgXCJtZXNoXCIpLiBCb3VuZGVkIHN1cmZhY2VzIG9ubHkgKHNoZWV0IGhlcm8sXHJcbiAgICAgZWRpdG9yIGNhcmQgdG9wKSDigJQgbmV2ZXIgZnVsbC1wYWdlOyB0aGUgQXBwbGUtTXVzaWMgYWRhcHRpdmUtXHJcbiAgICAgdGludGluZyBiYWNrbGFzaCBpcyB0aGUgY2F1dGlvbmFyeSB0YWxlLiAqL1xyXG4gIC5jbHViLW1lc2gge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxyXG4gICAgICAgIGVsbGlwc2UgNTUlIDQ1JSBhdCAxOCUgMTIlLFxyXG4gICAgICAgIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1jbHViLXNlY29uZGFyeSkgNTUlLCB0cmFuc3BhcmVudCkgMCUsXHJcbiAgICAgICAgdHJhbnNwYXJlbnQgNjAlXHJcbiAgICAgICksXHJcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcclxuICAgICAgICBlbGxpcHNlIDU1JSA0NSUgYXQgODglIDI4JSxcclxuICAgICAgICB2YXIoLS1jLWNsdWItZ2xvdykgMCUsXHJcbiAgICAgICAgdHJhbnNwYXJlbnQgNjAlXHJcbiAgICAgICksXHJcbiAgICAgIHJhZGlhbC1ncmFkaWVudChcclxuICAgICAgICBlbGxpcHNlIDY1JSA0NSUgYXQgNDUlIDEwNSUsXHJcbiAgICAgICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jLWNsdWIpIDM1JSwgdHJhbnNwYXJlbnQpIDAlLFxyXG4gICAgICAgIHRyYW5zcGFyZW50IDU1JVxyXG4gICAgICApLFxyXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jLWNsdWItdGludCkgMCUsIHZhcigtLWMtc3VyZmFjZSkgNzUlKTtcclxuICB9XHJcblxyXG4gIC8qIFNvZnQgY3Jlc3QgZGlzYyBmaWxsIOKAlCBncmFkaWVudC1yaWNoIHZhcmlhbnQgb2YgdGhlIGZsYXQgY29sb3IgZmlsbCAqL1xyXG4gIC5jbHViLWNyZXN0LWRpc2Mge1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzMCUgMjUlLCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWMtY2x1YikgODAlLCB3aGl0ZSkgMCUsIHZhcigtLWMtY2x1YikgNjUlLCB2YXIoLS1jLWNsdWItZGVlcCkgMTAwJSk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1jbHViLWZnKTtcclxuICAgIGJveC1zaGFkb3c6XHJcbiAgICAgIGluc2V0IDAgMXB4IDAgb2tsY2goMSAwIDAgLyAwLjIwKSxcclxuICAgICAgaW5zZXQgMCAtOHB4IDE0cHggb2tsY2goMCAwIDAgLyAwLjE4KSxcclxuICAgICAgMCA4cHggMThweCB2YXIoLS1jLWNsdWItZ2xvdyk7XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgU3BhdGlhbCB0aWx0IOKAlCB2aXNpb25PUy1mZWVsIG9uIGlQaG9uZS9pUGFkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC8qIEhvc3RzIG1hcmtlZCAuc3BhdGlhbC1jYXJkIGJ5IGxpYi9zcGF0aWFsLXRpbHQuanMgZ2V0IDNEIHRpbHRcclxuICAgICBrZXllZCB0byBwb2ludGVyIHBvc2l0aW9uLiBQdXJlIENTUzsgcGVyc3BlY3RpdmUgaXMgdGhlIGxvYWQtXHJcbiAgICAgYmVhcmluZyBydWxlOyByb3RhdGVYL1kgcmVhZCBmcm9tIC0tdGlsdC14IC8gLS10aWx0LXkgdmFycyBzZXRcclxuICAgICBwZXItZnJhbWUgZnJvbSByQUYgaW4gdGhlIGxpYi4gKi9cclxuICAuc3BhdGlhbC1jYXJkIHtcclxuICAgIC0tdGlsdC14OiAwZGVnO1xyXG4gICAgLS10aWx0LXk6IDBkZWc7XHJcbiAgICAtLXRpbHQtZGVwdGg6IDBweDtcclxuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoOTAwcHgpIHJvdGF0ZVgodmFyKC0tdGlsdC14KSkgcm90YXRlWSh2YXIoLS10aWx0LXkpKSB0cmFuc2xhdGVaKHZhcigtLXRpbHQtZGVwdGgpKTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNDBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XHJcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxuICB9XHJcblxyXG4gIC8qIFBvaW50ZXItdHJhY2tpbmcgc3BlY3VsYXIgaGlnaGxpZ2h0IOKAlCBhIHNvZnQgd2hpdGUgd2FzaCB0aGF0XHJcbiAgICAgdHJhY2tzIHRoZSBwb2ludGVyIHBvc2l0aW9uLiBEcml2ZW4gYnkgLS10aWx0LXkgYXMgYSBob3Jpem9udGFsXHJcbiAgICAgcHJveHkgYW5kIC0tdGlsdC14IGZvciB2ZXJ0aWNhbCBiaWFzLiBUaGUgZXllIHJlYWRzIHRoaXMgYXMgdGhlXHJcbiAgICAgc3VyZmFjZSBjYXRjaGluZyBhIHZpcnR1YWwgbGlnaHQgc291cmNlIOKAlCB0aGUgTGlxdWlkIEdsYXNzIHRlbGwuICovXHJcbiAgLnNwYXRpYWwtY2FyZDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBpbnNldDogMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcclxuICAgICAgY2lyY2xlIGF0IGNhbGMoNTAlICsgKHZhcigtLXRpbHQteSkgLyA2ZGVnICogMjUlKSkgY2FsYyg1MCUgKyAodmFyKC0tdGlsdC14KSAvIC02ZGVnICogMjUlKSksXHJcbiAgICAgIG9rbGNoKDEgMCAwIC8gMC4xMikgMCUsXHJcbiAgICAgIHRyYW5zcGFyZW50IDU1JVxyXG4gICAgKTtcclxuICAgIG1peC1ibGVuZC1tb2RlOiBvdmVybGF5O1xyXG4gICAgb3BhY2l0eTogY2FsYyhtaW4oMSwgbWF4KDAsICh2YXIoLS10aWx0LWRlcHRoKSAvIDhweCkpKSk7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI0MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgfVxyXG5cclxuICAvKiBJbm5lciBjb250ZW50IGxheWVyIHJpc2VzIHNsaWdodGx5IHdoZW4gdGlsdCBpcyBhY3RpdmUg4oCUIHRoZVxyXG4gICAgIFwicGFyYWxsYXhcIiBpbnNpZGUgdGhlIGNhcmQuIGxpYi9zcGF0aWFsLXRpbHQgc2V0cyAtLXRpbHQtbGlmdFxyXG4gICAgIHBlci1mcmFtZSBvbiB0aGUgaW5uZXIgZWxlbWVudCB3aGVuIGFuIGlubmVyU2VsZWN0b3IgaXMgZ2l2ZW4uICovXHJcbiAgLnNwYXRpYWwtY2FyZCAuc3BhdGlhbC1jYXJkLWlubmVyLFxyXG4gIC5zcGF0aWFsLWNhcmQgLmhlcm8tY2FyZC1pbm5lcixcclxuICAuc3BhdGlhbC1jYXJkIC5lZGl0b3ItY2FyZC1pbm5lciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVoodmFyKC0tdGlsdC1saWZ0LCAwcHgpKTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNDBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gICAgLnNwYXRpYWwtY2FyZCB7XHJcbiAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xyXG4gICAgfVxyXG4gICAgLnNwYXRpYWwtY2FyZDo6YWZ0ZXIgeyBvcGFjaXR5OiAwOyB9XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgUHJvZ3JhbW1lIG1hc3RoZWFkIOKAlCBpc3N1ZS1jb3ZlciByZWdpc3RlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAvKiBUaGUgXCJQcmVtaWVyIExlYWd1ZSBpc3N1ZSBtYXN0aGVhZFwiIHBhdHRlcm47IHBvcnRlZCBmcm9tIFVLIMKnOC4zMCAqL1xyXG4gIC5wcm9ncmFtbWUtbWFzdGhlYWQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1zcC01KSB2YXIoLS1zcC00KTtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTUpO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcclxuICB9XHJcblxyXG4gIC8qIFBhcGVyLWZpYnJlIG5vaXNlIG92ZXJsYXkgKi9cclxuICAucHJvZ3JhbW1lLW1hc3RoZWFkOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGluc2V0OiAwO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB2aWV3Qm94PScwIDAgMjAwIDIwMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIGJhc2VGcmVxdWVuY3k9JzAuODUnIG51bU9jdGF2ZXM9JzInIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCglMjNuKScgb3BhY2l0eT0nMC4wNycvPjwvc3ZnPlwiKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwcHggMjAwcHg7XHJcbiAgICBtaXgtYmxlbmQtbW9kZTogb3ZlcmxheTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgei1pbmRleDogMTtcclxuICB9XHJcblxyXG4gIC8qIEdob3N0IHN0ZW5jaWwgbnVtYmVyIGluIHRvcCBjb3JuZXIgKi9cclxuICAucHJvZ3JhbW1lLW1hc3RoZWFkOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtaXNzdWUpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtNnB4O1xyXG4gICAgcmlnaHQ6IHZhcigtLXNwLTQpO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDRyZW0sIDE4dncsIDdyZW0pO1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgb3BhY2l0eTogMC4xMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAwLjg1O1xyXG4gICAgei1pbmRleDogMDtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLnByb2dyYW1tZS1tYXN0aGVhZC1pbm5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gIH1cclxuXHJcbiAgLnByb2dyYW1tZS1raWNrZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLXNwLTIpO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXQteHMpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7XHJcbiAgfVxyXG5cclxuICAucHJvZ3JhbW1lLWtpY2tlciAuZG90IHtcclxuICAgIHdpZHRoOiA0cHg7XHJcbiAgICBoZWlnaHQ6IDRweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgfVxyXG5cclxuICAucHJvZ3JhbW1lLWhlYWRsaW5lIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiBjbGFtcCh2YXIoLS10LTN4bCksIDl2dywgdmFyKC0tdC00eGwpKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgtdGlnaHQpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyLWJhc2UpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC0yKTtcclxuICB9XHJcblxyXG4gIC5wcm9ncmFtbWUtc3ViaGVhZCB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LW1kKTtcclxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1iYXNlKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICAgIG1heC13aWR0aDogMzJjaDtcclxuICB9XHJcblxyXG4gIC8qIFNjcmliYmxlZCBib2x0LXllbGxvdyB1bmRlcmxpbmUgKGRlY29yYXRpdmUpICovXHJcbiAgLnByb2dyYW1tZS1oZWFkbGluZS1hbmNob3Ige1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLnByb2dyYW1tZS1oZWFkbGluZS1hbmNob3I6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IC00cHg7XHJcbiAgICBoZWlnaHQ6IDRweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgICB0cmFuc2Zvcm06IHNrZXdZKC0xLjVkZWcpO1xyXG4gICAgb3BhY2l0eTogMC44NTtcclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBBbG1hbmFjIHNlY3Rpb24gaGVhZCDigJQgaXRhbGljIEZyYXVuY2VzIGJldHdlZW4gYm9sdCBydWxlcyDilIDilIDilIDilIAgKi9cclxuICAvKiBQb3J0ZWQgZnJvbSBVSyDCpzguOTsgdGhlIFwiY2xhc3NpZXJcIiByZXBsYWNlbWVudCBmb3Igc3RlbmNpbCBhbGwtY2FwcyAqL1xyXG4gIC5hbG1hbmFjLXNlY3Rpb24taGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogdmFyKC0tc3AtMyk7XHJcbiAgICBtYXJnaW46IHZhcigtLXNwLTYpIDAgdmFyKC0tc3AtNCk7XHJcbiAgfVxyXG5cclxuICAuYWxtYW5hYy1zZWN0aW9uLWhlYWQ6OmJlZm9yZSxcclxuICAuYWxtYW5hYy1zZWN0aW9uLWhlYWQ6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgIHRvIHJpZ2h0LFxyXG4gICAgICB0cmFuc3BhcmVudCAwJSxcclxuICAgICAgdmFyKC0tYy1ib2x0KSA1MCUsXHJcbiAgICAgIHRyYW5zcGFyZW50IDEwMCVcclxuICAgICk7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgfVxyXG5cclxuICAuYWxtYW5hYy1zZWN0aW9uLWhlYWQtdGV4dCB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LW1kKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS10ci1iYXNlKTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIFdheC1zZWFsIHN0YW1wIOKAlCBlbW90aW9uYWwgXCJ5b3Ugd2VyZSB0aGVyZVwiIG1vbWVudCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAvKiBVSyDCpzguMzA6IGNpcmN1bGFyIGVtYm9zc2VkIGJhZGdlLCBzbGlnaHRseSB0aWx0ZWQsIHNldHRsZS1pbiAqL1xyXG4gIC53YXgtc2VhbCB7XHJcbiAgICAtLXNlYWwtc2l6ZTogNTZweDtcclxuICAgIC0tc2VhbC1jb2xvcjogdmFyKC0tYy1saW1lKTtcclxuICAgIHdpZHRoOiB2YXIoLS1zZWFsLXNpemUpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1zZWFsLXNpemUpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1zdGVuY2lsKTtcclxuICAgIGZvbnQtc2l6ZTogY2FsYyh2YXIoLS1zZWFsLXNpemUpICogMC4zMik7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XHJcbiAgICBjb2xvcjogb2tsY2goMC4xOCAwLjAyNSAyNzApO1xyXG4gICAgYmFja2dyb3VuZDpcclxuICAgICAgcmFkaWFsLWdyYWRpZW50KFxyXG4gICAgICAgIGNpcmNsZSBhdCAzNSUgMzAlLFxyXG4gICAgICAgIG9rbGNoKGZyb20gdmFyKC0tc2VhbC1jb2xvcikgY2FsYyhsICsgMC4xKSBjIGgpLFxyXG4gICAgICAgIHZhcigtLXNlYWwtY29sb3IpIDYwJSxcclxuICAgICAgICBva2xjaChmcm9tIHZhcigtLXNlYWwtY29sb3IpIGNhbGMobCAtIDAuMTUpIGMgaCkgMTAwJVxyXG4gICAgICApO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTZkZWcpO1xyXG4gICAgYm94LXNoYWRvdzpcclxuICAgICAgaW5zZXQgMCAxcHggMCBva2xjaCgxIDAgMCAvIDAuMyksXHJcbiAgICAgIGluc2V0IDAgLTNweCA2cHggb2tsY2goMCAwIDAgLyAwLjI1KSxcclxuICAgICAgMCA0cHggMTJweCBva2xjaCgwIDAgMCAvIDAuNCk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICAvKiBTZWFsIHJpbSAqL1xyXG4gIC53YXgtc2VhbDo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBpbnNldDogNHB4O1xyXG4gICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgb2tsY2goMC4xOCAwLjAyNSAyNzAgLyAwLjQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIH1cclxuXHJcbiAgLndheC1zZWFsLS1icm9uemUgeyAtLXNlYWwtY29sb3I6IG9rbGNoKDAuNjUgMC4xMCAgNjApOyB9XHJcbiAgLndheC1zZWFsLS1zaWx2ZXIgeyAtLXNlYWwtY29sb3I6IG9rbGNoKDAuNzggMC4wMiAyNzApOyB9XHJcbiAgLndheC1zZWFsLS1nb2xkICAgeyAtLXNlYWwtY29sb3I6IHZhcigtLWMtYm9sdCk7IH1cclxuICAud2F4LXNlYWwtLWxpbWUgICB7IC0tc2VhbC1jb2xvcjogdmFyKC0tYy1saW1lKTsgfVxyXG5cclxuICAvKiDilIDilIAgQ3Jlc3QgZGlzYyDigJQgc21hbGwgY2lyY3VsYXIgY3Jlc3Qgd2l0aCBmYWxsYmFjayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAuY3Jlc3Qge1xyXG4gICAgLS1jcmVzdC1zaXplOiAzMnB4O1xyXG4gICAgd2lkdGg6IHZhcigtLWNyZXN0LXNpemUpO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1jcmVzdC1zaXplKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS0yKTtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICB9XHJcblxyXG4gIC5jcmVzdCBpbWcge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gIH1cclxuXHJcbiAgLmNyZXN0LS1sZyB7IC0tY3Jlc3Qtc2l6ZTogNTZweDsgfVxyXG4gIC5jcmVzdC0teGwgeyAtLWNyZXN0LXNpemU6IDgwcHg7IH1cclxuICAuY3Jlc3QtLXh4bCB7IC0tY3Jlc3Qtc2l6ZTogMTIwcHg7IH1cclxuXHJcbiAgLyogSW5pdGlhbHMgZmFsbGJhY2sgd2hlbiBiYWRnZSBtaXNzaW5nICovXHJcbiAgLmNyZXN0LWluaXRpYWxzIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWNyZXN0LXNpemUpICogMC40KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgQ2hpcCByYWlsIOKAlCBob3Jpem9udGFsIHNjcm9sbGFibGUgZmlsdGVyIHBpbGxzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC5jaGlwLXJhaWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogdmFyKC0tc3AtMik7XHJcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xyXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xyXG4gICAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtMSk7XHJcbiAgICBtYXJnaW46IDAgY2FsYygtMSAqIHZhcigtLXNwLTQpKTtcclxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3AtNCk7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcC00KTtcclxuICAgIC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgICB0byByaWdodCxcclxuICAgICAgdHJhbnNwYXJlbnQgMCxcclxuICAgICAgYmxhY2sgY2FsYygwJSArIHZhcigtLXNwLTQpKSxcclxuICAgICAgYmxhY2sgY2FsYygxMDAlIC0gMjRweCksXHJcbiAgICAgIHRyYW5zcGFyZW50IDEwMCVcclxuICAgICk7XHJcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgIHRvIHJpZ2h0LFxyXG4gICAgICB0cmFuc3BhcmVudCAwLFxyXG4gICAgICBibGFjayBjYWxjKDAlICsgdmFyKC0tc3AtNCkpLFxyXG4gICAgICBibGFjayBjYWxjKDEwMCUgLSAyNHB4KSxcclxuICAgICAgdHJhbnNwYXJlbnQgMTAwJVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC5jaGlwLXJhaWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuICAuY2hpcCB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIG1pbi1oZWlnaHQ6IDMycHg7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LXhzKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHItY2Fwcyk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KSxcclxuICAgICAgICAgICAgICAgIGNvbG9yIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpLFxyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG4gIH1cclxuXHJcbiAgLmNoaXBbYXJpYS1wcmVzc2VkPVwidHJ1ZVwiXSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtYmcpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gIH1cclxuXHJcbiAgLmNoaXA6aG92ZXIgeyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxyXG5cclxuICAvKiDilIDilIAgSGFpcmxpbmUgcnVsZSDigJQgYm9sdC15ZWxsb3cgZWRpdG9yaWFsIGRpdmlkZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgLmhhaXJsaW5lLWJvbHQge1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgIHRvIHJpZ2h0LFxyXG4gICAgICB0cmFuc3BhcmVudCxcclxuICAgICAgdmFyKC0tYy1ib2x0KSxcclxuICAgICAgdHJhbnNwYXJlbnRcclxuICAgICk7XHJcbiAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBtYXJnaW46IHZhcigtLXNwLTQpIDA7XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgQ2FyZCDigJQgZ2VuZXJpYyBzdXJmYWNlIChhdm9pZCB1c2luZzsgcHJlZmVyIHBhdHRlcm4tbmFtZWQpIOKUgOKUgOKUgOKUgCAqL1xyXG4gIC8qIFVLIMKnOC4zMCByZWZsZXggcnVsZTogZG9uJ3QgcmVhY2ggZm9yIGdlbmVyaWMgY2FyZHMuIEJ1dCBwcm92aWRlZFxyXG4gICAgIGhlcmUgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgZm9yIGFkLWhvYyB3b3JrOyByZXBsYWNlIGFzIHBhdHRlcm5zXHJcbiAgICAgZW1lcmdlLiAqL1xyXG4gIC5jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tc3AtNCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIFN0YWNrIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgLnN0YWNrLTEgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTEpOyB9XHJcbiAgLnN0YWNrLTIgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTIpOyB9XHJcbiAgLnN0YWNrLTMgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTMpOyB9XHJcbiAgLnN0YWNrLTQgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTQpOyB9XHJcbiAgLnN0YWNrLTUgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTUpOyB9XHJcbiAgLnN0YWNrLTYgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTYpOyB9XHJcblxyXG4gIC8qIOKUgOKUgCBJbmxpbmUgaGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAuaW5saW5lLTIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyB9XHJcbiAgLmlubGluZS0zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTsgfVxyXG4gIC5pbmxpbmUtNCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtNCk7IH1cclxufVxyXG4iLCAiLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXHJcbiAgIGNvbXBvbmVudHMuY3NzIOKAlCBXZWIgQ29tcG9uZW50LXNwZWNpZmljIHN0eWxlc1xyXG5cclxuICAgRWFjaCBmZi0qIGNvbXBvbmVudCdzIG91dGVyIHN0eWxpbmcgbGl2ZXMgaGVyZS4gSW50ZXJuYWwgc3R5bGVzXHJcbiAgIHJpZGUgYWxvbmcgaW4gdGhlaXIgSlMgZmlsZXMgdmlhIHRoZSBob3N0J3MgY2xhc3MuIFRoaXMgZmlsZSBpc1xyXG4gICB0aGUgc3R5bGluZyBjb250cmFjdCBhIGZ1dHVyZSBmZi0qIGNvbXBvbmVudCBob25vdXJzLlxyXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cclxuXHJcbkBsYXllciBjb21wb25lbnRzIHtcclxuXHJcbiAgLyog4pSA4pSAIGZmLW1hc3RoZWFkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIGZmLW1hc3RoZWFkIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIGZmLWZpeHR1cmUtY2FyZCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICBmZi1maXh0dXJlLWNhcmQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcclxuICAgIHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigtLXNwLTQpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1jLWJvbHQpO1xyXG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KTtcclxuICB9XHJcblxyXG4gIGZmLWZpeHR1cmUtY2FyZDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UtMik7XHJcbiAgfVxyXG5cclxuICBmZi1maXh0dXJlLWNhcmQgLmZjLWNvbXAge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXQteHMpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7XHJcbiAgfVxyXG5cclxuICBmZi1maXh0dXJlLWNhcmQgLmZjLXRlYW1zIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvIDFmcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLXNwLTMpO1xyXG4gIH1cclxuXHJcbiAgZmYtZml4dHVyZS1jYXJkIC5mYy10ZWFtIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiB2YXIoLS1zcC0yKTtcclxuICAgIG1pbi13aWR0aDogMDtcclxuICB9XHJcblxyXG4gIGZmLWZpeHR1cmUtY2FyZCAuZmMtdGVhbS0taG9tZSB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cclxuXHJcbiAgZmYtZml4dHVyZS1jYXJkIC5mYy10ZWFtLW5hbWUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXQtbWQpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB9XHJcblxyXG4gIGZmLWZpeHR1cmUtY2FyZCAuZmMtc2NvcmUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LXhsKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1pbi13aWR0aDogNjBweDtcclxuICB9XHJcblxyXG4gIGZmLWZpeHR1cmUtY2FyZCAuZmMtdnMge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LW1kKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgfVxyXG5cclxuICBmZi1maXh0dXJlLWNhcmQgLmZjLXRpbWUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXQtc20pO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gIH1cclxuXHJcbiAgZmYtZml4dHVyZS1jYXJkIC5mYy1tZXRhIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZ2FwOiB2YXIoLS1zcC0yKTtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwLTIpO1xyXG4gICAgcGFkZGluZy10b3A6IHZhcigtLXNwLTIpO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC14cyk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIGZmLWNsdWItdGlsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICBmZi1jbHViLXRpbGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG5cclxuICBmZi1jbHViLXRpbGU6YWN0aXZlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cclxuXHJcbiAgZmYtY2x1Yi10aWxlIC5jdC1yb3cge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLXNwLTMpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tc3AtMykgdmFyKC0tc3AtNCk7XHJcbiAgfVxyXG5cclxuICBmZi1jbHViLXRpbGUgLmN0LW5hbWUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXQtbWQpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG4gIH1cclxuXHJcbiAgZmYtY2x1Yi10aWxlIC5jdC1tZXRhIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LXhzKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBmZi1zdGFtcC1zZWFsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIGZmLXN0YW1wLXNlYWwge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIGZmLWxlYWRlcmJvYXJkLXJvdyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICBmZi1sZWFkZXJib2FyZC1yb3cge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC00KTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gICAgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplO1xyXG4gIH1cclxuXHJcbiAgZmYtbGVhZGVyYm9hcmQtcm93IC5sYi1yb3cge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IHZhcigtLXNwLTMpO1xyXG4gIH1cclxuXHJcbiAgZmYtbGVhZGVyYm9hcmQtcm93IC5sYi1yYW5rIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LXNtKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgICB3aWR0aDogMjhweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIGZmLWxlYWRlcmJvYXJkLXJvdyAubGItbmFtZSB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1kaXNwbGF5KTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC1tZCk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgfVxyXG5cclxuICBmZi1sZWFkZXJib2FyZC1yb3cgLmxiLXNjb3JlIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC1tZCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBmZi1lbXB0eS1zdGF0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICBmZi1lbXB0eS1zdGF0ZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IHZhcigtLXNwLTcpIHZhcigtLXNwLTQpO1xyXG4gIH1cclxuXHJcbiAgZmYtZW1wdHktc3RhdGUgLmVzLWhlYWRsaW5lIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC0yeGwpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTIpO1xyXG4gIH1cclxuXHJcbiAgZmYtZW1wdHktc3RhdGUgLmVzLXN1YiB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LW1kKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICAgIG1heC13aWR0aDogMzZjaDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIFNrZWxldG9uIGxvYWRlcnMgKFVLIMKnOC4yMSDigJQgbmV2ZXIgc2hvdyBzcGlubmVycykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbiAgLnNrZWxldG9uIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgOTBkZWcsXHJcbiAgICAgIHZhcigtLWMtc3VyZmFjZSkgMjUlLFxyXG4gICAgICB2YXIoLS1jLXN1cmZhY2UtMikgNTAlLFxyXG4gICAgICB2YXIoLS1jLXN1cmZhY2UpIDc1JVxyXG4gICAgKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yKTtcclxuICAgIC8qIDEuNnMgY3ljbGUgcGVyIGRlZXAtZGl2ZSDigJQgc2xvdy1hbmQtc3RlYWR5IHJlYWRzIGFzIHNob3J0ZXIgdGhhblxyXG4gICAgICAgZmFzdC1hbmQtcmFwaWQgKFZpZ2V0IFVYIHRlc3Rpbmc6IDY4JSBvZiB1c2VycyBwZXJjZWl2ZSAxLjUtMnNcclxuICAgICAgIHdhdmVzIGFzIHNob3J0ZXIgdGhhbiA4MDBtcyB3YXZlcykuICovXHJcbiAgICBhbmltYXRpb246IHNrZWxldG9uU2hpbW1lciAxLjZzIHZhcigtLW0tc25hcHB5KSBpbmZpbml0ZTtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc2tlbGV0b25TaGltbWVyIHtcclxuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwOyB9XHJcbiAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxyXG4gIH1cclxuXHJcbiAgLyogU2hhcGUtYXdhcmUgc2tlbGV0b24gc2lsaG91ZXR0ZXMg4oCUIG1hdGNoIHRoZSByZWFsIGNvbXBvbmVudHMnXHJcbiAgICAgZGltZW5zaW9ucyBzbyB0aGUgc2tlbGV0b27ihpJjb250ZW50IGNyb3NzZmFkZSBkb2Vzbid0IGxheW91dC1zaGlmdC4gKi9cclxuICAuc2stYmxvY2sgeyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuICAuc2staGVybyB7XHJcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHggMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICB9XHJcbiAgLnNrLWhlcm8tc3RyaXAge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogOHB4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XHJcbiAgfVxyXG4gIC5zay1oZXJvLWJvZHkge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG8gMWZyO1xyXG4gICAgZ2FwOiAxNHB4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcclxuICB9XHJcbiAgLnNrLWhlcm8tdGVhbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuc2stcm93cyB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ2FwOiA4cHg7XHJcbiAgfVxyXG4gIC5zay1yb3cge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzZweCAxZnIgYXV0bztcclxuICAgIGdhcDogMTJweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMTggMC4wMjAgMjcwKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgfVxyXG4gIC5zay1yb3ctYm9keSB7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgfVxyXG5cclxuICAuc2stZml4dHVyZXMge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogMTBweDtcclxuICB9XHJcbiAgLnNrLWZpeHR1cmUge1xyXG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMTggMC4wMjAgMjcwKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWMtbGluZS0yKTtcclxuICB9XHJcbiAgLnNrLWZpeHR1cmUtdGVhbXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBnYXA6IDEycHg7XHJcbiAgfVxyXG5cclxuICAuc2stZWRpdG9yIHtcclxuICAgIHBhZGRpbmc6IDIwcHggMjJweCAyMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIH1cclxuXHJcbiAgLnNrLWNoaXBzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDhweDtcclxuICB9XHJcblxyXG4gIC8qIENyb3NzZmFkZSBiZXR3ZWVuIHNrZWxldG9uIGFuZCByZWFsIGNvbnRlbnQgKGxpYi9za2VsZXRvbi5qc1xyXG4gICAgIGNyb3NzZmFkZUludG9Ib3N0KS4gQm90aCBsYXllcnMgc3RhY2sgYWJzb2x1dGVseSBpbnNpZGUgdGhlIGhvc3RcclxuICAgICBzbyB0aGUgc3dhcCBkb2Vzbid0IGxheW91dC1zaGlmdDsgb3BhY2l0eSBkb2VzIHRoZSB3b3JrLiAqL1xyXG4gIC5zay1mYWRlLW91dCB7XHJcbiAgICBhbmltYXRpb246IHNrRmFkZU91dCAxODBtcyB2YXIoLS1tLXNuYXBweSkgZm9yd2FyZHM7XHJcbiAgICAvKiBIb2xkcyB0aGUgc2tlbGV0b24gb24gdG9wIHdoaWxlIHRoZSBjb250ZW50IGZhZGVzIGluIGJlbG93IGl0ICovXHJcbiAgfVxyXG4gIC5zay1mYWRlLWluIHtcclxuICAgIGFuaW1hdGlvbjogc2tGYWRlSW4gMjQwbXMgdmFyKC0tbS1zbmFwcHkpIDYwbXMgZm9yd2FyZHM7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBza0ZhZGVPdXQge1xyXG4gICAgZnJvbSB7IG9wYWNpdHk6IDE7IH1cclxuICAgIHRvICAgeyBvcGFjaXR5OiAwOyB9XHJcbiAgfVxyXG4gIEBrZXlmcmFtZXMgc2tGYWRlSW4ge1xyXG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOyB9XHJcbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gICAgLnNrZWxldG9uIHsgYW5pbWF0aW9uOiBub25lOyBvcGFjaXR5OiAwLjc7IH1cclxuICAgIC5zay1mYWRlLW91dCwgLnNrLWZhZGUtaW4geyBhbmltYXRpb246IG5vbmU7IG9wYWNpdHk6IDE7IH1cclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBmZi1jbHViLXNoZWV0IChmcm9zdGVkLWdsYXNzIG1hcmtlci10YXAgc2hlZXQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC8qIEdsYXNzIHRva2VucyBsaXZlIGluIHRva2Vucy5jc3MgKC0tZ2xhc3MtYmcgLyAtLWdsYXNzLWJsdXIgLyAtLWdsYXNzLWJvcmRlcikuXHJcbiAgICAgU29saWQtZmlsbCBmYWxsYmFjayBmb3IgV2ViVmlld3Mgd2l0aG91dCBiYWNrZHJvcC1maWx0ZXIgc3VwcG9ydC4gKi9cclxuXHJcbiAgLmNsdWItc2hlZXQtYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuNDUpO1xyXG4gICAgei1pbmRleDogY2FsYyh2YXIoLS16LW1vZGFsKSAtIDEpO1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gdmFyKC0tbS1iYXNlKSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG5cclxuICBAc3VwcG9ydHMgKGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KSkge1xyXG4gICAgLmNsdWItc2hlZXQtYmFja2Ryb3Age1xyXG4gICAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuMzApO1xyXG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xyXG4gICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jbHViLXNoZWV0IHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHotaW5kZXg6IHZhcigtLXotbW9kYWwpO1xyXG4gICAgLyogQXBwbGUncyBjYW5vbmljYWwgcGF0dGVybjogc2hlZXQgaXMgYWx3YXlzIG1heC1kZXRlbnQgdGFsbDtcclxuICAgICAgIGxpYi9zaGVldC1nZXN0dXJlcy5qcyBwb3NpdGlvbnMgaXQgdmlhIHRyYW5zbGF0ZVkoKS4gdHJhbnNmb3JtXHJcbiAgICAgICB1cGRhdGVzIGFyZSBjb21wb3NpdG9yLW9ubHkg4oCUIG5vIGxheW91dCByZWNhbGMgcGVyIGZyYW1lLiAqL1xyXG4gICAgaGVpZ2h0OiA5NXZoO1xyXG4gICAgcGFkZGluZzogMCAwIHZhcigtLXNhLWJvdHRvbSk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLXItNSk7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tci01KTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy00KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmcpO1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBjb250YWluOiBsYXlvdXQ7XHJcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG4gICAgLyogVGhlIHNoZWV0IGVudGVycyB2aWEgc2hlZXRVcCBrZXlmcmFtZSAoc2V0cyBpbml0aWFsIHRyYW5zbGF0ZVlcclxuICAgICAgIDEwMCUg4oaSIDApLiBBZnRlciBlbnRlciwgZ2VzdHVyZSBsaWIgdGFrZXMgb3ZlciB0cmFuc2Zvcm0uICovXHJcbiAgICBhbmltYXRpb246IHNoZWV0VXAgdmFyKC0tbS1zbG93KSB2YXIoLS1tLXNwcmluZyk7XHJcbiAgfVxyXG5cclxuICAuY2x1Yi1zaGVldFtkYXRhLWRldGVudD1cImxhcmdlXCJdIHtcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcclxuICAgIC8qIEhpZGUgdGhlIGdyYWJiZXIgd2hlbiB0aGUgc2hlZXQgaXMgYXQgbGFyZ2UgZGV0ZW50IOKAlCBBcHBsZSdzXHJcbiAgICAgICBiZWhhdmlvcjsgdGhlIHVzZXIgaGFzIG5vd2hlcmUgZnVydGhlciB0byBkcmFnIHVwLiAqL1xyXG4gIH1cclxuICAuY2x1Yi1zaGVldFtkYXRhLWRldGVudD1cImxhcmdlXCJdIC5jbHViLXNoZWV0LWdyYWJiZXIge1xyXG4gICAgb3BhY2l0eTogMC40O1xyXG4gIH1cclxuXHJcbiAgLmNsdWItc2hlZXQtYm9keSB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLXNwLTQpIHZhcigtLXNwLTUpO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogdmFyKC0tc3AtMyk7XHJcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbiAgfVxyXG5cclxuICBAc3VwcG9ydHMgKGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpKSB7XHJcbiAgICAuY2x1Yi1zaGVldCB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdsYXNzLWJnKTtcclxuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHZhcigtLWdsYXNzLWJsdXIpO1xyXG4gICAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLWdsYXNzLWJsdXIpO1xyXG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZ2xhc3MtYm9yZGVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIERyYWctaGFuZGxlIOKAlCB2aXN1YWwgY3VlICsgZnVuY3Rpb25hbCBkcmFnIHRhcmdldCAoNDRwdCBpT1NcclxuICAgICBtaW5pbXVtIHRhcHBhYmxlIGFyZWEgYWNoaWV2ZWQgdmlhIHBhZGRpbmcgYXJvdW5kIHRoZSBwaWxsKS5cclxuICAgICBEZXRlbnQgc25hcHBpbmcgKyBkaXNtaXNzLW9uLWRyYWcgd2lyZWQgdmlhIGxpYi9zaGVldC1nZXN0dXJlcy5qcyAqL1xyXG4gIC5jbHViLXNoZWV0LWdyYWJiZXItd3JhcCB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDAgNnB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBncmFiO1xyXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xyXG4gIH1cclxuICAuY2x1Yi1zaGVldC1ncmFiYmVyLXdyYXA6YWN0aXZlIHtcclxuICAgIGN1cnNvcjogZ3JhYmJpbmc7XHJcbiAgfVxyXG4gIC5jbHViLXNoZWV0LWdyYWJiZXIge1xyXG4gICAgd2lkdGg6IDQ0cHg7XHJcbiAgICBoZWlnaHQ6IDVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWxpbmUtMik7XHJcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KSxcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG4gIC5jbHViLXNoZWV0LWdyYWJiZXItd3JhcDphY3RpdmUgLmNsdWItc2hlZXQtZ3JhYmJlciB7XHJcbiAgICB3aWR0aDogNjBweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgfVxyXG5cclxuICAuY2x1Yi1zaGVldC1jbG9zZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IHZhcigtLXNwLTMpO1xyXG4gICAgcmlnaHQ6IHZhcigtLXNwLTMpO1xyXG4gICAgd2lkdGg6IDMycHg7XHJcbiAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjI1IDAuMDIwIDI3MCAvIDAuNyk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgb2tsY2goMC40MCAwLjAyMCAyNzAgLyAwLjQpO1xyXG4gIH1cclxuXHJcbiAgLmNsdWItc2hlZXQtY2xvc2U6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4zMCAwLjAyMCAyNzAgLyAwLjgpO1xyXG4gIH1cclxuXHJcbiAgLyogSGVybyBzdHJpcCDigJQgdXNlcyB0aGUgLmNsdWItbWVzaCArIC5jbHViLXRoZW1lZCBwYXR0ZXJucyBmcm9tXHJcbiAgICAgcGF0dGVybnMuY3NzIGZvciBhIG11bHRpLXJhZGlhbCBibGVlZCBpbiB0aGUgY2x1YidzIGNvbG9yIHBhbGV0dGUuXHJcbiAgICAgTm8gYmVzcG9rZSA6OmJlZm9yZSBoYWxvIG5lZWRlZCDigJQgcGF0dGVybnMgb3duIHRoZSByZW5kZXJpbmcuICovXHJcbiAgLmNsdWItc2hlZXQtaGVybyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1zcC00KSB2YXIoLS1zcC00KSB2YXIoLS1zcC01KTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBpc29sYXRpb246IGlzb2xhdGU7XHJcbiAgfVxyXG5cclxuICAuY2x1Yi1zaGVldC1oZXJvLXJvdyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcclxuICAgIGdhcDogdmFyKC0tc3AtNCk7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLyogQ3Jlc3QgZGlzYyBzaXppbmcg4oCUIHRoZSBncmFkaWVudCArIGdsb3cgY29tZXMgZnJvbSAuY2x1Yi1jcmVzdC1kaXNjXHJcbiAgICAgcGF0dGVybiAocGF0dGVybnMuY3NzKS4gQ29tcG9uZW50cyBvd24gdGhlIHNpemluZyBvbmx5LiAqL1xyXG4gIC5jbHViLXNoZWV0LWNyZXN0IHtcclxuICAgIHdpZHRoOiA4NHB4O1xyXG4gICAgaGVpZ2h0OiA4NHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jaXJjbGUpO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1kaXNwbGF5KTtcclxuICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgfVxyXG5cclxuICAuY2x1Yi1zaGVldC1uYW1lIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LTJ4bCk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgICBsaW5lLWhlaWdodDogMS4wNTtcclxuICB9XHJcblxyXG4gIC5jbHViLXNoZWV0LWxvYyB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC14cyk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxuICB9XHJcblxyXG4gIC8qIEJvZHkgY2FyZHMg4oCUIHRyYW5zbHVjZW50IHN1cmZhY2Ugc28gdGhlIGJhY2tkcm9wIGJsdXIgc3RpbGxcclxuICAgICBnbGltbWVycyB0aHJvdWdoLiBTYW1lIGJvcmRlci1sZWZ0IGFjY2VudCBwYXR0ZXJuIFVLIHVzZXMuICovXHJcbiAgLmNsdWItc2hlZXQtYm9keSB7XHJcbiAgICBwYWRkaW5nOiAwIHZhcigtLXNwLTQpIHZhcigtLXNwLTUpO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogdmFyKC0tc3AtMyk7XHJcbiAgfVxyXG5cclxuICAuY2x1Yi1zaGVldC1jYXJkIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgOTBkZWcsXHJcbiAgICAgIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY2x1Yi1hY2NlbnQsIHZhcigtLWMtYm9sdCkpIDE0JSwgb2tsY2goMC4yMCAwLjAyMiAyNzAgLyAwLjU1KSkgMCUsXHJcbiAgICAgIG9rbGNoKDAuMjAgMC4wMjIgMjcwIC8gMC41NSkgMzAlXHJcbiAgICApO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgb2tsY2goMC4zMCAwLjAyMCAyNzAgLyAwLjQpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpO1xyXG4gICAgcGFkZGluZzogdmFyKC0tc3AtNCk7XHJcbiAgfVxyXG5cclxuICAuY2x1Yi1zaGVldC1jYXJkLS12aXNpdCB7XHJcbiAgICAvKiBMaW1lIHRpbnQgd2hlbiB1c2VyIGhhcyBzdGFtcGVkOyBkYXNoZWQgbmV1dHJhbCBvdGhlcndpc2UgKi9cclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jLWxpbWUpO1xyXG4gIH1cclxuXHJcbiAgLmNsdWItc2hlZXQtY2FyZC0tdmlzaXQuZW1wdHkge1xyXG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IGRhc2hlZDtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jLWxpbmUpO1xyXG4gIH1cclxuXHJcbiAgLmNsdWItc2hlZXQtZXllYnJvdyB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tdC14cyk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC0xKTtcclxuICB9XHJcblxyXG4gIC5jbHViLXNoZWV0LXZhbHVlIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LW1kKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICB9XHJcblxyXG4gIC5jbHViLXNoZWV0LW1ldGEge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogdmFyKC0tc3AtNCk7XHJcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcC0yKTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LXhzKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICB9XHJcblxyXG4gIC5jbHViLXNoZWV0LXZpc2l0cy1udW0ge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LTN4bCk7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICB9XHJcblxyXG4gIC5jbHViLXNoZWV0LXZpc2l0cy1udW0uaGFzLXZpc2l0cyB7IGNvbG9yOiB2YXIoLS1jLWxpbWUpOyB9XHJcbiAgLmNsdWItc2hlZXQtdmlzaXRzLW51bS5uby12aXNpdHMgIHsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTsgfVxyXG5cclxuICAuY2x1Yi1zaGVldC12aXNpdHMtbGluZSB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS10LXNtKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwLTIpO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAgIC5jbHViLXNoZWV0IHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgICAuY2x1Yi1zaGVldC1iYWNrZHJvcCB7IGFuaW1hdGlvbjogbm9uZTsgfVxyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIFB1bGwtdG8tcmVmcmVzaCByaWJib24gKGxpYi9wdWxsLXRvLXJlZnJlc2guanMpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC8qIEEgM3B4IGJvbHQteWVsbG93IGJhciBwaW5uZWQgdG8gdGhlIHZlcnkgdG9wIGVkZ2UuIFNjYWxlcyBmcm9tXHJcbiAgICAgc2NhbGVYKDApIOKGkiBzY2FsZVgoMSkgYXMgdGhlIHVzZXIgcHVsbHMuIC5yZWFkeSBzaWduYWxzIFwicmVsZWFzZVxyXG4gICAgIHRvIHJlZnJlc2hcIjsgLnJlZnJlc2hpbmcgaXMgdGhlIGluLWZsaWdodCBzaGltbWVyOyAuc2V0dGxlIGZhZGVzXHJcbiAgICAgb3V0IGF0IHRoZSBlbmQuICovXHJcblxyXG4gIC5wdHItcmliYm9uIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogdmFyKC0tc2EtdG9wLCAwKTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGhlaWdodDogM3B4O1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib2x0KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjBtcyB2YXIoLS1tLXNuYXBweSk7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16LW92ZXJsYXkpO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xyXG4gIH1cclxuXHJcbiAgLnB0ci1yaWJib24ucmVhZHkge1xyXG4gICAgYm94LXNoYWRvdzpcclxuICAgICAgMCAwIDAgMXB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuNCksXHJcbiAgICAgIDAgMCAxOHB4IHZhcigtLWMtYm9sdCk7XHJcbiAgfVxyXG5cclxuICAucHRyLXJpYmJvbi5yZWZyZXNoaW5nIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgICA5MGRlZyxcclxuICAgICAgdmFyKC0tYy1ib2x0LWRlZXApIDAlLFxyXG4gICAgICB2YXIoLS1jLWJvbHQpIDUwJSxcclxuICAgICAgdmFyKC0tYy1ib2x0LWRlZXApIDEwMCVcclxuICAgICk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIyMCUgMTAwJTtcclxuICAgIGFuaW1hdGlvbjogcHRyU2hpbW1lciAxLjJzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuNjUpO1xyXG4gIH1cclxuXHJcbiAgLnB0ci1yaWJib24uc2V0dGxlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tbS1iYXNlKSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIHB0clNoaW1tZXIge1xyXG4gICAgZnJvbSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIyMCUgMDsgfVxyXG4gICAgdG8gICB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjAlIDA7IH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcbiAgICAucHRyLXJpYmJvbiB7IHRyYW5zaXRpb246IG5vbmU7IH1cclxuICAgIC5wdHItcmliYm9uLnJlZnJlc2hpbmcgeyBhbmltYXRpb246IG5vbmU7IH1cclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBMb25nLXByZXNzIGFybWluZyBwdWxzZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAvKiBQcmUtdHJpZ2dlciBcInBvcFwiIGhpbnQg4oCUIHN1YnRsZSBzY2FsZS1kb3duICsgZmFpbnQgYnJpZ2h0bmVzcyBsaWZ0XHJcbiAgICAgc28gdGhlIHVzZXIga25vd3MgYSBjb250ZXh0IG1lbnUgaXMgY29taW5nLiBBbmltYXRpb24gZHVyYXRpb25cclxuICAgICBtYXRjaGVzIHRoZSBob2xkIHRpbWVyICgzMDBtcyBhZnRlciB0aGUgZGVlcC1kaXZlIHJlZmluZW1lbnQpLiAqL1xyXG4gIC5scC1hcm1pbmcge1xyXG4gICAgYW5pbWF0aW9uOiBscEFybSAzMDBtcyB2YXIoLS1tLXNuYXBweSkgZm9yd2FyZHM7XHJcbiAgICAvKiBTdXBwcmVzcyBpT1MgbmF0aXZlIHNlbGVjdGlvbiArIGNhbGxvdXQgVUkgZHVyaW5nIHRoZSBwcmVzcyBob2xkXHJcbiAgICAgICBzbyB0aGV5IGRvbid0IGNvbXBldGUgd2l0aCBvdXIgY3VzdG9tIGxvbmctcHJlc3MuICovXHJcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgbHBBcm0ge1xyXG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7IH1cclxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOyBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSk7IH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcbiAgICAubHAtYXJtaW5nIHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgZmYtY29udGV4dC1tZW51IChpT1Mtc3R5bGUgbG9uZy1wcmVzcyBtZW51KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAuY3R4LW1lbnUtYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuMzUpO1xyXG4gICAgei1pbmRleDogY2FsYyh2YXIoLS16LW1vZGFsKSArIDUpO1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMTUwbXMgdmFyKC0tbS1zbmFwcHkpO1xyXG4gICAgLyogSHlicmlkIGJsdXI6IGxvYWQgV0lUSE9VVCBiYWNrZHJvcC1maWx0ZXIgKGNoZWFwIGZpcnN0IHBhaW50KSxcclxuICAgICAgIEpTIGFkZHMgLnNldHRsZWQgMjIwbXMgYWZ0ZXIgb3BlbiB0byBhZGQgdGhlIGJsdXIuIFByZXZlbnRzIGphbmtcclxuICAgICAgIG9uIHdlYWtlciBXS1dlYlZpZXcgYnVpbGRzLiAqL1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2Ryb3AtZmlsdGVyIDIwMG1zIHZhcigtLW0tc25hcHB5KSxcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIDIwMG1zIHZhcigtLW0tc25hcHB5KTtcclxuICB9XHJcbiAgQHN1cHBvcnRzIChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KSkge1xyXG4gICAgLmN0eC1tZW51LWJhY2tkcm9wLnNldHRsZWQge1xyXG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcclxuICAgICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY3R4LW1lbnUge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogY2FsYyh2YXIoLS16LW1vZGFsKSArIDYpO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lLTIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcclxuICAgIHBhZGRpbmc6IDZweDtcclxuICAgIGJveC1zaGFkb3c6XHJcbiAgICAgIDAgMTJweCAzNnB4IG9rbGNoKDAgMCAwIC8gMC41KSxcclxuICAgICAgMCAwIDAgMXB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMTUpLFxyXG4gICAgICBpbnNldCAwIDFweCAwIG9rbGNoKDEgMCAwIC8gMC4wNSk7XHJcbiAgICBhbmltYXRpb246IGN0eE1lbnVJbiAyMjBtcyBjdWJpYy1iZXppZXIoMC4zMiwgMC43MiwgMCwgMSk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgQHN1cHBvcnRzIChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyNHB4KSkge1xyXG4gICAgLmN0eC1tZW51IHtcclxuICAgICAgYmFja2dyb3VuZDogb2tsY2goMC4yMCAwLjAyMiAyNzAgLyAwLjg1KTtcclxuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMS41KTtcclxuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI0cHgpIHNhdHVyYXRlKDEuNSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIGN0eE1lbnVJbiB7XHJcbiAgICAwJSAgIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTsgfVxyXG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cclxuICB9XHJcblxyXG4gIC5jdHgtbWVudS1pdGVtIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xyXG4gICAgcGFkZGluZzogMCAxNHB4O1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC1zaXplOiAxNC41cHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KTtcclxuICB9XHJcblxyXG4gIC5jdHgtbWVudS1pdGVtICsgLmN0eC1tZW51LWl0ZW0ge1xyXG4gICAgbWFyZ2luLXRvcDogMnB4O1xyXG4gIH1cclxuXHJcbiAgLmN0eC1tZW51LWl0ZW06aG92ZXIsXHJcbiAgLmN0eC1tZW51LWl0ZW06Zm9jdXMtdmlzaWJsZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjMwIDAuMDI0IDI3MCAvIDAuNSk7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG4gIH1cclxuXHJcbiAgLmN0eC1tZW51LWl0ZW06YWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMTUpO1xyXG4gIH1cclxuXHJcbiAgLmN0eC1tZW51LWl0ZW0tLWRhbmdlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1jcmltc29uKTtcclxuICB9XHJcblxyXG4gIC5jdHgtbWVudS1pdGVtLWljb24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDE4cHg7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICBvcGFjaXR5OiAwLjc7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIC8qIEljb24tYnktZGF0YS1hdHRyaWJ1dGUgc28gdGhlIG1lbnUgc3RheXMgbWFya3VwLWNsZWFuLiBXZSB1c2VcclxuICAgICAgIGEgc2ltcGxlIFNWRyBtYXNrIHRyaWNrIOKAlCBlYWNoIGljb24gbmFtZSBtYXBzIHRvIGEgYmFja2dyb3VuZC4gKi9cclxuICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcclxuICAgIC13ZWJraXQtbWFzay1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XHJcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xyXG4gIH1cclxuICAuY3R4LW1lbnUtaXRlbS1pY29uW2RhdGEtaWNvbj1cIm9wZW5cIl0ge1xyXG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI1NiAyNTYnIGZpbGw9JyUyMzAwMCc+PHBhdGggZD0nTTIxMy43LDgyLjNsLTU2LTU2QTgsOCwwLDAsMCwxNTIsMjRINTZBMTYsMTYsMCwwLDAsNDAsNDBWMjE2YTE2LDE2LDAsMCwwLDE2LDE2SDIwMGExNiwxNiwwLDAsMCwxNi0xNlY4OEE4LDgsMCwwLDAsMjEzLjcsODIuM1pNMTYwLDUxLjMsMTg4LjcsODBIMTYwWk0yMDAsMjE2SDU2VjQwaDg4Vjg4YTgsOCwwLDAsMCw4LDhoNDhaJy8+PC9zdmc+XCIpO1xyXG4gICAgICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI1NiAyNTYnIGZpbGw9JyUyMzAwMCc+PHBhdGggZD0nTTIxMy43LDgyLjNsLTU2LTU2QTgsOCwwLDAsMCwxNTIsMjRINTZBMTYsMTYsMCwwLDAsNDAsNDBWMjE2YTE2LDE2LDAsMCwwLDE2LDE2SDIwMGExNiwxNiwwLDAsMCwxNi0xNlY4OEE4LDgsMCwwLDAsMjEzLjcsODIuM1pNMTYwLDUxLjMsMTg4LjcsODBIMTYwWk0yMDAsMjE2SDU2VjQwaDg4Vjg4YTgsOCwwLDAsMCw4LDhoNDhaJy8+PC9zdmc+XCIpO1xyXG4gIH1cclxuICAuY3R4LW1lbnUtaXRlbS1pY29uW2RhdGEtaWNvbj1cImZhdm91cml0ZVwiXSB7XHJcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJTIzMDAwJz48cGF0aCBkPSdNMjM5LjE4LDk3LjI2QTE2LjM4LDE2LjM4LDAsMCwwLDIyNC45Miw4NmwtNTktNC43NkwxNDMuMTQsMjYuMTVhMTYuMzYsMTYuMzYsMCwwLDAtMzAuMjcsMEw5MC4xMSw4MS4yMywzMS4wOCw4NkExNi40NiwxNi40NiwwLDAsMCwyMS43MiwxMTQuODFMNjYuNjksMTUzLDUzLjE4LDIxMC45YTE2LjQsMTYuNCwwLDAsMCwyNC42LDE3LjhsNTAuMjEtMzEsNTAuMjEsMzFhMTYuNCwxNi40LDAsMCwwLDI0LjYtMTcuOEwxODkuMzQsMTUzbDQ0LjkyLTM4LjE5QTE2LjM2LDE2LjM2LDAsMCwwLDIzOS4xOCw5Ny4yNlpNMTc5LjQsMTQyLjg1YTgsOCwwLDAsMC0yLjYxLDhMMTkxLDIxMi4zOWgwTDEyOCwxNzMuNDNhOCw4LDAsMCwwLTguNCwwTDU2LjY2LDIxMi4zOWwxNC4yMS02MS41OWE4LDgsMCwwLDAtMi42MS04TDIwLjkzLDEwMi42MWw2Mi4zNi01YTgsOCwwLDAsMCw2Ljg2LTQuOTJsMjQtNThoMGwyNCw1OGE4LDgsMCwwLDAsNi44Niw0LjkybDYyLjM2LDVaJy8+PC9zdmc+XCIpO1xyXG4gICAgICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI1NiAyNTYnIGZpbGw9JyUyMzAwMCc+PHBhdGggZD0nTTIzOS4xOCw5Ny4yNkExNi4zOCwxNi4zOCwwLDAsMCwyMjQuOTIsODZsLTU5LTQuNzZMMTQzLjE0LDI2LjE1YTE2LjM2LDE2LjM2LDAsMCwwLTMwLjI3LDBMOTAuMTEsODEuMjMsMzEuMDgsODZBMTYuNDYsMTYuNDYsMCwwLDAsMjEuNzIsMTE0LjgxTDY2LjY5LDE1Myw1My4xOCwyMTAuOWExNi40LDE2LjQsMCwwLDAsMjQuNiwxNy44bDUwLjIxLTMxLDUwLjIxLDMxYTE2LjQsMTYuNCwwLDAsMCwyNC42LTE3LjhMMTg5LjM0LDE1M2w0NC45Mi0zOC4xOUExNi4zNiwxNi4zNiwwLDAsMCwyMzkuMTgsOTcuMjZaTTE3OS40LDE0Mi44NWE4LDgsMCwwLDAtMi42MSw4TDE5MSwyMTIuMzloMEwxMjgsMTczLjQzYTgsOCwwLDAsMC04LjQsMEw1Ni42NiwyMTIuMzlsMTQuMjEtNjEuNTlhOCw4LDAsMCwwLTIuNjEtOEwyMC45MywxMDIuNjFsNjIuMzYtNWE4LDgsMCwwLDAsNi44Ni00LjkybDI0LTU4aDBsMjQsNThhOCw4LDAsMCwwLDYuODYsNC45Mmw2Mi4zNiw1WicvPjwvc3ZnPlwiKTtcclxuICB9XHJcbiAgLmN0eC1tZW51LWl0ZW0taWNvbltkYXRhLWljb249XCJ3aXNobGlzdFwiXSB7XHJcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJTIzMDAwJz48cGF0aCBkPSdNMTg0LDMySDcyQTE2LDE2LDAsMCwwLDU2LDQ4VjIyNGE4LDgsMCwwLDAsMTIuMjQsNi43OEwxMjgsMTkzLjQzbDU5Ljc3LDM3LjM1QTgsOCwwLDAsMCwyMDAsMjI0VjQ4QTE2LDE2LDAsMCwwLDE4NCwzMlptMCwxNzcuNTctNTEuNzctMzIuMzVhOCw4LDAsMCwwLTguNDgsMEw3MiwyMDkuNTdWNDhIMTg0WicvPjwvc3ZnPlwiKTtcclxuICAgICAgICAgICAgbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNTYgMjU2JyBmaWxsPSclMjMwMDAnPjxwYXRoIGQ9J00xODQsMzJINzJBMTYsMTYsMCwwLDAsNTYsNDhWMjI0YTgsOCwwLDAsMCwxMi4yNCw2Ljc4TDEyOCwxOTMuNDNsNTkuNzcsMzcuMzVBOCw4LDAsMCwwLDIwMCwyMjRWNDhBMTYsMTYsMCwwLDAsMTg0LDMyWm0wLDE3Ny41Ny01MS43Ny0zMi4zNWE4LDgsMCwwLDAtOC40OCwwTDcyLDIwOS41N1Y0OEgxODRaJy8+PC9zdmc+XCIpO1xyXG4gIH1cclxuICAuY3R4LW1lbnUtaXRlbS1pY29uW2RhdGEtaWNvbj1cIm1hcFwiXSB7XHJcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJTIzMDAwJz48cGF0aCBkPSdNMjI4LjkyLDQ5LjY5YTgsOCwwLDAsMC02Ljg2LTEuNDVMMTYwLjkzLDYzLjUyLDk5LjU4LDMyLjg0YTgsOCwwLDAsMC01LjUyLS42bC02NCwxNkE4LDgsMCwwLDAsMjQsNTZWMjAwYTgsOCwwLDAsMCw5Ljk0LDcuNzZsNjEuMTMtMTUuMjgsNjEuMzUsMzAuNjhBOC4xNSw4LjE1LDAsMCwwLDE2MCwyMjRhOCw4LDAsMCwwLDEuOTQtLjI0bDY0LTE2QTgsOCwwLDAsMCwyMzIsMjAwVjU2QTgsOCwwLDAsMCwyMjguOTIsNDkuNjlaTTEwNCw1Mi45NGw0OCwyNFYyMDMuMDZsLTQ4LTI0Wk00MCw2Mi4yNWw0OC0xMnYxMjcuNWwtNDgsMTJabTE3NiwxMzEuNS00OCwxMlY3OC4yNWw0OC0xMlonLz48L3N2Zz5cIik7XHJcbiAgICAgICAgICAgIG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJTIzMDAwJz48cGF0aCBkPSdNMjI4LjkyLDQ5LjY5YTgsOCwwLDAsMC02Ljg2LTEuNDVMMTYwLjkzLDYzLjUyLDk5LjU4LDMyLjg0YTgsOCwwLDAsMC01LjUyLS42bC02NCwxNkE4LDgsMCwwLDAsMjQsNTZWMjAwYTgsOCwwLDAsMCw5Ljk0LDcuNzZsNjEuMTMtMTUuMjgsNjEuMzUsMzAuNjhBOC4xNSw4LjE1LDAsMCwwLDE2MCwyMjRhOCw4LDAsMCwwLDEuOTQtLjI0bDY0LTE2QTgsOCwwLDAsMCwyMzIsMjAwVjU2QTgsOCwwLDAsMCwyMjguOTIsNDkuNjlaTTEwNCw1Mi45NGw0OCwyNFYyMDMuMDZsLTQ4LTI0Wk00MCw2Mi4yNWw0OC0xMnYxMjcuNWwtNDgsMTJabTE3NiwxMzEuNS00OCwxMlY3OC4yNWw0OC0xMlonLz48L3N2Zz5cIik7XHJcbiAgfVxyXG4gIC5jdHgtbWVudS1pdGVtLWljb25bZGF0YS1pY29uPVwic2hhcmVcIl0ge1xyXG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI1NiAyNTYnIGZpbGw9JyUyMzAwMCc+PHBhdGggZD0nTTIyOS42Niw3Ny42NmwtMzIsMzJhOCw4LDAsMCwxLTExLjMyLTExLjMyTDIwNC42OSw4MEgxMzZhNzIsNzIsMCwwLDAsMCwxNDRoNDBhOCw4LDAsMCwxLDAsMTZIMTM2YTg4LDg4LDAsMCwxLDAtMTc2aDY4LjY5TDE4Ni4zNCw0NS42NmE4LDgsMCwwLDEsMTEuMzItMTEuMzJsMzIsMzJBOCw4LDAsMCwxLDIyOS42Niw3Ny42NlonLz48L3N2Zz5cIik7XHJcbiAgICAgICAgICAgIG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJTIzMDAwJz48cGF0aCBkPSdNMjI5LjY2LDc3LjY2bC0zMiwzMmE4LDgsMCwwLDEtMTEuMzItMTEuMzJMMjA0LjY5LDgwSDEzNmE3Miw3MiwwLDAsMCwwLDE0NGg0MGE4LDgsMCwwLDEsMCwxNkgxMzZhODgsODgsMCwwLDEtMTc2SDEzNmE4OCw4OCwwLDAsMSwwLTE3Nmg2OC42OUwxODYuMzQsNDUuNjZhOCw4LDAsMCwxLDExLjMyLTExLjMybDMyLDMyQTgsOCwwLDAsMSwyMjkuNjYsNzcuNjZaJy8+PC9zdmc+XCIpO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAgIC5jdHgtbWVudSB7IGFuaW1hdGlvbjogbm9uZTsgfVxyXG4gICAgLmN0eC1tZW51LWJhY2tkcm9wIHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgfVxyXG5cclxuICAvKiDilIDilIAgU2VhcmNoIG92ZXJsYXkg4oaSIEFzayBlc2NhbGF0aW9uIENUQSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAuc2VhcmNoLWFzay1jdGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwLTQpO1xyXG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgICA5MGRlZyxcclxuICAgICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jLWJvbHQpIDE0JSwgdmFyKC0tYy1zdXJmYWNlKSkgMCUsXHJcbiAgICAgIHZhcigtLWMtc3VyZmFjZSkgMTAwJVxyXG4gICAgKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KTtcclxuICB9XHJcbiAgLnNlYXJjaC1hc2stY3RhOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgOTBkZWcsXHJcbiAgICAgIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1ib2x0KSAyMiUsIHZhcigtLWMtc3VyZmFjZSkpIDAlLFxyXG4gICAgICB2YXIoLS1jLXN1cmZhY2UtMikgMTAwJVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBmZi1hc2stb3ZlcmxheSAoY29udmVyc2F0aW9uYWwgYWxtYW5hYyBzZWFyY2gpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4gIC5hc2stYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuNTUpO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1vdmVybGF5KTtcclxuICAgIGFuaW1hdGlvbjogZmFkZUluIHZhcigtLW0tYmFzZSkgdmFyKC0tbS1zbmFwcHkpO1xyXG4gIH1cclxuICBAc3VwcG9ydHMgKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpKSB7XHJcbiAgICAuYXNrLWJhY2tkcm9wIHtcclxuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XHJcbiAgICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuNDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFzay1zdXJmYWNlIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogY2FsYyh2YXIoLS1zYS10b3ApICsgMjBweCk7XHJcbiAgICBsZWZ0OiAxNnB4O1xyXG4gICAgcmlnaHQ6IDE2cHg7XHJcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB6LWluZGV4OiBjYWxjKHZhcigtLXotb3ZlcmxheSkgKyAxKTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUtMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gICAgcGFkZGluZzogMTZweCAxNnB4IDIwcHg7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctNCk7XHJcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjBweCAtIHZhcigtLXNhLXRvcCkpO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XHJcbiAgICBhbmltYXRpb246IGFza0luIDI4MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcclxuICB9XHJcbiAgQHN1cHBvcnRzIChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSkge1xyXG4gICAgLmFzay1zdXJmYWNlIHtcclxuICAgICAgYmFja2dyb3VuZDogb2tsY2goMC4xNyAwLjAyMiAyNzAgLyAwLjg1KTtcclxuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMS40KTtcclxuICAgICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMS40KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgYXNrSW4ge1xyXG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTJweCkgc2NhbGUoMC45OCk7IH1cclxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cclxuICB9XHJcblxyXG4gIC5hc2staGVhZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbiAgfVxyXG5cclxuICAuYXNrLXRpdGxlIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICB9XHJcblxyXG4gIC5hc2stc3BhcmtsZSB7XHJcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA0cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC41KSk7XHJcbiAgfVxyXG5cclxuICAuYXNrLWNsb3NlIHtcclxuICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICB9XHJcbiAgLmFzay1jbG9zZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS0zKTsgfVxyXG5cclxuICAuYXNrLWZvcm0ge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XHJcbiAgICBnYXA6IDhweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XHJcbiAgfVxyXG5cclxuICAuYXNrLWlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4xMyAwLjAyMCAyNzApO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC1zaXplOiAxNS41cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gIH1cclxuICAuYXNrLWlucHV0OmZvY3VzIHtcclxuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWJvbHQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG4gIC5hc2staW5wdXQ6OnBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgfVxyXG5cclxuICAuYXNrLXN1Ym1pdCB7XHJcbiAgICB3aWR0aDogNDRweDtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbiAgfVxyXG4gIC5hc2stc3VibWl0OmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XHJcbiAgLmFzay1zdWJtaXQ6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsgfVxyXG5cclxuICAuYXNrLXN1Z2dlc3Rpb25zLWV5ZWJyb3csXHJcbiAgLmFzay1saXN0LWxhYmVsLFxyXG4gIC5hc2stYW5zd2VyLWV5ZWJyb3cge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEwLjVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgfVxyXG5cclxuICAuYXNrLXN1Z2dlc3Rpb25zLXJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiA2cHg7XHJcbiAgfVxyXG5cclxuICAuYXNrLWNoaXAge1xyXG4gICAgcGFkZGluZzogOHB4IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS0yKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC1zaXplOiAxMi41cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG4gIH1cclxuICAuYXNrLWNoaXA6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTMpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gIH1cclxuXHJcbiAgLmFzay1sb2FkaW5nIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEyLjVweDtcclxuICB9XHJcblxyXG4gIC5hc2stc3Bpbm5lciB7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBhc2tTcGluIDAuOXMgbGluZWFyIGluZmluaXRlO1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzIGFza1NwaW4ge1xyXG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbiAgfVxyXG5cclxuICAuYXNrLXRleHQge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsKTtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGZvbnQtc2l6ZTogMTUuNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgLmFzay1mYWxsYmFjay1oaW50IHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1jLWxpbmUpO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEwLjVweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIH1cclxuXHJcbiAgLmFzay1hbnN3ZXIgLmFzay1saXN0LXJvd3Mge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdhcDogNnB4O1xyXG4gIH1cclxuXHJcbiAgLmFzay1yb3cge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzZweCAxZnIgYXV0bztcclxuICAgIGdhcDogMTJweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjIwIDAuMDIyIDI3MCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KSxcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KTtcclxuICB9XHJcbiAgLmFzay1yb3c6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XHJcbiAgfVxyXG5cclxuICAuYXNrLXJvdy1jcmVzdCB7XHJcbiAgICB3aWR0aDogMzZweDtcclxuICAgIGhlaWdodDogMzZweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KFxyXG4gICAgICBjaXJjbGUgYXQgMzAlIDI1JSxcclxuICAgICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgODAlLCB3aGl0ZSkgMCUsXHJcbiAgICAgIHZhcigtLWNsdWItYWNjZW50LCB2YXIoLS1jLWJvbHQpKSA3MCVcclxuICAgICk7XHJcbiAgICBjb2xvcjogb2tsY2goMC45OSAwIDAgLyAwLjk1KTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgb2tsY2goMSAwIDAgLyAwLjE1KTtcclxuICB9XHJcblxyXG4gIC5hc2stcm93LW5hbWUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IDE0LjVweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIH1cclxuICAuYXNrLXJvdy1tZXRhIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICAgIG1hcmdpbi10b3A6IDJweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgfVxyXG4gIC5hc2stcm93LW1ldGEtZW5kIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcclxuICB9XHJcblxyXG4gIC5hc2stZml4dHVyZSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4yMCAwLjAyMiAyNzApO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICB9XHJcbiAgLmFzay1maXh0dXJlLXRhZyB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogOS41cHg7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAuYXNrLWZpeHR1cmUtdGVhbXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogMTBweDtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiAxNC41cHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgfVxyXG4gIC5hc2stZml4dHVyZS12cyB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1zdGVuY2lsKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgfVxyXG4gIC5hc2stZml4dHVyZS1zY29yZSB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1zdGVuY2lsKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcbiAgLmFzay1maXh0dXJlLW1ldGEge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICB9XHJcblxyXG4gIC8qIFN0YXRzIGNhcmQgYW5zd2VyIHNoYXBlIOKAlCBzaW5nbGUgYmlnIG51bWJlciArIGNhcHRpb24gKi9cclxuICAuYXNrLXN0YXRzIHtcclxuICAgIHBhZGRpbmc6IDE4cHggMTZweCAxOHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgMTgwZGVnLFxyXG4gICAgICBva2xjaCgwLjIwIDAuMDI0IDI3MCkgMCUsXHJcbiAgICAgIG9rbGNoKDAuMTYgMC4wMjIgMjcwKSAxMDAlXHJcbiAgICApO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tYy1ib2x0KTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG4gIC5hc2stc3RhdHMtYmlnIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIGZvbnQtc2l6ZTogNTZweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAwLjk1O1xyXG4gICAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcclxuICB9XHJcbiAgLmFzay1zdGF0cy1jYXB0aW9uIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbiAgLmFzay1zdGF0cy1zdWIge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsKTtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS40NTtcclxuICB9XHJcblxyXG4gIC8qIERpc2FtYmlndWF0aW9uIGNoaXAgcm93ICovXHJcbiAgLmFzay1kaXNhbWJpZyB7XHJcbiAgICBtYXJnaW46IDhweCAwIDEycHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjEzIDAuMDIwIDI3MCAvIDAuNik7XHJcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1saW5lKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgfVxyXG4gIC5hc2stZGlzYW1iaWctbGFiZWwge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEwLjVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgfVxyXG4gIC5hc2stZGlzYW1iaWctcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDZweDtcclxuICB9XHJcbiAgLmFzay1jaGlwLS1kaXNhbWJpZyB7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcbiAgICAuYXNrLXN1cmZhY2UgeyBhbmltYXRpb246IG5vbmU7IH1cclxuICAgIC5hc2stc3Bpbm5lciB7IGFuaW1hdGlvbjogbm9uZTsgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYy1ib2x0KTsgfVxyXG4gIH1cclxuXHJcbiAgLyog4pSA4pSAIGZmLWdob3N0LW92ZXJsYXkgKEFSIGdob3N0LWdyb3VuZCB0aGVuL25vdyBvdmVybGF5KSDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuICAuZ2hvc3QtYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjA0IDAuMDIwIDMwIC8gMC43NSk7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16LW92ZXJsYXkpO1xyXG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMjgwbXMgdmFyKC0tbS1zbmFwcHkpO1xyXG4gIH1cclxuICBAc3VwcG9ydHMgKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpKSB7XHJcbiAgICAuZ2hvc3QtYmFja2Ryb3Age1xyXG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcclxuICAgICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZ2hvc3Qtc3VyZmFjZSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB6LWluZGV4OiBjYWxjKHZhcigtLXotb3ZlcmxheSkgKyAxKTtcclxuICAgIG1heC13aWR0aDogNjQwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIG1heC1oZWlnaHQ6IDkwdmg7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4xMyAwLjAyMCAzMCk7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1saW5lLTIpO1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tci01KTtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1yLTUpO1xyXG4gICAgcGFkZGluZzogMTZweCAxOHB4IGNhbGMoMjRweCArIHZhcigtLXNhLWJvdHRvbSkpO1xyXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTQpO1xyXG4gICAgYW5pbWF0aW9uOiBzaGVldFVwIDQyMG1zIHZhcigtLW0tc3ByaW5nKTtcclxuICB9XHJcblxyXG4gIC5naG9zdC1oZWFkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLmdob3N0LWV5ZWJyb3cge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEwLjVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiBva2xjaCgwLjY1IDAuMTAgNTApO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiA4cHg7XHJcbiAgfVxyXG4gIC5naG9zdC1leWVicm93LWRvdCB7XHJcbiAgICB3aWR0aDogNnB4O1xyXG4gICAgaGVpZ2h0OiA2cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjY1IDAuMTUgMzApO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDhweCBva2xjaCgwLjY1IDAuMTUgMzAgLyAwLjYpO1xyXG4gIH1cclxuXHJcbiAgLmdob3N0LWNsb3NlIHtcclxuICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4yMCAwLjAyMCAzMCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBva2xjaCgwLjMwIDAuMDIwIDMwKTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAuZ2hvc3QtdGl0bGUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDd2dywgNDBweCk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGNvbG9yOiBva2xjaCgwLjk1IDAuMDIgNjApO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XHJcbiAgICBtYXJnaW46IDE0cHggMCA0cHg7XHJcbiAgfVxyXG4gIC5naG9zdC1sb2Mge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtdHlwZXdyaXRlcik7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBjb2xvcjogb2tsY2goMC42NSAwLjA1IDUwKTtcclxuICAgIG1hcmdpbjogMCAwIDE2cHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xyXG4gIH1cclxuXHJcbiAgLyogVGhlbi9Ob3cgc2xpZGVyIOKAlCB0d28gbGF5ZXJzLCBjbGlwLXBhdGggYW5pbWF0ZWQgYnkgLS1zbGlkZXIgKi9cclxuICAuZ2hvc3QtdG5vdyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgb2tsY2goMC4zMCAwLjAyMCAzMCk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xyXG4gICAgLS1zbGlkZXI6IDUwJTtcclxuICB9XHJcbiAgLmdob3N0LXRub3ctbGF5ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgfVxyXG4gIC5naG9zdC10bm93LWxheWVyIGltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIC5naG9zdC10bm93LXRoZW4ge1xyXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgdmFyKC0tc2xpZGVyKSAwLCB2YXIoLS1zbGlkZXIpIDEwMCUsIDAgMTAwJSk7XHJcbiAgfVxyXG4gIC5naG9zdC10bm93LXBsYWNlaG9sZGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1kaXNwbGF5KTtcclxuICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgIGNvbG9yOiBva2xjaCgwLjk1IDAuMDIgNjAgLyAwLjQpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcclxuICB9XHJcbiAgLmdob3N0LXRub3ctaGFuZGxlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IHZhcigtLXNsaWRlcik7XHJcbiAgICB3aWR0aDogMnB4O1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC45NSAwLjAyIDYwKTtcclxuICAgIGN1cnNvcjogZXctcmVzaXplO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDEycHggb2tsY2goMC45NSAwLjAyIDYwIC8gMC42KTtcclxuICB9XHJcbiAgLmdob3N0LXRub3ctaGFuZGxlLWJhciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgd2lkdGg6IDM2cHg7XHJcbiAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjk1IDAuMDIgNjApO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IG9rbGNoKDAuMDQgMC4wMjAgMzApLFxyXG4gICAgICAgICAgICAgICAgMCAwIDE4cHggb2tsY2goMC45NSAwLjAyIDYwIC8gMC43KTtcclxuICB9XHJcbiAgLmdob3N0LXRub3ctbGFiZWwge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxMnB4O1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTtcclxuICAgIGNvbG9yOiBva2xjaCgwLjk1IDAuMDIgNjApO1xyXG4gICAgcGFkZGluZzogNHB4IDhweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGJhY2tncm91bmQ6IG9rbGNoKDAuMDQgMC4wMjAgMzAgLyAwLjYpO1xyXG4gIH1cclxuICAuZ2hvc3QtdG5vdy1sYWJlbC10aGVuIHsgbGVmdDogMTJweDsgfVxyXG4gIC5naG9zdC10bm93LWxhYmVsLW5vdyAgeyByaWdodDogMTJweDsgfVxyXG5cclxuICAuZ2hvc3QtYmx1cmIgcCB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XHJcbiAgICBjb2xvcjogb2tsY2goMC44NSAwLjAyIDUwKTtcclxuICAgIG1hcmdpbjogMCAwIDE4cHg7XHJcbiAgfVxyXG5cclxuICAuZ2hvc3QtYWN0aW9ucyB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ2FwOiA4cHg7XHJcbiAgfVxyXG4gIC5naG9zdC1idG4ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1zaXplOiAxNC41cHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG4gIC5naG9zdC1idG4tLXByaW1hcnkge1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC44NiAwLjE4IDkyKTtcclxuICAgIGNvbG9yOiBva2xjaCgwLjEzIDAuMDIwIDI3MCk7XHJcbiAgfVxyXG4gIC5naG9zdC1idG4tLXNlY29uZGFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjIwIDAuMDIwIDMwKTtcclxuICAgIGNvbG9yOiBva2xjaCgwLjk1IDAuMDIgNjApO1xyXG4gICAgYm9yZGVyLWNvbG9yOiBva2xjaCgwLjMwIDAuMDIwIDMwKTtcclxuICB9XHJcbiAgLmdob3N0LWJ0bi0tZGlzYWJsZWQge1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4xOCAwLjAyMCAzMCk7XHJcbiAgICBjb2xvcjogb2tsY2goMC41MCAwLjAyMCAzMCk7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAgIC5naG9zdC1zdXJmYWNlIHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgICAuZ2hvc3QtYmFja2Ryb3AgeyBhbmltYXRpb246IG5vbmU7IH1cclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBmZi1waG90by12ZXJpZnkgKHRpY2tldCBPQ1IgKyBzdGFkaXVtIHJlY29nbml0aW9uIHNoZWV0KSDilIDilIDilIAgKi9cclxuICAucHYtYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuNTUpO1xyXG4gICAgei1pbmRleDogdmFyKC0tei1vdmVybGF5KTtcclxuICAgIGFuaW1hdGlvbjogZmFkZUluIDIyMG1zIHZhcigtLW0tc25hcHB5KTtcclxuICB9XHJcbiAgQHN1cHBvcnRzIChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KSkge1xyXG4gICAgLnB2LWJhY2tkcm9wIHtcclxuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XHJcbiAgICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBva2xjaCgwIDAgMCAvIDAuMzUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnB2LXNoZWV0IHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIHotaW5kZXg6IGNhbGModmFyKC0tei1vdmVybGF5KSArIDEpO1xyXG4gICAgbWF4LXdpZHRoOiA2NDBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUtMik7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1yLTUpO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLXItNSk7XHJcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHggY2FsYygyNHB4ICsgdmFyKC0tc2EtYm90dG9tKSk7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctNCk7XHJcbiAgICBhbmltYXRpb246IHNoZWV0VXAgMzYwbXMgdmFyKC0tbS1zcHJpbmcpO1xyXG4gIH1cclxuICBAc3VwcG9ydHMgKGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpKSB7XHJcbiAgICAucHYtc2hlZXQge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjE3IDAuMDIyIDI3MCAvIDAuOTIpO1xyXG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyOHB4KSBzYXR1cmF0ZSgxLjQpO1xyXG4gICAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyOHB4KSBzYXR1cmF0ZSgxLjQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnB2LWhlYWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xyXG4gIH1cclxuICAucHYtdGl0bGUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgfVxyXG4gIC5wdi1jbG9zZSB7XHJcbiAgICB3aWR0aDogMzJweDtcclxuICAgIGhlaWdodDogMzJweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS0yKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgLnB2LXBpY2tlciB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogMTBweDsgfVxyXG4gIC5wdi1sZWRlIHtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWVkaXRvcmlhbCk7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgbWFyZ2luOiAwIDAgNnB4O1xyXG4gIH1cclxuXHJcbiAgLnB2LWJ0biB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGZvbnQtc2l6ZTogMTQuNXB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIH1cclxuICAucHYtYnRuLS1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgICBjb2xvcjogb2tsY2goMC4xMyAwLjAyMCAyNzApO1xyXG4gIH1cclxuICAucHYtYnRuLS1zZWNvbmRhcnkge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtbGluZSk7XHJcbiAgfVxyXG4gIC5wdi1idG46aG92ZXIgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSk7IH1cclxuICAucHYtYnRuOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OCk7IH1cclxuXHJcbiAgLnB2LXRpZXItaGludCB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgfVxyXG4gIC5wdi10aWVyLWhpbnQgc3Ryb25nIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcblxyXG4gIC5wdi1idXN5IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMjRweCAwO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgfVxyXG5cclxuICAucHYtcmVzdWx0IHsgZGlzcGxheTogZ3JpZDsgZ2FwOiAxNHB4OyB9XHJcblxyXG4gIC5waG90by12ZXJpZnktcmVzdWx0IHtcclxuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBva2xjaCgwLjEzIDAuMDIwIDI3MCAvIDAuNSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1jLWJvbHQpO1xyXG4gIH1cclxuICAucGhvdG8tdmVyaWZ5LXRpZXIge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnBob3RvLXZlcmlmeS1jb25maWRlbmNlLFxyXG4gIC5waG90by12ZXJpZnktZXh0cmFjdGVkID4gKiB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xyXG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICB9XHJcbiAgLnBob3RvLXZlcmlmeS1yZWFzb24ge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsKTtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICB9XHJcbiAgLnBob3RvLXZlcmlmeS1zdHViLW5vdGUge1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgICBmb250LXNpemU6IDEwLjVweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgYmFja2dyb3VuZDogb2tsY2goMC4xMyAwLjAyMCAyNzApO1xyXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWMtbGluZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gICAgLnB2LXNoZWV0IHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgICAucHYtYmFja2Ryb3AgeyBhbmltYXRpb246IG5vbmU7IH1cclxuICB9XHJcblxyXG4gIC8qIOKUgOKUgCBTY29yZS1mbGFzaCAobGl2ZS1wb2xsLmpzIGF0dGFjaFNjb3JlRmxhc2gpICsgdmFyaWFibGUtZm9udFxyXG4gICAgIGF4aXMgcHVsc2Ugb24gc2NvcmUgdGV4dCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICAgICBUd28gY29tcG91bmRpbmcgZWZmZWN0cyB3aGVuIFtkYXRhLWZpeHR1cmUtaWRdIGZsYXNoZXM6XHJcbiAgICAgICDigKIgb3V0ZXIgY2FyZCBoYWxvICguc2NvcmUtZmxhc2gpIOKAlCB1bmNoYW5nZWRcclxuICAgICAgIOKAoiBpbm5lciBzY29yZSB0ZXh0ICguc2NvcmUtdGV4dCkg4oCUIHZhcmlhYmxlLWZvbnQgd2VpZ2h0IGF4aXNcclxuICAgICAgICAgcHVsc2VzIGZyb20gYmFzZSDihpIgOTAwIOKGkiBzZXR0bGVkLCBwbHVzIGEgYnJpZWYgY29sb3IgZmxhc2hcclxuICAgICAgICAgdG8gbGltZS4gRHJpdmVzIHZpYSB0aGUgc2FtZSBKUyBkaXNwYXRjaCBhcyBiZWZvcmUuXHJcblxyXG4gICAgIFZhcmlhYmxlIGZvbnRzIGxvYWRlZCB3aXRoIHRoZSBmdWxsIDEwMC4uOTAwIGF4aXMgKGluZGV4Lmh0bWxcclxuICAgICBHb29nbGUgRm9udHMgVVJMKTsgdGhlIGtleWZyYW1lIGFuaW1hdGVzIGBmb250LXZhcmlhdGlvbi1zZXR0aW5nc2BcclxuICAgICBhbmQgKHdoZXJlIHRoZSBmYW1pbHkgc3VwcG9ydHMgaXQpIHRoZSBsZWdhY3kgYGZvbnQtd2VpZ2h0YFxyXG4gICAgIHByb3BlcnR5IGluIHBhcmFsbGVsIGZvciBvbGRlciBicm93c2Vycy4gKi9cclxuXHJcbiAgQGtleWZyYW1lcyBzY29yZUZsYXNoIHtcclxuICAgIDAlICAgeyBib3gtc2hhZG93OiAwIDAgMCAwIG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuNTUpO1xyXG4gICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMTIpOyB9XHJcbiAgICAzNSUgIHsgYm94LXNoYWRvdzogMCAwIDAgNnB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMzUpO1xyXG4gICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMTgpO1xyXG4gICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMTUpOyB9XHJcbiAgICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCBva2xjaCgwLjg2IDAuMTggOTIgLyAwKTsgfVxyXG4gIH1cclxuXHJcbiAgLnNjb3JlLWZsYXNoIHtcclxuICAgIGFuaW1hdGlvbjogc2NvcmVGbGFzaCA5MDBtcyB2YXIoLS1tLWNlbGVicmF0ZSk7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLyogVmFyaWFibGUtZm9udCBheGlzIHB1bHNlIOKAlCBhcHBsaWVkIHRvIGlubmVyIFtkYXRhLXNjb3JlLXRleHRdLlxyXG4gICAgIGxldHRlci1zcGFjaW5nIGFuaW1hdGlvbiBkcm9wcGVkIHBlciBkZWVwLWRpdmUgKENMUyByaXNrIGZyb21cclxuICAgICB3aWR0aCBwcm9wYWdhdGlvbikuIHRhYnVsYXItbnVtcyArIG1pbi13aWR0aDogMmNoIGxvY2sgdGhlIHNjb3JlXHJcbiAgICAgd2lkdGggc28gMOKGkjEgYW5kIDnihpIxMCB0cmFuc2l0aW9ucyBkb24ndCBzaGlmdCBuZWlnaGJvdXJzLlxyXG4gICAgIFR3byBpbnRlbnNpdGllczogZGVmYXVsdCAobWVkaXVtLCA2MDBtcykgYW5kIC0tZmF2IChoZWF2eSwgOTAwbXMsXHJcbiAgICAgYmlnZ2VyIHNjYWxlKS4gKi9cclxuXHJcbiAgW2RhdGEtc2NvcmUtdGV4dF0ge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ3RudW0nIDE7XHJcbiAgICBtaW4td2lkdGg6IDJjaDtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XHJcbiAgICBjb250YWluOiBsYXlvdXQgcGFpbnQ7XHJcbiAgfVxyXG5cclxuICBAa2V5ZnJhbWVzIHNjb3JlQXhpc1B1bHNlIHtcclxuICAgIDAlIHtcclxuICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA3MDA7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG4gICAgMzAlIHtcclxuICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA5MDA7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWxpbWUpO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiAnd2dodCcgNzAwO1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc2NvcmVBeGlzUHVsc2VGYXYge1xyXG4gICAgMCUge1xyXG4gICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDcwMDtcclxuICAgICAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB9XHJcbiAgICAyNSUge1xyXG4gICAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogJ3dnaHQnIDkwMDtcclxuICAgICAgY29sb3I6IHZhcigtLWMtbGltZSk7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xMik7XHJcbiAgICB9XHJcbiAgICAxMDAlIHtcclxuICAgICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6ICd3Z2h0JyA3MDA7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNjb3JlLWF4aXMtcHVsc2Uge1xyXG4gICAgYW5pbWF0aW9uOiBzY29yZUF4aXNQdWxzZSA2MDBtcyB2YXIoLS1tLWNlbGVicmF0ZSk7XHJcbiAgICB3aWxsLWNoYW5nZTogZm9udC12YXJpYXRpb24tc2V0dGluZ3MsIGNvbG9yLCB0cmFuc2Zvcm07XHJcbiAgfVxyXG5cclxuICAuc2NvcmUtYXhpcy1wdWxzZS0tZmF2IHtcclxuICAgIGFuaW1hdGlvbjogc2NvcmVBeGlzUHVsc2VGYXYgOTAwbXMgdmFyKC0tbS1jZWxlYnJhdGUpO1xyXG4gIH1cclxuXHJcbiAgLyogUmVkdWNlZC1tb3Rpb24gbWlkZGxlIGdyb3VuZCBwZXIgQXBwbGUgSElHOiBrZWVwIHRoZSBjb2xvciBmbGFzaFxyXG4gICAgIHNvIHRoZSB1c2VyIHN0aWxsIGdldHMgdGhlIHN0YXRlLWNoYW5nZSBzaWduYWwsIGRyb3AgdGhlIHNjYWxlICtcclxuICAgICB3ZWlnaHQgYXhpcyAodGhlIGhlYXZ5IHBhcnRzKS4gKi9cclxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gICAgLnNjb3JlLWZsYXNoIHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgICBAa2V5ZnJhbWVzIHNjb3JlQXhpc1B1bHNlUmVkdWNlZCB7XHJcbiAgICAgIDAlICAgeyBjb2xvcjogdmFyKC0tYy1ib2x0KTsgfVxyXG4gICAgICAzMCUgIHsgY29sb3I6IHZhcigtLWMtbGltZSk7IH1cclxuICAgICAgMTAwJSB7IGNvbG9yOiB2YXIoLS1jLWJvbHQpOyB9XHJcbiAgICB9XHJcbiAgICAuc2NvcmUtYXhpcy1wdWxzZSxcclxuICAgIC5zY29yZS1heGlzLXB1bHNlLS1mYXYge1xyXG4gICAgICBhbmltYXRpb246IHNjb3JlQXhpc1B1bHNlUmVkdWNlZCAzMDBtcyBlYXNlLW91dDtcclxuICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCAiLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXHJcbiAgIHZpZXdzLmNzcyDigJQgZWRpdG9yaWFsIHN0eWxlcyBmb3IgTGl2ZSAvIFJlc3VsdHMgLyBUZXJyYWNlIHRhYnNcclxuXHJcbiAgIFNoYXJlZCB2aXN1YWwgaWRpb20gYWNyb3NzIHRoZSB0aHJlZSBuZXcgdGFiIHN1cmZhY2VzIChwZXIgVUtcclxuICAgRm9vdGJhbGwgRmFjdG9yeSBwYXJpdHksIDIwMjYtMDUtMTEpOlxyXG4gICAgIC0gUHJvZ3JhbW1lLXN0eWxlIG1hc3RoZWFkIGF0IHRoZSB0b3Agb2YgZWFjaCB2aWV3XHJcbiAgICAgLSBCb2x0LXllbGxvdyBzdGVuY2lsIHNlY3Rpb24gaGVhZGluZ3MgYmV0d2VlbiBoYWlybGluZSBydWxlc1xyXG4gICAgIC0gQ2FyZC1mcmVlIHJvdyB0cmVhdG1lbnQ6IGhhaXJsaW5lLWJvdHRvbSwgbm8gZmlsbHNcclxuICAgICAtIFJlYWwgY2x1YiBjcmVzdHMgaW5saW5lIGluIG1hdGNoIHJvd3MsIHNoaWVsZC1jbGlwIG5vdCBuZWVkZWRcclxuICAgICAgIGF0IHRoZXNlIHNtYWxsZXIgc2l6ZXMgKDE2cHgpOyBzaGFwZSBzaWduYWxzIGNvbWUgZnJvbSB0aGVcclxuICAgICAgIGNvbHVtbiBsYXlvdXQgaW5zdGVhZC5cclxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXHJcblxyXG4vKiDilIDilIAgU2hhcmVkIG1hc3RoZWFkIHBhdHRlcm4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mZi1saXZlLW1hc3RoZWFkLFxyXG4uZmYtcmVzdWx0cy1tYXN0aGVhZCxcclxuLmZmLXRlcnJhY2UtbWFzdGhlYWQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiB2YXIoLS1zcC01KSB2YXIoLS1zcC00KSB2YXIoLS1zcC00KTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNjAwcHggMjAwcHggYXQgdG9wIHJpZ2h0LCBva2xjaCgwLjIwIDAuMDIyIDI3MCAvIDAuNCksIHRyYW5zcGFyZW50IDcwJSksXHJcbiAgICB2YXIoLS1jLXN1cmZhY2UpO1xyXG59XHJcbi5mZi1saXZlLWtpY2tlcixcclxuLmZmLXJlc3VsdHMta2lja2VyLFxyXG4uZmYtdGVycmFjZS1raWNrZXIge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7XHJcbn1cclxuLmZmLWxpdmUtaGVhZGxpbmUsXHJcbi5mZi1yZXN1bHRzLWhlYWRsaW5lLFxyXG4uZmYtdGVycmFjZS1oZWFkbGluZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDZ2dywgNDBweCk7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA1ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBtYXJnaW46IDAgMCB2YXIoLS1zcC0yKTtcclxuICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG59XHJcbi5mZi1saXZlLXN1YixcclxuLmZmLXJlc3VsdHMtc3ViLFxyXG4uZmYtdGVycmFjZS1zdWIge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWVkaXRvcmlhbCk7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIG1heC13aWR0aDogNTBjaDtcclxufVxyXG5cclxuLyog4pSA4pSAIFNlY3Rpb24gaGVhZGluZ3MgKHNoYXJlZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mZi1saXZlLXNlY3Rpb24tdGl0bGUsXHJcbi5mZi1yZXN1bHRzLWRhdGUtaGVhZCxcclxuLmZmLXRlcnJhY2Utc2VjdGlvbi10aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcclxuICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIG1hcmdpbjogdmFyKC0tc3AtNCkgdmFyKC0tc3AtNCkgdmFyKC0tc3AtMik7XHJcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4O1xyXG59XHJcbi5mZi1saXZlLXNlY3Rpb24tdGl0bGU6OmFmdGVyLFxyXG4uZmYtcmVzdWx0cy1kYXRlLWhlYWQ6OmFmdGVyLFxyXG4uZmYtdGVycmFjZS1zZWN0aW9uLXRpdGxlOjphZnRlciB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgZmxleDogMTsgaGVpZ2h0OiAxcHg7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1jLWJvbHQpLCB0cmFuc3BhcmVudCk7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcbi5mZi1saXZlLXNlY3Rpb24tdGl0bGUuaXMtbGl2ZSB7IGNvbG9yOiB2YXIoLS1jLWxpbWUpOyB9XHJcbi5mZi1saXZlLXNlY3Rpb24tdGl0bGUuaXMtbGl2ZTo6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWMtbGltZSksIHRyYW5zcGFyZW50KTsgfVxyXG5cclxuLyog4pSA4pSAIE1hdGNoIHJvdyAoTGl2ZSArIFJlc3VsdHMgc2hhcmUgc3R5bGluZykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mZi1saXZlLXJvd3MsXHJcbi5mZi1yZXN1bHRzLXJvd3MgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XHJcblxyXG4uZmYtbGl2ZS1yb3csXHJcbi5mZi1yZXN1bHRzLXJvdyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDcycHggMWZyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcclxuICBwYWRkaW5nOiB2YXIoLS1zcC0zKSB2YXIoLS1zcC00KTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG59XHJcbi5mZi1saXZlLXJvdzpsYXN0LWNoaWxkLFxyXG4uZmYtcmVzdWx0cy1yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IDA7IH1cclxuLmZmLWxpdmUtcm93OmhvdmVyLFxyXG4uZmYtcmVzdWx0cy1yb3c6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UtMik7IH1cclxuLmZmLWxpdmUtcm93LmlzLWxpdmUgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIG9rbGNoKDAuODUgMC4yMCAxMzggLyAwLjA0KSwgdHJhbnNwYXJlbnQpOyB9XHJcblxyXG4uZmYtbGl2ZS1sZWFndWUsXHJcbi5mZi1yZXN1bHRzLWxlYWd1ZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi5mZi1saXZlLWNsdWJzLFxyXG4uZmYtcmVzdWx0cy1jbHVicyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA1NnB4IDFmcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogdmFyKC0tc3AtMik7XHJcbn1cclxuXHJcbi5mZi1saXZlLXRlYW0sXHJcbi5mZi1yZXN1bHRzLXRlYW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4O1xyXG4gIG1pbi13aWR0aDogMDtcclxufVxyXG4uZmYtbGl2ZS10ZWFtLWF3YXksXHJcbi5mZi1yZXN1bHRzLXRlYW06bnRoLWNoaWxkKDMpIHtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi5mZi1saXZlLWNyZXN0LFxyXG4uZmYtcmVzdWx0cy1jcmVzdCB7XHJcbiAgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDtcclxuICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcbi5mZi1saXZlLWNyZXN0LWZhbGxiYWNrLFxyXG4uZmYtcmVzdWx0cy1jcmVzdC1mYWxsYmFjayB7XHJcbiAgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib2x0KTtcclxuICBjb2xvcjogIzBGMTAxNDtcclxuICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4uZmYtbGl2ZS10ZWFtLW5hbWUsXHJcbi5mZi1yZXN1bHRzLXRlYW0tbmFtZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxufVxyXG5cclxuLmZmLWxpdmUtc2NvcmUsXHJcbi5mZi1yZXN1bHRzLXNjb3JlIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1zdGVuY2lsKTtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XHJcbn1cclxuLmZmLWxpdmUtcm93LmlzLWxpdmUgLmZmLWxpdmUtc2NvcmUgeyBjb2xvcjogdmFyKC0tYy1saW1lKTsgfVxyXG5cclxuLmZmLWxpdmUtZW1wdHksXHJcbi5mZi1yZXN1bHRzLWVtcHR5IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICBwYWRkaW5nOiB2YXIoLS1zcC0zKSB2YXIoLS1zcC00KTtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qIOKUgOKUgCBSZXN1bHRzOiBjaGlwIHJhaWwgKyBkYXRlIHNlY3Rpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uZmYtcmVzdWx0cy1jaGlwcyB7XHJcbiAgZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7XHJcbiAgcGFkZGluZzogdmFyKC0tc3AtMykgdmFyKC0tc3AtNCk7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxufVxyXG4uZmYtcmVzdWx0cy1jaGlwczo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5OiBub25lOyB9XHJcbi5mZi1yZXN1bHRzLWNoaXAge1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIHBhZGRpbmc6IDVweCAxMXB4O1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1kaXNwbGF5KTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcbi5mZi1yZXN1bHRzLWNoaXA6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UtMyk7IH1cclxuLmZmLXJlc3VsdHMtY2hpcC5pcy1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpOyBjb2xvcjogIzBGMTAxNDsgfVxyXG4uZmYtcmVzdWx0cy1kYXRlIHsgcGFkZGluZy1ib3R0b206IHZhcigtLXNwLTIpOyB9XHJcbi5mZi1yZXN1bHRzLWRhdGUtaGVhZCB7IGZvbnQtc2l6ZTogMTFweDsgfVxyXG5cclxuLyog4pSA4pSAIFJlc3VsdHM6IHNjb3BlIHRvZ2dsZSAoQUxMIMK3IExFQUdVRVMgwrcgQ1VQUykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mZi1yZXN1bHRzLXNjb3BlIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogNHB4O1xyXG4gIHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigtLXNwLTQpIHZhcigtLXNwLTIpO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtbGluZS1zb2Z0LCB2YXIoLS1jLWxpbmUpKTtcclxufVxyXG4uZmYtcmVzdWx0cy1zY29wZS1idG4ge1xyXG4gIGZsZXg6IDE7XHJcbiAgcGFkZGluZzogOHB4IDEwcHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuLmZmLXJlc3VsdHMtc2NvcGUtYnRuOmZpcnN0LWNoaWxkIHsgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cclxuLmZmLXJlc3VsdHMtc2NvcGUtYnRuOmxhc3QtY2hpbGQgIHsgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cclxuLmZmLXJlc3VsdHMtc2NvcGUtYnRuOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItcmlnaHQ6IDA7IH1cclxuLmZmLXJlc3VsdHMtc2NvcGUtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpOyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxyXG4uZmYtcmVzdWx0cy1zY29wZS1idG4uaXMtYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWluayk7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLyog4pSA4pSAIFJlc3VsdHM6IG5hdGlvbiByYWlsIChFdXJvcGUgcGlubmVkIGZpcnN0KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmZmLXJlc3VsdHMtbmF0aW9ucyB7IHBhZGRpbmctdG9wOiB2YXIoLS1zcC0yKTsgfVxyXG4uZmYtcmVzdWx0cy1uYXRpb24tY2hpcCB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgcGFkZGluZzogNnB4IDExcHg7IH1cclxuLmZmLXJlc3VsdHMtbmF0aW9uLWNoaXAuaXMtZXVyb3BlIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWMtYm9sdCkgNDAlLCB0cmFuc3BhcmVudCk7XHJcbn1cclxuLmZmLXJlc3VsdHMtbmF0aW9uLWNoaXAuaXMtZXVyb3BlLmlzLWFjdGl2ZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib2x0KTsgfVxyXG4uZmYtcmVzdWx0cy1uYXRpb24tbmFtZSB7IGxldHRlci1zcGFjaW5nOiAwLjA0ZW07IH1cclxuLmZmLXJlc3VsdHMtbmF0aW9uLWNvdW50IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDlweDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XHJcbiAgb3BhY2l0eTogMC42O1xyXG4gIHBhZGRpbmctbGVmdDogMnB4O1xyXG59XHJcbi5mZi1yZXN1bHRzLW5hdGlvbi1jaGlwLmlzLWFjdGl2ZSAuZmYtcmVzdWx0cy1uYXRpb24tY291bnQgeyBvcGFjaXR5OiAwLjc7IH1cclxuXHJcbi8qIOKUgOKUgCBSZXN1bHRzOiBjb21wZXRpdGlvbiByYWlsIChzdWJvcmRpbmF0ZSB0byBuYXRpb24pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG4uZmYtcmVzdWx0cy1jb21wcyB7XHJcbiAgZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7XHJcbiAgcGFkZGluZzogMCB2YXIoLS1zcC00KSB2YXIoLS1zcC0zKTtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG59XHJcbi5mZi1yZXN1bHRzLWNvbXBzOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6IG5vbmU7IH1cclxuLmZmLXJlc3VsdHMtY29tcHMgLmZmLXJlc3VsdHMtY2hpcCB7IHBhZGRpbmc6IDRweCAxMHB4OyBmb250LXNpemU6IDEwcHg7IH1cclxuLmZmLXJlc3VsdHMtY29tcHMgLmZmLXJlc3VsdHMtY2hpcC5pcy1jdXAtY2hpcCB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTMpO1xyXG4gIGJvcmRlcjogMXB4IGRhc2hlZCBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWMtYm9sdCkgMzAlLCB0cmFuc3BhcmVudCk7XHJcbn1cclxuLmZmLXJlc3VsdHMtY29tcHMgLmZmLXJlc3VsdHMtY2hpcC5pcy1jdXAtY2hpcC5pcy1hY3RpdmUge1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7IGJvcmRlci1zdHlsZTogc29saWQ7XHJcbn1cclxuXHJcbi8qIOKUgOKUgCBDdXAgcm91bmRzIChVSyDCpzguMjkgcG9ydCDigJQgcm91bmQtY2x1c3RlcmVkIHdoZW4gY3VwIHNlbGVjdGVkKSDilIDilIAgKi9cclxuLmZmLXJlc3VsdHMtY3VwLXJvdW5kIHsgcGFkZGluZzogMDsgbWFyZ2luLXRvcDogdmFyKC0tc3AtMyk7IH1cclxuLmZmLXJlc3VsdHMtY3VwLXJvdW5kLWJhciB7XHJcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC00KTtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLXJvdW5kLWJhcjpob3ZlciAuZmYtcmVzdWx0cy1jdXAtcm91bmQtbGFiZWwgeyBjb2xvcjogdmFyKC0tYy1ib2x0KTsgfVxyXG4uZmYtcmVzdWx0cy1jdXAtcnVsZSB7XHJcbiAgZmxleDogMTsgaGVpZ2h0OiAxcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1ib2x0KSAzNSUsIHRyYW5zcGFyZW50KSwgdHJhbnNwYXJlbnQpO1xyXG59XHJcbi5mZi1yZXN1bHRzLWN1cC1yb3VuZC1tZXRhIHtcclxuICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogYmFzZWxpbmU7IGdhcDogdmFyKC0tc3AtMik7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtcm91bmQtbGFiZWwge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWVkaXRvcmlhbCk7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLXJvdW5kLXdoZW4ge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLXJvdW5kLWNvdW50IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDlweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtcm91bmQtYm9keSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6IHZhcigtLXNwLTIpIDAgdmFyKC0tc3AtMyk7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLXJvdW5kLmlzLW9wZW4gLmZmLXJlc3VsdHMtY3VwLXJvdW5kLWJvZHkgeyBkaXNwbGF5OiBmbGV4OyB9XHJcblxyXG4vKiBDdXAgbWF0Y2ggcm93IOKAlCBkYXRlIGNvbHVtbiArIHNjb3JlLXN0YWNrZWQgZml4dHVyZSBjZWxsICovXHJcbi5mZi1yZXN1bHRzLWN1cC1yb3cge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MnB4IDFmcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogdmFyKC0tc3AtMik7XHJcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtNCk7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLXJvdzpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxyXG4uZmYtcmVzdWx0cy1jdXAtcm93LmlzLXVwY29taW5nIC5mZi1yZXN1bHRzLWN1cC1zY29yZSB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7IGZvbnQtc2l6ZTogMTJweDsgfVxyXG5cclxuLmZmLXJlc3VsdHMtY3VwLXdoZW4ge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICBsaW5lLWhlaWdodDogMS4xO1xyXG59XHJcbi5mZi1yZXN1bHRzLWN1cC13aGVuIC5jdy1kb3cgeyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgfVxyXG4uZmYtcmVzdWx0cy1jdXAtd2hlbiAuY3ctZGF5IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1zdGVuY2lsKTtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcbi5mZi1yZXN1bHRzLWN1cC13aGVuIC5jdy1tb24geyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgfVxyXG5cclxuLmZmLXJlc3VsdHMtY3VwLWZpeCB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA1NnB4IDFmcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogdmFyKC0tc3AtMik7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLXNpZGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4O1xyXG4gIG1pbi13aWR0aDogMDtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtc2lkZS1hd2F5IHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB0ZXh0LWFsaWduOiByaWdodDsgfVxyXG4uZmYtcmVzdWx0cy1jdXAtbmFtZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtY3Jlc3Qge1xyXG4gIHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7XHJcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtY3Jlc3QtZmFsbGJhY2sge1xyXG4gIHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgY29sb3I6ICMwRjEwMTQ7XHJcbiAgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1kaXNwbGF5KTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtc2NvcmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxufVxyXG5cclxuLyog4pSA4pSAIEN1cCBGaW5hbCDigJQgY2VyZW1vbmlhbCB0cmVhdG1lbnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mZi1yZXN1bHRzLWN1cC1maW5hbCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IHZhcigtLXNwLTUpIHZhcigtLXNwLTQpIHZhcigtLXNwLTUpO1xyXG4gIG1hcmdpbi10b3A6IHZhcigtLXNwLTQpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtZmluYWwtcnVsZXMge1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJhY2tncm91bmQ6XHJcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCB2YXIoLS1jLWJvbHQpIDIwJSwgdmFyKC0tYy1ib2x0KSA4MCUsIHRyYW5zcGFyZW50KSxcclxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1ib2x0KSA1MCUsIHRyYW5zcGFyZW50KSAzMCUsIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tYy1ib2x0KSA1MCUsIHRyYW5zcGFyZW50KSA3MCUsIHRyYW5zcGFyZW50KTtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMXB4LCAxMDAlIDFweDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDFweCwgMCAzcHg7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtZmluYWwtYmFubmVyIHtcclxuICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IHZhcigtLXNwLTMpO1xyXG4gIHBhZGRpbmc6IHZhcigtLXNwLTMpIDAgdmFyKC0tc3AtMSk7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLWZpbmFsLWtpY2tlciB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pOyB9XHJcbi5mZi1yZXN1bHRzLWN1cC1maW5hbC1sYWJlbCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsKTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXNpemU6IDI4cHg7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtZmluYWwtd2hlbiB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC1zaXplOiAxMXB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC00KTtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtZmluYWwtYm9keSB7IHBhZGRpbmc6IDAgdmFyKC0tc3AtNCk7IH1cclxuLmZmLXJlc3VsdHMtY3VwLWZpbmFsLW1hdGNoIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG8gMWZyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiB2YXIoLS1zcC0zKTtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtZmluYWwtc2lkZSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtMik7IH1cclxuLmZmLXJlc3VsdHMtY3VwLWZpbmFsLXRlYW0geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyB9XHJcbi5mZi1yZXN1bHRzLWN1cC1maW5hbC1jcmVzdCB7IHdpZHRoOiA1NnB4OyBoZWlnaHQ6IDU2cHg7IG9iamVjdC1maXQ6IGNvbnRhaW47IH1cclxuLmZmLXJlc3VsdHMtY3VwLWZpbmFsLWNyZXN0LWZhbGxiYWNrIHtcclxuICB3aWR0aDogNTZweDsgaGVpZ2h0OiA1NnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGNvbG9yOiAjMEYxMDE0O1xyXG4gIGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZGlzcGxheSk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBmb250LXNpemU6IDI0cHg7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLWZpbmFsLW5hbWUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4uZmYtcmVzdWx0cy1jdXAtZmluYWwtc2NvcmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgZm9udC1zaXplOiAzNnB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XHJcbn1cclxuLmZmLXJlc3VsdHMtY3VwLWZpbmFsLW1hdGNoLmlzLXVwY29taW5nIC5mZi1yZXN1bHRzLWN1cC1maW5hbC1zY29yZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsKTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXNpemU6IDIycHg7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxufVxyXG5cclxuLyog4pSA4pSAIFRlcnJhY2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5mZi10ZXJyYWNlLXNlY3Rpb24geyBwYWRkaW5nOiAwIHZhcigtLXNwLTQpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC00KTsgfVxyXG4uZmYtdGVycmFjZS1yaXZhbHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLXNwLTEpOyB9XHJcbi5mZi10ZXJyYWNlLXJvdyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggMWZyIGF1dG87XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IHZhcigtLXNwLTMpO1xyXG4gIHBhZGRpbmc6IHZhcigtLXNwLTMpO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbn1cclxuLmZmLXRlcnJhY2Utcm93LmlzLW1lIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMTApLCB2YXIoLS1jLXN1cmZhY2UpKTtcclxuICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbn1cclxuLmZmLXRlcnJhY2UtcmFuayB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5mZi10ZXJyYWNlLW5hbWUge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4O1xyXG4gIG1pbi13aWR0aDogMDtcclxufVxyXG4uZmYtdGVycmFjZS1uYW1lLXRleHQge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbn1cclxuLmZmLXRlcnJhY2UtbmFtZS10YWcge1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgY29sb3I6ICMwRjEwMTQ7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBmb250LXNpemU6IDlweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcbiAgcGFkZGluZzogMnB4IDVweDtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbn1cclxuLmZmLXRlcnJhY2Utc3RhbXBzIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG59XHJcbi5mZi10ZXJyYWNlLXByb3NlLFxyXG4uZmYtdGVycmFjZS1wcm9zZS1pdGFsaWMge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWVkaXRvcmlhbCk7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICBtYXgtd2lkdGg6IDYwY2g7XHJcbiAgbWFyZ2luOiAwIDAgdmFyKC0tc3AtMyk7XHJcbn1cclxuLmZmLXRlcnJhY2UtcHJvc2UtaXRhbGljIHtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3AtMyk7XHJcbn1cclxuLmZmLXRlcnJhY2UtY29taW5nIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tc3AtMik7XHJcbn1cclxuLmZmLXRlcnJhY2UtY29taW5nIGxpIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1lZGl0b3JpYWwpO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4uZmYtdGVycmFjZS1jb21pbmcgbGk6OmJlZm9yZSB7XHJcbiAgY29udGVudDogJ+KXhic7XHJcbiAgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDFweDtcclxuICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbn1cclxuIiwgIi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxyXG4gICBob21lLmNzcyDigJQgbW9kZXJuIGNvbXBhbmlvbiBIb21lIHRhYlxyXG5cclxuICAgVmlzdWFsIHJlZ2lzdGVyOiByaWNoIGNhcmQgc3VyZmFjZXMgd2l0aCBzdWJ0bGUgZWxldmF0aW9uLCByZWFsIGNsdWJcclxuICAgY3Jlc3RzIHByb21pbmVudCwgYnJhbmQgY29sb3VycyBibGVlZGluZyB0aHJvdWdoIGdyYWRpZW50cywgbGl2ZVxyXG4gICBzdGF0ZXMgcHVsc2luZy4gS2VlcHMgdGhlIGJyYW5kIGZvdW5kYXRpb24gKEJlYmFzIHdvcmRtYXJrLCBib2x0LVxyXG4gICB5ZWxsb3cgYWNjZW50cykgYnV0IG1vdmVzIGJvZHkgY29udGVudCB0byBzZW50ZW5jZS1jYXNlIEludGVyIGZvclxyXG4gICBhIFwiY29tcGFuaW9uIGFwcFwiIGZlZWwsIG5vdCBhbiBcImVkaXRvcmlhbCBtYWdhemluZVwiIGZlZWwuXHJcbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xyXG5cclxuLyog4pSA4pSAIEhlcm8gY2FyZCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuZmYtaG9tZS1oZXJvIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW46IHZhcigtLXNwLTMpIHZhcigtLXNwLTMpIHZhcigtLXNwLTQpO1xyXG4gIC8qIFNjcm9sbC1kcml2ZW4gcGFyYWxsYXggaG9zdC4gVGhlIGNhcmQncyBJTk5FUiBjb250ZW50IChoZWFkbGluZSArXHJcbiAgICAgc2NvcmUgYmxvY2spIGRyaWZ0cyB1cCBzbGlnaHRseSBzbG93ZXIgdGhhbiB0aGUgcGFnZSBvbiBzY3JvbGw7XHJcbiAgICAgdGhlIGNhcmQgaXRzZWxmIHN0YXlzIGluIGZsb3cuIFR3byBwYXRoczpcclxuICAgICAgIOKAoiBNb2Rlcm4gYnJvd3NlcnM6IGFuaW1hdGlvbi10aW1lbGluZTogdmlldygpIOKAlCBwdXJlIENTUyxcclxuICAgICAgICAgY29tcG9zaXRvci1vbmx5LCBubyBKUywgNjBmcHMuXHJcbiAgICAgICDigKIgRmFsbGJhY2s6IGxpYi9zY3JvbGwtcGFyYWxsYXguanMgc2V0cyAtLXNjcm9sbC10IDDihpIxIHZpYSByQUYuICovXHJcbiAgLS1zY3JvbGwtdDogMDtcclxufVxyXG5cclxuLyogSlMtZHJpdmVuIHBhcmFsbGF4IHZpYSAtLXNjcm9sbC10ICgw4oaSMSBhcyBoZXJvIHRyYXZlcnNlcyB2aWV3cG9ydCkuXHJcbiAgIFBlciBkZWVwLWRpdmUgcmVmaW5lbWVudHM6IG5vIHRyYW5zaXRpb24gKHJBRiBldmVyeSBmcmFtZSBpcyBzbW9vdGhcclxuICAgZW5vdWdoIG9uIDYwSHorOyA4MG1zIHRyYW5zaXRpb24gcmVhZHMgYXMgbGFnZ3kgb24gMTIwSHogaVBob25lcykuXHJcbiAgIFNpbmdsZSB0cmFuc2Zvcm0gdXBkYXRlIHBlciBzY3JvbGwgZnJhbWUgaXMgY29tcG9zaXRvci1jaGVhcC4gKi9cclxuLmhlcm8tY2FyZC1pbm5lciB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXNjcm9sbC10LCAwKSAtIDAuNSkgKiAtMzJweCkpO1xyXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcbn1cclxuXHJcbi8qIFZlaWwgbGF5ZXIgaXMgbm93IGRlY29yYXRpdmUtb25seSDigJQgbm8gc2Nyb2xsLWRyaXZlbiBvcGFjaXR5IHJhbXAuXHJcbiAgIFRoZSBkZWVwLWRpdmUgZm91bmQgcGVhay1pbi1taWRkbGUgcmFtcGluZyByZWFkcyBhcyAyMDIyLXRyb3BlIG9uXHJcbiAgIGZsYXQtY29sb3Igc3VyZmFjZXMgKHdlIGhhdmUgdGhvc2UsIG5vdCBwaG90b2dyYXBoaWMpLiBIb2xkIGl0IGFzXHJcbiAgIGEgc3RhdGljIHN1YnRsZSBibG9vbSB0aGF0IGxpdmVzIG9uIHRoZSBjYXJkIHVuY29uZGl0aW9uYWxseS4gKi9cclxuLmhlcm8tY2FyZC12ZWlsIHtcclxuICBvcGFjaXR5OiAwLjQ7XHJcbn1cclxuXHJcbi5oZXJvLWNhcmQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gIHBhZGRpbmc6IDE4cHggMjBweCAyMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIyMG1zIHZhcigtLW0tc25hcHB5KTtcclxufVxyXG4uaGVyby1jYXJkOmhvdmVyIHsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpOyB9XHJcbi5oZXJvLWNhcmQ6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTsgfVxyXG5cclxuLmhlcm8tY2FyZC1pbm5lciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDI7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxufVxyXG5cclxuLyogT3B0aW9uYWwgc2Vjb25kIHZlaWwgbGF5ZXIgZm9yIHRoZSBcImxpdmVcIiBwdWxzZSB0byByaWRlIHdpdGgg4oCUIGFcclxuICAgc3VidGxlIGxpbWUgbWVzaCB2aXNpYmxlIG9ubHkgd2hlbiBzY3JvbGxpbmcgcGFzdC4gKi9cclxuLmhlcm8tY2FyZC12ZWlsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaW5zZXQ6IDA7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDpcclxuICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDgwJSA2MCUgYXQgMjAlIDEwJSwgb2tsY2goMC44NiAwLjE4IDkyIC8gMC4xMCksIHRyYW5zcGFyZW50IDY1JSksXHJcbiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA3MCUgNTAlIGF0IDkwJSAxMDAlLCBva2xjaCgwLjg1IDAuMjAgMTM4IC8gMC4xMCksIHRyYW5zcGFyZW50IDYwJSk7XHJcbiAgb3BhY2l0eTogMDtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xyXG4gIC5oZXJvLWNhcmQtaW5uZXIgeyBhbmltYXRpb246IG5vbmU7IHRyYW5zZm9ybTogbm9uZTsgfVxyXG4gIC5oZXJvLWNhcmQtdmVpbCB7IGFuaW1hdGlvbjogbm9uZTsgb3BhY2l0eTogMDsgfVxyXG59XHJcbi5oZXJvLWNhcmQuaXMtbGl2ZSB7IGJvcmRlci1jb2xvcjogb2tsY2goMC44NSAwLjIwIDEzOCAvIDAuNDUpOyB9XHJcbi5oZXJvLWNhcmQuaXMtbGl2ZTo6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDtcclxuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA2MDBweCAyMDBweCBhdCA1MCUgMCUsIG9rbGNoKDAuODUgMC4yMCAxMzggLyAwLjEwKSwgdHJhbnNwYXJlbnQgNzAlKTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBhbmltYXRpb246IGhlcm9MaXZlUHVsc2UgMy42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxufVxyXG5Aa2V5ZnJhbWVzIGhlcm9MaXZlUHVsc2Uge1xyXG4gIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41NTsgfVxyXG4gIDUwJSAgICAgIHsgb3BhY2l0eTogMTsgfVxyXG59XHJcblxyXG4uaGVyby1zdHJpcCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xyXG4gIHotaW5kZXg6IDI7XHJcbn1cclxuLmhlcm8tdGFnIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7XHJcbiAgcGFkZGluZzogM3B4IDlweDtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXNpemU6IDEwLjVweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG59XHJcbi5oZXJvLXRhZy1saXZlIHtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWxpbWUpO1xyXG4gIGNvbG9yOiBva2xjaCgwLjEzIDAuMDIwIDI3MCk7XHJcbn1cclxuLmhlcm8tdGFnLWxpdmU6OmJlZm9yZSB7XHJcbiAgY29udGVudDogJyc7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogb2tsY2goMC4xMyAwLjAyMCAyNzApO1xyXG4gIGFuaW1hdGlvbjogbGl2ZURvdFB1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbn1cclxuLmhlcm8tdGFnLXNvb24geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpOyBjb2xvcjogb2tsY2goMC4xMyAwLjAyMCAyNzApOyB9XHJcbi5oZXJvLXRhZy10b2RheSB7IGJhY2tncm91bmQ6IG9rbGNoKDAuNzIgMC4xOCAyNjApOyBjb2xvcjogb2tsY2goMC4xMyAwLjAyMCAyNzApOyB9XHJcbi5oZXJvLXRhZy13ZWVrZW5kIHsgYmFja2dyb3VuZDogb2tsY2goMC44MCAwLjE2IDYwKTsgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTsgfVxyXG4uaGVyby10YWctdXBjb21pbmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTApOyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxyXG5Aa2V5ZnJhbWVzIGxpdmVEb3RQdWxzZSB7XHJcbiAgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XHJcbiAgNTAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7IH1cclxufVxyXG5cclxuLmhlcm8tbGVhZ3VlIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxufVxyXG4uaGVyby10aW1lIHtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDEwLjVweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4uaGVyby1ib2R5IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvIDFmcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMTZweDtcclxuICB6LWluZGV4OiAyO1xyXG59XHJcblxyXG4uaGVyby10ZWFtIHtcclxuICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG59XHJcbi5oZXJvLWNyZXN0IHtcclxuICB3aWR0aDogNTZweDsgaGVpZ2h0OiA1NnB4O1xyXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDRweCA4cHggcmdiYSgwLDAsMCwwLjM1KSk7XHJcbn1cclxuLmhlcm8tY3Jlc3QtZmFsbGJhY2sge1xyXG4gIGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYy1zdXJmYWNlLTMpLCB2YXIoLS1jLXN1cmZhY2UtMikpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG59XHJcbi5oZXJvLXRlYW0tbmFtZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgbWF4LXdpZHRoOiAxMmNoO1xyXG59XHJcblxyXG4uaGVyby1zY29yZSB7XHJcbiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA0cHg7XHJcbiAgbWluLXdpZHRoOiA2NHB4O1xyXG59XHJcbi5oZXJvLXNjb3JlLXRleHQge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiAzOHB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcbi5oZXJvLXNjb3JlLmlzLWxpdmUgLmhlcm8tc2NvcmUtdGV4dCB7IGNvbG9yOiB2YXIoLS1jLWxpbWUpOyB9XHJcbi5oZXJvLWxpdmUtZG90IHtcclxuICB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtbGltZSk7XHJcbiAgYm94LXNoYWRvdzogMCAwIDhweCB2YXIoLS1jLWxpbWUpO1xyXG4gIGFuaW1hdGlvbjogbGl2ZURvdFB1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5oZXJvLW1ldGEge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXJnaW4tdG9wOiAxNHB4O1xyXG4gIHBhZGRpbmctdG9wOiAxMnB4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbi8qIEZhbGxiYWNrIHdoZW4gbm8gZGF0YSAqL1xyXG4uaGVyby1mYWxsYmFjay1ib2R5IHsgcGFkZGluZzogOHB4IDA7IH1cclxuLmhlcm8tZmFsbGJhY2staGVhZGxpbmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xyXG4gIG1hcmdpbjogMCAwIDhweDtcclxuICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG59XHJcbi5oZXJvLWZhbGxiYWNrLXN1YiB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLyog4pSA4pSAIFF1aWNrIGFjdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbmZmLWhvbWUtcXVpY2stYWN0aW9ucyB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgdmFyKC0tc3AtMykgdmFyKC0tc3AtNCk7IH1cclxuLnFhLXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7XHJcbiAgb3ZlcmZsb3cteDogYXV0bztcclxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XHJcbiAgcGFkZGluZzogMnB4IDAgNHB4O1xyXG59XHJcbi5xYS1yb3c6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgZGlzcGxheTogbm9uZTsgfVxyXG4ucWEtY2hpcCB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4O1xyXG4gIHBhZGRpbmc6IDlweCAxNHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuLnFhLWNoaXA6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UtMik7IH1cclxuLnFhLWNoaXA6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsgfVxyXG4ucWEtY2hpcC1sYWJlbCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XHJcbn1cclxuLnFhLWNoaXAtYmFkZ2Uge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIG1pbi13aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4O1xyXG4gIHBhZGRpbmc6IDAgNXB4O1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xyXG59XHJcbi5xYS1jaGlwLWFjY2VudCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgb2tsY2goMC44NiAwLjE4IDkyIC8gMC4yMCksIG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMDUpKTtcclxuICBib3JkZXItY29sb3I6IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuNDUpO1xyXG59XHJcbi5xYS1jaGlwLXB1bHNlIC5xYS1jaGlwLWJhZGdlIHtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWxpbWUpO1xyXG4gIGFuaW1hdGlvbjogY2hpcEJhZGdlUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbn1cclxuQGtleWZyYW1lcyBjaGlwQmFkZ2VQdWxzZSB7XHJcbiAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIG9rbGNoKDAuODUgMC4yMCAxMzggLyAwLjU1KTsgfVxyXG4gIDUwJSAgICAgIHsgYm94LXNoYWRvdzogMCAwIDAgNnB4IG9rbGNoKDAuODUgMC4yMCAxMzggLyAwKTsgfVxyXG59XHJcblxyXG4vKiDilIDilIAgTXkgVGVhbSBjYXJkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5mZi1ob21lLW15dGVhbSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgdmFyKC0tc3AtMykgdmFyKC0tc3AtNCk7IH1cclxuLm15dGVhbS1jYXJkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcclxuICBwYWRkaW5nOiAxNnB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSksIGJveC1zaGFkb3cgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuLm15dGVhbS1jYXJkOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7IH1cclxuLm15dGVhbS1oZWFkIHtcclxuICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcclxufVxyXG4ubXl0ZWFtLWNyZXN0IHtcclxuICB3aWR0aDogNDRweDsgaGVpZ2h0OiA0NHB4O1xyXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLDAsMCwwLjI1KSk7XHJcbn1cclxuLm15dGVhbS1leWVicm93IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xyXG59XHJcbi5teXRlYW0tbmFtZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTtcclxufVxyXG4ubXl0ZWFtLXJvd3MgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XHJcbi5teXRlYW0tcm93IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzZweCAxOHB4IDI0cHggMWZyIGF1dG87XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDhweDtcclxuICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbn1cclxuLm15dGVhbS1yb3ctZW1wdHkgeyBwYWRkaW5nOiAxMnB4IDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XHJcbi5teXRlYW0tcm93LWxhYmVsIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxufVxyXG4ubXl0ZWFtLXJvdy12cyB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pOyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLm15dGVhbS1yb3ctY3Jlc3Qge1xyXG4gIHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7IG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbn1cclxuLm15dGVhbS1yb3ctY3Jlc3QtZmFsbGJhY2sge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTMpOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG59XHJcbi5teXRlYW0tcm93LW9wcCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG4ubXl0ZWFtLXJvdy1zY29yZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbn1cclxuXHJcbi8qIEVtcHR5IHN0YXRlIOKAlCBcInBpY2sgeW91ciB0ZWFtXCIgKi9cclxuLm15dGVhbS1lbXB0eSB7IHBhZGRpbmc6IDIwcHggMTZweCAxOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cclxuLm15dGVhbS1lbXB0eS1waWxlIHtcclxuICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAtMTZweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG59XHJcbi5teXRlYW0tZW1wdHktY3Jlc3Qge1xyXG4gIHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7XHJcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTIpO1xyXG4gIHBhZGRpbmc6IDRweDtcclxuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXN1cmZhY2UpO1xyXG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcclxufVxyXG4ubXl0ZWFtLWVtcHR5LWNyZXN0OmZpcnN0LWNoaWxkIHsgbWFyZ2luLWxlZnQ6IDA7IH1cclxuLm15dGVhbS1lbXB0eS10aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgbWFyZ2luOiAwIDAgNnB4O1xyXG59XHJcbi5teXRlYW0tZW1wdHktc3ViIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgbWFyZ2luOiAwIGF1dG8gMTRweDtcclxuICBtYXgtd2lkdGg6IDM2Y2g7XHJcbn1cclxuLm15dGVhbS1lbXB0eS1jdGEge1xyXG4gIHBhZGRpbmc6IDlweCAxOHB4O1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC4zNSk7XHJcbn1cclxuXHJcbi8qIOKUgOKUgCBMaXZlIHRpY2tlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuZmYtaG9tZS1saXZlLXRpY2tlciB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgMCB2YXIoLS1zcC00KTsgfVxyXG5mZi1ob21lLWxpdmUtdGlja2VyW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XHJcbi5sdC13cmFwIHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcC0zKTsgfVxyXG4ubHQtaGVhZCB7XHJcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XHJcbiAgcGFkZGluZzogMCB2YXIoLS1zcC0zKSA4cHggMDtcclxufVxyXG4ubHQtcHVsc2Uge1xyXG4gIHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1saW1lKTtcclxuICBib3gtc2hhZG93OiAwIDAgOHB4IHZhcigtLWMtbGltZSk7XHJcbiAgYW5pbWF0aW9uOiBsaXZlRG90UHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxufVxyXG4ubHQtdGl0bGUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpOyBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMTVweDsgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7IG1hcmdpbjogMDtcclxufVxyXG4ubHQtY291bnQge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDEycHg7XHJcbiAgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWxpbWUpO1xyXG4gIHBhZGRpbmc6IDFweCA4cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxufVxyXG4ubHQtc3RyaXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4O1xyXG4gIG92ZXJmbG93LXg6IGF1dG87IHNjcm9sbGJhci13aWR0aDogbm9uZTtcclxuICBwYWRkaW5nOiA0cHggMCA4cHg7XHJcbiAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7XHJcbn1cclxuLmx0LXN0cmlwOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6IG5vbmU7IH1cclxuLmx0LWNhcmQge1xyXG4gIGZsZXg6IDAgMCAxNjJweDtcclxuICBwYWRkaW5nOiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XHJcbiAgYmFja2dyb3VuZDpcclxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG9rbGNoKDAuODUgMC4yMCAxMzggLyAwLjA1KSwgdHJhbnNwYXJlbnQgNjAlKSxcclxuICAgIHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgb2tsY2goMC44NSAwLjIwIDEzOCAvIDAuMjUpO1xyXG4gIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG59XHJcbi5sdC1jYXJkOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XHJcbi5sdC1jYXJkLXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XHJcbiAgcGFkZGluZzogM3B4IDA7XHJcbn1cclxuLmx0LWNyZXN0IHtcclxuICB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyBvYmplY3QtZml0OiBjb250YWluOyBmbGV4LXNocmluazogMDtcclxufVxyXG4ubHQtY3Jlc3QtZmFsbGJhY2sge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLTMpOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG59XHJcbi5sdC10ZWFtIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxM3B4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcbi5sdC1zY29yZS1yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gIG1hcmdpbi10b3A6IDhweDtcclxuICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBva2xjaCgwLjg1IDAuMjAgMTM4IC8gMC4xNSk7XHJcbn1cclxuLmx0LXNjb3JlIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxOHB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLWxpbWUpO1xyXG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XHJcbn1cclxuLmx0LW1pbnV0ZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtOyBjb2xvcjogdmFyKC0tYy1saW1lKTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4vKiDilIDilIAgRGlzY292ZXJ5IGNhcmQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbmZmLWhvbWUtZGlzY292ZXJ5IHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCB2YXIoLS1zcC0zKSB2YXIoLS1zcC00KTsgfVxyXG4uZGlzYy1jYXJkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBwYWRkaW5nOiAxOHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSksIGJveC1zaGFkb3cgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuLmRpc2MtY2FyZDpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpOyB9XHJcbi5kaXNjLWNhcmQ6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTsgfVxyXG4uZGlzYy1leWVicm93IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC1zaXplOiAxMC41cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG59XHJcbi5kaXNjLWV5ZWJyb3ctZG90IHtcclxuICB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA2cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC41NSk7XHJcbn1cclxuLmRpc2MtYm9keSB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA3MnB4O1xyXG4gIGdhcDogMTRweDtcclxuICBhbGlnbi1pdGVtczogc3RhcnQ7XHJcbn1cclxuLmRpc2MtdGV4dCB7IG1pbi13aWR0aDogMDsgfVxyXG4uZGlzYy1oZWFkbGluZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDE5cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcclxuICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG4gIG1hcmdpbjogMCAwIDhweDtcclxufVxyXG4uZGlzYy1wcm9zZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxMy41cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTU7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gIG1hcmdpbjogMCAwIDEwcHg7XHJcbn1cclxuLmRpc2MtbWV0YSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbn1cclxuLmRpc2MtY2x1Yi1uYW1lIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG59XHJcbi5kaXNjLWNyZXN0IHtcclxuICB3aWR0aDogNzJweDsgaGVpZ2h0OiA3MnB4O1xyXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDZweCAxMnB4IHJnYmEoMCwwLDAsMC4zNSkpO1xyXG59XHJcbi5kaXNjLWNyZXN0LWZhbGxiYWNrIHtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDMycHg7XHJcbn1cclxuXHJcbi8qIOKUgOKUgCBmZi1ob21lLWdob3N0LXNwb3RsaWdodCDigJQgbG9zdCBncm91bmQgb2YgdGhlIGRheSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLyogTWVtb3JpYWwgdGludGluZzogZGVzYXR1cmF0ZWQgZ3JhZGllbnQsIGRhZ2dlciBzaWdpbCBpbnN0ZWFkIG9mIGNyZXN0LFxyXG4gICBlZGl0b3JpYWwgaXRhbGljIGhlYWRsaW5lLiBQZXIgVUsgwqc4LjcgZ2hvc3QtZ3JvdW5kIGFyY2hpdGVjdHVyZSArIMKnOC45XHJcbiAgIGFsbWFuYWMgdm9pY2UuIENsaWNraW5nIGRpc3BhdGNoZXMgZmYtc2hvdy1naG9zdCDihpIgZmYtZ2hvc3Qtb3ZlcmxheS4gKi9cclxuZmYtaG9tZS1naG9zdC1zcG90bGlnaHQgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIHZhcigtLXNwLTMpIHZhcigtLXNwLTQpOyB9XHJcbi5naG9zdC1zcG90bGlnaHQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIHBhZGRpbmc6IDE4cHg7XHJcbiAgYmFja2dyb3VuZDpcclxuICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDM4MHB4IDI0MHB4IGF0IDEwMCUgMCUsIG9rbGNoKDAuNTUgMC4wMjAgNTAgLyAwLjEwKSwgdHJhbnNwYXJlbnQgNjUlKSxcclxuICAgIGxpbmVhci1ncmFkaWVudCgxNjVkZWcsIG9rbGNoKDAuMTggMC4wMTUgMjcwKSwgb2tsY2goMC4xMyAwLjAyMCAyNzApKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSksIGJveC1zaGFkb3cgdmFyKC0tbS1mYXN0KSB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuLmdob3N0LXNwb3RsaWdodDpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpOyB9XHJcbi5naG9zdC1zcG90bGlnaHQ6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTsgfVxyXG4uZ2hvc3Qtc3BvdGxpZ2h0LWV5ZWJyb3cge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDEwLjVweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiBva2xjaCgwLjY1IDAuMDIwIDUwKTtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG59XHJcbi5naG9zdC1zcG90bGlnaHQtZXllYnJvdy1kb3Qge1xyXG4gIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogb2tsY2goMC42NSAwLjAyMCA1MCk7XHJcbiAgYm94LXNoYWRvdzogMCAwIDZweCBva2xjaCgwLjY1IDAuMDIwIDUwIC8gMC40MCk7XHJcbn1cclxuLmdob3N0LXNwb3RsaWdodC1ib2R5IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDU2cHg7XHJcbiAgZ2FwOiAxNHB4O1xyXG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcclxufVxyXG4uZ2hvc3Qtc3BvdGxpZ2h0LXRleHQgeyBtaW4td2lkdGg6IDA7IH1cclxuLmdob3N0LXNwb3RsaWdodC1oZWFkbGluZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsLCB2YXIoLS1mLWJvZHkpKTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXNpemU6IDIxcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XHJcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICBtYXJnaW46IDAgMCA2cHg7XHJcbn1cclxuLmdob3N0LXNwb3RsaWdodC1lcmEge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgbWFyZ2luOiAwIDAgMTBweDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcbi5naG9zdC1zcG90bGlnaHQtcHJvc2Uge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICBtYXJnaW46IDAgMCAxMHB4O1xyXG59XHJcbi5naG9zdC1zcG90bGlnaHQtbWV0YSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbn1cclxuLmdob3N0LXNwb3RsaWdodC1hcnJvdyB7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuLmdob3N0LXNwb3RsaWdodC1zaWdpbCB7XHJcbiAgd2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDtcclxuICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzMCUgMzAlLCBva2xjaCgwLjMyIDAuMDIwIDUwIC8gMC4zMCksIHRyYW5zcGFyZW50IDcwJSksXHJcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBva2xjaCgwLjIwIDAuMDE1IDI3MCksIG9rbGNoKDAuMTQgMC4wMjAgMjcwKSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgb2tsY2goMC4zMCAwLjAxNSA1MCAvIDAuNDApO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgb2tsY2goMC41MCAwLjAyMCA1MCAvIDAuMjApO1xyXG59XHJcbi5naG9zdC1zcG90bGlnaHQtc2lnaWwtbWFyayB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtZWRpdG9yaWFsLCBzZXJpZik7XHJcbiAgZm9udC1zaXplOiAzMHB4O1xyXG4gIGNvbG9yOiBva2xjaCgwLjU1IDAuMDIwIDUwKTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuNCkpO1xyXG59XHJcbi5naG9zdC1zcG90bGlnaHQtY3RhIHtcclxuICBtYXJnaW4tdG9wOiAxNHB4O1xyXG4gIHBhZGRpbmctdG9wOiAxMnB4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBva2xjaCgwLjI1IDAuMDEwIDI3MCk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC1zaXplOiAxMXB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogb2tsY2goMC42NSAwLjAyMCA1MCk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG4uZ2hvc3Qtc3BvdGxpZ2h0LWNoZXZyb24ge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxuLyog4pSA4pSAIEhlcm8gZmFsbGJhY2sg4oCUIGRpc2NvdmVyeSBjaGlwcyB3aGVuIG5vIGxpdmUgZGF0YSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLmhlcm8tZmFsbGJhY2stY2hpcHMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGdhcDogOHB4O1xyXG4gIG1hcmdpbi10b3A6IDE2cHg7XHJcbn1cclxuLmhlcm8tY2hpcCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogN3B4O1xyXG4gIHBhZGRpbmc6IDlweCAxM3B4O1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNik7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KSwgdHJhbnNmb3JtIHZhcigtLW0tZmFzdCk7XHJcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG4uaGVyby1jaGlwOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsgfVxyXG4uaGVyby1jaGlwOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45Nik7IH1cclxuLmhlcm8tY2hpcC1pY29uIHtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZmlsdGVyOiBncmF5c2NhbGUoMC40KSBicmlnaHRuZXNzKDEuMik7XHJcbn1cclxuLyogRmF2b3VyaXRlLXRlYW0gdGFnIGRpc3RpbmN0IGZyb20gZ2VuZXJpYyAqL1xyXG4uaGVyby10YWctZmF2IHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jLWJvbHQpLCBva2xjaCgwLjc4IDAuMTggODgpKTtcclxuICBjb2xvcjogb2tsY2goMC4xMyAwLjAyMCAyNzApO1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCBva2xjaCgwLjg2IDAuMTggOTIgLyAwLjQpO1xyXG59XHJcblxyXG4vKiDilIDilIAgUHlyYW1pZCBjYXJkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xyXG5mZi1ob21lLXB5cmFtaWQgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwIHZhcigtLXNwLTMpIHZhcigtLXNwLTQpOyB9XHJcbi5weXItY2FyZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgcGFkZGluZzogMThweDtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMzYwcHggMjIwcHggYXQgMCUgMTAwJSwgb2tsY2goMC43MiAwLjE4IDI2MCAvIDAuMTApLCB0cmFuc3BhcmVudCA2MCUpLFxyXG4gICAgbGluZWFyLWdyYWRpZW50KDE2NWRlZywgdmFyKC0tYy1zdXJmYWNlKSwgdmFyKC0tYy1zdXJmYWNlLTIpKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0yKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpLCBib3gtc2hhZG93IHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG59XHJcbi5weXItY2FyZDpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpOyB9XHJcbi5weXItY2FyZDphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpOyB9XHJcbi5weXItZXllYnJvdyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4O1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTAuNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG4ucHlyLWV5ZWJyb3ctZG90IHtcclxuICB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA2cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC41NSk7XHJcbn1cclxuLnB5ci1uYW1lIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcclxuICBjb2xvcjogdmFyKC0tYy1pbmspO1xyXG4gIG1hcmdpbjogMCAwIDhweDtcclxufVxyXG4ucHlyLWxpbmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG4gIG1hcmdpbjogMCAwIDE0cHg7XHJcbn1cclxuXHJcbi8qIE1pbmkgdGFibGUgcHJldmlldyAqL1xyXG4ucHlyLXRhYmxlIHtcclxuICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwIC8gMC4zNSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuLnB5ci1yb3cge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMHB4IDFmciA0MnB4IDUwcHggNTBweDtcclxuICBnYXA6IDZweDtcclxuICBwYWRkaW5nOiA4cHggMTJweDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgb2tsY2goMC4zMCAwLjAyMCAyNzAgLyAwLjMpO1xyXG59XHJcbi5weXItcm93OmZpcnN0LWNoaWxkIHsgYm9yZGVyLXRvcDogMDsgfVxyXG4ucHlyLXJvdy1oZWFkIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICBiYWNrZ3JvdW5kOiBva2xjaCgwLjEzIDAuMDIwIDI3MCAvIDAuNCk7XHJcbn1cclxuLnB5ci1wb3Mge1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxufVxyXG4ucHlyLWNsdWIge1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuLnB5ci1zdGF0IHtcclxuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxufVxyXG4ucHlyLXB0cyB7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLyogRmFsbGJhY2sgc3RhdCBzdHJpcCB3aGVuIG5vIHRhYmxlIHlldCAqL1xyXG4ucHlyLWZhbGxiYWNrIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XHJcbiAgZ2FwOiA4cHg7XHJcbn1cclxuLnB5ci1zdGF0LXRpbGUge1xyXG4gIHBhZGRpbmc6IDE0cHggMTBweDtcclxuICBiYWNrZ3JvdW5kOiBva2xjaCgwLjEzIDAuMDIwIDI3MCAvIDAuMzUpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLnB5ci1zdGF0LW51bSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xyXG59XHJcbi5weXItc3RhdC1sYmwge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG59XHJcblxyXG4ucHlyLWN0YSB7XHJcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG1hcmdpbi10b3A6IDE0cHg7XHJcbiAgcGFkZGluZy10b3A6IDEycHg7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaW0pO1xyXG59XHJcbi5weXItY3RhLWFycm93IHtcclxuICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbn1cclxuXHJcbi8qIOKUgOKUgCBTdGFtcHMgY2FyZCAobW9kZXJuaXNlZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbmZmLWhvbWUtc3RhbXBzIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCB2YXIoLS1zcC0zKSB2YXIoLS1zcC00KTsgfVxyXG4uc3RhbXBzLWNhcmQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIHBhZGRpbmc6IDE4cHg7XHJcbiAgYmFja2dyb3VuZDpcclxuICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDMyMHB4IDIwMHB4IGF0IDEwMCUgMCUsIG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMDgpLCB0cmFuc3BhcmVudCA2MCUpLFxyXG4gICAgdmFyKC0tYy1zdXJmYWNlKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWxpbmUpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0xKTtcclxufVxyXG4uc3RhbXBzLWV5ZWJyb3cge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG59XHJcblxyXG4vKiBQb3B1bGF0ZWQgc3RhdGUgKi9cclxuLnN0YW1wcy1zdGF0LXJvdyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xyXG4gIGdhcDogMTZweDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XHJcbn1cclxuLnN0YW1wcy1jb3VudCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgZ2FwOiA2cHg7IH1cclxuLnN0YW1wcy1jb3VudC1udW0ge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiAzOHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxufVxyXG4uc3RhbXBzLWNvdW50LWxibCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbn1cclxuLnN0YW1wcy1taWxlc3RvbmUge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4O1xyXG59XHJcbi5zdGFtcHMtbWlsZXN0b25lLWJhciB7XHJcbiAgaGVpZ2h0OiA2cHg7XHJcbiAgYmFja2dyb3VuZDogb2tsY2goMC4xMyAwLjAyMCAyNzAgLyAwLjUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuLnN0YW1wcy1taWxlc3RvbmUtZmlsbCB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYy1ib2x0KSwgb2tsY2goMC43OCAwLjE4IDg4KSk7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgdHJhbnNpdGlvbjogd2lkdGggdmFyKC0tbS1zbG93KSB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuLnN0YW1wcy1taWxlc3RvbmUtdGV4dCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxMS41cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG59XHJcbi5zdGFtcHMtcmVjZW50LWdyaWQge1xyXG4gIGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuLnN0YW1wcy1yZWNlbnQtY3Jlc3Qge1xyXG4gIHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7XHJcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICBiYWNrZ3JvdW5kOiBva2xjaCgwLjEzIDAuMDIwIDI3MCAvIDAuNSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgcGFkZGluZzogNHB4O1xyXG59XHJcbi5zdGFtcHMtcmVjZW50LWNyZXN0LWZhbGxiYWNrIHtcclxuICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG59XHJcblxyXG4vKiBFbXB0eSBzdGF0ZSAqL1xyXG4uc3RhbXBzLWVtcHR5IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XHJcbi5zdGFtcHMtZW1wdHktaGVhZCB7IG1hcmdpbi1ib3R0b206IDE0cHg7IH1cclxuLnN0YW1wcy1lbXB0eS10aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDE5cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgbWFyZ2luOiAwIDAgNnB4O1xyXG59XHJcbi5zdGFtcHMtZW1wdHktc3ViIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXNpemU6IDEzLjVweDtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBtYXgtd2lkdGg6IDM2Y2g7XHJcbn1cclxuLnN0YW1wcy1lbXB0eS1zYW1wbGVzIHtcclxuICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwO1xyXG4gIGdhcDogNHB4O1xyXG4gIG1hcmdpbjogMTZweCAwIDE4cHg7XHJcbn1cclxuLnN0YW1wcy1zYW1wbGUtY3Jlc3Qge1xyXG4gIHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDM2cHg7XHJcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcclxuICBiYWNrZ3JvdW5kOiBva2xjaCgwLjEzIDAuMDIwIDI3MCAvIDAuNSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgcGFkZGluZzogM3B4O1xyXG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKSk7XHJcbn1cclxuLnN0YW1wcy1zYW1wbGUtY3Jlc3QtZmFsbGJhY2sge1xyXG4gIGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbn1cclxuLnN0YW1wcy1lbXB0eS1jdGEge1xyXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGNvbG9yOiBva2xjaCgwLjEzIDAuMDIwIDI3MCk7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3gtc2hhZG93OiAwIDRweCAxNHB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuMzUpO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1tLWZhc3QpO1xyXG59XHJcbi5zdGFtcHMtZW1wdHktY3RhOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45Nik7IH1cclxuXHJcbi8qIOKUgOKUgCBTZWN0aW9uIGRpdmlkZXIg4oCUIHJlcGxhY2VzIHRoZSBhbG1hbmFjLXNlY3Rpb24taGVhZCBtYWdhemluZSBwYXR0ZXJuICovXHJcbi5ob21lLXNlY3Rpb24taGVhZCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgcGFkZGluZzogMCB2YXIoLS1zcC00KTtcclxuICBtYXJnaW46IDAgMCA4cHg7XHJcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XHJcbn1cclxuLmhvbWUtc2VjdGlvbi1oZWFkLWNvdW50IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG59XHJcblxyXG4vKiDilIDilIAgU2VjdGlvbiA5OiBmZi1ob21lLW5lYXJieSAoR1BTLWdhdGVkIG5lYXJieSBncm91bmRzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuZmYtaG9tZS1uZWFyYnkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogdmFyKC0tc3AtNCkgdmFyKC0tc3AtMykgdmFyKC0tc3AtNCk7XHJcbn1cclxuXHJcbi5uZWFyYnktY2FyZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gIHBhZGRpbmc6IDE2cHggMThweCAxOHB4O1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0xKTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubmVhcmJ5LWNhcmQtLWN0YSB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgMTgwZGVnLFxyXG4gICAgb2tsY2goMC4xOCAwLjAyNCAyNzApIDAlLFxyXG4gICAgb2tsY2goMC4xNiAwLjAyMiAyNzApIDEwMCVcclxuICApO1xyXG59XHJcblxyXG4ubmVhcmJ5LWNhcmQtLWN0YTo6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaW5zZXQ6IC01MCUgLTIwJSBhdXRvIGF1dG87XHJcbiAgd2lkdGg6IDIyMHB4O1xyXG4gIGhlaWdodDogMjIwcHg7XHJcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tYy1ib2x0KSAwJSwgdHJhbnNwYXJlbnQgNjAlKTtcclxuICBvcGFjaXR5OiAwLjEwO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4ubmVhcmJ5LWV5ZWJyb3cge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiA4cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLm5lYXJieS1leWVicm93LWRvdCB7XHJcbiAgd2lkdGg6IDdweDtcclxuICBoZWlnaHQ6IDdweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib2x0KTtcclxuICBib3gtc2hhZG93OiAwIDAgOHB4IHZhcigtLWMtYm9sdCk7XHJcbn1cclxuXHJcbi5uZWFyYnktY3RhLWhlYWRsaW5lIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1kaXNwbGF5KTtcclxuICBmb250LXNpemU6IDIycHg7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWluayk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICBtYXJnaW46IDAgMCA2cHg7XHJcbn1cclxuXHJcbi5uZWFyYnktY3RhLWxpbmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWJvZHkpO1xyXG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICBtYXJnaW46IDAgMCAxNHB4O1xyXG4gIG1heC13aWR0aDogMzZjaDtcclxufVxyXG5cclxuLm5lYXJieS1jdGEtYnRuIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgcGFkZGluZzogMTBweCAxNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9sdCk7XHJcbiAgY29sb3I6IG9rbGNoKDAuMTMgMC4wMjAgMjcwKTtcclxuICBib3JkZXI6IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KSxcclxuICAgICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpO1xyXG59XHJcblxyXG4ubmVhcmJ5LWN0YS1idG46aG92ZXIge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcclxuICBib3gtc2hhZG93OiAwIDRweCAxNHB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuNDUpO1xyXG59XHJcblxyXG4ubmVhcmJ5LWN0YS1idG46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsgfVxyXG5cclxuLm5lYXJieS1jdGEtYnRuOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjY7XHJcbiAgY3Vyc29yOiBwcm9ncmVzcztcclxufVxyXG5cclxuLm5lYXJieS1yb3dzIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdhcDogOHB4O1xyXG4gIG1hcmdpbi10b3A6IDRweDtcclxufVxyXG5cclxuLm5lYXJieS1yb3cge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDFmciBhdXRvO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAxMnB4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAvKiBTb2Z0IGNsdWItdGludCBsZWZ0IOKGkiBuZXV0cmFsIHJpZ2h0OyByb3cgcmVhZHMgdGhlIHRlYW0gY29sb3JcclxuICAgICB3aXRob3V0IGJlY29taW5nIGEgYmlsbGJvYXJkLiAqL1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgIDkwZGVnLFxyXG4gICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgMTIlLCBva2xjaCgwLjIwIDAuMDIyIDI3MCkpIDAlLFxyXG4gICAgb2tsY2goMC4yMCAwLjAyMiAyNzApIDUwJVxyXG4gICk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWNsdWItYWNjZW50LCB2YXIoLS1jLWJvbHQpKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLW0tZmFzdCkgdmFyKC0tbS1zbmFwcHkpLFxyXG4gICAgICAgICAgICAgIHRyYW5zZm9ybSB2YXIoLS1tLWZhc3QpIHZhcigtLW0tc25hcHB5KTtcclxufVxyXG5cclxuLm5lYXJieS1yb3c6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuICAgIDkwZGVnLFxyXG4gICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgMjAlLCB2YXIoLS1jLXN1cmZhY2UtMikpIDAlLFxyXG4gICAgdmFyKC0tYy1zdXJmYWNlLTIpIDU1JVxyXG4gICk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XHJcbn1cclxuXHJcbi5uZWFyYnktcm93OmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OSk7IH1cclxuXHJcbi5uZWFyYnktY3Jlc3Qge1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGhlaWdodDogNDBweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcclxuICAgIGNpcmNsZSBhdCAzMCUgMjUlLFxyXG4gICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgODAlLCB3aGl0ZSkgMCUsXHJcbiAgICB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgNjUlLFxyXG4gICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgNjUlLCBva2xjaCgwLjEyIDAuMDIwIDI3MCkpIDEwMCVcclxuICApO1xyXG4gIGNvbG9yOiBva2xjaCgwLjk5IDAgMCAvIDAuOTUpO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gIGJveC1zaGFkb3c6XHJcbiAgICBpbnNldCAwIDFweCAwIG9rbGNoKDEgMCAwIC8gMC4xOCksXHJcbiAgICBpbnNldCAwIC00cHggOHB4IG9rbGNoKDAgMCAwIC8gMC4xNSksXHJcbiAgICAwIDRweCAxMHB4IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY2x1Yi1hY2NlbnQsIHZhcigtLWMtYm9sdCkpIDQwJSwgdHJhbnNwYXJlbnQpO1xyXG59XHJcblxyXG4ubmVhcmJ5LXJvdy1ib2R5IHtcclxuICBtaW4td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5uZWFyYnktcm93LW5hbWUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICBsaW5lLWhlaWdodDogMS4xO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxufVxyXG5cclxuLm5lYXJieS1yb3ctbWV0YSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtYm9keSk7XHJcbiAgZm9udC1zaXplOiAxMS41cHg7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxuICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcblxyXG4ubmVhcmJ5LWRpc3Qge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLXN0ZW5jaWwpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XHJcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcbiAgLm5lYXJieS1yb3cgeyB0cmFuc2l0aW9uOiBub25lOyB9XHJcbiAgLm5lYXJieS1jdGEtYnRuIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxyXG59XHJcblxyXG4vKiDilIDilIAgZmYtaG9tZS1lZGl0b3Ig4oCUIFwiRnJvbSB0aGUgZWRpdG9yXCIgYWxtYW5hYyBlbnRyeSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cclxuLyogRWRpdG9yaWFsIHJlZ2lzdGVyOiBwYXBlciBncmFpbiB2aWEgU1ZHIHR1cmJ1bGVuY2UsIGl0YWxpYyBGcmF1bmNlc1xyXG4gICBib2R5IGNvcHksIGxhcmdlIHN0ZW5jaWwteWVsbG93IHNjb3JlbGluZSBhdCB0aGUgaGVhZGxpbmUuIFNhbWVcclxuICAgXCJhbG1hbmFjIHBhZ2VcIiByZWdpc3RlciB0aGUgVUsgYXBwIHVzZXMgZm9yIHRoZSBIMkggbW9kYWwuICovXHJcblxyXG5mZi1ob21lLWVkaXRvciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luOiB2YXIoLS1zcC00KSB2YXIoLS1zcC0zKTtcclxufVxyXG5cclxuLmVkaXRvci1jYXJkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG4gICAgMTgwZGVnLFxyXG4gICAgb2tsY2goMC4yMCAwLjAyNCAyNzApIDAlLFxyXG4gICAgb2tsY2goMC4xNiAwLjAyMiAyNzApIDEwMCVcclxuICApO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtbGluZSk7XHJcbiAgYm9yZGVyLXJhZGl1czogMThweDtcclxuICBwYWRkaW5nOiAyMHB4IDIycHggMjJweDtcclxuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMik7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBpc29sYXRpb246IGlzb2xhdGU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMjBtcyB2YXIoLS1tLXNuYXBweSksXHJcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyAyMjBtcyB2YXIoLS1tLXNuYXBweSk7XHJcbn1cclxuXHJcbi5lZGl0b3ItY2FyZDpob3ZlciB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy0zKTtcclxufVxyXG5cclxuLmVkaXRvci1jYXJkOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OTUpOyB9XHJcblxyXG4uZWRpdG9yLWNhcmQ6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtYm9sdCk7XHJcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcclxufVxyXG5cclxuLyogQ2x1Yi1hY2NlbnQgaGFsbyBibGVlZGluZyBmcm9tIHRoZSB0b3AtcmlnaHQgKyBhIHN1YnRsZSB0aW50IGF0IHRoZVxyXG4gICBib3R0b20g4oCUIHR3by1wb2ludCBncmFkaWVudCBmb3IgcmljaGVyIHN1cmZhY2UuIFVzZXMgY29sb3ItbWl4IHNvXHJcbiAgIHRoZSB0aW50IGNvbG9ycyBzdGF5IHBlcmNlcHR1YWxseS11bmlmb3JtIGFjcm9zcyBhbGwgMjAyIGNsdWIgaHVlcy4gKi9cclxuLmVkaXRvci1jYXJkOjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBpbnNldDogMDtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KFxyXG4gICAgICBlbGxpcHNlIDYwJSA1MCUgYXQgOTAlIC0xMCUsXHJcbiAgICAgIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY2x1Yi1hY2NlbnQsIHZhcigtLWMtYm9sdCkpIDUwJSwgdHJhbnNwYXJlbnQpIDAlLFxyXG4gICAgICB0cmFuc3BhcmVudCA2MCVcclxuICAgICksXHJcbiAgICByYWRpYWwtZ3JhZGllbnQoXHJcbiAgICAgIGVsbGlwc2UgNzAlIDQwJSBhdCAxMCUgMTEwJSxcclxuICAgICAgY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jbHViLWFjY2VudCwgdmFyKC0tYy1ib2x0KSkgMzAlLCB0cmFuc3BhcmVudCkgMCUsXHJcbiAgICAgIHRyYW5zcGFyZW50IDU1JVxyXG4gICAgKTtcclxuICBvcGFjaXR5OiAwLjU1O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIHotaW5kZXg6IDA7XHJcbiAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjtcclxufVxyXG5cclxuLyogUGFwZXIgZ3JhaW4g4oCUIHN1YnRsZSBTVkcgdHVyYnVsZW5jZSwgVUsgwqc4LjkgdHJpY2sgKi9cclxuLmVkaXRvci1jYXJkOjphZnRlciB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGluc2V0OiAwO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQwJyBoZWlnaHQ9JzI0MCc+PGZpbHRlciBpZD0nbic+PGZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuODUnIG51bU9jdGF2ZXM9JzInIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9JzAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMDYgMCcvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1JyBmaWx0ZXI9J3VybCglMjNuKScvPjwvc3ZnPlwiKTtcclxuICBtaXgtYmxlbmQtbW9kZTogb3ZlcmxheTtcclxuICBvcGFjaXR5OiAwLjU1O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5lZGl0b3ItY2FyZCA+ICoge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAyO1xyXG59XHJcblxyXG4uZWRpdG9yLWV5ZWJyb3cge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTBweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiA4cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcclxufVxyXG5cclxuLmVkaXRvci1leWVicm93LWRvdCB7XHJcbiAgd2lkdGg6IDZweDtcclxuICBoZWlnaHQ6IDZweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib2x0KTtcclxuICBib3gtc2hhZG93OiAwIDAgNnB4IHZhcigtLWMtYm9sdCk7XHJcbn1cclxuXHJcbi5lZGl0b3ItaGVhZGxpbmUtcm93IHsgbWFyZ2luLWJvdHRvbTogNHB4OyB9XHJcblxyXG4uZWRpdG9yLWZpeHR1cmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtc2l6ZTogY2xhbXAoMjJweCwgNnZ3LCAzMHB4KTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XHJcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcclxuICBsaW5lLWhlaWdodDogMS4wNTtcclxuICBtYXJnaW46IDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gIGdhcDogMTJweDtcclxufVxyXG5cclxuLmVkaXRvci10ZWFtIHsgY29sb3I6IHZhcigtLWMtaW5rKTsgfVxyXG5cclxuLmVkaXRvci1zY29yZSB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtc3RlbmNpbCk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDh2dywgNDBweCk7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcclxuICB0ZXh0LXNoYWRvdzogMCAycHggMCBva2xjaCgwLjEzIDAuMDIgMjcwIC8gMC42KTtcclxufVxyXG5cclxuLmVkaXRvci1sZWFndWUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgbWFyZ2luOiA4cHggMCAxNHB4O1xyXG59XHJcblxyXG4uZWRpdG9yLWJvZHkge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWVkaXRvcmlhbCk7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGZvbnQtc2l6ZTogMTUuNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gIG1hcmdpbjogMCAwIDE2cHg7XHJcbiAgLyogRHJvcC1jYXAgb24gZmlyc3QgbGV0dGVyIOKAlCBwdXJlIGFsbWFuYWMgdm9pY2UgKi9cclxuICB0ZXh0LWluZGVudDogMDtcclxufVxyXG5cclxuLmVkaXRvci1ib2R5OjpmaXJzdC1sZXR0ZXIge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWRpc3BsYXkpO1xyXG4gIGZvbnQtc2l6ZTogMi4yZW07XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgbGluZS1oZWlnaHQ6IDAuOTU7XHJcbiAgcGFkZGluZy1yaWdodDogOHB4O1xyXG4gIHBhZGRpbmctdG9wOiA0cHg7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdCk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XHJcbn1cclxuXHJcbi5lZGl0b3ItZm9vdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gIGdhcDogMTJweDtcclxuICBwYWRkaW5nLXRvcDogMTJweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxufVxyXG5cclxuLmVkaXRvci1ieWxpbmUge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLW1vbm8pO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMnB4O1xyXG4gIGN1cnNvcjogaGVscDtcclxufVxyXG5cclxuLmVkaXRvci1ieWxpbmUtLWFpIHtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxufVxyXG5cclxuLmVkaXRvci1zcGFya2xlIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNHB4IG9rbGNoKDAuODYgMC4xOCA5MiAvIDAuNikpO1xyXG59XHJcblxyXG4uZWRpdG9yLWZyZXNoIHtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbi5lZGl0b3ItY3RhIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG59XHJcblxyXG4vKiDilIDilIAgV2lyZSB2YXJpYW50OiBsaWdodGVyLCBkYXNoZWQgYWNjZW50LCBubyBlZGl0b3JpYWwgYmxlZWQg4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5lZGl0b3ItY2FyZC0td2lyZSB7XHJcbiAgYmFja2dyb3VuZDogb2tsY2goMC4xNiAwLjAxOCAyNzApO1xyXG59XHJcbi5lZGl0b3ItY2FyZC0td2lyZTo6YmVmb3JlIHsgb3BhY2l0eTogMC4wNjsgfVxyXG4uZWRpdG9yLWNhcmQtLXdpcmUgLmVkaXRvci1ib2R5LS13aXJlIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGltKTtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG59XHJcbi5lZGl0b3ItY2FyZC0td2lyZSAuZWRpdG9yLWJvZHktLXdpcmU6OmZpcnN0LWxldHRlciB7XHJcbiAgLyogTm8gZHJvcC1jYXAgb24gd2lyZSBjb3B5IOKAlCBpdCdzIG5vdCBhbiBlZGl0b3JpYWwgcmVnaXN0ZXIgKi9cclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgZmxvYXQ6IG5vbmU7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLyog4pSA4pSAIFNvdXJjZS1kYXRhIDxkZXRhaWxzPiByb3cgKFVLIMKnOC41MCBuYXRpdmUgZXhwYW5kYWJsZSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5lZGl0b3Itc291cmNlIHtcclxuICBtYXJnaW46IDE0cHggLTZweCA2cHg7XHJcbiAgcGFkZGluZzogOHB4IDEycHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1saW5lKTtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGJhY2tncm91bmQ6IG9rbGNoKDAuMTMgMC4wMjAgMjcwIC8gMC40KTtcclxufVxyXG5cclxuLmVkaXRvci1zb3VyY2Utc3VtbWFyeSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC1zaXplOiAxMXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG4uZWRpdG9yLXNvdXJjZS1zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTogbm9uZTsgfVxyXG4uZWRpdG9yLXNvdXJjZS1zdW1tYXJ5OjptYXJrZXIgeyBjb250ZW50OiAnJzsgfVxyXG5cclxuLmVkaXRvci1zb3VyY2UtY2hldnJvbiB7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIyMG1zIHZhcigtLW0tc3ByaW5nKTtcclxuICBjb2xvcjogdmFyKC0tYy1ib2x0KTtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbn1cclxuLmVkaXRvci1zb3VyY2Vbb3Blbl0gLmVkaXRvci1zb3VyY2UtY2hldnJvbiB7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG59XHJcblxyXG4uZWRpdG9yLXNvdXJjZS1ib2R5IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdhcDogNHB4O1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgYW5pbWF0aW9uOiBlZGl0b3JTb3VyY2VJbiAyODBtcyB2YXIoLS1tLXNwcmluZyk7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZWRpdG9yU291cmNlSW4ge1xyXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cclxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XHJcbn1cclxuXHJcbi5lZGl0b3Itc291cmNlLXJvdyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDkwcHggMWZyO1xyXG4gIGdhcDogMTBweDtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG5cclxuLmVkaXRvci1zb3VyY2Uta2V5IHtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGUpO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLmVkaXRvci1zb3VyY2UtdmFsIHtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxufVxyXG5cclxuLyog4pSA4pSAIERyb3AtY2FwIGNhcCBvbiBzbWFsbCBzY3JlZW5zIChpUGhvbmUgU0UgLyAzMjBweCBndWFyZCkg4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gIC5lZGl0b3ItYm9keTo6Zmlyc3QtbGV0dGVyIHtcclxuICAgIGZvbnQtc2l6ZTogMS44ZW07XHJcbiAgfVxyXG4gIC5lZGl0b3ItZml4dHVyZSB7XHJcbiAgICBmb250LXNpemU6IDE5cHg7XHJcbiAgfVxyXG4gIC5lZGl0b3Itc2NvcmUge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAuZWRpdG9yLWNhcmQgeyB0cmFuc2l0aW9uOiBub25lOyB9XHJcbiAgLmVkaXRvci1zb3VyY2UtY2hldnJvbiB7IHRyYW5zaXRpb246IG5vbmU7IH1cclxuICAuZWRpdG9yLXNvdXJjZS1ib2R5IHsgYW5pbWF0aW9uOiBub25lOyB9XHJcbn1cclxuXHJcbi8qIOKUgOKUgCBmZi1ob21lLWJyaWVmIOKAlCBwZXJzb25hbGlzZWQgZGFpbHkgYnJpZWYgYXQgdGhlIHRvcCBvZiBIb21lIOKUgOKUgOKUgOKUgCAqL1xyXG4vKiBTdWJ0bGVyIHRoYW4gdGhlIGVkaXRvciBjYXJkIOKAlCB0aGlzIGlzIGEgXCJ3aXNwXCIgLyBtYXJnaW4tbm90ZSB0aGF0XHJcbiAgIHNldHMgdGhlIGRheSdzIHRvbmUgd2l0aG91dCBjbGFpbWluZyBoZXJvIHN0YXR1cy4gKi9cclxuXHJcbmZmLWhvbWUtYnJpZWYge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogdmFyKC0tc3AtMykgdmFyKC0tc3AtMykgdmFyKC0tc3AtMik7XHJcbn1cclxuXHJcbi5icmllZi1jYXJkIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMTRweCAxNnB4IDEycHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcclxuICBiYWNrZ3JvdW5kOiBva2xjaCgwLjE1IDAuMDIwIDI3MCAvIDAuNik7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgb2tsY2goMC4yMiAwLjAyMCAyNzAgLyAwLjUpO1xyXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tYy1ib2x0KTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG5Ac3VwcG9ydHMgKGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KSkge1xyXG4gIC5icmllZi1jYXJkIHtcclxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpIHNhdHVyYXRlKDEuMik7XHJcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCkgc2F0dXJhdGUoMS4yKTtcclxuICB9XHJcbn1cclxuXHJcbi5icmllZi1jYXJkLS1mYWxsYmFjayB7XHJcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IGRhc2hlZDtcclxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tYy1saW5lKTtcclxufVxyXG5cclxuLmJyaWVmLWJvZHkge1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mLWVkaXRvcmlhbCk7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBsaW5lLWhlaWdodDogMS41O1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xyXG4gIG1hcmdpbjogMCAwIDEwcHg7XHJcbn1cclxuXHJcbi5icmllZi1mb290IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogOHB4O1xyXG59XHJcblxyXG4uYnJpZWYtYnlsaW5lIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1tb25vKTtcclxuICBmb250LXNpemU6IDEwLjVweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZSk7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDJweDtcclxuICBjdXJzb3I6IGhlbHA7XHJcbn1cclxuXHJcbi5icmllZi1ieWxpbmUtLWFpIHtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbn1cclxuXHJcbi5icmllZi1zcGFya2xlIHtcclxuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA0cHggb2tsY2goMC44NiAwLjE4IDkyIC8gMC41KSk7XHJcbn1cclxuXHJcbi5icmllZi1mcmVzaCB7XHJcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlKTtcclxufVxyXG5cclxuLyog4pSA4pSAIFRydXN0IGNoaXAg4oCUIG9uZS10aW1lIFwiQnVpbHQgb24geW91ciBkZXZpY2VcIiBtaWNyb2NvcHkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXHJcbi5icmllZi10cnVzdCB7XHJcbiAgbWFyZ2luOiA4cHggMCAxMHB4O1xyXG4gIHBhZGRpbmc6IDhweCAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBiYWNrZ3JvdW5kOiBva2xjaCgwLjg2IDAuMTggOTIgLyAwLjA2KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCBva2xjaCgwLjg2IDAuMTggOTIgLyAwLjE4KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGdhcDogMTBweDtcclxuICBhbmltYXRpb246IGJyaWVmVHJ1c3RJbiAzMjBtcyB2YXIoLS1tLXNwcmluZyk7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYnJpZWZUcnVzdEluIHtcclxuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyB9XHJcbiAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxyXG59XHJcblxyXG4uYnJpZWYtdHJ1c3QtdGV4dCB7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLWYtbW9ubyk7XHJcbiAgZm9udC1zaXplOiAxMC41cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcclxuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpbSk7XHJcbiAgZmxleDogMTtcclxuICBtaW4td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5icmllZi10cnVzdC1kaXNtaXNzIHtcclxuICBmb250LWZhbWlseTogdmFyKC0tZi1ib2R5KTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWJvbHQpO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAycHggNnB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4uYnJpZWYtdHJ1c3QtZGlzbWlzczpob3ZlciB7XHJcbiAgY29sb3I6IHZhcigtLWMtYm9sdC1kZWVwKTtcclxufVxyXG5cclxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcclxuICAuYnJpZWYtY2FyZCB7IHRyYW5zaXRpb246IG5vbmU7IH1cclxuICAuYnJpZWYtdHJ1c3QgeyBhbmltYXRpb246IG5vbmU7IH1cclxufVxyXG4iLCAiLyogcmVxdWlyZWQgc3R5bGVzICovXHJcblxyXG4ubGVhZmxldC1wYW5lLFxyXG4ubGVhZmxldC10aWxlLFxyXG4ubGVhZmxldC1tYXJrZXItaWNvbixcclxuLmxlYWZsZXQtbWFya2VyLXNoYWRvdyxcclxuLmxlYWZsZXQtdGlsZS1jb250YWluZXIsXHJcbi5sZWFmbGV0LXBhbmUgPiBzdmcsXHJcbi5sZWFmbGV0LXBhbmUgPiBjYW52YXMsXHJcbi5sZWFmbGV0LXpvb20tYm94LFxyXG4ubGVhZmxldC1pbWFnZS1sYXllcixcclxuLmxlYWZsZXQtbGF5ZXIge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRsZWZ0OiAwO1xyXG5cdHRvcDogMDtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRhaW5lciB7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHR9XHJcbi5sZWFmbGV0LXRpbGUsXHJcbi5sZWFmbGV0LW1hcmtlci1pY29uLFxyXG4ubGVhZmxldC1tYXJrZXItc2hhZG93IHtcclxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdCAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0ICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHQgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xyXG5cdH1cclxuLyogUHJldmVudHMgSUUxMSBmcm9tIGhpZ2hsaWdodGluZyB0aWxlcyBpbiBibHVlICovXHJcbi5sZWFmbGV0LXRpbGU6OnNlbGVjdGlvbiB7XHJcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuLyogU2FmYXJpIHJlbmRlcnMgbm9uLXJldGluYSB0aWxlIG9uIHJldGluYSBiZXR0ZXIgd2l0aCB0aGlzLCBidXQgQ2hyb21lIGlzIHdvcnNlICovXHJcbi5sZWFmbGV0LXNhZmFyaSAubGVhZmxldC10aWxlIHtcclxuXHRpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XHJcblx0fVxyXG4vKiBoYWNrIHRoYXQgcHJldmVudHMgaHcgbGF5ZXJzIFwic3RyZXRjaGluZ1wiIHdoZW4gbG9hZGluZyBuZXcgdGlsZXMgKi9cclxuLmxlYWZsZXQtc2FmYXJpIC5sZWFmbGV0LXRpbGUtY29udGFpbmVyIHtcclxuXHR3aWR0aDogMTYwMHB4O1xyXG5cdGhlaWdodDogMTYwMHB4O1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG5cdH1cclxuLmxlYWZsZXQtbWFya2VyLWljb24sXHJcbi5sZWFmbGV0LW1hcmtlci1zaGFkb3cge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuLyogLmxlYWZsZXQtY29udGFpbmVyIHN2ZzogcmVzZXQgc3ZnIG1heC13aWR0aCBkZWNsZXJhdGlvbiBzaGlwcGVkIGluIEpvb21sYSEgKGpvb21sYS5vcmcpIDMueCAqL1xyXG4vKiAubGVhZmxldC1jb250YWluZXIgaW1nOiBtYXAgaXMgYnJva2VuIGluIEZGIGlmIHlvdSBoYXZlIG1heC13aWR0aDogMTAwJSBvbiB0aWxlcyAqL1xyXG4ubGVhZmxldC1jb250YWluZXIgLmxlYWZsZXQtb3ZlcmxheS1wYW5lIHN2ZyB7XHJcblx0bWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XHJcblx0bWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xyXG5cdH1cclxuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LW1hcmtlci1wYW5lIGltZyxcclxuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LXNoYWRvdy1wYW5lIGltZyxcclxuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LXRpbGUtcGFuZSBpbWcsXHJcbi5sZWFmbGV0LWNvbnRhaW5lciBpbWcubGVhZmxldC1pbWFnZS1sYXllcixcclxuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LXRpbGUge1xyXG5cdG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xyXG5cdG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcclxuXHR3aWR0aDogYXV0bztcclxuXHRwYWRkaW5nOiAwO1xyXG5cdH1cclxuXHJcbi5sZWFmbGV0LWNvbnRhaW5lciBpbWcubGVhZmxldC10aWxlIHtcclxuXHQvKiBTZWU6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTYwMDEyMCAqL1xyXG5cdG1peC1ibGVuZC1tb2RlOiBwbHVzLWxpZ2h0ZXI7XHJcbn1cclxuXHJcbi5sZWFmbGV0LWNvbnRhaW5lci5sZWFmbGV0LXRvdWNoLXpvb20ge1xyXG5cdC1tcy10b3VjaC1hY3Rpb246IHBhbi14IHBhbi15O1xyXG5cdHRvdWNoLWFjdGlvbjogcGFuLXggcGFuLXk7XHJcblx0fVxyXG4ubGVhZmxldC1jb250YWluZXIubGVhZmxldC10b3VjaC1kcmFnIHtcclxuXHQtbXMtdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tO1xyXG5cdC8qIEZhbGxiYWNrIGZvciBGRiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgcGluY2gtem9vbSAqL1xyXG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcclxuXHR0b3VjaC1hY3Rpb246IHBpbmNoLXpvb207XHJcbn1cclxuLmxlYWZsZXQtY29udGFpbmVyLmxlYWZsZXQtdG91Y2gtZHJhZy5sZWFmbGV0LXRvdWNoLXpvb20ge1xyXG5cdC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XHJcblx0dG91Y2gtYWN0aW9uOiBub25lO1xyXG59XHJcbi5sZWFmbGV0LWNvbnRhaW5lciB7XHJcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG4ubGVhZmxldC1jb250YWluZXIgYSB7XHJcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDUxLCAxODEsIDIyOSwgMC40KTtcclxufVxyXG4ubGVhZmxldC10aWxlIHtcclxuXHRmaWx0ZXI6IGluaGVyaXQ7XHJcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdH1cclxuLmxlYWZsZXQtdGlsZS1sb2FkZWQge1xyXG5cdHZpc2liaWxpdHk6IGluaGVyaXQ7XHJcblx0fVxyXG4ubGVhZmxldC16b29tLWJveCB7XHJcblx0d2lkdGg6IDA7XHJcblx0aGVpZ2h0OiAwO1xyXG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHQgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0ei1pbmRleDogODAwO1xyXG5cdH1cclxuLyogd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MzE5ICovXHJcbi5sZWFmbGV0LW92ZXJsYXktcGFuZSBzdmcge1xyXG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0fVxyXG5cclxuLmxlYWZsZXQtcGFuZSAgICAgICAgIHsgei1pbmRleDogNDAwOyB9XHJcblxyXG4ubGVhZmxldC10aWxlLXBhbmUgICAgeyB6LWluZGV4OiAyMDA7IH1cclxuLmxlYWZsZXQtb3ZlcmxheS1wYW5lIHsgei1pbmRleDogNDAwOyB9XHJcbi5sZWFmbGV0LXNoYWRvdy1wYW5lICB7IHotaW5kZXg6IDUwMDsgfVxyXG4ubGVhZmxldC1tYXJrZXItcGFuZSAgeyB6LWluZGV4OiA2MDA7IH1cclxuLmxlYWZsZXQtdG9vbHRpcC1wYW5lICAgeyB6LWluZGV4OiA2NTA7IH1cclxuLmxlYWZsZXQtcG9wdXAtcGFuZSAgIHsgei1pbmRleDogNzAwOyB9XHJcblxyXG4ubGVhZmxldC1tYXAtcGFuZSBjYW52YXMgeyB6LWluZGV4OiAxMDA7IH1cclxuLmxlYWZsZXQtbWFwLXBhbmUgc3ZnICAgIHsgei1pbmRleDogMjAwOyB9XHJcblxyXG4ubGVhZmxldC12bWwtc2hhcGUge1xyXG5cdHdpZHRoOiAxcHg7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0fVxyXG4ubHZtbCB7XHJcblx0YmVoYXZpb3I6IHVybCgjZGVmYXVsdCNWTUwpO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0fVxyXG5cclxuXHJcbi8qIGNvbnRyb2wgcG9zaXRpb25pbmcgKi9cclxuXHJcbi5sZWFmbGV0LWNvbnRyb2wge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR6LWluZGV4OiA4MDA7XHJcblx0cG9pbnRlci1ldmVudHM6IHZpc2libGVQYWludGVkOyAvKiBJRSA5LTEwIGRvZXNuJ3QgaGF2ZSBhdXRvICovXHJcblx0cG9pbnRlci1ldmVudHM6IGF1dG87XHJcblx0fVxyXG4ubGVhZmxldC10b3AsXHJcbi5sZWFmbGV0LWJvdHRvbSB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHotaW5kZXg6IDEwMDA7XHJcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0fVxyXG4ubGVhZmxldC10b3Age1xyXG5cdHRvcDogMDtcclxuXHR9XHJcbi5sZWFmbGV0LXJpZ2h0IHtcclxuXHRyaWdodDogMDtcclxuXHR9XHJcbi5sZWFmbGV0LWJvdHRvbSB7XHJcblx0Ym90dG9tOiAwO1xyXG5cdH1cclxuLmxlYWZsZXQtbGVmdCB7XHJcblx0bGVmdDogMDtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRyb2wge1xyXG5cdGZsb2F0OiBsZWZ0O1xyXG5cdGNsZWFyOiBib3RoO1xyXG5cdH1cclxuLmxlYWZsZXQtcmlnaHQgLmxlYWZsZXQtY29udHJvbCB7XHJcblx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdH1cclxuLmxlYWZsZXQtdG9wIC5sZWFmbGV0LWNvbnRyb2wge1xyXG5cdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0fVxyXG4ubGVhZmxldC1ib3R0b20gLmxlYWZsZXQtY29udHJvbCB7XHJcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcbi5sZWFmbGV0LWxlZnQgLmxlYWZsZXQtY29udHJvbCB7XHJcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XHJcblx0fVxyXG4ubGVhZmxldC1yaWdodCAubGVhZmxldC1jb250cm9sIHtcclxuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cclxuXHJcbi8qIHpvb20gYW5kIGZhZGUgYW5pbWF0aW9ucyAqL1xyXG5cclxuLmxlYWZsZXQtZmFkZS1hbmltIC5sZWFmbGV0LXBvcHVwIHtcclxuXHRvcGFjaXR5OiAwO1xyXG5cdC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjtcclxuXHQgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XHJcblx0ICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyO1xyXG5cdH1cclxuLmxlYWZsZXQtZmFkZS1hbmltIC5sZWFmbGV0LW1hcC1wYW5lIC5sZWFmbGV0LXBvcHVwIHtcclxuXHRvcGFjaXR5OiAxO1xyXG5cdH1cclxuLmxlYWZsZXQtem9vbS1hbmltYXRlZCB7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcblx0ICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcblx0ICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcblx0fVxyXG5zdmcubGVhZmxldC16b29tLWFuaW1hdGVkIHtcclxuXHR3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG59XHJcblxyXG4ubGVhZmxldC16b29tLWFuaW0gLmxlYWZsZXQtem9vbS1hbmltYXRlZCB7XHJcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwwLDAuMjUsMSk7XHJcblx0ICAgLW1vei10cmFuc2l0aW9uOiAgICAtbW96LXRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwwLDAuMjUsMSk7XHJcblx0ICAgICAgICB0cmFuc2l0aW9uOiAgICAgICAgIHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwwLDAuMjUsMSk7XHJcblx0fVxyXG4ubGVhZmxldC16b29tLWFuaW0gLmxlYWZsZXQtdGlsZSxcclxuLmxlYWZsZXQtcGFuLWFuaW0gLmxlYWZsZXQtdGlsZSB7XHJcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xyXG5cdCAgIC1tb3otdHJhbnNpdGlvbjogbm9uZTtcclxuXHQgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XHJcblx0fVxyXG5cclxuLmxlYWZsZXQtem9vbS1hbmltIC5sZWFmbGV0LXpvb20taGlkZSB7XHJcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdH1cclxuXHJcblxyXG4vKiBjdXJzb3JzICovXHJcblxyXG4ubGVhZmxldC1pbnRlcmFjdGl2ZSB7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdH1cclxuLmxlYWZsZXQtZ3JhYiB7XHJcblx0Y3Vyc29yOiAtd2Via2l0LWdyYWI7XHJcblx0Y3Vyc29yOiAgICAtbW96LWdyYWI7XHJcblx0Y3Vyc29yOiAgICAgICAgIGdyYWI7XHJcblx0fVxyXG4ubGVhZmxldC1jcm9zc2hhaXIsXHJcbi5sZWFmbGV0LWNyb3NzaGFpciAubGVhZmxldC1pbnRlcmFjdGl2ZSB7XHJcblx0Y3Vyc29yOiBjcm9zc2hhaXI7XHJcblx0fVxyXG4ubGVhZmxldC1wb3B1cC1wYW5lLFxyXG4ubGVhZmxldC1jb250cm9sIHtcclxuXHRjdXJzb3I6IGF1dG87XHJcblx0fVxyXG4ubGVhZmxldC1kcmFnZ2luZyAubGVhZmxldC1ncmFiLFxyXG4ubGVhZmxldC1kcmFnZ2luZyAubGVhZmxldC1ncmFiIC5sZWFmbGV0LWludGVyYWN0aXZlLFxyXG4ubGVhZmxldC1kcmFnZ2luZyAubGVhZmxldC1tYXJrZXItZHJhZ2dhYmxlIHtcclxuXHRjdXJzb3I6IG1vdmU7XHJcblx0Y3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xyXG5cdGN1cnNvcjogICAgLW1vei1ncmFiYmluZztcclxuXHRjdXJzb3I6ICAgICAgICAgZ3JhYmJpbmc7XHJcblx0fVxyXG5cclxuLyogbWFya2VyICYgb3ZlcmxheXMgaW50ZXJhY3Rpdml0eSAqL1xyXG4ubGVhZmxldC1tYXJrZXItaWNvbixcclxuLmxlYWZsZXQtbWFya2VyLXNoYWRvdyxcclxuLmxlYWZsZXQtaW1hZ2UtbGF5ZXIsXHJcbi5sZWFmbGV0LXBhbmUgPiBzdmcgcGF0aCxcclxuLmxlYWZsZXQtdGlsZS1jb250YWluZXIge1xyXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdH1cclxuXHJcbi5sZWFmbGV0LW1hcmtlci1pY29uLmxlYWZsZXQtaW50ZXJhY3RpdmUsXHJcbi5sZWFmbGV0LWltYWdlLWxheWVyLmxlYWZsZXQtaW50ZXJhY3RpdmUsXHJcbi5sZWFmbGV0LXBhbmUgPiBzdmcgcGF0aC5sZWFmbGV0LWludGVyYWN0aXZlLFxyXG5zdmcubGVhZmxldC1pbWFnZS1sYXllci5sZWFmbGV0LWludGVyYWN0aXZlIHBhdGgge1xyXG5cdHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlUGFpbnRlZDsgLyogSUUgOS0xMCBkb2Vzbid0IGhhdmUgYXV0byAqL1xyXG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdH1cclxuXHJcbi8qIHZpc3VhbCB0d2Vha3MgKi9cclxuXHJcbi5sZWFmbGV0LWNvbnRhaW5lciB7XHJcblx0YmFja2dyb3VuZDogI2RkZDtcclxuXHRvdXRsaW5lLW9mZnNldDogMXB4O1xyXG5cdH1cclxuLmxlYWZsZXQtY29udGFpbmVyIGEge1xyXG5cdGNvbG9yOiAjMDA3OEE4O1xyXG5cdH1cclxuLmxlYWZsZXQtem9vbS1ib3gge1xyXG5cdGJvcmRlcjogMnB4IGRvdHRlZCAjMzhmO1xyXG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTtcclxuXHR9XHJcblxyXG5cclxuLyogZ2VuZXJhbCB0eXBvZ3JhcGh5ICovXHJcbi5sZWFmbGV0LWNvbnRhaW5lciB7XHJcblx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0Zm9udC1zaXplOiAwLjc1cmVtO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjU7XHJcblx0fVxyXG5cclxuXHJcbi8qIGdlbmVyYWwgdG9vbGJhciBzdHlsZXMgKi9cclxuXHJcbi5sZWFmbGV0LWJhciB7XHJcblx0Ym94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC42NSk7XHJcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdH1cclxuLmxlYWZsZXQtYmFyIGEge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XHJcblx0d2lkdGg6IDI2cHg7XHJcblx0aGVpZ2h0OiAyNnB4O1xyXG5cdGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0Y29sb3I6IGJsYWNrO1xyXG5cdH1cclxuLmxlYWZsZXQtYmFyIGEsXHJcbi5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXRvZ2dsZSB7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxuLmxlYWZsZXQtYmFyIGE6aG92ZXIsXHJcbi5sZWFmbGV0LWJhciBhOmZvY3VzIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xyXG5cdH1cclxuLmxlYWZsZXQtYmFyIGE6Zmlyc3QtY2hpbGQge1xyXG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcclxuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xyXG5cdH1cclxuLmxlYWZsZXQtYmFyIGE6bGFzdC1jaGlsZCB7XHJcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xyXG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XHJcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcclxuXHR9XHJcbi5sZWFmbGV0LWJhciBhLmxlYWZsZXQtZGlzYWJsZWQge1xyXG5cdGN1cnNvcjogZGVmYXVsdDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xyXG5cdGNvbG9yOiAjYmJiO1xyXG5cdH1cclxuXHJcbi5sZWFmbGV0LXRvdWNoIC5sZWFmbGV0LWJhciBhIHtcclxuXHR3aWR0aDogMzBweDtcclxuXHRoZWlnaHQ6IDMwcHg7XHJcblx0bGluZS1oZWlnaHQ6IDMwcHg7XHJcblx0fVxyXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1iYXIgYTpmaXJzdC1jaGlsZCB7XHJcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xyXG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XHJcblx0fVxyXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1iYXIgYTpsYXN0LWNoaWxkIHtcclxuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XHJcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcclxuXHR9XHJcblxyXG4vKiB6b29tIGNvbnRyb2wgKi9cclxuXHJcbi5sZWFmbGV0LWNvbnRyb2wtem9vbS1pbixcclxuLmxlYWZsZXQtY29udHJvbC16b29tLW91dCB7XHJcblx0Zm9udDogYm9sZCAxOHB4ICdMdWNpZGEgQ29uc29sZScsIE1vbmFjbywgbW9ub3NwYWNlO1xyXG5cdHRleHQtaW5kZW50OiAxcHg7XHJcblx0fVxyXG5cclxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtY29udHJvbC16b29tLWluLCAubGVhZmxldC10b3VjaCAubGVhZmxldC1jb250cm9sLXpvb20tb3V0ICB7XHJcblx0Zm9udC1zaXplOiAyMnB4O1xyXG5cdH1cclxuXHJcblxyXG4vKiBsYXllcnMgY29udHJvbCAqL1xyXG5cclxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMge1xyXG5cdGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuNCk7XHJcblx0YmFja2dyb3VuZDogI2ZmZjtcclxuXHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0fVxyXG4ubGVhZmxldC1jb250cm9sLWxheWVycy10b2dnbGUge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvbGF5ZXJzLnBuZyk7XHJcblx0d2lkdGg6IDM2cHg7XHJcblx0aGVpZ2h0OiAzNnB4O1xyXG5cdH1cclxuLmxlYWZsZXQtcmV0aW5hIC5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXRvZ2dsZSB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9sYXllcnMtMngucG5nKTtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IDI2cHggMjZweDtcclxuXHR9XHJcbi5sZWFmbGV0LXRvdWNoIC5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXRvZ2dsZSB7XHJcblx0d2lkdGg6IDQ0cHg7XHJcblx0aGVpZ2h0OiA0NHB4O1xyXG5cdH1cclxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMgLmxlYWZsZXQtY29udHJvbC1sYXllcnMtbGlzdCxcclxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMtZXhwYW5kZWQgLmxlYWZsZXQtY29udHJvbC1sYXllcnMtdG9nZ2xlIHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMtZXhwYW5kZWQgLmxlYWZsZXQtY29udHJvbC1sYXllcnMtbGlzdCB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMtZXhwYW5kZWQge1xyXG5cdHBhZGRpbmc6IDZweCAxMHB4IDZweCA2cHg7XHJcblx0Y29sb3I6ICMzMzM7XHJcblx0YmFja2dyb3VuZDogI2ZmZjtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXNjcm9sbGJhciB7XHJcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xyXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHRwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcblx0fVxyXG4ubGVhZmxldC1jb250cm9sLWxheWVycy1zZWxlY3RvciB7XHJcblx0bWFyZ2luLXRvcDogMnB4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR0b3A6IDFweDtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzIGxhYmVsIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRmb250LXNpemU6IDEzcHg7XHJcblx0Zm9udC1zaXplOiAxLjA4MzMzZW07XHJcblx0fVxyXG4ubGVhZmxldC1jb250cm9sLWxheWVycy1zZXBhcmF0b3Ige1xyXG5cdGhlaWdodDogMDtcclxuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcclxuXHRtYXJnaW46IDVweCAtMTBweCA1cHggLTZweDtcclxuXHR9XHJcblxyXG4vKiBEZWZhdWx0IGljb24gVVJMcyAqL1xyXG4ubGVhZmxldC1kZWZhdWx0LWljb24tcGF0aCB7IC8qIHVzZWQgb25seSBpbiBwYXRoLWd1ZXNzaW5nIGhldXJpc3RpYywgc2VlIEwuSWNvbi5EZWZhdWx0ICovXHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9tYXJrZXItaWNvbi5wbmcpO1xyXG5cdH1cclxuXHJcblxyXG4vKiBhdHRyaWJ1dGlvbiBhbmQgc2NhbGUgY29udHJvbHMgKi9cclxuXHJcbi5sZWFmbGV0LWNvbnRhaW5lciAubGVhZmxldC1jb250cm9sLWF0dHJpYnV0aW9uIHtcclxuXHRiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcclxuXHRtYXJnaW46IDA7XHJcblx0fVxyXG4ubGVhZmxldC1jb250cm9sLWF0dHJpYnV0aW9uLFxyXG4ubGVhZmxldC1jb250cm9sLXNjYWxlLWxpbmUge1xyXG5cdHBhZGRpbmc6IDAgNXB4O1xyXG5cdGNvbG9yOiAjMzMzO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XHJcblx0fVxyXG4ubGVhZmxldC1jb250cm9sLWF0dHJpYnV0aW9uIGEge1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRyb2wtYXR0cmlidXRpb24gYTpob3ZlcixcclxuLmxlYWZsZXQtY29udHJvbC1hdHRyaWJ1dGlvbiBhOmZvY3VzIHtcclxuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHR9XHJcbi5sZWFmbGV0LWF0dHJpYnV0aW9uLWZsYWcge1xyXG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xyXG5cdHdpZHRoOiAxZW07XHJcblx0aGVpZ2h0OiAwLjY2NjllbTtcclxuXHR9XHJcbi5sZWFmbGV0LWxlZnQgLmxlYWZsZXQtY29udHJvbC1zY2FsZSB7XHJcblx0bWFyZ2luLWxlZnQ6IDVweDtcclxuXHR9XHJcbi5sZWFmbGV0LWJvdHRvbSAubGVhZmxldC1jb250cm9sLXNjYWxlIHtcclxuXHRtYXJnaW4tYm90dG9tOiA1cHg7XHJcblx0fVxyXG4ubGVhZmxldC1jb250cm9sLXNjYWxlLWxpbmUge1xyXG5cdGJvcmRlcjogMnB4IHNvbGlkICM3Nzc7XHJcblx0Ym9yZGVyLXRvcDogbm9uZTtcclxuXHRsaW5lLWhlaWdodDogMS4xO1xyXG5cdHBhZGRpbmc6IDJweCA1cHggMXB4O1xyXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdCAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XHJcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggI2ZmZjtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRyb2wtc2NhbGUtbGluZTpub3QoOmZpcnN0LWNoaWxkKSB7XHJcblx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICM3Nzc7XHJcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcclxuXHRtYXJnaW4tdG9wOiAtMnB4O1xyXG5cdH1cclxuLmxlYWZsZXQtY29udHJvbC1zY2FsZS1saW5lOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xyXG5cdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNzc3O1xyXG5cdH1cclxuXHJcbi5sZWFmbGV0LXRvdWNoIC5sZWFmbGV0LWNvbnRyb2wtYXR0cmlidXRpb24sXHJcbi5sZWFmbGV0LXRvdWNoIC5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLFxyXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1iYXIge1xyXG5cdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0fVxyXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1jb250cm9sLWxheWVycyxcclxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtYmFyIHtcclxuXHRib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7XHJcblx0YmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHR9XHJcblxyXG5cclxuLyogcG9wdXAgKi9cclxuXHJcbi5sZWFmbGV0LXBvcHVwIHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0fVxyXG4ubGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXIge1xyXG5cdHBhZGRpbmc6IDFweDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XHJcblx0fVxyXG4ubGVhZmxldC1wb3B1cC1jb250ZW50IHtcclxuXHRtYXJnaW46IDEzcHggMjRweCAxM3B4IDIwcHg7XHJcblx0bGluZS1oZWlnaHQ6IDEuMztcclxuXHRmb250LXNpemU6IDEzcHg7XHJcblx0Zm9udC1zaXplOiAxLjA4MzMzZW07XHJcblx0bWluLWhlaWdodDogMXB4O1xyXG5cdH1cclxuLmxlYWZsZXQtcG9wdXAtY29udGVudCBwIHtcclxuXHRtYXJnaW46IDE3cHggMDtcclxuXHRtYXJnaW46IDEuM2VtIDA7XHJcblx0fVxyXG4ubGVhZmxldC1wb3B1cC10aXAtY29udGFpbmVyIHtcclxuXHR3aWR0aDogNDBweDtcclxuXHRoZWlnaHQ6IDIwcHg7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IDUwJTtcclxuXHRtYXJnaW4tdG9wOiAtMXB4O1xyXG5cdG1hcmdpbi1sZWZ0OiAtMjBweDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdH1cclxuLmxlYWZsZXQtcG9wdXAtdGlwIHtcclxuXHR3aWR0aDogMTdweDtcclxuXHRoZWlnaHQ6IDE3cHg7XHJcblx0cGFkZGluZzogMXB4O1xyXG5cclxuXHRtYXJnaW46IC0xMHB4IGF1dG8gMDtcclxuXHRwb2ludGVyLWV2ZW50czogYXV0bztcclxuXHJcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcblx0ICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcblx0ICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcblx0ICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcblx0fVxyXG4ubGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXIsXHJcbi5sZWFmbGV0LXBvcHVwLXRpcCB7XHJcblx0YmFja2dyb3VuZDogd2hpdGU7XHJcblx0Y29sb3I6ICMzMzM7XHJcblx0Ym94LXNoYWRvdzogMCAzcHggMTRweCByZ2JhKDAsMCwwLDAuNCk7XHJcblx0fVxyXG4ubGVhZmxldC1jb250YWluZXIgYS5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbiB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRyaWdodDogMDtcclxuXHRib3JkZXI6IG5vbmU7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdHdpZHRoOiAyNHB4O1xyXG5cdGhlaWdodDogMjRweDtcclxuXHRmb250OiAxNnB4LzI0cHggVGFob21hLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xyXG5cdGNvbG9yOiAjNzU3NTc1O1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHR9XHJcbi5sZWFmbGV0LWNvbnRhaW5lciBhLmxlYWZsZXQtcG9wdXAtY2xvc2UtYnV0dG9uOmhvdmVyLFxyXG4ubGVhZmxldC1jb250YWluZXIgYS5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbjpmb2N1cyB7XHJcblx0Y29sb3I6ICM1ODU4NTg7XHJcblx0fVxyXG4ubGVhZmxldC1wb3B1cC1zY3JvbGxlZCB7XHJcblx0b3ZlcmZsb3c6IGF1dG87XHJcblx0fVxyXG5cclxuLmxlYWZsZXQtb2xkaWUgLmxlYWZsZXQtcG9wdXAtY29udGVudC13cmFwcGVyIHtcclxuXHQtbXMtem9vbTogMTtcclxuXHR9XHJcbi5sZWFmbGV0LW9sZGllIC5sZWFmbGV0LXBvcHVwLXRpcCB7XHJcblx0d2lkdGg6IDI0cHg7XHJcblx0bWFyZ2luOiAwIGF1dG87XHJcblxyXG5cdC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChNMTE9MC43MDcxMDY3OCwgTTEyPTAuNzA3MTA2NzgsIE0yMT0tMC43MDcxMDY3OCwgTTIyPTAuNzA3MTA2NzgpXCI7XHJcblx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuTWF0cml4KE0xMT0wLjcwNzEwNjc4LCBNMTI9MC43MDcxMDY3OCwgTTIxPS0wLjcwNzEwNjc4LCBNMjI9MC43MDcxMDY3OCk7XHJcblx0fVxyXG5cclxuLmxlYWZsZXQtb2xkaWUgLmxlYWZsZXQtY29udHJvbC16b29tLFxyXG4ubGVhZmxldC1vbGRpZSAubGVhZmxldC1jb250cm9sLWxheWVycyxcclxuLmxlYWZsZXQtb2xkaWUgLmxlYWZsZXQtcG9wdXAtY29udGVudC13cmFwcGVyLFxyXG4ubGVhZmxldC1vbGRpZSAubGVhZmxldC1wb3B1cC10aXAge1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XHJcblx0fVxyXG5cclxuXHJcbi8qIGRpdiBpY29uICovXHJcblxyXG4ubGVhZmxldC1kaXYtaWNvbiB7XHJcblx0YmFja2dyb3VuZDogI2ZmZjtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjNjY2O1xyXG5cdH1cclxuXHJcblxyXG4vKiBUb29sdGlwICovXHJcbi8qIEJhc2Ugc3R5bGVzIGZvciB0aGUgZWxlbWVudCB0aGF0IGhhcyBhIHRvb2x0aXAgKi9cclxuLmxlYWZsZXQtdG9vbHRpcCB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHBhZGRpbmc6IDZweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XHJcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xyXG5cdGNvbG9yOiAjMjIyO1xyXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuXHR1c2VyLXNlbGVjdDogbm9uZTtcclxuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjQpO1xyXG5cdH1cclxuLmxlYWZsZXQtdG9vbHRpcC5sZWFmbGV0LWludGVyYWN0aXZlIHtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0cG9pbnRlci1ldmVudHM6IGF1dG87XHJcblx0fVxyXG4ubGVhZmxldC10b29sdGlwLXRvcDpiZWZvcmUsXHJcbi5sZWFmbGV0LXRvb2x0aXAtYm90dG9tOmJlZm9yZSxcclxuLmxlYWZsZXQtdG9vbHRpcC1sZWZ0OmJlZm9yZSxcclxuLmxlYWZsZXQtdG9vbHRpcC1yaWdodDpiZWZvcmUge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRib3JkZXI6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHRjb250ZW50OiBcIlwiO1xyXG5cdH1cclxuXHJcbi8qIERpcmVjdGlvbnMgKi9cclxuXHJcbi5sZWFmbGV0LXRvb2x0aXAtYm90dG9tIHtcclxuXHRtYXJnaW4tdG9wOiA2cHg7XHJcbn1cclxuLmxlYWZsZXQtdG9vbHRpcC10b3Age1xyXG5cdG1hcmdpbi10b3A6IC02cHg7XHJcbn1cclxuLmxlYWZsZXQtdG9vbHRpcC1ib3R0b206YmVmb3JlLFxyXG4ubGVhZmxldC10b29sdGlwLXRvcDpiZWZvcmUge1xyXG5cdGxlZnQ6IDUwJTtcclxuXHRtYXJnaW4tbGVmdDogLTZweDtcclxuXHR9XHJcbi5sZWFmbGV0LXRvb2x0aXAtdG9wOmJlZm9yZSB7XHJcblx0Ym90dG9tOiAwO1xyXG5cdG1hcmdpbi1ib3R0b206IC0xMnB4O1xyXG5cdGJvcmRlci10b3AtY29sb3I6ICNmZmY7XHJcblx0fVxyXG4ubGVhZmxldC10b29sdGlwLWJvdHRvbTpiZWZvcmUge1xyXG5cdHRvcDogMDtcclxuXHRtYXJnaW4tdG9wOiAtMTJweDtcclxuXHRtYXJnaW4tbGVmdDogLTZweDtcclxuXHRib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xyXG5cdH1cclxuLmxlYWZsZXQtdG9vbHRpcC1sZWZ0IHtcclxuXHRtYXJnaW4tbGVmdDogLTZweDtcclxufVxyXG4ubGVhZmxldC10b29sdGlwLXJpZ2h0IHtcclxuXHRtYXJnaW4tbGVmdDogNnB4O1xyXG59XHJcbi5sZWFmbGV0LXRvb2x0aXAtbGVmdDpiZWZvcmUsXHJcbi5sZWFmbGV0LXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcclxuXHR0b3A6IDUwJTtcclxuXHRtYXJnaW4tdG9wOiAtNnB4O1xyXG5cdH1cclxuLmxlYWZsZXQtdG9vbHRpcC1sZWZ0OmJlZm9yZSB7XHJcblx0cmlnaHQ6IDA7XHJcblx0bWFyZ2luLXJpZ2h0OiAtMTJweDtcclxuXHRib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcclxuXHR9XHJcbi5sZWFmbGV0LXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcclxuXHRsZWZ0OiAwO1xyXG5cdG1hcmdpbi1sZWZ0OiAtMTJweDtcclxuXHRib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7XHJcblx0fVxyXG5cclxuLyogUHJpbnRpbmcgKi9cclxuXHJcbkBtZWRpYSBwcmludCB7XHJcblx0LyogUHJldmVudCBwcmludGVycyBmcm9tIHJlbW92aW5nIGJhY2tncm91bmQtaW1hZ2VzIG9mIGNvbnRyb2xzLiAqL1xyXG5cdC5sZWFmbGV0LWNvbnRyb2wge1xyXG5cdFx0LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xyXG5cdFx0cHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcclxuXHRcdH1cclxuXHR9XHJcbiIsICIubGVhZmxldC1jbHVzdGVyLWFuaW0gLmxlYWZsZXQtbWFya2VyLWljb24sIC5sZWFmbGV0LWNsdXN0ZXItYW5pbSAubGVhZmxldC1tYXJrZXItc2hhZG93IHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcblx0LW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcblx0LW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4zcyBlYXNlLWluO1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjNzIGVhc2UtaW47XG59XG5cbi5sZWFmbGV0LWNsdXN0ZXItc3BpZGVyLWxlZyB7XG5cdC8qIHN0cm9rZS1kYXNob2Zmc2V0IChkdXJhdGlvbiBhbmQgZnVuY3Rpb24pIHNob3VsZCBtYXRjaCB3aXRoIGxlYWZsZXQtbWFya2VyLWljb24gdHJhbnNmb3JtIGluIG9yZGVyIHRvIHRyYWNrIGl0IGV4YWN0bHkgKi9cblx0LXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZS1vdXQsIC13ZWJraXQtc3Ryb2tlLW9wYWNpdHkgMC4zcyBlYXNlLWluO1xuXHQtbW96LXRyYW5zaXRpb246IC1tb3otc3Ryb2tlLWRhc2hvZmZzZXQgMC4zcyBlYXNlLW91dCwgLW1vei1zdHJva2Utb3BhY2l0eSAwLjNzIGVhc2UtaW47XG5cdC1vLXRyYW5zaXRpb246IC1vLXN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZS1vdXQsIC1vLXN0cm9rZS1vcGFjaXR5IDAuM3MgZWFzZS1pbjtcblx0dHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4zcyBlYXNlLW91dCwgc3Ryb2tlLW9wYWNpdHkgMC4zcyBlYXNlLWluO1xufVxuIiwgIi5tYXJrZXItY2x1c3Rlci1zbWFsbCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTgxLCAyMjYsIDE0MCwgMC42KTtcblx0fVxuLm1hcmtlci1jbHVzdGVyLXNtYWxsIGRpdiB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTEwLCAyMDQsIDU3LCAwLjYpO1xuXHR9XG5cbi5tYXJrZXItY2x1c3Rlci1tZWRpdW0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MSwgMjExLCA4NywgMC42KTtcblx0fVxuLm1hcmtlci1jbHVzdGVyLW1lZGl1bSBkaXYge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MCwgMTk0LCAxMiwgMC42KTtcblx0fVxuXG4ubWFya2VyLWNsdXN0ZXItbGFyZ2Uge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MywgMTU2LCAxMTUsIDAuNik7XG5cdH1cbi5tYXJrZXItY2x1c3Rlci1sYXJnZSBkaXYge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MSwgMTI4LCAyMywgMC42KTtcblx0fVxuXG5cdC8qIElFIDYtOCBmYWxsYmFjayBjb2xvcnMgKi9cbi5sZWFmbGV0LW9sZGllIC5tYXJrZXItY2x1c3Rlci1zbWFsbCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYigxODEsIDIyNiwgMTQwKTtcblx0fVxuLmxlYWZsZXQtb2xkaWUgLm1hcmtlci1jbHVzdGVyLXNtYWxsIGRpdiB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYigxMTAsIDIwNCwgNTcpO1xuXHR9XG5cbi5sZWFmbGV0LW9sZGllIC5tYXJrZXItY2x1c3Rlci1tZWRpdW0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQxLCAyMTEsIDg3KTtcblx0fVxuLmxlYWZsZXQtb2xkaWUgLm1hcmtlci1jbHVzdGVyLW1lZGl1bSBkaXYge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQwLCAxOTQsIDEyKTtcblx0fVxuXG4ubGVhZmxldC1vbGRpZSAubWFya2VyLWNsdXN0ZXItbGFyZ2Uge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUzLCAxNTYsIDExNSk7XG5cdH1cbi5sZWFmbGV0LW9sZGllIC5tYXJrZXItY2x1c3Rlci1sYXJnZSBkaXYge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQxLCAxMjgsIDIzKTtcbn1cblxuLm1hcmtlci1jbHVzdGVyIHtcblx0YmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0fVxuLm1hcmtlci1jbHVzdGVyIGRpdiB7XG5cdHdpZHRoOiAzMHB4O1xuXHRoZWlnaHQ6IDMwcHg7XG5cdG1hcmdpbi1sZWZ0OiA1cHg7XG5cdG1hcmdpbi10b3A6IDVweDtcblxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDE1cHg7XG5cdGZvbnQ6IDEycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuXHR9XG4ubWFya2VyLWNsdXN0ZXIgc3BhbiB7XG5cdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHR9Il0sCiAgIm1hcHBpbmdzIjogIjtBQVVBOzs7QUNGQTtBQUVFO0FBQUEsRUFDQSxDQUFDO0FBQUEsRUFDRCxDQUFDO0FBQ0MsZ0JBQVk7QUFDZDtBQUVBO0FBQ0UsWUFBUTtBQUNSLGFBQVM7QUFDWDtBQUVBO0FBQ0UsOEJBQTBCO0FBQzFCLGlDQUE2QjtBQUM3QixxQkFBaUI7QUFDbkI7QUFFQTtBQUNFLGdCQUFZO0FBQ1osaUJBQWE7QUFDYiw0QkFBd0I7QUFDeEIsNkJBQXlCO0FBQ3pCLG9CQUFnQjtBQUNoQixnQkFBWTtBQUNkO0FBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0UsYUFBUztBQUNULGVBQVc7QUFDYjtBQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0UsVUFBTTtBQUNOLFdBQU87QUFDUCxnQkFBWTtBQUNaLFlBQVE7QUFDVjtBQUVBO0FBQ0UsWUFBUTtBQUNSLHdCQUFvQjtBQUNwQixnQkFBWTtBQUNaLGdCQUFZO0FBQ2Q7QUFFQSxRQUFNO0FBQ0osWUFBUTtBQUNSLGFBQVM7QUFDWDtBQUVBO0FBQ0UsV0FBTztBQUNQLHFCQUFpQjtBQUNuQjtBQUVBO0FBQUEsRUFDQTtBQUNFLGdCQUFZO0FBQ2Q7QUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNFLG1CQUFlO0FBQ2pCO0FBR0EsU0FBTyxDQUFDLHNCQUFzQixFQUFFO0FBQzlCO0FBQUEsSUFDQSxDQUFDO0FBQUEsSUFDRCxDQUFDO0FBQ0MsMEJBQW9CO0FBQ3BCLGlDQUEyQjtBQUMzQiwyQkFBcUI7QUFDckIsdUJBQWlCO0FBQ25CO0FBQ0Y7QUFH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 */
