/* src/globals.css */
:root {
  --bg: #0d0e14;
  --surface: #13161f;
  --surface-2: #181b25;
  --border: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.14);
  --text: #f0f0eb;
  --text-muted: #9aa2b6;
  --text-dim: #4a5066;
  --teal: #2dd4bf;
  --teal-deep: #14b8a6;
  --teal-glow: rgba(45, 212, 191, 0.18);
  --teal-glow-soft: rgba(45, 212, 191, 0.06);
  --pain: #3a3d4d;
  --serif:
    "Instrument Serif",
    Georgia,
    serif;
  --sans:
    "DM Sans",
    system-ui,
    sans-serif;
  --mono:
    "DM Mono",
    ui-monospace,
    monospace;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}
[data-theme=light] {
  --bg: #fafaf8;
  --surface: #ffffff;
  --surface-2: #f3f2ee;
  --border: rgba(0, 0, 0, 0.08);
  --border-strong:rgba(0, 0, 0, 0.16);
  --text: #1a1a1a;
  --text-muted: #4a4a4a;
  --text-dim: #8b8a84;
  --teal: #14b8a6;
  --teal-deep: #0d9488;
  --teal-glow: rgba(20, 184, 166, 0.18);
  --teal-glow-soft: rgba(20, 184, 166, 0.06);
  --pain: #c6c4be;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-weight: 400;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
::selection {
  background: var(--teal-glow);
  color: var(--text);
}
a {
  color: inherit;
  text-decoration: none;
}
.dot-grid {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 30px 30px;
}
.hero-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1100px;
  height: 1100px;
  transform: translate(-50%, -55%);
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(
      circle at center,
      var(--teal-glow) 0%,
      rgba(45, 212, 191, 0.05) 30%,
      transparent 60%);
  filter: blur(20px);
}
.eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--teal);
  border: 1px solid rgba(45, 212, 191, 0.3);
  border-radius: 999px;
  padding: 6px 14px;
  background: rgba(45, 212, 191, 0.04);
}
.eyebrow-muted {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 15px;
  background: var(--teal);
  color: #0a1410;
  border: none;
  border-radius: 999px;
  padding: 14px 28px;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
  box-shadow: 0 0 0 rgba(45, 212, 191, 0);
}
.btn-pill:hover {
  transform: translateY(-1px);
  background: #4ce0c8;
  box-shadow: 0 12px 32px rgba(45, 212, 191, 0.25);
}
.btn-pill-large {
  font-size: 17px;
  padding: 18px 36px;
}
.btn-pill-idle {
  animation: pulse-glow 4s ease-in-out infinite;
}
@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 0 rgba(45, 212, 191, 0);
  }
  50% {
    box-shadow: 0 0 32px rgba(45, 212, 191, 0.22);
  }
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.prompt-block {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.2s ease;
}
.prompt-block:hover,
.prompt-block:focus-visible {
  border-color: var(--teal);
  outline: none;
}
.prompt-block-text {
  font-family: var(--mono);
  font-size: 13.5px;
  color: var(--text);
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.prompt-block-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  color: var(--text-muted);
  transition: color 0.2s ease;
}
.prompt-block:hover .prompt-block-icon,
.prompt-block:focus-visible .prompt-block-icon {
  color: var(--teal);
}
.prompt-block-icon.copied {
  color: var(--teal);
}
@keyframes typing-dot {
  0%, 60%, 100% {
    opacity: 0.3;
    transform: translateY(0);
  }
  30% {
    opacity: 1;
    transform: translateY(-3px);
  }
}
@keyframes msg-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.msg-row {
  animation: msg-in 0.28s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
  .msg-row {
    animation: none;
  }
}
@keyframes float-404 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes wobble-oh {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-6px) rotate(7deg);
  }
}
.four-oh-four {
  animation: float-404 5s ease-in-out infinite;
}
.four-oh-four .oh {
  display: inline-block;
  animation: wobble-oh 4.2s ease-in-out infinite;
  transform-origin: center 55%;
}
@media (prefers-reduced-motion: reduce) {
  .four-oh-four,
  .four-oh-four .oh {
    animation: none !important;
  }
}
.display {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: 0.01em;
}
.display em {
  color: var(--teal);
  font-style: italic;
  font-weight: 400;
}
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
}
.card-glow {
  border-color: rgba(45, 212, 191, 0.25);
  box-shadow: 0 0 60px rgba(45, 212, 191, 0.08), inset 0 0 0 1px rgba(45, 212, 191, 0.08);
}
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s var(--ease-out) var(--reveal-delay, 0s), transform 0.9s var(--ease-out) var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.hero-stagger {
  opacity: 0;
  transform: translateY(24px);
  animation: hero-rise 1s var(--ease-out) forwards;
  animation-delay: var(--stagger-delay, 0s);
}
@keyframes hero-rise {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes somewhere-hero-cursor-blink {
  0%, 50% {
    opacity: 1;
  }
  51%, 100% {
    opacity: 0;
  }
}
.marquee {
  position: relative;
  overflow: hidden;
  width: 100%;
  mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      #000 10%,
      #000 90%,
      transparent 100%);
  -webkit-mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      #000 10%,
      #000 90%,
      transparent 100%);
}
.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
}
.marquee-track-left {
  animation: scroll-left 30s linear infinite;
}
.marquee-track-right {
  animation: scroll-right 30s linear infinite;
}
@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes scroll-right {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track-left,
  .marquee-track-right {
    animation: none;
  }
}
.marquee-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-right: 48px;
  opacity: 0.4;
}
.marquee-item img {
  width: 32px;
  height: 32px;
  filter: grayscale(100%) brightness(0) invert(1);
}
.marquee-item span {
  font-size: 11px;
  font-weight: 400;
  color: var(--text-muted);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.connector-line {
  width: 1px;
  height: 56px;
  margin: 0 auto;
  border-left: 1px dashed var(--teal);
  opacity: 0.6;
}
.section {
  position: relative;
  padding: 96px 24px;
  z-index: 1;
}
.section-tight {
  padding: 48px 24px;
}
.container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
}
.container-wide {
  max-width: 980px;
  margin: 0 auto;
  position: relative;
}
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    backdrop-filter 0.3s ease;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(13, 14, 20, 0.72);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border-bottom-color: var(--border);
}
.nav-link {
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 400;
  transition: color 0.2s ease;
}
.nav-link:hover {
  color: var(--text);
}
@media (max-width: 720px) {
  .section {
    padding: 64px 20px;
  }
  .container,
  .container-wide {
    max-width: 100%;
  }
  .nav {
    padding: 0 16px;
  }
  .nav-links {
    display: none !important;
  }
  .nav-auth .nav-link {
    display: inline;
  }
  .pain-relief-grid {
    grid-template-columns: 1fr !important;
  }
  .pain-relief-arrow {
    display: none !important;
  }
  [style*="grid-template-columns: 1.1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns: 1fr 1.4fr"],
  [style*="grid-template-columns: 1.5fr 1fr"],
  [style*="grid-template-columns: 1fr 1.3fr"],
  [style*="grid-template-columns: 240px 1fr 180px"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}
@media (max-width: 420px) {
  .nav {
    padding: 0 12px;
  }
  .nav-auth {
    gap: 8px !important;
  }
  .nav-auth .btn-pill {
    padding: 8px 14px !important;
    font-size: 12px !important;
  }
}
.docs-tabs-row {
  position: sticky;
  top: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 68px;
  padding: 0 32px;
  background: rgba(13, 14, 20, 0.85);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border-bottom: 1px solid var(--border);
}
[data-theme=light] .docs-tabs-row {
  background: rgba(250, 250, 248, 0.85);
}
.docs-tabs {
  display: flex;
  gap: 4px;
}
.docs-tab {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--text-muted);
  padding: 14px 14px 12px;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.docs-tab:hover {
  color: var(--text);
}
.docs-tab.active {
  color: var(--text);
  border-bottom-color: var(--teal);
}
.docs-menu-btn {
  display: none;
  appearance: none;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-family: var(--sans);
  font-size: 13px;
  padding: 6px 14px;
  cursor: pointer;
}
.docs-shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr) 220px;
  gap: 48px;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 32px 80px;
  align-items: start;
}
.docs-sidebar {
  position: sticky;
  top: 116px;
  max-height: calc(100vh - 132px);
  overflow-y: auto;
  padding: 24px 12px 24px 0;
  scrollbar-width: thin;
}
.docs-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.docs-section {
  margin-bottom: 6px;
}
.docs-section-head {
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--text-dim);
  padding: 10px 8px 6px;
  transition: color 0.15s ease;
}
.docs-section-head:hover {
  color: var(--text-muted);
}
.docs-chevron {
  font-size: 14px;
  transition: transform 0.15s ease;
  transform: rotate(0deg);
}
.docs-chevron.openc {
  transform: rotate(90deg);
}
.docs-section-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.docs-nav-link {
  display: block;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--text-muted);
  padding: 5px 10px;
  border-left: 1px solid var(--border);
  margin-left: 8px;
  transition:
    color 0.12s ease,
    border-color 0.12s ease,
    background 0.12s ease;
}
.docs-nav-link:hover {
  color: var(--text);
}
.docs-nav-link.active {
  color: var(--teal);
  border-left: 2px solid var(--teal);
  padding-left: 9px;
  background: var(--teal-glow-soft);
}
.docs-sidebar-foot {
  margin-top: 28px;
  padding: 14px 8px 0;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--text-dim);
  font-family: var(--mono);
  line-height: 1.8;
}
.docs-sidebar-foot a {
  color: var(--text-muted);
}
.docs-sidebar-foot a:hover {
  color: var(--teal);
}
.docs-search {
  position: relative;
  margin-bottom: 14px;
}
.docs-search-input {
  width: 100%;
  font-family: var(--sans);
  font-size: 13.5px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px 40px 9px 12px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.docs-search-input::placeholder {
  color: var(--text-dim);
}
.docs-search-input:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-glow-soft);
}
.docs-search-kbd {
  position: absolute;
  right: 8px;
  top: 8px;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text-dim);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 2px 5px;
  pointer-events: none;
}
.docs-search-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: -40px;
  z-index: 95;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
  overflow: hidden;
  max-height: 420px;
  overflow-y: auto;
}
.docs-search-empty {
  padding: 14px;
  font-size: 13px;
  color: var(--text-dim);
}
.docs-search-hit {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 1px solid var(--border);
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  padding: 10px 14px;
}
.docs-search-hit:last-child {
  border-bottom: none;
}
.docs-search-hit.active {
  background: var(--teal-glow-soft);
}
.docs-search-hit-title {
  display: block;
  font-size: 13.5px;
  color: var(--text);
  font-family: var(--sans);
}
.docs-search-hit-anchor {
  color: var(--teal);
}
.docs-search-hit-meta {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-top: 2px;
}
.docs-search-hit-snippet {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 4px;
  line-height: 1.5;
}
.docs-main {
  min-width: 0;
  padding-top: 40px;
}
.docs-article {
  max-width: 760px;
}
.docs-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 10px;
}
.docs-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(34px, 4.5vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 28px;
}
.docs-article h2,
.docs-article h3 {
  scroll-margin-top: 140px !important;
}
.docs-prevnext {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 64px;
  padding-top: 28px;
  border-top: 1px solid var(--border);
}
.docs-pn-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.docs-pn-card:hover {
  border-color: var(--teal);
  background: var(--teal-glow-soft);
}
.docs-pn-card.next {
  text-align: right;
}
.docs-pn-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.docs-pn-title {
  font-size: 14px;
  color: var(--text);
}
.docs-toc {
  position: sticky;
  top: 132px;
  max-height: calc(100vh - 152px);
  overflow-y: auto;
  padding: 24px 0;
  font-size: 12.5px;
  scrollbar-width: thin;
}
.docs-toc-head {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 10px;
}
.docs-toc ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.docs-toc li.sub {
  padding-left: 12px;
}
.docs-toc-link {
  display: block;
  color: var(--text-muted);
  padding: 3px 0 3px 10px;
  border-left: 1px solid var(--border);
  line-height: 1.5;
  transition: color 0.12s ease, border-color 0.12s ease;
}
.docs-toc-link:hover {
  color: var(--text);
}
.docs-toc-link.active {
  color: var(--teal);
  border-left-color: var(--teal);
}
@media (max-width: 1280px) {
  .docs-shell {
    grid-template-columns: 250px minmax(0, 1fr);
  }
  .docs-toc {
    display: none;
  }
}
@media (max-width: 1024px) {
  .docs-shell {
    grid-template-columns: minmax(0, 1fr);
  }
  .docs-menu-btn {
    display: block;
  }
  .docs-sidebar {
    display: none;
    position: fixed;
    top: 116px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 89;
    background: var(--bg);
    padding: 20px 24px;
    max-height: none;
  }
  .docs-sidebar.open {
    display: block;
  }
  .docs-search-results {
    right: 0;
  }
}
@media (max-width: 720px) {
  .docs-tabs-row {
    padding: 0 16px;
  }
  .docs-shell {
    padding: 0 20px 64px;
  }
}
.btn-pill {
  white-space: nowrap;
}
@media (max-width: 720px) {
  .section {
    padding: 64px 20px !important;
  }
  .hero-section {
    padding: 112px 20px 240px !important;
  }
  .nav.scrolled {
    background: rgba(13, 14, 20, 0.96);
  }
  .sr-col-header {
    display: none !important;
  }
  .sr-row {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}
.btn-pill-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: transparent;
  color: var(--text);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.btn-pill-ghost:hover {
  border-color: var(--teal);
  color: var(--teal);
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2dsb2JhbHMuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBzb21ld2hlcmUudGVjaCBcdTIwMTQgZGVzaWduIHRva2VucyArIGxhbmRpbmctcGFnZSB1dGlsaXR5IGNsYXNzZXNcbiAqIFRoZSBkYXNoYm9hcmQgcGFnZXMgc3RpbGwgdXNlIGlubGluZSBzdHlsZXMgKHNlZSBzdHlsZXMudHMpO1xuICogdGhpcyBmaWxlIG9ubHkgb3ducyB0aGUgbGFuZGluZy1wYWdlIHZpc3VhbCBwcmltaXRpdmVzIHRoYXQgbmVlZFxuICogcHNldWRvLWNsYXNzZXMsIGFuaW1hdGlvbnMsIG9yIGxhcmdlIHJlcGVhdGVkIHBhdHRlcm5zLiAqL1xuXG46cm9vdCB7XG4gIC8qIFN1cmZhY2UgKi9cbiAgLS1iZzogIzBkMGUxNDtcbiAgLS1zdXJmYWNlOiAjMTMxNjFmO1xuICAtLXN1cmZhY2UtMjogIzE4MWIyNTtcbiAgLS1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC0tYm9yZGVyLXN0cm9uZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcblxuICAvKiBUZXh0ICovXG4gIC0tdGV4dDogI2YwZjBlYjtcbiAgLyogQnVtcGVkICM3YTgwOTkgLT4gIzlhYTJiNiAoZm91bmRlciwgMjAyNi0wNy0wMyBcIm1vcmUgZ3JleVwiIHJvdW5kIFx1MjAxNFxuICAgKiB0aGUgbXV0ZWQgZ3JleSB3YXNoZWQgb3V0IGV2ZXJ5d2hlcmUgaXQgY2FycmllZCBib2R5IGNvcHkgb24gZGFyazpcbiAgICogaGVybyByZWFzc3VyYW5jZSwgU2VjdXJpdHlSZWxpYWJpbGl0eSdzIHdoeS1jb2x1bW4sIFx1MjAyNikuIFN0aWxsXG4gICAqIGNsZWFybHkgc2Vjb25kYXJ5IG5leHQgdG8gLS10ZXh0ICNmMGYwZWI7IGxpZ2h0IHRoZW1lJ3MgIzRhNGE0YVxuICAgKiBhbHJlYWR5IHJlYWRzIGZpbmUgb24gd2hpdGUgYW5kIGlzIHVuY2hhbmdlZC4gKi9cbiAgLS10ZXh0LW11dGVkOiAjOWFhMmI2O1xuICAtLXRleHQtZGltOiAjNGE1MDY2O1xuXG4gIC8qIEJyYW5kICovXG4gIC0tdGVhbDogIzJkZDRiZjtcbiAgLS10ZWFsLWRlZXA6ICMxNGI4YTY7XG4gIC0tdGVhbC1nbG93OiByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4xOCk7XG4gIC0tdGVhbC1nbG93LXNvZnQ6IHJnYmEoNDUsIDIxMiwgMTkxLCAwLjA2KTtcblxuICAvKiBQYWluICovXG4gIC0tcGFpbjogIzNhM2Q0ZDtcblxuICAvKiBUeXBlICovXG4gIC0tc2VyaWY6ICdJbnN0cnVtZW50IFNlcmlmJywgR2VvcmdpYSwgc2VyaWY7XG4gIC0tc2FuczogJ0RNIFNhbnMnLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gIC0tbW9ubzogJ0RNIE1vbm8nLCB1aS1tb25vc3BhY2UsIG1vbm9zcGFjZTtcblxuICAvKiBNb3Rpb24gKi9cbiAgLS1lYXNlLW91dDogY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBMaWdodCB0aGVtZSAoZGF0YS10aGVtZT1cImxpZ2h0XCIgb24gPGh0bWw+KSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbltkYXRhLXRoZW1lPVwibGlnaHRcIl0ge1xuICAtLWJnOiAgICAgICAgICAgI2ZhZmFmODtcbiAgLS1zdXJmYWNlOiAgICAgICNmZmZmZmY7XG4gIC0tc3VyZmFjZS0yOiAgICAjZjNmMmVlO1xuICAtLWJvcmRlcjogICAgICAgcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgLS1ib3JkZXItc3Ryb25nOnJnYmEoMCwgMCwgMCwgMC4xNik7XG5cbiAgLS10ZXh0OiAgICAgICAgICMxYTFhMWE7XG4gIC0tdGV4dC1tdXRlZDogICAjNGE0YTRhO1xuICAtLXRleHQtZGltOiAgICAgIzhiOGE4NDtcblxuICAvKiBEZWVwZXIgdGVhbCBmb3IgY29udHJhc3Qgb24gbGlnaHQgc3VyZmFjZXMuICovXG4gIC0tdGVhbDogICAgICAgICAjMTRiOGE2O1xuICAtLXRlYWwtZGVlcDogICAgIzBkOTQ4ODtcbiAgLS10ZWFsLWdsb3c6ICAgIHJnYmEoMjAsIDE4NCwgMTY2LCAwLjE4KTtcbiAgLS10ZWFsLWdsb3ctc29mdDogcmdiYSgyMCwgMTg0LCAxNjYsIDAuMDYpO1xuXG4gIC0tcGFpbjogICAgICAgICAjYzZjNGJlO1xufVxuXG4qIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5odG1sIHsgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH1cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNhbnMpO1xuICAvKiBOb3JtYWwtd2lkdGggRE0gU2FucyBmb3IgYm9keSB0ZXh0LiBXYXMgMzAwIChMaWdodCkgXHUyMDE0IHRvbyB0aGluXG4gICAqIGFuZCBmZWx0IHZpc3VhbGx5IGNvbmRlbnNlZCBuZXh0IHRvIHRoZSBzZXJpZiBoZWFkbGluZXMuIDQwMCBpc1xuICAgKiB0aGUgc2FtZSB3ZWlnaHQgdGhlIGRhc2hib2FyZCBhcHAgdXNlcyBieSBkZWZhdWx0LiAqL1xuICBmb250LXdlaWdodDogNDAwO1xuICAvKiBTbGlnaHQgcG9zaXRpdmUgdHJhY2tpbmcgZm9yIGFpciBiZXR3ZWVuIGdseXBocy4gS2VlcHMgRE0gU2Fuc1xuICAgKiBmZWVsaW5nIFwibm9ybWFsIHdpZHRoXCIgaW5zdGVhZCBvZiBjcmFtcGVkIGF0IHNtYWxsIHNpemVzLiAqL1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cbjo6c2VsZWN0aW9uIHsgYmFja2dyb3VuZDogdmFyKC0tdGVhbC1nbG93KTsgY29sb3I6IHZhcigtLXRleHQpOyB9XG5hIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgQmFja2dyb3VuZCBkb3QgZ3JpZCBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi5kb3QtZ3JpZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSAxcHgsIHRyYW5zcGFyZW50IDFweCk7XG4gIGJhY2tncm91bmQtc2l6ZTogMzBweCAzMHB4O1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgSGVybyByYWRpYWwgZ2xvdyAoc2l0cyBiZWhpbmQgaGVybywgYmxlZWRzIHRocm91Z2ggZG90cykgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4uaGVyby1nbG93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTEwMHB4O1xuICBoZWlnaHQ6IDExMDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTU1JSk7XG4gIHotaW5kZXg6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoXG4gICAgY2lyY2xlIGF0IGNlbnRlcixcbiAgICB2YXIoLS10ZWFsLWdsb3cpIDAlLFxuICAgIHJnYmEoNDUsIDIxMiwgMTkxLCAwLjA1KSAzMCUsXG4gICAgdHJhbnNwYXJlbnQgNjAlXG4gICk7XG4gIGZpbHRlcjogYmx1cigyMHB4KTtcbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIEV5ZWJyb3cgcGlsbCAoc21hbGwgdXBwZXJjYXNlIHRlYWwgbGFiZWwpIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLmV5ZWJyb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRlYWwpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIHBhZGRpbmc6IDZweCAxNHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4wNCk7XG59XG4uZXllYnJvdy1tdXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBQaWxsIGJ1dHRvbiBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi5idG4tcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNhbnMpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRlYWwpO1xuICBjb2xvcjogIzBhMTQxMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogMTRweCAyOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSg0NSwgMjEyLCAxOTEsIDApO1xufVxuLmJ0bi1waWxsOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBiYWNrZ3JvdW5kOiAjNGNlMGM4O1xuICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4yNSk7XG59XG4uYnRuLXBpbGwtbGFyZ2Uge1xuICBmb250LXNpemU6IDE3cHg7XG4gIHBhZGRpbmc6IDE4cHggMzZweDtcbn1cbi5idG4tcGlsbC1pZGxlIHtcbiAgYW5pbWF0aW9uOiBwdWxzZS1nbG93IDRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBwdWxzZS1nbG93IHtcbiAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCByZ2JhKDQ1LCAyMTIsIDE5MSwgMCk7IH1cbiAgNTAlICAgICAgeyBib3gtc2hhZG93OiAwIDAgMzJweCByZ2JhKDQ1LCAyMTIsIDE5MSwgMC4yMik7IH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgSGVybyBwcm9tcHQgYmxvY2sgKHRza19hMGQyYWQzYSkgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXG4gKiBUaGUgaGVybydzIHByaW1hcnkgYWN0aW9uOiBhIGNvcHktdG8tY2xpcGJvYXJkIHByb21wdCB0aGUgdmlzaXRvclxuICogcGFzdGVzIGludG8gdGhlaXIgb3duIGFnZW50LiBFbnRpcmUgYmxvY2sgaXMgYSBuYXRpdmUgPGJ1dHRvbj4gc29cbiAqIGNsaWNrICsga2V5Ym9hcmQgYm90aCB3b3JrIGZvciBmcmVlOyB0aGUgY29weSBpY29uIGxpdmVzIGluc2lkZSBpdFxuICogcmF0aGVyIHRoYW4gYXMgYSBuZXN0ZWQgYnV0dG9uIChpbnZhbGlkIEhUTUwpLiAqL1xuLnByb21wdC1ibG9jayB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDE2cHggMThweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuLnByb21wdC1ibG9jazpob3Zlcixcbi5wcm9tcHQtYmxvY2s6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucHJvbXB0LWJsb2NrLXRleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLnByb21wdC1ibG9jay1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuLnByb21wdC1ibG9jazpob3ZlciAucHJvbXB0LWJsb2NrLWljb24sXG4ucHJvbXB0LWJsb2NrOmZvY3VzLXZpc2libGUgLnByb21wdC1ibG9jay1pY29uIHtcbiAgY29sb3I6IHZhcigtLXRlYWwpO1xufVxuLnByb21wdC1ibG9jay1pY29uLmNvcGllZCB7XG4gIGNvbG9yOiB2YXIoLS10ZWFsKTtcbn1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIENsYXVkZS1jaGF0IGRlbW8gYW5pbWF0aW9ucyBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi8qIHR5cGluZy1kb3Q6IHRocmVlIGRvdHMgcHVsc2luZyBpbiBzZXF1ZW5jZSB0byBpbmRpY2F0ZSBDbGF1ZGUgaXNcbiAqIHRoaW5raW5nLiBFYWNoIGRvdCBzdGFnZ2VyIGlzIHNldCBpbmxpbmUgdmlhIGFuaW1hdGlvbi1kZWxheS4gKi9cbkBrZXlmcmFtZXMgdHlwaW5nLWRvdCB7XG4gIDAlLCA2MCUsIDEwMCUgeyBvcGFjaXR5OiAwLjM7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAzMCUgICAgICAgICAgIHsgb3BhY2l0eTogMTsgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7IH1cbn1cbi8qIG1zZy1pbjogZWFjaCBtZXNzYWdlIGluIHRoZSBjaGF0IHNsaWRlcyB1cCArIGZhZGVzIGluIHdoZW4gYXBwZW5kZWQuICovXG5Aa2V5ZnJhbWVzIG1zZy1pbiB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG4ubXNnLXJvdyB7IGFuaW1hdGlvbjogbXNnLWluIDAuMjhzIGVhc2Utb3V0IGJvdGg7IH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5tc2ctcm93IHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCA0MDQgcGFnZSBhbmltYXRpb25zIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLyogVGhlIGJpZyA0MDQgbnVtYmVyIGZsb2F0cyBnZW50bHk7IHRoZSBtaWRkbGUgMCBoYXMgaXRzIG93biBkcmlmdCArXG4gKiByb3RhdGlvbiBzbyBpdCBmZWVscyBsaWtlIHRoZSBcInNvbWV3aGVyZVwiIHdhbmRlcmluZyBvZmYuIFNoYXJlZFxuICogYWNyb3NzIHB1YmxpYy80MDQuaHRtbCAodGhlIHdvcmtlci1zZXJ2ZWQgdmVyc2lvbiBjb3BpZXMgdGhlc2VcbiAqIGtleWZyYW1lcyBpbmxpbmUpIGFuZCBzcmMvcGFnZXMvTm90Rm91bmQudHN4IChTUEEgY2F0Y2gtYWxsKS4gKi9cbkBrZXlmcmFtZXMgZmxvYXQtNDA0IHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgNTAlICAgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG59XG5Aa2V5ZnJhbWVzIHdvYmJsZS1vaCB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfVxuICA1MCUgICAgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoN2RlZyk7IH1cbn1cbi5mb3VyLW9oLWZvdXIge1xuICBhbmltYXRpb246IGZsb2F0LTQwNCA1cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5mb3VyLW9oLWZvdXIgLm9oIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBhbmltYXRpb246IHdvYmJsZS1vaCA0LjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgNTUlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZvdXItb2gtZm91ciwgLmZvdXItb2gtZm91ciAub2ggeyBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgRGlzcGxheSBoZWFkaW5nIChJbnN0cnVtZW50IFNlcmlmKSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi5kaXNwbGF5IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLyogSW5zdHJ1bWVudCBTZXJpZiBpcyBhIG5hcnJvdyBkaXNwbGF5IGN1dDsgbmVnYXRpdmUgdHJhY2tpbmcgbWFkZSB0aGVcbiAgICogaGVhZGxpbmVzIGZlZWwgY3JhbXBlZC4gU2xpZ2h0IHBvc2l0aXZlIHRyYWNraW5nIG9wZW5zIHRoZW0gdXAgZm9yXG4gICAqIGVhc2llciByZWFkaW5nIHdpdGhvdXQgbG9zaW5nIHRoZSB0aWdodCwgZWRpdG9yaWFsIGxvb2suICovXG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG59XG4uZGlzcGxheSBlbSB7XG4gIGNvbG9yOiB2YXIoLS10ZWFsKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgQ2FyZCBzdXJmYWNlIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLmNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgcGFkZGluZzogMzJweDtcbn1cbi5jYXJkLWdsb3cge1xuICBib3JkZXItY29sb3I6IHJnYmEoNDUsIDIxMiwgMTkxLCAwLjI1KTtcbiAgYm94LXNoYWRvdzogMCAwIDYwcHggcmdiYSg0NSwgMjEyLCAxOTEsIDAuMDgpLCBpbnNldCAwIDAgMCAxcHggcmdiYSg0NSwgMjEyLCAxOTEsIDAuMDgpO1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgUmV2ZWFsLW9uLXNjcm9sbCBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi5yZXZlYWwge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAwLjlzIHZhcigtLWVhc2Utb3V0KSB2YXIoLS1yZXZlYWwtZGVsYXksIDBzKSxcbiAgICB0cmFuc2Zvcm0gMC45cyB2YXIoLS1lYXNlLW91dCkgdmFyKC0tcmV2ZWFsLWRlbGF5LCAwcyk7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG59XG4ucmV2ZWFsLmlzLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi8qIEhlcm8gbG9hZC1pbjogc3RhZ2dlciBjaGlsZHJlbiBhdXRvbWF0aWNhbGx5IHVzaW5nIGEgQ1NTIGNvdW50ZXIgcGF0dGVybi5cbiAqIEVhY2ggZWxlbWVudCB3aXRoIC5oZXJvLXN0YWdnZXIgZ2V0cyBpdHMgb3duIGRlbGF5IHRocm91Z2ggaW5saW5lIHN0eWxlLiAqL1xuLmhlcm8tc3RhZ2dlciB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTtcbiAgYW5pbWF0aW9uOiBoZXJvLXJpc2UgMXMgdmFyKC0tZWFzZS1vdXQpIGZvcndhcmRzO1xuICBhbmltYXRpb24tZGVsYXk6IHZhcigtLXN0YWdnZXItZGVsYXksIDBzKTtcbn1cbkBrZXlmcmFtZXMgaGVyby1yaXNlIHtcbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuLyogSGVybyB0eXBpbmctY3Vyc29yIGJsaW5rIFx1MjAxNCB1c2VkIGJ5IDxUeXBpbmdDeWNsZT4gaW4gSGVyby50c3ggZm9yXG4gKiB0aGUgYm9yaW5nIC8gc2NhcnkgLyBjcml0aWNhbCAvIHJlcGV0aXRpdmUgd29yZCBjeWNsZS4gU3RlcHMoMSxlbmQpXG4gKiBnaXZlcyBhIGhhcmQgb24vb2ZmLCBub3QgYSBmYWRlIFx1MjAxNCByZWFkcyBsaWtlIGEgcmVhbCB0ZXJtaW5hbCBjdXJzb3IuICovXG5Aa2V5ZnJhbWVzIHNvbWV3aGVyZS1oZXJvLWN1cnNvci1ibGluayB7XG4gIDAlLCA1MCUgICB7IG9wYWNpdHk6IDE7IH1cbiAgNTElLCAxMDAlIHsgb3BhY2l0eTogMDsgfVxufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgTWFycXVlZSAoaW5maW5pdGUgaG9yaXpvbnRhbCBzY3JvbGwsIHR3byBvcHBvc2l0ZSByb3dzKSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbi8qIEl0ZW1zIHVzZSBtYXJnaW4tcmlnaHQgKG5vdCBnYXApIHNvIHRoZSBkb3VibGVkIHRyYWNrJ3MgdG90YWwgd2lkdGggaXNcbiAqIGV4YWN0bHkgMk4qKGl0ZW1fd2lkdGggKyBtYXJnaW4pLiBUcmFuc2xhdGluZyAtNTAlIHRoZW4gbGFuZHMgdGhlIHNlY29uZFxuICogY29weSBwcmVjaXNlbHkgb24gdGhlIGZpcnN0IGNvcHkncyBzdGFydCwgbG9vcGluZyBzZWFtbGVzc2x5IHdpdGggbm8ganVtcC5cbiAqIFB1cmUgQ1NTLCBubyBKUywgbm8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLiAqL1xuLm1hcnF1ZWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gcmlnaHQsXG4gICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgIzAwMCAxMCUsXG4gICAgIzAwMCA5MCUsXG4gICAgdHJhbnNwYXJlbnQgMTAwJVxuICApO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICB0byByaWdodCxcbiAgICB0cmFuc3BhcmVudCAwJSxcbiAgICAjMDAwIDEwJSxcbiAgICAjMDAwIDkwJSxcbiAgICB0cmFuc3BhcmVudCAxMDAlXG4gICk7XG59XG4ubWFycXVlZS10cmFjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cbi5tYXJxdWVlLXRyYWNrLWxlZnQgIHsgYW5pbWF0aW9uOiBzY3JvbGwtbGVmdCAgMzBzIGxpbmVhciBpbmZpbml0ZTsgfVxuLm1hcnF1ZWUtdHJhY2stcmlnaHQgeyBhbmltYXRpb246IHNjcm9sbC1yaWdodCAzMHMgbGluZWFyIGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgc2Nyb2xsLWxlZnQge1xuICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cbn1cbkBrZXlmcmFtZXMgc2Nyb2xsLXJpZ2h0IHtcbiAgMCUgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAubWFycXVlZS10cmFjay1sZWZ0LFxuICAubWFycXVlZS10cmFjay1yaWdodCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vKiBNYXJxdWVlIGl0ZW06IGxvZ28gKyB0aW55IGJyYW5kIG5hbWUgdW5kZXJuZWF0aCwgNDAlIG9wYWNpdHkuXG4gKiBtYXJnaW4tcmlnaHQgKG5vdCBnYXApIGlzIHRoZSBrZXkgdG8gdGhlIHNlYW1sZXNzIGxvb3AgbWF0aC4gKi9cbi5tYXJxdWVlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1yaWdodDogNDhweDtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hcnF1ZWUtaXRlbSBpbWcge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKSBicmlnaHRuZXNzKDApIGludmVydCgxKTtcbn1cbi5tYXJxdWVlLWl0ZW0gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgRGFzaGVkIHRlYWwgY29ubmVjdG9yIGxpbmUgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4vKiBTaXRzIGJldHdlZW4gdGhlIHJlbGllZiBjYXJkIGFuZCB0aGUgbWFycXVlZSwgdmlzdWFsbHkgc2F5aW5nXG4gKiBcInRoaXMgb25lIHRoaW5nIHJlcGxhY2VzIGFsbCBvZiB0aGF0LlwiICovXG4uY29ubmVjdG9yLWxpbmUge1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCB2YXIoLS10ZWFsKTtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4vKiBcdTI1MDBcdTI1MDBcdTI1MDAgU2VjdGlvbiBzcGFjaW5nIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCAqL1xuLnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDk2cHggMjRweDtcbiAgei1pbmRleDogMTtcbn1cbi5zZWN0aW9uLXRpZ2h0IHsgcGFkZGluZzogNDhweCAyNHB4OyB9XG4uY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA4NjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jb250YWluZXItd2lkZSB7XG4gIG1heC13aWR0aDogOTgwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBOYXYgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwICovXG4ubmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIGhlaWdodDogNjhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDMycHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLCBib3JkZXItY29sb3IgMC4zcyBlYXNlLCBiYWNrZHJvcC1maWx0ZXIgMC4zcyBlYXNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4ubmF2LnNjcm9sbGVkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMywgMTQsIDIwLCAwLjcyKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYm9yZGVyKTtcbn1cbi5uYXYtbGluayB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG4ubmF2LWxpbms6aG92ZXIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cblxuLyogXHUyNTAwXHUyNTAwXHUyNTAwIE1vYmlsZSBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuc2VjdGlvbiB7IHBhZGRpbmc6IDY0cHggMjBweDsgfVxuICAuY29udGFpbmVyLCAuY29udGFpbmVyLXdpZGUgeyBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm5hdiB7IHBhZGRpbmc6IDAgMTZweDsgfVxuICAvKiBTZWN0aW9uIGxpbmtzIGNvbGxhcHNlLCBhdXRoIGNvbnRyb2xzIHN0YXkgdmlzaWJsZSBcdTIwMTQgc2VlIE5hdmJhci50c3hcbiAgICogZm9yIHRoZSBzdHJ1Y3R1cmFsIHNwbGl0LiBXaXRob3V0IHRoaXMgeW91IGNhbid0IGxvZyBpbiBvbiBtb2JpbGUuICovXG4gIC5uYXYtbGlua3MgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm5hdi1hdXRoIC5uYXYtbGluayB7XG4gICAgLyogS2VlcCBcIkxvZyBpblwiIHJlYWRhYmxlIG5leHQgdG8gdGhlIHBpbGwgb24gbmFycm93IHNjcmVlbnMuICovXG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG4gIC5wYWluLXJlbGllZi1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50O1xuICB9XG4gIC5wYWluLXJlbGllZi1hcnJvdyB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIExhbmRpbmcgc2VjdGlvbnMgdXNlIGlubGluZSBgZ3JpZFRlbXBsYXRlQ29sdW1uc2AgZm9yIHRoZWlyXG4gICAqIFwiY29weSB8IHZpc3VhbFwiIG9yIFwiaGVhZGxpbmUgfCBpbnRyb1wiIHR3by1jb2x1bW4gc3BsaXRzLlxuICAgKiBJbmxpbmUgc3R5bGVzIGJ5cGFzcyBjbGFzcy1iYXNlZCBtZWRpYSBxdWVyaWVzIFx1MjAxNCB0aGVzZVxuICAgKiBhdHRyaWJ1dGUgc2VsZWN0b3JzIHRhcmdldCBlYWNoIGtub3duIHJhdGlvIGFuZCBmb3JjZSBhXG4gICAqIHNpbmdsZSBjb2x1bW4gb24gbW9iaWxlLiBBZGRpbmcgYSBuZXcgc2VjdGlvbiBtZWFucyBhZGRpbmdcbiAgICogaXRzIHJhdGlvIGhlcmUgT1IgdXNpbmcgb25lIG9mIHRoZSBleGlzdGluZyBvbmVzLlxuICAgKlxuICAgKiBLbm93biBzcGxpdHM6XG4gICAqICAgJzEuMWZyIDFmcicgICBUaHJlZUxheWVycyBoZWFkZXIsIFNlY3VyaXR5UmV2aWV3IGhlYWRlclxuICAgKiAgICcxZnIgMWZyJyAgICAgRGVtbyAoQ2xhdWRlIHN1cGVycG93ZXJzIHNwbGl0KVxuICAgKiAgICcxZnIgMS40ZnInICAgSG93SXRXb3JrcyAodGl0bGUgfCBzdGVwcylcbiAgICogICAnMS41ZnIgMWZyJyAgIENvc3RDYWxjdWxhdG9yICh3aXRob3V0IHwgd2l0aClcbiAgICogICAnMWZyIDEuM2ZyJyAgIEd1aWRlIHR3b0NvbFN0eWxlXG4gICAqICAgJzEuMWZyIDFmcicgICBIZXJvIChjb3B5IHwgZGVtbylcbiAgICogICAnMjQwcHggMWZyIDE4MHB4JyAgIFRocmVlTGF5ZXJzIGxheWVyIGNhcmRzXG4gICAqL1xuICBbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjFmciAxZnJcIl0sXG4gIFtzdHlsZSo9XCJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnJcIl0sXG4gIFtzdHlsZSo9XCJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxLjRmclwiXSxcbiAgW3N0eWxlKj1cImdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMWZyXCJdLFxuICBbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS4zZnJcIl0sXG4gIFtzdHlsZSo9XCJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI0MHB4IDFmciAxODBweFwiXSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDtcbiAgICBnYXA6IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBOYXJyb3dlciBwaG9uZXM6IGtlZXAgdGhlIGJyYW5kIHdvcmRtYXJrIGJ1dCBzaHJpbmsgaXQgc28gdGhlXG4gKiAudGVjaCBzdWZmaXggZG9lc24ndCBwdXNoIHRoZSBhdXRoIGJ1dHRvbnMgb2ZmLXNjcmVlbi4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkge1xuICAubmF2IHsgcGFkZGluZzogMCAxMnB4OyB9XG4gIC5uYXYtYXV0aCB7IGdhcDogOHB4ICFpbXBvcnRhbnQ7IH1cbiAgLm5hdi1hdXRoIC5idG4tcGlsbCB7IHBhZGRpbmc6IDhweCAxNHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50OyB9XG59XG5cbi8qIFx1MjUwMFx1MjUwMFx1MjUwMCBEb2NzIHNpdGUgKHNyYy9wYWdlcy9Eb2NzLnRzeCkgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXG4gKiBGZXJuLXN0eWxlIHRocmVlLXBhbmUgZG9jcyBzaGVsbCBpbiB0aGUgYnJhbmQgc3lzdGVtOiBzdGlja3kgdGFiIHJvd1xuICogdW5kZXIgdGhlIGZpeGVkIG5hdiwgZ3JvdXBlZCBzaWRlYmFyLCBhcnRpY2xlIGNvbHVtbiwgcmlnaHQtcmFpbCBUT0MuXG4gKiBDbGFzc2VzIChub3QgaW5saW5lIHN0eWxlcykgYmVjYXVzZSB0aGUgc2hlbGwgbmVlZHMgaG92ZXIvYWN0aXZlXG4gKiBzdGF0ZXMsIHN0aWNreSBwb3NpdGlvbmluZywgYW5kIG1lZGlhIHF1ZXJpZXMuICovXG5cbi5kb2NzLXRhYnMtcm93IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiA2OHB4OyAvKiBjbGVhcnMgdGhlIGZpeGVkIC5uYXYgKi9cbiAgcGFkZGluZzogMCAzMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzLCAxNCwgMjAsIDAuODUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbn1cbltkYXRhLXRoZW1lPVwibGlnaHRcIl0gLmRvY3MtdGFicy1yb3cgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1MCwgMjUwLCAyNDgsIDAuODUpOyB9XG5cbi5kb2NzLXRhYnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDRweDsgfVxuLmRvY3MtdGFiIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNhbnMpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgcGFkZGluZzogMTRweCAxNHB4IDEycHg7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xufVxuLmRvY3MtdGFiOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4uZG9jcy10YWIuYWN0aXZlIHsgY29sb3I6IHZhcigtLXRleHQpOyBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS10ZWFsKTsgfVxuXG4uZG9jcy1tZW51LWJ0biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNhbnMpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDZweCAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kb2NzLXNoZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NHB4IG1pbm1heCgwLCAxZnIpIDIyMHB4O1xuICBnYXA6IDQ4cHg7XG4gIG1heC13aWR0aDogMTM2MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAzMnB4IDgwcHg7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cblxuLyogU2lkZWJhciAqL1xuLmRvY3Mtc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMTE2cHg7IC8qIG5hdiA2OCArIHRhYiByb3cgfjQ4ICovXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMzJweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDI0cHggMTJweCAyNHB4IDA7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cbi5kb2NzLXNpZGViYXItbmF2IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IH1cbi5kb2NzLXNlY3Rpb24geyBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbi5kb2NzLXNlY3Rpb24taGVhZCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRleHQtZGltKTtcbiAgcGFkZGluZzogMTBweCA4cHggNnB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlO1xufVxuLmRvY3Mtc2VjdGlvbi1oZWFkOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9XG4uZG9jcy1jaGV2cm9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG59XG4uZG9jcy1jaGV2cm9uLm9wZW5jIHsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4uZG9jcy1zZWN0aW9uLWxpc3QgeyBsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7IH1cbi5kb2NzLW5hdi1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjEycyBlYXNlLCBib3JkZXItY29sb3IgMC4xMnMgZWFzZSwgYmFja2dyb3VuZCAwLjEycyBlYXNlO1xufVxuLmRvY3MtbmF2LWxpbms6aG92ZXIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbi5kb2NzLW5hdi1saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZWFsKTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS10ZWFsKTtcbiAgcGFkZGluZy1sZWZ0OiA5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRlYWwtZ2xvdy1zb2Z0KTtcbn1cbi5kb2NzLXNpZGViYXItZm9vdCB7XG4gIG1hcmdpbi10b3A6IDI4cHg7XG4gIHBhZGRpbmc6IDE0cHggOHB4IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cbi5kb2NzLXNpZGViYXItZm9vdCBhIHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9XG4uZG9jcy1zaWRlYmFyLWZvb3QgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZWFsKTsgfVxuXG4vKiBTZWFyY2ggKi9cbi5kb2NzLXNlYXJjaCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogMTRweDsgfVxuLmRvY3Mtc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1zYW5zKTtcbiAgZm9udC1zaXplOiAxMy41cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogOXB4IDQwcHggOXB4IDEycHg7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2U7XG59XG4uZG9jcy1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfVxuLmRvY3Mtc2VhcmNoLWlucHV0OmZvY3VzIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZWFsKTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLXRlYWwtZ2xvdy1zb2Z0KTsgfVxuLmRvY3Mtc2VhcmNoLWtiZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbiAgdG9wOiA4cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1kaW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmRvY3Mtc2VhcmNoLXJlc3VsdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgNnB4KTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IC00MHB4O1xuICB6LWluZGV4OiA5NTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDQyMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmRvY3Mtc2VhcmNoLWVtcHR5IHsgcGFkZGluZzogMTRweDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9XG4uZG9jcy1zZWFyY2gtaGl0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbn1cbi5kb2NzLXNlYXJjaC1oaXQ6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbi5kb2NzLXNlYXJjaC1oaXQuYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tdGVhbC1nbG93LXNvZnQpOyB9XG4uZG9jcy1zZWFyY2gtaGl0LXRpdGxlIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTMuNXB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1zYW5zKTsgfVxuLmRvY3Mtc2VhcmNoLWhpdC1hbmNob3IgeyBjb2xvcjogdmFyKC0tdGVhbCk7IH1cbi5kb2NzLXNlYXJjaC1oaXQtbWV0YSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdGV4dC1kaW0pO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4uZG9jcy1zZWFyY2gtaGl0LXNuaXBwZXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLyogQXJ0aWNsZSAqL1xuLmRvY3MtbWFpbiB7IG1pbi13aWR0aDogMDsgcGFkZGluZy10b3A6IDQwcHg7IH1cbi5kb2NzLWFydGljbGUgeyBtYXgtd2lkdGg6IDc2MHB4OyB9XG4uZG9jcy1leWVicm93IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pO1xuICBmb250LXNpemU6IDExcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZWFsKTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5kb2NzLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXNlcmlmKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiBjbGFtcCgzNHB4LCA0LjV2dywgNDRweCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICBtYXJnaW46IDAgMCAyOHB4O1xufVxuLyogSGVhZGluZyBhbmNob3Igb2Zmc2V0OiB0aGUgTWFya2Rvd24gY29tcG9uZW50IGJha2VzIHNjcm9sbC1tYXJnaW4tdG9wXG4gKiA4OHB4IGlubGluZSAodHVuZWQgZm9yIHBhZ2VzIHdpdGhvdXQgdGhlIHN0aWNreSB0YWIgcm93KSBcdTIwMTQgdGhlIGRvY3NcbiAqIHNoZWxsIGFkZHMgfjQ4cHggb2Ygc3RpY2t5IHRhYnMsIHNvIG92ZXJyaWRlIGl0IGhlcmUuICovXG4uZG9jcy1hcnRpY2xlIGgyLCAuZG9jcy1hcnRpY2xlIGgzIHsgc2Nyb2xsLW1hcmdpbi10b3A6IDE0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogUHJldiAvIG5leHQgcGFnaW5hdGlvbiAqL1xuLmRvY3MtcHJldm5leHQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogMTZweDtcbiAgbWFyZ2luLXRvcDogNjRweDtcbiAgcGFkZGluZy10b3A6IDI4cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xufVxuLmRvY3MtcG4tY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG4uZG9jcy1wbi1jYXJkOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZWFsKTsgYmFja2dyb3VuZDogdmFyKC0tdGVhbC1nbG93LXNvZnQpOyB9XG4uZG9jcy1wbi1jYXJkLm5leHQgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuLmRvY3MtcG4tbGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRleHQtZGltKTtcbn1cbi5kb2NzLXBuLXRpdGxlIHsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cblxuLyogUmlnaHQtcmFpbCBUT0MgKi9cbi5kb2NzLXRvYyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMTMycHg7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNTJweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDI0cHggMDtcbiAgZm9udC1zaXplOiAxMi41cHg7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cbi5kb2NzLXRvYy1oZWFkIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm8pO1xuICBmb250LXNpemU6IDEwLjVweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRleHQtZGltKTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5kb2NzLXRvYyB1bCB7IGxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6IDA7IG1hcmdpbjogMDsgfVxuLmRvY3MtdG9jIGxpLnN1YiB7IHBhZGRpbmctbGVmdDogMTJweDsgfVxuLmRvY3MtdG9jLWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBwYWRkaW5nOiAzcHggMCAzcHggMTBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjEycyBlYXNlLCBib3JkZXItY29sb3IgMC4xMnMgZWFzZTtcbn1cbi5kb2NzLXRvYy1saW5rOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4uZG9jcy10b2MtbGluay5hY3RpdmUgeyBjb2xvcjogdmFyKC0tdGVhbCk7IGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS10ZWFsKTsgfVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogMTI4MHB4KSB7XG4gIC5kb2NzLXNoZWxsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNTBweCBtaW5tYXgoMCwgMWZyKTsgfVxuICAuZG9jcy10b2MgeyBkaXNwbGF5OiBub25lOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5kb2NzLXNoZWxsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTsgfVxuICAuZG9jcy1tZW51LWJ0biB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5kb2NzLXNpZGViYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMTE2cHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogODk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmcpO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICB9XG4gIC5kb2NzLXNpZGViYXIub3BlbiB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5kb2NzLXNlYXJjaC1yZXN1bHRzIHsgcmlnaHQ6IDA7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAuZG9jcy10YWJzLXJvdyB7IHBhZGRpbmc6IDAgMTZweDsgfVxuICAuZG9jcy1zaGVsbCB7IHBhZGRpbmc6IDAgMjBweCA2NHB4OyB9XG59XG5cbi8qID09PT09IGxpdmUgbW9iaWxlIGZpeGVzICh0c2tfZDM1NjFhZWEsIDIwMjYtMDctMDIpID09PT09ICovXG5cbi8qIEEgcGlsbCBidXR0b24gc3F1ZWV6ZWQgaW4gYSBmbGV4IHJvdyBtdXN0IG5ldmVyIHdyYXAgaXRzIGxhYmVsXG4gKiBtaWQtd29yZCAoXCJCdWlsZCBmb3IgLyBmcmVlXCIpIFx1MjAxNCBjb25maXJtZWQgb24gYSAzOTBweCB2aWV3cG9ydC4gKi9cbi5idG4tcGlsbCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC8qICFpbXBvcnRhbnQgaXMgcmVxdWlyZWQ6IG5lYXJseSBldmVyeSBsYW5kaW5nIHNlY3Rpb24gc2V0cyBpdHMgb3duXG4gICAqIGlubGluZSBwYWRkaW5nVG9wL3BhZGRpbmdCb3R0b20gKEhlcm8gMTgwLzIwMCwgQm90dG9tQ1RBIDEyMC82MCxcbiAgICogU2VjdXJpdHlSZWxpYWJpbGl0eSA5Ni85NiwgXHUyMDI2KSB0byB0dW5lIGRlc2t0b3Agcmh5dGhtLiBJbmxpbmUgc3R5bGVzXG4gICAqIGJlYXQgYSBwbGFpbiBjbGFzcyBydWxlLCBzbyB3aXRob3V0ICFpbXBvcnRhbnQgdGhpcyBtb2JpbGUgcmVzZXRcbiAgICogTkVWRVIgZmlyZWQgYW5kIGV2ZXJ5IHNlY3Rpb24ga2VwdCBkZXNrdG9wLXNpemVkIHZlcnRpY2FsIHBhZGRpbmdcbiAgICogb24gYSBwaG9uZSBcdTIwMTQgdGhlIHBhZ2UgcmVuZGVyZWQgfjI0LDAwMHB4IHRhbGwgYW5kIGZlbHQgc3BhcnNlLiAqL1xuICAuc2VjdGlvbiB7IHBhZGRpbmc6IDY0cHggMjBweCAhaW1wb3J0YW50OyB9XG5cbiAgLyogVGhlIGhlcm8gbmVlZHMgaXRzIG93biBwYWRkaW5nLCBub3QgdGhlIGdlbmVyaWMgNjRweDogNjQgdG9wIGxlYXZlc1xuICAgKiB0aGUgaGVhZGxpbmUgdG91Y2hpbmcgdGhlIDY4cHggZml4ZWQgbmF2LCBhbmQgNjQgYm90dG9tIGRyb3BzIHRoZVxuICAgKiByZWFzc3VyYW5jZSBsaW5lIGludG8gdGhlIFBpeGVsRmllbGQgZG90IGJhbmQgKGEgYm90dG9tLWFuY2hvcmVkXG4gICAqIGNsYW1wKDMwMHB4LDQydmgsNDQwcHgpIGNhbnZhcykuIDExMiBjbGVhcnMgdGhlIG5hdjsgMjQwIGtlZXBzIHRleHRcbiAgICogYWJvdmUgdGhlIGRvdHMgYXQgdGhlIHNhbWUgdmlzdWFsIHJhdGlvIGFzIGRlc2t0b3AncyAyMDBweC4gKi9cbiAgLmhlcm8tc2VjdGlvbiB7IHBhZGRpbmc6IDExMnB4IDIwcHggMjQwcHggIWltcG9ydGFudDsgfVxuXG4gIC8qIEF0IDAuNzIgdGhlIGZyb3N0ZWQgbmF2IGxldHMgc2F0dXJhdGVkIGNvbnRlbnQgc2Nyb2xsZWQgdW5kZXJuZWF0aFxuICAgKiAodGhlIHRlYWwgQm90dG9tQ1RBIHBpbGwpIHZpc2libHkgYmxlZWQgdGhyb3VnaCBvbiBhIHNtYWxsIHZpZXdwb3J0XG4gICAqIHdoZXJlIHRoZSBuYXYgaXMgYSBtdWNoIGxhcmdlciBmcmFjdGlvbiBvZiB0aGUgc2NyZWVuLiAqL1xuICAubmF2LnNjcm9sbGVkIHsgYmFja2dyb3VuZDogcmdiYSgxMywgMTQsIDIwLCAwLjk2KTsgfVxuXG4gIC8qIFNlY3VyaXR5UmVsaWFiaWxpdHkncyBiZXNwb2tlICcxODBweCAxLjJmciAxLjJmcicgdGFibGUgZ3JpZCBpc24ndFxuICAgKiBpbiB0aGUga25vd24tc3BsaXRzIGF0dHJpYnV0ZS1zZWxlY3RvciBsaXN0LCBzbyBpdCBuZXZlciBjb2xsYXBzZWQ6XG4gICAqIHRocmVlIH4xMTBweCBjb2x1bW5zIG9mIDQtOC1saW5lIHdvcmQgZnJhZ21lbnRzLiBPbmNlIHN0YWNrZWQgdGhlXG4gICAqIGNvbHVtbiBoZWFkZXJzIGFyZSByZWR1bmRhbnQgKGVhY2ggY2VsbCBjYXJyaWVzIGl0cyBvd24gIS9cdTI3MTMgZ2x5cGgpLiAqL1xuICAuc3ItY29sLWhlYWRlciB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc3Itcm93IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50O1xuICAgIGdhcDogMTBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIEdob3N0IHNpYmxpbmcgb2YgLmJ0bi1waWxsIGZvciB0aGUgaGVybydzIFwiR2V0IHN0YXJ0ZWRcIiBzZWNvbmRhcnkgQ1RBXG4gKiAoMjAyNi0wNy0wMyBcdTIwMTQgcHJvbXB0IGhpZGRlbiBiZWhpbmQgdGhlIHByaW1hcnkgY29weSBwaWxsKS4gKi9cbi5idG4tcGlsbC1naG9zdCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMTRweCAyOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5idG4tcGlsbC1naG9zdDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGVhbCk7IGNvbG9yOiB2YXIoLS10ZWFsKTsgfVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUtBO0FBRUUsUUFBTTtBQUNOLGFBQVc7QUFDWCxlQUFhO0FBQ2IsWUFBVSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQzlCLG1CQUFpQixLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBR3JDLFVBQVE7QUFNUixnQkFBYztBQUNkLGNBQVk7QUFHWixVQUFRO0FBQ1IsZUFBYTtBQUNiLGVBQWEsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUNoQyxvQkFBa0IsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUdyQyxVQUFRO0FBR1I7QUFBQSxJQUFTLGtCQUFrQjtBQUFBLElBQUUsT0FBTztBQUFBLElBQUU7QUFDdEM7QUFBQSxJQUFRLFNBQVM7QUFBQSxJQUFFLFNBQVM7QUFBQSxJQUFFO0FBQzlCO0FBQUEsSUFBUSxTQUFTO0FBQUEsSUFBRSxZQUFZO0FBQUEsSUFBRTtBQUdqQyxjQUFZLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUU7QUFDekM7QUFHQSxDQUFDO0FBQ0MsUUFBZ0I7QUFDaEIsYUFBZ0I7QUFDaEIsZUFBZ0I7QUFDaEIsWUFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUM5QixrQkFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUU5QixVQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsY0FBZ0I7QUFHaEIsVUFBZ0I7QUFDaEIsZUFBZ0I7QUFDaEIsZUFBZ0IsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUNuQyxvQkFBa0IsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUVyQyxVQUFnQjtBQUNsQjtBQUVBO0FBQUksVUFBUTtBQUFHLFdBQVM7QUFBRyxjQUFZO0FBQVk7QUFDbkQ7QUFBTyxtQkFBaUI7QUFBUTtBQUNoQztBQUNFLGNBQVksSUFBSTtBQUNoQixTQUFPLElBQUk7QUFDWCxlQUFhLElBQUk7QUFJakIsZUFBYTtBQUdiLGtCQUFnQjtBQUNoQiwwQkFBd0I7QUFDeEIsMkJBQXlCO0FBQ3pCLGtCQUFnQjtBQUNsQjtBQUNBO0FBQWMsY0FBWSxJQUFJO0FBQWMsU0FBTyxJQUFJO0FBQVM7QUFDaEU7QUFBSSxTQUFPO0FBQVMsbUJBQWlCO0FBQU07QUFHM0MsQ0FBQztBQUNDLFlBQVU7QUFDVixTQUFPO0FBQ1AsV0FBUztBQUNULGtCQUFnQjtBQUNoQixvQkFBa0IsZ0JBQWdCLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsWUFBWTtBQUM3RSxtQkFBaUIsS0FBSztBQUN4QjtBQUdBLENBQUM7QUFDQyxZQUFVO0FBQ1YsT0FBSztBQUNMLFFBQU07QUFDTixTQUFPO0FBQ1AsVUFBUTtBQUNSLGFBQVcsVUFBVSxJQUFJLEVBQUU7QUFDM0IsV0FBUztBQUNULGtCQUFnQjtBQUNoQjtBQUFBLElBQVk7QUFBQSxNQUNWLE9BQU8sR0FBRyxNQUFNO0FBQUEsTUFDaEIsSUFBSSxhQUFhLEVBQUU7QUFBQSxNQUNuQixLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRztBQUFBLE1BQzVCLFlBQVk7QUFFZCxVQUFRLEtBQUs7QUFDZjtBQUdBLENBQUM7QUFDQyxXQUFTO0FBQ1QsYUFBVztBQUNYLGVBQWE7QUFDYixrQkFBZ0I7QUFDaEIsa0JBQWdCO0FBQ2hCLFNBQU8sSUFBSTtBQUNYLFVBQVEsSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDckMsaUJBQWU7QUFDZixXQUFTLElBQUk7QUFDYixjQUFZLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDakM7QUFDQSxDQUFDO0FBQ0MsV0FBUztBQUNULGFBQVc7QUFDWCxlQUFhO0FBQ2Isa0JBQWdCO0FBQ2hCLGtCQUFnQjtBQUNoQixTQUFPLElBQUk7QUFDYjtBQUdBLENBQUM7QUFDQyxXQUFTO0FBQ1QsZUFBYTtBQUNiLE9BQUs7QUFDTCxlQUFhLElBQUk7QUFDakIsZUFBYTtBQUNiLGFBQVc7QUFDWCxjQUFZLElBQUk7QUFDaEIsU0FBTztBQUNQLFVBQVE7QUFDUixpQkFBZTtBQUNmLFdBQVMsS0FBSztBQUNkLFVBQVE7QUFDUjtBQUFBLElBQVksVUFBVSxLQUFLLElBQUk7QUFBQSxJQUFFLFdBQVcsS0FBSyxJQUFJO0FBQUEsSUFBRSxXQUFXLEtBQUs7QUFDdkUsY0FBWSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDO0FBQ0EsQ0FoQkMsUUFnQlE7QUFDUCxhQUFXLFdBQVc7QUFDdEIsY0FBWTtBQUNaLGNBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM3QztBQUNBLENBQUM7QUFDQyxhQUFXO0FBQ1gsV0FBUyxLQUFLO0FBQ2hCO0FBQ0EsQ0FBQztBQUNDLGFBQVcsV0FBVyxHQUFHLFlBQVk7QUFDdkM7QUFDQSxXQUZhO0FBR1g7QUFBVyxnQkFBWSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQUk7QUFDcEQ7QUFBVyxnQkFBWSxFQUFFLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQU87QUFDNUQ7QUFDQSxXQUFXO0FBQ1Q7QUFBSyxlQUFXLE9BQU87QUFBUztBQUNsQztBQU9BLENBQUM7QUFDQyxjQUFZO0FBQ1osc0JBQW9CO0FBQ3BCLFdBQVM7QUFDVCxlQUFhO0FBQ2IsbUJBQWlCO0FBQ2pCLE9BQUs7QUFDTCxTQUFPO0FBQ1AsYUFBVztBQUNYLFVBQVEsRUFBRTtBQUNWLGNBQVksSUFBSTtBQUNoQixVQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGlCQUFlO0FBQ2YsV0FBUyxLQUFLO0FBQ2QsVUFBUTtBQUNSLGNBQVk7QUFDWixjQUFZLGFBQWEsS0FBSztBQUNoQztBQUNBLENBbEJDLFlBa0JZO0FBQ2IsQ0FuQkMsWUFtQlk7QUFDWCxnQkFBYyxJQUFJO0FBQ2xCLFdBQVM7QUFDWDtBQUNBLENBQUM7QUFDQyxlQUFhLElBQUk7QUFDakIsYUFBVztBQUNYLFNBQU8sSUFBSTtBQUNYLGVBQWE7QUFDYixpQkFBZTtBQUNmLGNBQVk7QUFDZDtBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1QsZUFBYTtBQUNiLG1CQUFpQjtBQUNqQixlQUFhO0FBQ2IsU0FBTztBQUNQLFVBQVE7QUFDUixpQkFBZTtBQUNmLFNBQU8sSUFBSTtBQUNYLGNBQVksTUFBTSxLQUFLO0FBQ3pCO0FBQ0EsQ0ExQ0MsWUEwQ1ksT0FBTyxDQVhuQjtBQVlELENBM0NDLFlBMkNZLGVBQWUsQ0FaM0I7QUFhQyxTQUFPLElBQUk7QUFDYjtBQUNBLENBZkMsaUJBZWlCLENBQUM7QUFDakIsU0FBTyxJQUFJO0FBQ2I7QUFLQSxXQUFXO0FBQ1Q7QUFBZ0IsYUFBUztBQUFLLGVBQVcsV0FBVztBQUFJO0FBQ3hEO0FBQWdCLGFBQVM7QUFBSyxlQUFXLFdBQVc7QUFBTztBQUM3RDtBQUVBLFdBQVc7QUFDVDtBQUFPLGFBQVM7QUFBRyxlQUFXLFdBQVc7QUFBTTtBQUMvQztBQUFPLGFBQVM7QUFBRyxlQUFXLFdBQVc7QUFBSTtBQUMvQztBQUNBLENBQUM7QUFBVSxhQUFXLE9BQU8sTUFBTSxTQUFTO0FBQU07QUFDbEQsT0FBTyxDQUFDLHNCQUFzQixFQUFFO0FBQzlCLEdBRkQ7QUFFWSxlQUFXO0FBQU07QUFDOUI7QUFPQSxXQUFXO0FBQ1Q7QUFBVyxlQUFXLFdBQVc7QUFBSTtBQUNyQztBQUFXLGVBQVcsV0FBVztBQUFRO0FBQzNDO0FBQ0EsV0FBVztBQUNUO0FBQVcsZUFBVyxXQUFXLEdBQUcsT0FBTztBQUFPO0FBQ2xEO0FBQVcsZUFBVyxXQUFXLE1BQU0sT0FBTztBQUFPO0FBQ3ZEO0FBQ0EsQ0FBQztBQUNDLGFBQVcsVUFBVSxHQUFHLFlBQVk7QUFDdEM7QUFDQSxDQUhDLGFBR2EsQ0FBQztBQUNiLFdBQVM7QUFDVCxhQUFXLFVBQVUsS0FBSyxZQUFZO0FBQ3RDLG9CQUFrQixPQUFPO0FBQzNCO0FBQ0EsT0FBTyxDQUFDLHNCQUFzQixFQUFFO0FBQzlCLEdBVEQ7QUFBQSxFQVNnQixDQVRoQixhQVM4QixDQU5oQjtBQU1zQixlQUFXO0FBQWlCO0FBQ2pFO0FBR0EsQ0FBQztBQUNDLGVBQWEsSUFBSTtBQUNqQixlQUFhO0FBSWIsa0JBQWdCO0FBQ2xCO0FBQ0EsQ0FSQyxRQVFRO0FBQ1AsU0FBTyxJQUFJO0FBQ1gsY0FBWTtBQUNaLGVBQWE7QUFDZjtBQUdBLENBQUM7QUFDQyxjQUFZLElBQUk7QUFDaEIsVUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixpQkFBZTtBQUNmLFdBQVM7QUFDWDtBQUNBLENBQUM7QUFDQyxnQkFBYyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ2pDLGNBQVksRUFBRSxFQUFFLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7QUFDcEY7QUFHQSxDQUFDO0FBQ0MsV0FBUztBQUNULGFBQVcsV0FBVztBQUN0QixjQUNFLFFBQVEsS0FBSyxJQUFJLFlBQVksSUFBSSxjQUFjLEVBQUUsR0FBRyxFQUNwRCxVQUFVLEtBQUssSUFBSSxZQUFZLElBQUksY0FBYyxFQUFFO0FBQ3JELGVBQWEsT0FBTyxFQUFFO0FBQ3hCO0FBQ0EsQ0FSQyxNQVFNLENBQUM7QUFDTixXQUFTO0FBQ1QsYUFBVyxXQUFXO0FBQ3hCO0FBSUEsQ0FBQztBQUNDLFdBQVM7QUFDVCxhQUFXLFdBQVc7QUFDdEIsYUFBVyxVQUFVLEdBQUcsSUFBSSxZQUFZO0FBQ3hDLG1CQUFpQixJQUFJLGVBQWUsRUFBRTtBQUN4QztBQUNBLFdBSGE7QUFJWDtBQUFLLGFBQVM7QUFBRyxlQUFXLFdBQVc7QUFBSTtBQUM3QztBQUtBLFdBQVc7QUFDVDtBQUFZLGFBQVM7QUFBRztBQUN4QjtBQUFZLGFBQVM7QUFBRztBQUMxQjtBQU9BLENBQUM7QUFDQyxZQUFVO0FBQ1YsWUFBVTtBQUNWLFNBQU87QUFDUDtBQUFBLElBQVk7QUFBQSxNQUNWLEdBQUcsS0FBSztBQUFBLE1BQ1IsWUFBWSxFQUFFO0FBQUEsTUFDZCxLQUFLLEdBQUc7QUFBQSxNQUNSLEtBQUssR0FBRztBQUFBLE1BQ1IsWUFBWTtBQUVkO0FBQUEsSUFBb0I7QUFBQSxNQUNsQixHQUFHLEtBQUs7QUFBQSxNQUNSLFlBQVksRUFBRTtBQUFBLE1BQ2QsS0FBSyxHQUFHO0FBQUEsTUFDUixLQUFLLEdBQUc7QUFBQSxNQUNSLFlBQVk7QUFFaEI7QUFDQSxDQUFDO0FBQ0MsV0FBUztBQUNULGVBQWE7QUFDYixTQUFPO0FBQ1AsZUFBYTtBQUNmO0FBQ0EsQ0FBQztBQUFzQixhQUFXLFlBQWEsSUFBSSxPQUFPO0FBQVU7QUFDcEUsQ0FBQztBQUFzQixhQUFXLGFBQWEsSUFBSSxPQUFPO0FBQVU7QUFFcEUsV0FIa0M7QUFJaEM7QUFBTyxlQUFXLFdBQVc7QUFBSTtBQUNqQztBQUFPLGVBQVcsV0FBVztBQUFPO0FBQ3RDO0FBQ0EsV0FOa0M7QUFPaEM7QUFBTyxlQUFXLFdBQVc7QUFBTztBQUNwQztBQUFPLGVBQVcsV0FBVztBQUFJO0FBQ25DO0FBQ0EsT0FBTyxDQUFDLHNCQUFzQixFQUFFO0FBQzlCLEdBWkQ7QUFBQSxFQWFDLENBWkQ7QUFZd0IsZUFBVztBQUFNO0FBQzFDO0FBSUEsQ0FBQztBQUNDLFdBQVM7QUFDVCxrQkFBZ0I7QUFDaEIsZUFBYTtBQUNiLE9BQUs7QUFDTCxlQUFhO0FBQ2IsZ0JBQWM7QUFDZCxXQUFTO0FBQ1g7QUFDQSxDQVRDLGFBU2E7QUFDWixTQUFPO0FBQ1AsVUFBUTtBQUNSLFVBQVEsVUFBVSxNQUFNLFdBQVcsR0FBRyxPQUFPO0FBQy9DO0FBQ0EsQ0FkQyxhQWNhO0FBQ1osYUFBVztBQUNYLGVBQWE7QUFDYixTQUFPLElBQUk7QUFDWCxrQkFBZ0I7QUFDaEIsZUFBYTtBQUNmO0FBS0EsQ0FBQztBQUNDLFNBQU87QUFDUCxVQUFRO0FBQ1IsVUFBUSxFQUFFO0FBQ1YsZUFBYSxJQUFJLE9BQU8sSUFBSTtBQUM1QixXQUFTO0FBQ1g7QUFHQSxDQUFDO0FBQ0MsWUFBVTtBQUNWLFdBQVMsS0FBSztBQUNkLFdBQVM7QUFDWDtBQUNBLENBQUM7QUFBZ0IsV0FBUyxLQUFLO0FBQU07QUFDckMsQ0FBQztBQUNDLGFBQVc7QUFDWCxVQUFRLEVBQUU7QUFDVixZQUFVO0FBQ1o7QUFDQSxDQUFDO0FBQ0MsYUFBVztBQUNYLFVBQVEsRUFBRTtBQUNWLFlBQVU7QUFDWjtBQUdBLENBQUM7QUFDQyxZQUFVO0FBQ1YsT0FBSztBQUFHLFFBQU07QUFBRyxTQUFPO0FBQ3hCLFdBQVM7QUFDVCxVQUFRO0FBQ1IsV0FBUztBQUNULGVBQWE7QUFDYixtQkFBaUI7QUFDakIsV0FBUyxFQUFFO0FBQ1g7QUFBQSxJQUFZLFdBQVcsS0FBSyxJQUFJO0FBQUEsSUFBRSxhQUFhLEtBQUssSUFBSTtBQUFBLElBQUUsZ0JBQWdCLEtBQUs7QUFDL0UsaUJBQWUsSUFBSSxNQUFNO0FBQzNCO0FBQ0EsQ0FaQyxHQVlHLENBQUM7QUFDSCxjQUFZLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDN0IsbUJBQWlCLEtBQUssTUFBTSxTQUFTO0FBQ3JDLDJCQUF5QixLQUFLLE1BQU0sU0FBUztBQUM3Qyx1QkFBcUIsSUFBSTtBQUMzQjtBQUNBLENBQUM7QUFDQyxTQUFPLElBQUk7QUFDWCxhQUFXO0FBQ1gsZUFBYTtBQUNiLGNBQVksTUFBTSxLQUFLO0FBQ3pCO0FBQ0EsQ0FOQyxRQU1RO0FBQVMsU0FBTyxJQUFJO0FBQVM7QUFHdEMsT0FBTyxDQUFDLFNBQVMsRUFBRTtBQUNqQixHQTlDRDtBQThDWSxhQUFTLEtBQUs7QUFBTTtBQUMvQixHQXpDRDtBQUFBLEVBeUNhLENBcENiO0FBb0MrQixlQUFXO0FBQU07QUFDL0MsR0E5QkQ7QUE4QlEsYUFBUyxFQUFFO0FBQU07QUFHeEIsR0FBQztBQUFZLGFBQVM7QUFBaUI7QUFDdkMsR0FBQyxTQUFTLENBaEJYO0FBa0JHLGFBQVM7QUFDWDtBQUNBLEdBQUM7QUFDQywyQkFBdUI7QUFDekI7QUFDQSxHQUFDO0FBQW9CLGFBQVM7QUFBaUI7QUFrQi9DLEdBQUM7QUFBQSxFQUNELENBQUM7QUFBQSxFQUNELENBQUM7QUFBQSxFQUNELENBQUM7QUFBQSxFQUNELENBQUM7QUFBQSxFQUNELENBQUM7QUFDQywyQkFBdUI7QUFDdkIsU0FBSztBQUNQO0FBQ0Y7QUFJQSxPQUFPLENBQUMsU0FBUyxFQUFFO0FBQ2pCLEdBekVEO0FBeUVRLGFBQVMsRUFBRTtBQUFNO0FBQ3hCLEdBeENDO0FBd0NXLFNBQUs7QUFBZ0I7QUFDakMsR0F6Q0MsU0F5Q1MsQ0FqWFg7QUFpWHVCLGFBQVMsSUFBSTtBQUFpQixlQUFXO0FBQWlCO0FBQ2xGO0FBUUEsQ0FBQztBQUNDLFlBQVU7QUFDVixPQUFLO0FBQ0wsV0FBUztBQUNULFdBQVM7QUFDVCxlQUFhO0FBQ2IsbUJBQWlCO0FBQ2pCLGNBQVk7QUFDWixXQUFTLEVBQUU7QUFDWCxjQUFZLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFDN0IsbUJBQWlCLEtBQUssTUFBTSxTQUFTO0FBQ3JDLDJCQUF5QixLQUFLLE1BQU0sU0FBUztBQUM3QyxpQkFBZSxJQUFJLE1BQU0sSUFBSTtBQUMvQjtBQUNBLENBQUMsa0JBQW9CLENBZHBCO0FBY3FDLGNBQVksS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUFPO0FBRTdFLENBQUM7QUFBWSxXQUFTO0FBQU0sT0FBSztBQUFLO0FBQ3RDLENBQUM7QUFDQyxjQUFZO0FBQ1osY0FBWTtBQUNaLFVBQVE7QUFDUixpQkFBZSxJQUFJLE1BQU07QUFDekIsVUFBUTtBQUNSLGVBQWEsSUFBSTtBQUNqQixhQUFXO0FBQ1gsU0FBTyxJQUFJO0FBQ1gsV0FBUyxLQUFLLEtBQUs7QUFDbkIsY0FBWSxNQUFNLE1BQU0sSUFBSSxFQUFFLGFBQWEsTUFBTTtBQUNuRDtBQUNBLENBWkMsUUFZUTtBQUFTLFNBQU8sSUFBSTtBQUFTO0FBQ3RDLENBYkMsUUFhUSxDQUFDO0FBQVMsU0FBTyxJQUFJO0FBQVMsdUJBQXFCLElBQUk7QUFBUztBQUV6RSxDQUFDO0FBQ0MsV0FBUztBQUNULGNBQVk7QUFDWixjQUFZLElBQUk7QUFDaEIsVUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixpQkFBZTtBQUNmLFNBQU8sSUFBSTtBQUNYLGVBQWEsSUFBSTtBQUNqQixhQUFXO0FBQ1gsV0FBUyxJQUFJO0FBQ2IsVUFBUTtBQUNWO0FBRUEsQ0FBQztBQUNDLFlBQVU7QUFDVixXQUFTO0FBQ1QsV0FBUztBQUNULHlCQUF1QixNQUFNLE9BQU8sQ0FBQyxFQUFFLEtBQUs7QUFDNUMsT0FBSztBQUNMLGFBQVc7QUFDWCxVQUFRLEVBQUU7QUFDVixXQUFTLEVBQUUsS0FBSztBQUNoQixlQUFhO0FBQ2Y7QUFHQSxDQUFDO0FBQ0MsWUFBVTtBQUNWLE9BQUs7QUFDTCxjQUFZLEtBQUssTUFBTSxFQUFFO0FBQ3pCLGNBQVk7QUFDWixXQUFTLEtBQUssS0FBSyxLQUFLO0FBQ3hCLG1CQUFpQjtBQUNuQjtBQUNBLENBQUM7QUFBbUIsV0FBUztBQUFNLGtCQUFnQjtBQUFRLE9BQUs7QUFBSztBQUNyRSxDQUFDO0FBQWUsaUJBQWU7QUFBSztBQUNwQyxDQUFDO0FBQ0MsY0FBWTtBQUNaLGNBQVk7QUFDWixVQUFRO0FBQ1IsVUFBUTtBQUNSLFNBQU87QUFDUCxXQUFTO0FBQ1QsZUFBYTtBQUNiLG1CQUFpQjtBQUNqQixlQUFhLElBQUk7QUFDakIsYUFBVztBQUNYLGtCQUFnQjtBQUNoQixrQkFBZ0I7QUFDaEIsU0FBTyxJQUFJO0FBQ1gsV0FBUyxLQUFLLElBQUk7QUFDbEIsY0FBWSxNQUFNLE1BQU07QUFDMUI7QUFDQSxDQWpCQyxpQkFpQmlCO0FBQVMsU0FBTyxJQUFJO0FBQWU7QUFDckQsQ0FBQztBQUNDLGFBQVc7QUFDWCxjQUFZLFVBQVUsTUFBTTtBQUM1QixhQUFXLE9BQU87QUFDcEI7QUFDQSxDQUxDLFlBS1ksQ0FBQztBQUFRLGFBQVcsT0FBTztBQUFRO0FBQ2hELENBQUM7QUFBb0IsY0FBWTtBQUFNLFdBQVM7QUFBRyxVQUFRO0FBQUc7QUFDOUQsQ0FBQztBQUNDLFdBQVM7QUFDVCxhQUFXO0FBQ1gsZUFBYTtBQUNiLFNBQU8sSUFBSTtBQUNYLFdBQVMsSUFBSTtBQUNiLGVBQWEsSUFBSSxNQUFNLElBQUk7QUFDM0IsZUFBYTtBQUNiO0FBQUEsSUFBWSxNQUFNLE1BQU0sSUFBSTtBQUFBLElBQUUsYUFBYSxNQUFNLElBQUk7QUFBQSxJQUFFLFdBQVcsTUFBTTtBQUMxRTtBQUNBLENBVkMsYUFVYTtBQUFTLFNBQU8sSUFBSTtBQUFTO0FBQzNDLENBWEMsYUFXYSxDQTFFSjtBQTJFUixTQUFPLElBQUk7QUFDWCxlQUFhLElBQUksTUFBTSxJQUFJO0FBQzNCLGdCQUFjO0FBQ2QsY0FBWSxJQUFJO0FBQ2xCO0FBQ0EsQ0FBQztBQUNDLGNBQVk7QUFDWixXQUFTLEtBQUssSUFBSTtBQUNsQixjQUFZLElBQUksTUFBTSxJQUFJO0FBQzFCLGFBQVc7QUFDWCxTQUFPLElBQUk7QUFDWCxlQUFhLElBQUk7QUFDakIsZUFBYTtBQUNmO0FBQ0EsQ0FUQyxrQkFTa0I7QUFBSSxTQUFPLElBQUk7QUFBZTtBQUNqRCxDQVZDLGtCQVVrQixDQUFDO0FBQVMsU0FBTyxJQUFJO0FBQVM7QUFHakQsQ0FBQztBQUFjLFlBQVU7QUFBVSxpQkFBZTtBQUFNO0FBQ3hELENBQUM7QUFDQyxTQUFPO0FBQ1AsZUFBYSxJQUFJO0FBQ2pCLGFBQVc7QUFDWCxTQUFPLElBQUk7QUFDWCxjQUFZLElBQUk7QUFDaEIsVUFBUSxJQUFJLE1BQU0sSUFBSTtBQUN0QixpQkFBZTtBQUNmLFdBQVMsSUFBSSxLQUFLLElBQUk7QUFDdEIsV0FBUztBQUNULGNBQVksYUFBYSxNQUFNLElBQUksRUFBRSxXQUFXLE1BQU07QUFDeEQ7QUFDQSxDQVpDLGlCQVlpQjtBQUFnQixTQUFPLElBQUk7QUFBYTtBQUMxRCxDQWJDLGlCQWFpQjtBQUFTLGdCQUFjLElBQUk7QUFBUyxjQUFZLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSTtBQUFtQjtBQUNuRyxDQUFDO0FBQ0MsWUFBVTtBQUNWLFNBQU87QUFDUCxPQUFLO0FBQ0wsZUFBYSxJQUFJO0FBQ2pCLGFBQVc7QUFDWCxTQUFPLElBQUk7QUFDWCxVQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGlCQUFlO0FBQ2YsV0FBUyxJQUFJO0FBQ2Isa0JBQWdCO0FBQ2xCO0FBQ0EsQ0FBQztBQUNDLFlBQVU7QUFDVixPQUFLLEtBQUssS0FBSyxFQUFFO0FBQ2pCLFFBQU07QUFDTixTQUFPO0FBQ1AsV0FBUztBQUNULGNBQVksSUFBSTtBQUNoQixVQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGlCQUFlO0FBQ2YsY0FBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RDLFlBQVU7QUFDVixjQUFZO0FBQ1osY0FBWTtBQUNkO0FBQ0EsQ0FBQztBQUFvQixXQUFTO0FBQU0sYUFBVztBQUFNLFNBQU8sSUFBSTtBQUFhO0FBQzdFLENBQUM7QUFDQyxjQUFZO0FBQ1osY0FBWTtBQUNaLFVBQVE7QUFDUixpQkFBZSxJQUFJLE1BQU0sSUFBSTtBQUM3QixXQUFTO0FBQ1QsU0FBTztBQUNQLGNBQVk7QUFDWixVQUFRO0FBQ1IsV0FBUyxLQUFLO0FBQ2hCO0FBQ0EsQ0FYQyxlQVdlO0FBQWMsaUJBQWU7QUFBTTtBQUNuRCxDQVpDLGVBWWUsQ0FuSk47QUFtSmdCLGNBQVksSUFBSTtBQUFtQjtBQUM3RCxDQUFDO0FBQXdCLFdBQVM7QUFBTyxhQUFXO0FBQVEsU0FBTyxJQUFJO0FBQVMsZUFBYSxJQUFJO0FBQVM7QUFDMUcsQ0FBQztBQUF5QixTQUFPLElBQUk7QUFBUztBQUM5QyxDQUFDO0FBQ0MsV0FBUztBQUNULGVBQWEsSUFBSTtBQUNqQixhQUFXO0FBQ1gsa0JBQWdCO0FBQ2hCLGtCQUFnQjtBQUNoQixTQUFPLElBQUk7QUFDWCxjQUFZO0FBQ2Q7QUFDQSxDQUFDO0FBQ0MsV0FBUztBQUNULGFBQVc7QUFDWCxTQUFPLElBQUk7QUFDWCxjQUFZO0FBQ1osZUFBYTtBQUNmO0FBR0EsQ0FBQztBQUFZLGFBQVc7QUFBRyxlQUFhO0FBQU07QUFDOUMsQ0FBQztBQUFlLGFBQVc7QUFBTztBQUNsQyxDQUFDO0FBQ0MsZUFBYSxJQUFJO0FBQ2pCLGFBQVc7QUFDWCxrQkFBZ0I7QUFDaEIsa0JBQWdCO0FBQ2hCLFNBQU8sSUFBSTtBQUNYLGlCQUFlO0FBQ2pCO0FBQ0EsQ0FBQztBQUNDLGVBQWEsSUFBSTtBQUNqQixlQUFhO0FBQ2IsYUFBVyxNQUFNLElBQUksRUFBRSxLQUFLLEVBQUU7QUFDOUIsZUFBYTtBQUNiLGtCQUFnQjtBQUNoQixVQUFRLEVBQUUsRUFBRTtBQUNkO0FBSUEsQ0FwQkMsYUFvQmE7QUFBSSxDQXBCakIsYUFvQitCO0FBQUsscUJBQW1CO0FBQWtCO0FBRzFFLENBQUM7QUFDQyxXQUFTO0FBQ1QseUJBQXVCLElBQUk7QUFDM0IsT0FBSztBQUNMLGNBQVk7QUFDWixlQUFhO0FBQ2IsY0FBWSxJQUFJLE1BQU0sSUFBSTtBQUM1QjtBQUNBLENBQUM7QUFDQyxXQUFTO0FBQ1Qsa0JBQWdCO0FBQ2hCLE9BQUs7QUFDTCxVQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGlCQUFlO0FBQ2YsV0FBUyxLQUFLO0FBQ2QsY0FBWSxhQUFhLE1BQU0sSUFBSSxFQUFFLFdBQVcsTUFBTTtBQUN4RDtBQUNBLENBVEMsWUFTWTtBQUFTLGdCQUFjLElBQUk7QUFBUyxjQUFZLElBQUk7QUFBbUI7QUFDcEYsQ0FWQyxZQVVZLENBQUM7QUFBTyxjQUFZO0FBQU87QUFDeEMsQ0FBQztBQUNDLGVBQWEsSUFBSTtBQUNqQixhQUFXO0FBQ1gsa0JBQWdCO0FBQ2hCLGtCQUFnQjtBQUNoQixTQUFPLElBQUk7QUFDYjtBQUNBLENBQUM7QUFBZ0IsYUFBVztBQUFNLFNBQU8sSUFBSTtBQUFTO0FBR3RELENBQUM7QUFDQyxZQUFVO0FBQ1YsT0FBSztBQUNMLGNBQVksS0FBSyxNQUFNLEVBQUU7QUFDekIsY0FBWTtBQUNaLFdBQVMsS0FBSztBQUNkLGFBQVc7QUFDWCxtQkFBaUI7QUFDbkI7QUFDQSxDQUFDO0FBQ0MsZUFBYSxJQUFJO0FBQ2pCLGFBQVc7QUFDWCxrQkFBZ0I7QUFDaEIsa0JBQWdCO0FBQ2hCLFNBQU8sSUFBSTtBQUNYLGlCQUFlO0FBQ2pCO0FBQ0EsQ0FqQkMsU0FpQlM7QUFBSyxjQUFZO0FBQU0sV0FBUztBQUFHLFVBQVE7QUFBRztBQUN4RCxDQWxCQyxTQWtCUyxFQUFFLENBQUM7QUFBTSxnQkFBYztBQUFNO0FBQ3ZDLENBQUM7QUFDQyxXQUFTO0FBQ1QsU0FBTyxJQUFJO0FBQ1gsV0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNuQixlQUFhLElBQUksTUFBTSxJQUFJO0FBQzNCLGVBQWE7QUFDYixjQUFZLE1BQU0sTUFBTSxJQUFJLEVBQUUsYUFBYSxNQUFNO0FBQ25EO0FBQ0EsQ0FSQyxhQVFhO0FBQVMsU0FBTyxJQUFJO0FBQVM7QUFDM0MsQ0FUQyxhQVNhLENBelBKO0FBeVBjLFNBQU8sSUFBSTtBQUFTLHFCQUFtQixJQUFJO0FBQVM7QUFHNUUsT0FBTyxDQUFDLFNBQVMsRUFBRTtBQUNqQixHQTlPRDtBQThPZSwyQkFBdUIsTUFBTSxPQUFPLENBQUMsRUFBRTtBQUFNO0FBQzNELEdBakNEO0FBaUNhLGFBQVM7QUFBTTtBQUM3QjtBQUNBLE9BQU8sQ0FBQyxTQUFTLEVBQUU7QUFDakIsR0FsUEQ7QUFrUGUsMkJBQXVCLE9BQU8sQ0FBQyxFQUFFO0FBQU07QUFDckQsR0FoUUQ7QUFnUWtCLGFBQVM7QUFBTztBQUNqQyxHQXZPRDtBQXdPRyxhQUFTO0FBQ1QsY0FBVTtBQUNWLFNBQUs7QUFDTCxVQUFNO0FBQ04sV0FBTztBQUNQLFlBQVE7QUFDUixhQUFTO0FBQ1QsZ0JBQVksSUFBSTtBQUNoQixhQUFTLEtBQUs7QUFDZCxnQkFBWTtBQUNkO0FBQ0EsR0FuUEQsWUFtUGMsQ0FBQztBQUFPLGFBQVM7QUFBTztBQUNyQyxHQXhKRDtBQXdKd0IsV0FBTztBQUFHO0FBQ25DO0FBQ0EsT0FBTyxDQUFDLFNBQVMsRUFBRTtBQUNqQixHQWpURDtBQWlUa0IsYUFBUyxFQUFFO0FBQU07QUFDbEMsR0FyUUQ7QUFxUWUsYUFBUyxFQUFFLEtBQUs7QUFBTTtBQUN0QztBQU1BLENBbnJCQztBQW1yQlcsZUFBYTtBQUFRO0FBRWpDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7QUFPakIsR0F4YUQ7QUF3YVksYUFBUyxLQUFLO0FBQWlCO0FBTzFDLEdBQUM7QUFBZSxhQUFTLE1BQU0sS0FBSztBQUFrQjtBQUt0RCxHQWxhRCxHQWthSyxDQXRaRDtBQXNaYSxnQkFBWSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQU87QUFNcEQsR0FBQztBQUFnQixhQUFTO0FBQWlCO0FBQzNDLEdBQUM7QUFDQywyQkFBdUI7QUFDdkIsU0FBSztBQUNQO0FBQ0Y7QUFJQSxDQUFDO0FBQ0MsV0FBUztBQUNULGVBQWE7QUFDYixtQkFBaUI7QUFDakIsV0FBUyxLQUFLO0FBQ2QsaUJBQWU7QUFDZixVQUFRLElBQUksTUFBTSxJQUFJO0FBQ3RCLGNBQVk7QUFDWixTQUFPLElBQUk7QUFDWCxhQUFXO0FBQ1gsZUFBYTtBQUNiLG1CQUFpQjtBQUNqQixlQUFhO0FBQ2IsY0FBWSxhQUFhLE1BQU0sSUFBSSxFQUFFLE1BQU0sTUFBTTtBQUNuRDtBQUNBLENBZkMsY0FlYztBQUFTLGdCQUFjLElBQUk7QUFBUyxTQUFPLElBQUk7QUFBUzsiLAogICJuYW1lcyI6IFtdCn0K */
