/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/scss/app.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
:root {
  --bg:#121212;
  --panel:#1e1e1e;
  --panel-2:#262626;
  --fg:#ffffff;
  --muted:#bdbdbd;
  --accent:#E53935;
  --accent-2:#FF8A65;
  --stroke:#2a2a2a;
  --radius:14px;
  --h1: clamp(36px, 5vw, 64px);
  --lead: clamp(16px, 1.4vw, 18px);
  --font: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --text: var(--fg);
  --link: #80d8ff;
  --surface: var(--panel);
  --bg-2: var(--panel-2);
  --card: var(--panel);
  --h2: clamp(28px, 4vw, 44px);
  --p: clamp(15px, 1.25vw, 17px);
  --btn-bg: #424242;
  --btn-bg-hover: #616161;
  --brand-1: var(--accent);
  --brand-3: #80d8ff;
  --tb-bg: rgba(18,18,18,.72);
  --tb-stroke:#2a2a2a;
  --tb-accent:#E53935;
  --tb-text:#fff;
  --bs-heading-color: #5f5d5d;
  --bs-secondary-color: #bdbdbd;
  --bs-table-color-state: #bdbdbd;
}

/* === Theme tokens etc. (migrated from PHP file) === */
body {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  margin: 0;
}

a {
  color: var(--link);
}

a:hover {
  text-decoration: underline;
}

.section {
  position: relative;
  overflow: hidden;
  color: var(--fg);
  background: radial-gradient(1200px 600px at 12% -10%, #2a2a2a, var(--bg));
  contain: paint;
}

.section--deep {
  background: radial-gradient(1400px 700px at 15% -10%, #2a2a2a 0%, #1b1b1b 55%, var(--bg) 100%), linear-gradient(180deg, #161616, var(--bg));
}

/* Topbar */
.topbar {
  position: fixed;
  inset: 0 0 auto 0;
  height: 64px;
  z-index: 1000;
  display: grid;
  place-items: center;
  transform: translateY(-18px);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.25s ease, opacity 0.25s ease, background 0.2s ease, border-color 0.2s ease;
  background: transparent;
  border-bottom: 1px solid transparent;
}

.topbar[data-reveal=true] {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  background: rgba(18, 18, 18, 0.72);
  border-bottom-color: var(--tb-stroke);
}

.topbar__inner {
  width: min(1200px, 92%);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.logo img {
  display: block;
  height: 46px;
  width: auto;
  float: left;
  left: 25px;
  top: 5px;
}

.navbar {
  display: flex;
  align-items: center;
  gap: 22px;
}

.navbar a {
  color: var(--tb-text);
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.2px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid transparent;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.navbar a:hover {
  border-color: rgba(255, 255, 255, 0.1490196078);
  background: rgba(255, 255, 255, 0.062745098);
}

#login_btn_large {
  color: #fff;
  background: var(--tb-accent);
  border-color: transparent;
  padding: 8px 14px;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(229, 57, 53, 0.32);
  position: fixed;
  right: 25px;
  top: 10px;
  z-index: 999999999;
  text-decoration: none;
}
@media (max-width: 960px) {
  #login_btn_large {
    display: none;
  }
}

@media (min-width: 960px) {
  .navber a.login {
    display: none;
  }
}

.navbar a.logout {
  background: #b71c1c;
}

.mobile-toggle {
  display: none;
  position: relative;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.1490196078);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.062745098);
  cursor: pointer;
}

.mobile-toggle span {
  position: absolute;
  left: 10px;
  right: 10px;
  height: 2px;
  background: #fff;
  transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
}

.mobile-toggle span:nth-child(1) {
  top: 12px;
}

.mobile-toggle span:nth-child(2) {
  top: 20px;
}

.mobile-toggle span:nth-child(3) {
  top: 28px;
}

.mobile-toggle[aria-expanded=true] span:nth-child(1) {
  top: 20px;
  transform: rotate(45deg);
}

.mobile-toggle[aria-expanded=true] span:nth-child(2) {
  opacity: 0;
}

.mobile-toggle[aria-expanded=true] span:nth-child(3) {
  top: 20px;
  transform: rotate(-45deg);
}

.mobile-drawer {
  display: none;
  position: fixed;
  top: 64px;
  left: 0;
  right: 0;
  background: rgba(18, 18, 18, 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--tb-stroke);
  padding: 12px 4vw 20px;
  z-index: 999;
  transform: translateY(-12px);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.mobile-drawer a {
  display: block;
  padding: 12px 10px;
  color: #fff;
  text-decoration: none;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1019607843);
  margin: 6px 0;
  background: rgba(255, 255, 255, 0.031372549);
}

.mobile-drawer a.login {
  background: var(--tb-accent);
  border-color: transparent;
}

.mobile-drawer.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 960px) {
  .navbar {
    display: none;
  }
  .mobile-toggle {
    display: block;
  }
  .mobile-drawer {
    display: block;
  }
}
/* Intro / hero */
#intro.section {
  min-height: 95vh;
  max-height: 95vh;
  display: grid;
  place-items: center;
  padding: 10vh 6vw;
  isolation: isolate;
  position: relative;
  overflow: hidden;
}

@media (max-width: 768px) {
  .section {
    overflow: visible;
  }
  #intro.section {
    max-height: none;
    min-height: auto;
    padding: 6vh 6vw 8vh;
  }
  .intro__wrap {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .intro__cta {
    justify-content: center;
  }
}
#intro::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(1200px 600px at 10% 0%, rgba(0, 0, 0, 0.5333333333), transparent 60%), linear-gradient(180deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}

#bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
  pointer-events: none;
  background: #000;
  transform: translateZ(0);
}

.intro__wrap {
  width: min(1200px, 100%);
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(18px, 3vw, 36px);
  align-items: center;
}

@media (max-width: 960px) {
  .intro__wrap {
    grid-template-columns: 1fr;
    text-align: center;
  }
}
.intro__kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.0705882353);
  color: #e0e0e0;
  border: 1px solid rgba(255, 255, 255, 0.1411764706);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 12px;
  letter-spacing: 0.3px;
  backdrop-filter: blur(6px);
}

.intro__title {
  font-size: var(--h1);
  line-height: 1.05;
  margin: 12px 0 10px;
}

.intro__lead {
  color: var(--muted);
  font-size: var(--lead);
  max-width: 64ch;
  margin: 0 0 18px;
}

.intro__cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 18px 0 10px;
  justify-content: flex-start;
}

@media (max-width: 960px) {
  .intro__cta {
    justify-content: center;
  }
}
.btn {
  appearance: none;
  border: 1px solid transparent;
  cursor: pointer;
  padding: 3px 16px;
  border-radius: var(--radius);
  font-weight: 700;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.btn--primary {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 12px 24px rgba(229, 57, 53, 0.28);
}

.btn--ghost {
  background: rgba(255, 255, 255, 0.0705882353);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.1490196078);
}

.scroll-indicator {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 0.4px;
}

.scroll-indicator .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  animation: sd-bounce 1.6s infinite ease-in-out;
}

.scroll-indicator .dot:nth-child(2) {
  animation-delay: 0.15s;
}

.scroll-indicator .dot:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes sd-bounce {
  0%, 60%, 100% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-6px);
  }
}
/* About */
.section__wrap {
  width: min(1200px, 100%);
  margin-inline: auto;
  padding: 10vh 6vw;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(18px, 3vw, 36px);
  align-items: center;
}

@media (max-width: 960px) {
  .section__wrap {
    width: 83%;
    padding: 10vh 0;
    grid-template-columns: 1fr;
    text-align: center;
  }
}
.about__title {
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.15;
  margin: 0 0 12px;
}

.about__lead {
  color: var(--muted);
  font-size: var(--lead);
  line-height: 1.65;
  margin: 0 0 16px;
}

.about__p {
  line-height: 1.75;
  margin: 0 0 14px;
  max-width: 70ch;
}

.about__badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}

@media (max-width: 860px) {
  .about__badges {
    display: none;
  }
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--panel);
  border: 1px solid var(--stroke);
  padding: 8px 12px;
  border-radius: 999px;
  color: #eaeaea;
  font-weight: 600;
  font-size: 13px;
}

.kpis {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.kpi {
  background: rgba(255, 255, 255, 0.062745098);
  border: 1px solid rgba(255, 255, 255, 0.1254901961);
  color: #fff;
  padding: 8px 12px;
  border-radius: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* NURA */
#NURA.section {
  padding: 10vh 6vw;
}

.NURA__wrap {
  width: min(1200px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(18px, 3vw, 36px);
  align-items: center;
}

@media (max-width: 960px) {
  .NURA__wrap {
    grid-template-columns: 1fr;
  }
}
.NURA__media {
  border-radius: 22px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}

.NURA__title {
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.15;
  margin: 0 0 10px;
}

.NURA__lead {
  color: var(--muted);
  font-size: var(--lead);
  line-height: 1.65;
  margin: 0 0 16px;
}

.NURA__p {
  line-height: 1.75;
  margin: 0 0 14px;
}

.NURA__badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 8px 0 6px;
}

.NURA__specs {
  margin-top: 35px;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(12, 1fr);
}

.NURA__spec {
  grid-column: span 12;
  background: linear-gradient(180deg, var(--panel), #1f1f1f);
  border: 1px solid var(--stroke);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}

@media (min-width: 860px) {
  .NURA__spec {
    grid-column: span 6;
  }
}
.NURA__cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 14px;
}

/* Contact */
#contact * {
  box-sizing: border-box;
}

#contact h1 {
  font-size: clamp(28px, 4vw, 44px);
  margin: 0 0 1rem;
}

#contact p.lead {
  color: var(--muted);
  margin: 0 0 2rem;
  max-width: 70ch;
}

#contact .wrap {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(16px, 2vw, 24px);
  width: min(1200px, 100%);
  margin-inline: auto;
}

#contact .card {
  grid-column: span 12;
  background: linear-gradient(180deg, var(--card), #242424);
  border: 1px solid var(--stroke);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

#contact .left, #contact .right {
  padding: clamp(16px, 2.2vw, 28px);
}

@media (min-width: 980px) {
  #contact .card {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    padding: 0;
  }
  #contact .left {
    border-right: 1px solid var(--stroke);
  }
  #contact .left, #contact .right {
    padding: 32px;
  }
}
#contact .info {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  color: #e9e9e9;
}

#contact form {
  display: grid;
  gap: 14px;
}

#contact label {
  font-size: 13px;
  color: #d9d9d9;
}

#contact input, #contact textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: #1f1f1f;
  color: #fff;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

#contact input:focus, #contact textarea:focus {
  border-color: #4a4a4a;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.0705882353);
}

#contact .row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 640px) {
  #contact .row {
    grid-template-columns: 1fr 1fr;
  }
}
#contact .consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  color: #eaeaea;
}

#contact button {
  appearance: none;
  border: 0;
  cursor: pointer;
  padding: 12px 18px;
  border-radius: 12px;
  font-weight: 700;
  background: #ff4d4d;
  color: #fff;
  box-shadow: 0 12px 24px rgba(255, 77, 77, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

#contact button:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(255, 77, 77, 0.35);
}

#contact .alert {
  display: none;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: #1f1f1f;
  color: #fff;
}

#contact .alert.show {
  display: block;
}

#contact .alert.success {
  border-color: #2e7d32;
  background: #133016;
}

#contact .alert.error {
  border-color: #a33333;
  background: #2a1414;
}

/* Footer */
#footer {
  color: var(--fg);
  background: radial-gradient(900px 400px at 15% -10%, #222, var(--bg)), linear-gradient(180deg, #161616, var(--bg));
  border-top: 1px solid var(--stroke);
  padding: 48px 6vw 28px;
  position: relative;
  overflow: hidden;
}

@media (min-width: 820px) {
  #footer .col.brand {
    grid-column: span 5;
  }
  #footer .col.nav {
    grid-column: span 3;
  }
  #footer .col.contact {
    grid-column: span 4;
  }
}
#footer .mini-nav {
  display: grid;
  gap: 8px;
}

/* Mobiel: mini-nav centreren */
#footer .mini-nav a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--stroke);
  border-radius: 10px;
  background: #1f1f1f;
  color: #fff;
  text-decoration: none;
}

#footer .bottom {
  margin-top: 26px;
  padding-top: 16px;
  border-top: 1px solid var(--stroke);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  justify-content: space-between;
  color: var(--muted);
  font-size: 13px;
}

#footer .to-top {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 50;
  background: var(--accent);
  color: #fff;
  border: 0;
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(229, 57, 53, 0.32);
  display: none;
}

#footer .to-top.show {
  display: block;
}

#footer .wrap {
  width: min(1200px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(16px, 2vw, 24px);
}

#footer .col {
  grid-column: span 12;
}

@media (min-width: 820px) {
  #footer .col.brand {
    grid-column: span 5;
  }
  #footer .col.nav {
    grid-column: span 3;
  }
  #footer .col.contact {
    grid-column: span 4;
  }
}
#footer_logo {
  max-width: 70vw;
}

/* Footer: nav-kolom en mini-nav centreren op kleine schermen */
@media (max-width: 640px) {
  /* Kolom zelf centreren */
  #footer .col.nav {
    display: flex;
    justify-content: center; /* center de mini-nav in de kolom */
  }
  /* De links in het midden en nette breedte geven */
  #footer .mini-nav {
    margin-top: 32px; /* of 50px als je meer ruimte wilt */
    justify-items: center;
    text-align: center;
  }
  #footer .mini-nav a {
    justify-content: center; /* icon + tekst centreren in de pill */
    width: 100%;
    max-width: 260px; /* zodat ze niet te breed worden */
  }
}
/* Consent banner */
#ri-consent-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 2000;
  background: #111;
  color: #eee;
  border-top: 1px solid #2a2a2a;
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.4);
  display: none;
  font-family: Arial, sans-serif;
}

#ri-consent-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 18px 16px;
}

.ri-btn {
  padding: 10px 14px;
  border-radius: 8px;
  border: 0;
  cursor: pointer;
  font-weight: 600;
  background: #2e2e2e;
  color: #eee;
}

.ri-btn-primary {
  background: #1f6feb;
  color: #fff;
}

.switch {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 24px;
}

.switch input {
  display: none;
}

.slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #444;
  transition: 0.2s;
  border-radius: 24px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  top: 3px;
  background: white;
  transition: 0.2s;
  border-radius: 50%;
}

input:checked + .slider {
  background: #2a7bff;
}

input:checked + .slider:before {
  transform: translateX(24px);
}

/* CONTACT */
#contact * {
  box-sizing: border-box;
}

#contact h1 {
  font-size: clamp(28px, 4vw, 44px);
  margin: 0 0 1rem;
}

#contact p.lead {
  color: var(--muted);
  margin: 0 0 2rem;
  max-width: 70ch;
}

#contact .wrap {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(16px, 2vw, 24px);
  width: min(1200px, 100%);
  margin-inline: auto;
}

#contact .card {
  grid-column: span 12;
  background: linear-gradient(180deg, var(--card), #242424);
  border: 1px solid var(--stroke);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

#contact .left, #contact .right {
  padding: clamp(16px, 2.2vw, 28px);
}

/* 2 kolommen op groter scherm */
@media (min-width: 980px) {
  #contact .card {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    padding: 0;
  }
  #contact .left {
    border-right: 1px solid var(--stroke);
  }
  #contact .left, #contact .right {
    padding: 32px;
  }
}
/* Logo + headinglint */
#contact .brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 0.5rem;
}

#contact .brand img {
  height: 28px;
  width: auto;
  display: block;
}

/* Contact info lijst */
#contact .info {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  color: #e9e9e9;
}

#contact .info div {
  display: flex;
  gap: 10px;
  align-items: center;
}

#contact .info svg {
  width: 18px;
  height: 18px;
  opacity: 0.9;
}

/* Map/visual placeholder (vervang met echte embed/afbeelding) */
#contact .visual {
  height: 220px;
  border: 1px solid var(--stroke);
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(135deg, #2b2b2b, #1f1f1f);
  display: grid;
  place-items: center;
  margin-top: 16px;
}

/* Form */
#contact form {
  display: grid;
  gap: 14px;
}

#contact label {
  font-size: 13px;
  color: #d9d9d9;
}

#contact input, #contact textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: #1f1f1f;
  color: #fff;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

#contact input:focus, #contact textarea:focus {
  border-color: #4a4a4a;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.0705882353);
}

#contact .row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

@media (min-width: 640px) {
  #contact .row {
    grid-template-columns: 1fr 1fr;
  }
}
#contact .consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  color: #eaeaea;
}

#contact .consent input {
  width: auto;
  margin-top: 3px;
}

#contact button {
  appearance: none;
  border: 0;
  cursor: pointer;
  padding: 12px 18px;
  border-radius: 12px;
  font-weight: 700;
  background: #ff4d4d;
  color: #fff;
  box-shadow: 0 12px 24px rgba(255, 77, 77, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

#contact button:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(255, 77, 77, 0.35);
}

#contact .hint {
  font-size: 12px;
  color: var(--muted);
}

/* Alerts */
#contact .alert {
  display: none;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: #1f1f1f;
  color: #fff;
}

#contact .alert.show {
  display: block;
}

#contact .alert.success {
  border-color: #2e7d32;
  background: #133016;
}

#contact .alert.error {
  border-color: #a33333;
  background: #2a1414;
}

#contact strong {
  color: white;
}

form {
  display: grid;
  gap: 14px;
}
form label {
  font-size: 13px;
  color: #e6e6e6;
}
form .input {
  position: relative;
}
form input[type=text], form input[type=email], form input[type=password] {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: #1b1b1b;
  color: #fff;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
form input[type=text]:focus, form input[type=email]:focus, form input[type=password]:focus {
  border-color: #404040;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.0705882353);
}
form .toggle-pass {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-12%);
  background: rgba(255, 255, 255, 0.0705882353);
  border: 1px solid rgba(255, 255, 255, 0.1647058824);
  color: #fff;
  border-radius: 8px;
  padding: 6px 8px;
  cursor: pointer;
  font-size: 12px;
}
form .row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
form .row .remember {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #e6e6e6;
}
form .row a {
  color: #fff;
  text-decoration: none;
}
form .row a:hover {
  text-decoration: underline;
}
form button[type=submit] {
  appearance: none;
  border: 0;
  cursor: pointer;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  padding: 12px 16px;
  border-radius: 12px;
  box-shadow: 0 12px 24px rgba(255, 77, 77, 0.25);
  transition: transform 0.15s, box-shadow 0.15s;
}
form button[type=submit]:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(255, 77, 77, 0.35);
}
form .hint {
  font-size: 12px;
  color: var(--muted);
}
form .alert {
  display: none;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
}
form .alert.show {
  display: block;
}
form .alert.error {
  background: #2a1414;
  border-color: #a33333;
}
form .alert.ok {
  background: #133016;
  border-color: #2c8a31;
}
form {
  /* Container van Bootstrap checkbox een klein beetje finetunen */
}
form .form-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: 25px;
  border-radius: 99999px;
}
form .form-check-input[type=checkbox] {
  border-radius: 999px;
}
form .form-control-sm, form form input[type=text], form form input[type=number], form .form input[type=email], form form input[type=password] {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: #1b1b1b;
  color: #fff;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
form {
  /* Verberg de standaard browser-stijl */
}
form .cad-toggle {
  margin-left: 25px;
  position: relative;
  width: 42px;
  height: 22px;
  appearance: none;
  -webkit-appearance: none;
  outline: none;
  cursor: pointer;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: linear-gradient(135deg, #262626, #111);
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
form {
  /* De “knop” binnen de toggle */
}
form .cad-toggle::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #ffffff, #d0d0d0);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
  transition: transform 0.2s ease;
}
form {
  /* Checked state */
}
form .cad-toggle:checked {
  background: linear-gradient(135deg, #0f9fca, #00b7ff);
  border-color: rgba(26, 213, 226, 0.9);
  box-shadow: 0 0 0 2px rgba(54, 73, 247, 0.4);
}
form .cad-toggle:checked::before {
  transform: translateX(20px);
}
form {
  /* Hover state */
}
form .cad-toggle:hover {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.12);
}
form {
  /* Focus (keyboard accessibility) */
}
form .cad-toggle:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.45);
}
form {
  /* Disabled state */
}
form .cad-toggle:disabled {
  cursor: not-allowed;
  opacity: 0.45;
  box-shadow: none;
}
form {
  /* Label ernaast iets subtieler maken */
}
form .cad-toggle-label {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
}

:root {
  --bg:#121212;
  --panel:#1e1e1e;
  --panel2:#242424;
  --stroke:#2a2a2a;
  --fg:#fff;
  --muted:#cfcfcf;
  --accent:#ff4d4d;
}

.login-page {
  min-height: 100vh;
  max-height: 100vh;
  display: grid;
  place-items: center;
  color: var(--fg);
  background: radial-gradient(1200px 600px at 15% -10%, #202020, var(--bg) 60%), linear-gradient(180deg, #161616, #121212);
  position: relative;
  overflow: hidden;
}
.login-page::after {
  content: "";
  position: absolute;
  inset: auto -20% -30% -20%;
  height: 260px;
  background: radial-gradient(50% 160% at 50% 0%, rgba(255, 77, 77, 0.25), transparent 70%);
  filter: blur(32px);
  pointer-events: none;
  animation: loginFloat 10s ease-in-out infinite;
}

@keyframes loginFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(10px);
  }
}
.brand-logo {
  position: fixed;
  top: 16px;
  left: 16px;
  z-index: 2000;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 12px;
  color: var(--fg);
  text-decoration: none;
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease, border-color 0.2s ease;
}
.brand-logo img {
  height: 50px;
  width: auto;
  display: block;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.brand-logo:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
  background: rgba(255, 255, 255, 0.0941176471);
}

@media (max-width: 560px) {
  .brand-logo {
    top: 12px;
    left: 12px;
    padding: 6px 8px;
  }
  .brand-logo img {
    height: 22px;
  }
}
.login-card {
  width: min(520px, 100%);
  background: linear-gradient(180deg, var(--panel), #191919);
  border: 1px solid var(--stroke);
  border-radius: 22px;
  padding: 28px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
}
.login-card h2 {
  margin: 0 0 4px;
  font-size: clamp(22px, 3vw, 30px);
}
.login-card .sub {
  color: var(--muted);
  margin: 0 0 18px;
}

:root {
  --bg:#121212;
  --panel:#1e1e1e;
  --panel2:#242424;
  --stroke:#2a2a2a;
  --fg:#fff;
  --muted:#cfcfcf;
  --accent:#ff4d4d;
}

* {
  box-sizing: border-box;
}

header img {
  height: 28px;
  display: block;
}

header a {
  color: var(--fg);
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.3px;
}

header a:hover {
  color: var(--accent);
}

main {
  padding: 16px 24px 80px;
  margin: 0 auto;
}

h1, h2, h3 {
  color: #fff;
  font-weight: 700;
}

h1 {
  font-size: clamp(26px, 4vw, 36px);
  margin-bottom: 10px;
}

h2 {
  margin-top: 42px;
  font-size: clamp(20px, 2.5vw, 26px);
}

h3 {
  margin-top: 24px;
  font-size: 18px;
}

p, li {
  color: var(--muted);
}

a {
  color: var(--accent);
}

footer {
  text-align: center;
  padding: 32px 16px;
  border-top: 1px solid var(--stroke);
  color: var(--muted);
  font-size: 14px;
}

html[data-theme=light] {
  --cad-bg:#f7f8fa;
  --cad-surface:#ffffff;
  --cad-text:#0e0f11;
  --cad-muted:#5c5f66;
  --cad-border: rgba(0,0,0,.08);
  --cad-border-hover: rgba(0,0,0,.16);
}

:root {
  --cad-bg: #0f0f10;
  --cad-surface: #161719;
  --cad-border: rgba(255,255,255,.08);
  --cad-border-hover: rgba(255,255,255,.16);
  --cad-text: #e9eaee;
  --cad-muted: #a7a8ad;
  --cad-accent: #e31b23; /* CADAPTIX/verwant rood */
}

.cad-heading {
  color: var(--cad-text);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

/* Cards */
.cad-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.25rem 1.25rem 1rem;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), radial-gradient(120% 120% at 0% 0%, rgba(227, 27, 35, 0.08) 0%, transparent 40%), var(--cad-surface);
  border: 1px solid var(--cad-border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  color: var(--cad-text);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  backdrop-filter: blur(4px);
}

.cad-card .clickable:hover {
  transform: translateY(-3px);
  border-color: var(--cad-border-hover);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

.cad-card .cad-card-title {
  margin: 0.25rem 0 0.25rem;
  font-weight: 700;
  letter-spacing: 0.2px;
}

.cad-card .cad-card-text {
  color: var(--cad-muted);
}

/* Icon bubble */
.cad-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(227, 27, 35, 0.12);
  border: 1px solid rgba(227, 27, 35, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  margin-bottom: 0.25rem;
}

.cad-card-click {
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

/* Brand button */
.btn-cad {
  --bs-btn-color:#fff;
  --bs-btn-bg: var(--cad-accent);
  --bs-btn-border-color: var(--cad-accent);
  --bs-btn-hover-bg: #c71920;
  --bs-btn-hover-border-color: #c71920;
  --bs-btn-focus-shadow-rgb: 227,27,35;
}

/* Tabel in Cadaptix-stijl */
.cad-card .table {
  --bs-table-bg: transparent; /* zet variabele op transparant */
  --bs-table-striped-bg: transparent; /* voor striped varianten */
  --bs-table-hover-bg: transparent; /* voor hover varianten */
  background-color: transparent; /* fallback */
}

/* override de celregel van Bootstrap */
.cad-card .cad-table > :not(caption) > * > * {
  background-color: transparent !important;
}

.cad-table {
  --row-hover: rgba(235, 42, 42, 0.421);
  width: 100%;
}

.cad-table thead th {
  border: 0;
  font-weight: 600;
  color: var(--cad-surface);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.75rem;
}

.cad-table th, .cad-table td {
  padding: 0.6rem 0.75rem;
  vertical-align: middle;
  border-top: 1px solid var(--cad-border);
  color: rgba(9, 9, 9, 0.949);
}

.cad-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.03);
}

/* Userkolom met avatar-initials */
.cad-user {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.cad-avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(227, 27, 35, 0.12);
  border: 1px solid rgba(227, 27, 35, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--cad-text);
}

/* Badges/cijfers */
.cad-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  border: 1px solid var(--cad-border);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.cad-align-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.cad-date {
  white-space: nowrap;
  color: var(--cad-muted);
}

/* Transparante list + items */
.cad-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cad-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.25rem;
  border-top: 1px solid var(--cad-border);
  background: transparent;
}

.cad-list-item:first-child {
  border-top: 0;
}

.cad-list-item:hover {
  background: rgba(255, 255, 255, 0.03);
}

/* Userblokje met mini-avatar */
.cad-user-sm {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.cad-avatar-sm {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(227, 27, 35, 0.12);
  border: 1px solid rgba(227, 27, 35, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  font-weight: 700;
  font-size: 0.7rem;
  color: var(--cad-text);
}

.cad-user-name {
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Datum rechts */
.cad-list-date {
  white-space: nowrap;
  color: var(--cad-muted);
  font-variant-numeric: tabular-nums;
}

/* maak zeker de UL transparant binnen cards */
.cad-card .cad-list,
.cad-card .list-unstyled {
  background: transparent;
}

.cad-amount {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.cad-currency {
  color: var(--cad-muted);
  font-size: 0.85em;
  margin-left: 0.25rem;
}

.btn-ghost {
  --bd:rgba(255,255,255,.22);
  color: #848585;
  border: 1px solid var(--bd);
}

.btn-ghost:hover {
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.05);
}

:root {
  --sidebar-width-expanded: 220px;
  --sidebar-width-collapsed: 72px;
  --sidebar-bg: #111111;
  --sidebar-bg-gradient: linear-gradient(180deg, #151515, #050505);
  /* customer brand accent, fallback to RESTinspect orange */
  --brand-accent: #c80000; /* e.g. Sumitomo blue – override per customer later */
}

/* === LEFT SIDEBAR === */
.admin-sidebar {
  width: var(--sidebar-width-expanded);
  min-height: 100vh;
  position: fixed;
  left: 0;
  z-index: 99;
  background: var(--sidebar-bg-gradient);
  color: #fff;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  transition: width 0.2s ease;
  overflow-y: auto;
  overflow-x: hidden;
  padding-top: 56px; /* space for your top header */
}

/* main column shifts next to sidebar */
.admin-main {
  margin-left: var(--sidebar-width-expanded);
  padding-left: 50px;
  transition: margin-left 0.2s ease;
}

/* wrapper for logo + toggle */
.admin-sidebar-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

/* customer logo */
.admin-sidebar .customer-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: #fff;
}

.admin-sidebar .customer-logo img {
  max-height: 28px;
  max-width: 36px;
  object-fit: contain;
}

.admin-sidebar .customer-name {
  font-weight: 600;
  font-size: 0.9rem;
}

/* nav links */
.admin-sidebar .nav-link {
  color: rgba(255, 255, 255, 0.75);
  padding: 0.55rem 0.9rem;
  border-radius: 0.5rem;
  transition: background 0.15s, color 0.15s, transform 0.1s;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  white-space: nowrap;
  font-size: 0.85rem;
}

.admin-sidebar .nav-link i {
  font-size: 1rem;
}

.admin-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  transform: translateX(2px);
}

.admin-sidebar .nav-link.active {
  background: rgba(0, 120, 200, 0.18); /* uses brand accent feel */
  color: #fff;
  box-shadow: inset 2px 0 0 var(--brand-accent);
}

/* “powered by” footer text */
.sidebar-powered {
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.45);
}

/* toggle button */
.sidebar-toggle-btn {
  border-radius: 999px;
  padding: 0.25rem 0.45rem;
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
  background: rgba(0, 0, 0, 0.35);
}

/* Mobile: sidebar becomes full-width top bar, no collapsing magic */
@media (max-width: 991.98px) {
  .admin-sidebar {
    position: relative;
    width: 100%;
    min-height: auto;
    padding-top: 0;
  }
  .admin-main {
    margin-left: 0;
  }
  body.sidebar-collapsed .admin-sidebar .customer_main body.sidebar-collapsed .admin-main {
    width: 100%;
    margin-left: 0;
  }
  .sidebar-toggle-btn {
    display: none !important; /* we can do another pattern on mobile later */
  }
}
html[data-theme=light] {
  --cad-bg:#f7f8fa;
  --cad-surface:#ffffff;
  --cad-text:#0e0f11;
  --cad-muted:#5c5f66;
  --cad-border: rgba(0,0,0,.08);
  --cad-border-hover: rgba(0,0,0,.16);
}

:root {
  --cad-bg: #0f0f10;
  --cad-surface: #161719;
  --cad-border: rgba(255,255,255,.08);
  --cad-border-hover: rgba(255,255,255,.16);
  --cad-text: #e9eaee;
  --cad-muted: #a7a8ad;
  --cad-accent: #e31b23; /* RESTinspect/verwant rood */
}

.careers {
  margin-top: 5vh;
}

.cad-heading {
  color: var(--cad-text);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

/* Cards */
.cad-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.25rem 1.25rem 1rem;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)), radial-gradient(120% 120% at 0% 0%, rgba(227, 27, 35, 0.08) 0%, transparent 40%), var(--cad-surface);
  border: 1px solid var(--cad-border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  color: var(--cad-text);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  backdrop-filter: blur(4px);
}

.cad-card .cad-card-title {
  margin: 0.25rem 0 0.25rem;
  color: white;
  font-weight: 700;
  letter-spacing: 0.2px;
}

.cad-card .cad-card-text {
  color: var(--cad-muted);
}

/* Icon bubble */
.cad-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(227, 27, 35, 0.12);
  border: 1px solid rgba(227, 27, 35, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  margin-bottom: 0.25rem;
}

.cad-card-click {
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

/* Brand button */
.btn-cad {
  --bs-btn-color:#fff;
  --bs-btn-bg: var(--cad-accent);
  --bs-btn-border-color: var(--cad-accent);
  --bs-btn-hover-bg: #c71920;
  --bs-btn-hover-border-color: #c71920;
  --bs-btn-focus-shadow-rgb: 227,27,35;
}

/* ========== Feature Tiles (hero-achtig, geen cards) ========== */
.cad-features {
  --cad-feature-radius: 18px;
}

.cad-feature {
  position: relative;
  border-radius: var(--cad-feature-radius);
  padding: 22px 22px 20px;
  height: 100%;
  overflow: hidden;
  /* Layer 1: subtiele grid/glow */
  background: radial-gradient(140% 120% at 0% 0%, rgba(227, 27, 35, 0.18) 0%, rgba(227, 27, 35, 0) 48%), radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)), var(--cad-surface);
  border: 1px solid var(--cad-border);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03), 0 14px 44px rgba(0, 0, 0, 0.45);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.cad-feature:hover {
  transform: translateY(-3px);
  border-color: var(--cad-border-hover);
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.55);
}

.cad-feature::after {
  /* decoratieve soft highlight rechts onder */
  content: "";
  position: absolute;
  inset: auto -20% -35% auto;
  width: 60%;
  height: 60%;
  background: radial-gradient(40% 40% at 50% 50%, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0));
  transform: rotate(-12deg);
  pointer-events: none;
}

/* Variaties met kleuraccenten */
.cad-feature--blue {
  background: radial-gradient(140% 120% at 0% 0%, rgba(74, 144, 226, 0.18) 0%, rgba(74, 144, 226, 0) 48%), radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)), var(--cad-surface);
}

.cad-feature--green {
  background: radial-gradient(140% 120% at 0% 0%, rgba(41, 205, 65, 0.18) 0%, rgba(41, 205, 65, 0) 48%), radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)), var(--cad-surface);
}

/* Icon bubble groot en bold */
.cad-feature__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  background: rgba(227, 27, 35, 0.16);
  border: 1px solid rgba(227, 27, 35, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  color: #fff;
  font-size: 22px;
}

.cad-feature--blue .cad-feature__icon {
  background: rgba(74, 144, 226, 0.16);
  border-color: rgba(74, 144, 226, 0.35);
}

.cad-feature--green .cad-feature__icon {
  background: rgba(41, 205, 65, 0.16);
  border-color: rgba(41, 205, 65, 0.35);
}

/* Tekst */
.cad-feature__title {
  margin: 2px 0 6px;
  font-weight: 800;
  letter-spacing: 0.2px;
  color: var(--cad-text);
}

.cad-feature__text {
  margin: 0;
  color: var(--cad-muted);
  line-height: 1.5;
}

/* Card must be relative so the overlay can sit in the top-right corner */
.heatmap-card {
  position: relative;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-radius 0.2s ease, margin 0.2s ease;
}

/* Hover info overlay */
.heatmap-hover-info {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  background: rgba(0, 0, 0, 0.8);
  color: #fff;
  border-radius: 0.5rem;
  padding: 0.35rem 0.6rem;
  font-size: 0.75rem;
  pointer-events: none;
  backdrop-filter: blur(4px);
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.35);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

/* Only ever visible in theater mode; JS toggles d-none when valid */
.heatmap-card.heatmap-theater-mode .heatmap-hover-info {
  opacity: 1;
  transform: translateY(0);
}

/* Your existing theater rules can stay; just keep these: */
.heatmap-card.heatmap-theater-mode {
  position: relative;
  z-index: 30;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.45);
  border-radius: 0;
  min-height: 90vh;
}

.heatmap-card.heatmap-theater-mode .heatmap-viewport {
  min-height: 90vh;
  background: #000;
}

.heatmap-card.heatmap-theater-mode .heatmap-3d-scene {
  height: 90vh;
}

/* 2D flat view (unwrapped walls) */
/* Flat (2D) view should fill the viewport just like 3D */
.heatmap-2d-scene {
  position: relative;
  width: 100%;
  height: 420px; /* normal mode */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Make the flat canvas fill its scene */
.heatmap-2d-scene canvas {
  width: 100%;
  height: 100%;
  display: block;
}

/* In theater mode, let flat view fill the viewport too */
.heatmap-card.heatmap-theater-mode .heatmap-2d-scene {
  height: 100vh; /* match the 3D theater height */
}

/* Canvas is already set to fill its parent, so this will now fill the screen */
.heatmap-2d-scene canvas {
  width: 100%;
  height: 100%;
  display: block;
}

/* Slightly wider in the main column on large screens */
@media (min-width: 1200px) {
  .heatmap-card.heatmap-theater-mode {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }
}
.heatmap-viewport {
  position: relative;
  overflow: hidden;
  width: 100%;
  min-height: 260px;
  background: #f8f9fa;
  /* 3D perspective is applied here */
  perspective: 900px;
}

.heatmap-viewport:active {
  cursor: grabbing;
}

.heatmap-inner {
  transform-origin: 0 0;
}

/* 3D “tube” effect */
.heatmap-3d-scene {
  position: relative;
  width: 100%;
  height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* The “box” with the 4 faces */
.heatmap-3d-box {
  position: relative;
  transform-style: preserve-3d;
  transform-origin: center center;
  /* initial orientation */
  transform: rotateX(-25deg) rotateY(35deg);
}

/* Each canvas is one wall */
.heatmap-face {
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: center center;
}

/* Color legend: red → yellow → green */
.heatmap-legend {
  height: 8px;
  min-width: 120px;
  border-radius: 999px;
  background: linear-gradient(to right, #ff0000, #ffff00, #00ff00);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}

/* Theater modus: verwijder die padding overal */
body.heatmap-theater-open .row {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

/* DASHBOARD!! */
.dashboard-alert-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1rem 1.5rem;
  color: #fff;
  background: radial-gradient(120% 160% at 0% 0%, rgba(255, 255, 255, 0.2) 0%, transparent 40%), linear-gradient(120deg, #ff4b5c 0%, #e31b23 40%, #7a0b12 100%);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6);
  overflow: hidden;
}

/* subtle glow accent on the right */
.dashboard-alert-banner::after {
  content: "";
  position: absolute;
  inset: -40%;
  background: radial-gradient(circle at 110% 0%, rgba(255, 255, 255, 0.18) 0%, transparent 55%);
  opacity: 0.7;
  pointer-events: none;
}

.dashboard-alert-main {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  z-index: 1;
}

.dashboard-alert-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.dashboard-alert-sub {
  opacity: 0.85;
}

.dashboard-alert-actions {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  z-index: 1;
}

/* Make buttons match the bright banner */
.dashboard-alert-actions .btn-sm {
  font-weight: 600;
}

.dashboard-alert-actions .btn-outline-light {
  border-color: rgba(255, 255, 255, 0.7);
}

.dashboard-alert-actions .btn-link {
  opacity: 0.75;
}

.dashboard-alert-actions .btn-link:hover {
  opacity: 1;
}

/* Stack nicely on small screens */
@media (max-width: 575.98px) {
  .dashboard-alert-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  .dashboard-alert-actions {
    width: 100%;
  }
}
/* Layout naast about-tekst */
.about-with-viewer {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr);
  gap: 3rem;
  align-items: stretch;
}

.about__viewer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.about__viewer-title {
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.75;
}

/* Transparante variant op de homepage */
.heatmap-card--transparent {
  background: transparent;
  box-shadow: none;
  border: none;
}

.heatmap-card-body--compact {
  padding: 0;
}

.heatmap-viewport--transparent {
  background: transparent;
}

/* slider / range-controls (compact) */
.heatmap-range-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.heatmap-range-inputs {
  flex: 1;
}

.heatmap-range-label {
  display: block;
  margin-bottom: 0.25rem;
  opacity: 0.7;
  color: white;
}

.heatmap-range-input-group {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.heatmap-range-input {
  width: 5rem;
  padding: 0.15rem 0.35rem;
  font-size: 0.8rem;
  border-radius: 8px;
}

.heatmap-range-sep {
  opacity: 0.7;
  font-size: 0.8rem;
}

.heatmap-range-legend {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 0.8rem;
  opacity: 0.8;
  color: white;
}

/* Mobiel: viewer onder de tekst */
@media (max-width: 900px) {
  .about-with-viewer {
    grid-template-columns: 1fr;
    padding: 10vh 0;
    display: block;
  }
}
h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--bs-heading-color);
}

h5 {
  color: white;
}

.btn-close {
  color: var(--accent);
}

.small {
  color: white !important;
}

.text-muted {
  color: #ffffff !important;
}

.text-muted th, .text-muted td {
  color: #b0b0b0 !important;
}

.kpi-card {
  border-radius: 16px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
}

.kpi-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
}

/* Kleuren */
.kpi-blue {
  background: linear-gradient(135deg, #1e88e5, #1565c0);
}

.kpi-green {
  background: linear-gradient(135deg, #43a047, #2e7d32);
}

.kpi-orange {
  background: linear-gradient(135deg, #fb8c00, #ef6c00);
}

.kpi-red {
  background: linear-gradient(135deg, #e53935, #b71c1c);
}

.row {
  margin-right: 0;
}

.admin-main-inner {
  padding-right: 50px;
}

.modal-content {
  background: linear-gradient(180deg, rgb(59, 59, 59), rgb(14, 11, 11));
}

.text-dark {
  color: var(--btn-bg);
}

.cad-switch .form-check-input {
  width: 2.5em;
  height: 1.3em;
  cursor: pointer;
  border-radius: 999px;
  background-color: #343a40;
  border-color: #343a40;
  box-shadow: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.cad-switch .form-check-input:checked {
  background-color: #e31b23; /* RESTinspect rood */
  border-color: #e31b23;
}

.cad-switch .form-check-input:focus {
  box-shadow: 0 0 0 0.15rem rgba(227, 27, 35, 0.35);
}

.cad-switch .form-check-label {
  color: #f8f9fa;
  cursor: pointer;
}

.cad-switch .form-text {
  color: #aeb0b3;
}

#mapFiltersForm {
  font-size: 11px;
}

/* =========================================================
   TRUSTED DASHBOARD VIEW (Ops Console)
   - All custom styling is scoped under .opsdash to avoid
     messing with existing cad-* styling elsewhere.
   ========================================================= */
.opsdash {
  padding: 1.25rem 0;
}

.opsdash .opsdash-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}

.opsdash .opsdash-title {
  margin: 0;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.opsdash .opsdash-subtitle {
  font-size: 12px;
  opacity: 0.75;
  margin-top: 0.2rem;
}

.opsdash .opsdash-controls {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.opsdash .opsdash-input {
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(0, 0, 0, 0.25);
  color: rgba(255, 255, 255, 0.92);
  padding: 0.35rem 0.6rem;
  font-size: 12px;
  outline: none;
}

.opsdash .opsdash-btn {
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.92);
  padding: 0.35rem 0.65rem;
  font-size: 12px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
}

.opsdash .opsdash-btn:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.1);
}

.opsdash .opsdash-btn.is-active {
  border-color: rgba(13, 110, 253, 0.55);
  background: rgba(13, 110, 253, 0.12);
}

.opsdash .opsdash-grid {
  margin-top: 0.8rem;
}

/* =========================
   ALERT CENTER (Runhub)
   ========================= */
.opsdash .runhub {
  margin-bottom: 1.1rem;
}

.opsdash .runhub-alertbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
}

@media (max-width: 991px) {
  .opsdash .runhub-alertbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.opsdash .runhub-chip {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.7rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(10, 10, 12, 0.55);
  text-decoration: none;
  color: rgba(255, 255, 255, 0.92);
  transition: transform 0.08s ease, border-color 0.08s ease, background 0.08s ease;
  min-height: 56px;
}

.opsdash .runhub-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(10, 10, 12, 0.7);
}

.opsdash .runhub-chip__icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
}

.opsdash .runhub-chip__icon i {
  font-size: 16px;
}

.opsdash .runhub-chip__meta {
  min-width: 0;
}

.opsdash .runhub-chip__label {
  font-size: 11px;
  letter-spacing: 0.02em;
  opacity: 0.85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.opsdash .runhub-chip__count {
  font-size: 18px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.02em;
}

.opsdash .runhub-chip__badge {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  font-size: 11px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  flex: 0 0 auto;
  opacity: 0.92;
}

/* Severity variants */
.opsdash .runhub-chip--danger {
  border-color: rgba(220, 53, 69, 0.55);
  background: rgba(220, 53, 69, 0.1);
}

.opsdash .runhub-chip--danger .runhub-chip__icon {
  border-color: rgba(220, 53, 69, 0.55);
  background: rgba(220, 53, 69, 0.16);
}

.opsdash .runhub-chip--warning {
  border-color: rgba(255, 193, 7, 0.55);
  background: rgba(255, 193, 7, 0.1);
}

.opsdash .runhub-chip--warning .runhub-chip__icon {
  border-color: rgba(255, 193, 7, 0.55);
  background: rgba(255, 193, 7, 0.16);
}

.opsdash .runhub-chip--info {
  border-color: rgba(13, 110, 253, 0.55);
  background: rgba(13, 110, 253, 0.1);
}

.opsdash .runhub-chip--info .runhub-chip__icon {
  border-color: rgba(13, 110, 253, 0.55);
  background: rgba(13, 110, 253, 0.16);
}

.opsdash .runhub-chip--ok {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
}

/* Pulse only for real alerts */
.opsdash .runhub-chip--danger.runhub-chip--pulse {
  animation: runhubPulseDanger 1.15s ease-in-out infinite;
}

.opsdash .runhub-chip--warning.runhub-chip--pulse {
  animation: runhubPulseWarn 1.35s ease-in-out infinite;
}

@keyframes runhubPulseDanger {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(220, 53, 69, 0.18);
  }
}
@keyframes runhubPulseWarn {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 193, 7, 0);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(255, 193, 7, 0.16);
  }
}
/* One-time highlight pulse when navigating to a card */
@keyframes opsFocus {
  0% {
    box-shadow: 0 0 0 0 rgba(13, 110, 253, 0);
    transform: translateY(0);
  }
  30% {
    box-shadow: 0 0 0 6px rgba(13, 110, 253, 0.18);
    transform: translateY(-1px);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(13, 110, 253, 0);
    transform: translateY(0);
  }
}
.opsdash .ops-focus {
  animation: opsFocus 0.9s ease-out 1;
}

/* =========================
   Ops cards (tables)
   ========================= */
.opsdash .ops-card {
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.28);
  padding: 0.85rem 0.9rem;
}

.opsdash .ops-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.opsdash .ops-card__title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  margin: 0;
}

.opsdash .ops-card__title i {
  opacity: 0.9;
}

.opsdash .ops-card__meta {
  font-size: 12px;
  opacity: 0.8;
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.opsdash .ops-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  font-size: 11px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
}

.opsdash .ops-pill--danger {
  border-color: rgba(220, 53, 69, 0.45);
  background: rgba(220, 53, 69, 0.12);
}

.opsdash .ops-pill--warning {
  border-color: rgba(255, 193, 7, 0.45);
  background: rgba(255, 193, 7, 0.12);
}

.opsdash .ops-pill--info {
  border-color: rgba(13, 110, 253, 0.45);
  background: rgba(13, 110, 253, 0.12);
}

.opsdash .ops-card__actions {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
  align-items: center;
}

.opsdash .ops-card__actions a {
  height: 30px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
  font-size: 12px;
  padding: 0.25rem 0.55rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.opsdash .ops-card__actions a:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.1);
}

.opsdash .ops-scroll {
  max-height: 270px;
  overflow: auto;
}

.opsdash .ops-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.opsdash .ops-table th {
  font-size: 11px;
  opacity: 0.8;
  font-weight: 800;
  padding: 0.45rem 0.35rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.opsdash .ops-table td {
  padding: 0.45rem 0.35rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  vertical-align: middle;
}

.opsdash .muted {
  opacity: 0.7;
}

.opsdash .ops-right {
  text-align: right;
}

.opsdash .ops-empty {
  padding: 1rem 0.5rem;
  text-align: center;
  opacity: 0.75;
}

/* =========================
   Business metrics (compact)
   ========================= */
.opsdash .bizbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
  margin-top: 0.9rem;
  margin-bottom: 1rem;
}

@media (max-width: 991px) {
  .opsdash .bizbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.opsdash .biztile {
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  padding: 0.6rem 0.7rem;
}

.opsdash .biztile__label {
  font-size: 11px;
  opacity: 0.8;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.opsdash .biztile__value {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.02em;
  margin-top: 0.15rem;
}

.opsdash .biztile__hint {
  font-size: 11px;
  opacity: 0.72;
  margin-top: 0.15rem;
}

/* =========================
   Map: keep existing layout, just improve density a bit
   ========================= */
.opsdash .mapwrap {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.opsdash .map-panel {
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.22);
  padding: 0.85rem 0.9rem;
}

.btn {
  font-size: 11px;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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OEJBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtBWis5RUY7O0FZNzlFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FaZytFRjs7QWF0ekZBO0VBQ0k7QWJ5ekZKLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9hcHAuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9fY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvX2hvbWVfcGFnZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19mb3Jtcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19sb2dpbi5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19wcml2YWN5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvX2FkbWluX2JhY2tlbmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9hZG1pbl9zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvX2NhcmVlcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9fY3VzdG9tZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvaGVhdG1hcF92aWV3ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9fcm9vdC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19kYXNoYm9hcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9fYnV0dG9ucy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbjpyb290IHtcbiAgLS1iZzojMTIxMjEyO1xuICAtLXBhbmVsOiMxZTFlMWU7XG4gIC0tcGFuZWwtMjojMjYyNjI2O1xuICAtLWZnOiNmZmZmZmY7XG4gIC0tbXV0ZWQ6I2JkYmRiZDtcbiAgLS1hY2NlbnQ6I0U1MzkzNTtcbiAgLS1hY2NlbnQtMjojRkY4QTY1O1xuICAtLXN0cm9rZTojMmEyYTJhO1xuICAtLXJhZGl1czoxNHB4O1xuICAtLWgxOiBjbGFtcCgzNnB4LCA1dncsIDY0cHgpO1xuICAtLWxlYWQ6IGNsYW1wKDE2cHgsIDEuNHZ3LCAxOHB4KTtcbiAgLS1mb250OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIC0tdGV4dDogdmFyKC0tZmcpO1xuICAtLWxpbms6ICM4MGQ4ZmY7XG4gIC0tc3VyZmFjZTogdmFyKC0tcGFuZWwpO1xuICAtLWJnLTI6IHZhcigtLXBhbmVsLTIpO1xuICAtLWNhcmQ6IHZhcigtLXBhbmVsKTtcbiAgLS1oMjogY2xhbXAoMjhweCwgNHZ3LCA0NHB4KTtcbiAgLS1wOiBjbGFtcCgxNXB4LCAxLjI1dncsIDE3cHgpO1xuICAtLWJ0bi1iZzogIzQyNDI0MjtcbiAgLS1idG4tYmctaG92ZXI6ICM2MTYxNjE7XG4gIC0tYnJhbmQtMTogdmFyKC0tYWNjZW50KTtcbiAgLS1icmFuZC0zOiAjODBkOGZmO1xuICAtLXRiLWJnOiByZ2JhKDE4LDE4LDE4LC43Mik7XG4gIC0tdGItc3Ryb2tlOiMyYTJhMmE7XG4gIC0tdGItYWNjZW50OiNFNTM5MzU7XG4gIC0tdGItdGV4dDojZmZmO1xuICAtLWJzLWhlYWRpbmctY29sb3I6ICM1ZjVkNWQ7XG4gIC0tYnMtc2Vjb25kYXJ5LWNvbG9yOiAjYmRiZGJkO1xuICAtLWJzLXRhYmxlLWNvbG9yLXN0YXRlOiAjYmRiZGJkO1xufVxuXG4vKiA9PT0gVGhlbWUgdG9rZW5zIGV0Yy4gKG1pZ3JhdGVkIGZyb20gUEhQIGZpbGUpID09PSAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnKTtcbiAgY29sb3I6IHZhcigtLWZnKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQpO1xuICBtYXJnaW46IDA7XG59XG5cbmEge1xuICBjb2xvcjogdmFyKC0tbGluayk7XG59XG5cbmE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1mZyk7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMjAwcHggNjAwcHggYXQgMTIlIC0xMCUsICMyYTJhMmEsIHZhcigtLWJnKSk7XG4gIGNvbnRhaW46IHBhaW50O1xufVxuXG4uc2VjdGlvbi0tZGVlcCB7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxNDAwcHggNzAwcHggYXQgMTUlIC0xMCUsICMyYTJhMmEgMCUsICMxYjFiMWIgNTUlLCB2YXIoLS1iZykgMTAwJSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxNjE2MTYsIHZhcigtLWJnKSk7XG59XG5cbi8qIFRvcGJhciAqL1xuLnRvcGJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDAgMCBhdXRvIDA7XG4gIGhlaWdodDogNjRweDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xOHB4KTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMjVzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4udG9wYmFyW2RhdGEtcmV2ZWFsPXRydWVdIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgYmFja2dyb3VuZDogcmdiYSgxOCwgMTgsIDE4LCAwLjcyKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tdGItc3Ryb2tlKTtcbn1cblxuLnRvcGJhcl9faW5uZXIge1xuICB3aWR0aDogbWluKDEyMDBweCwgOTIlKTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDE2cHg7XG59XG5cbi5sb2dvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgbGVmdDogMjVweDtcbiAgdG9wOiA1cHg7XG59XG5cbi5uYXZiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDIycHg7XG59XG5cbi5uYXZiYXIgYSB7XG4gIGNvbG9yOiB2YXIoLS10Yi10ZXh0KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLm5hdmJhciBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ5MDE5NjA3OCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNjI3NDUwOTgpO1xufVxuXG4jbG9naW5fYnRuX2xhcmdlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRiLWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDIyOSwgNTcsIDUzLCAwLjMyKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMjVweDtcbiAgdG9wOiAxMHB4O1xuICB6LWluZGV4OiA5OTk5OTk5OTk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAjbG9naW5fYnRuX2xhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubmF2YmVyIGEubG9naW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm5hdmJhciBhLmxvZ291dCB7XG4gIGJhY2tncm91bmQ6ICNiNzFjMWM7XG59XG5cbi5tb2JpbGUtdG9nZ2xlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ5MDE5NjA3OCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNjI3NDUwOTgpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tb2JpbGUtdG9nZ2xlIHNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIHRvcCAwLjJzIGVhc2U7XG59XG5cbi5tb2JpbGUtdG9nZ2xlIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgdG9wOiAxMnB4O1xufVxuXG4ubW9iaWxlLXRvZ2dsZSBzcGFuOm50aC1jaGlsZCgyKSB7XG4gIHRvcDogMjBweDtcbn1cblxuLm1vYmlsZS10b2dnbGUgc3BhbjpudGgtY2hpbGQoMykge1xuICB0b3A6IDI4cHg7XG59XG5cbi5tb2JpbGUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gc3BhbjpudGgtY2hpbGQoMSkge1xuICB0b3A6IDIwcHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuLm1vYmlsZS10b2dnbGVbYXJpYS1leHBhbmRlZD10cnVlXSBzcGFuOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5tb2JpbGUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gc3BhbjpudGgtY2hpbGQoMykge1xuICB0b3A6IDIwcHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi5tb2JpbGUtZHJhd2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDY0cHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE4LCAxOCwgMTgsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRiLXN0cm9rZSk7XG4gIHBhZGRpbmc6IDEycHggNHZ3IDIwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlO1xufVxuXG4ubW9iaWxlLWRyYXdlciBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggMTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwMTk2MDc4NDMpO1xuICBtYXJnaW46IDZweCAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMxMzcyNTQ5KTtcbn1cblxuLm1vYmlsZS1kcmF3ZXIgYS5sb2dpbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRiLWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5tb2JpbGUtZHJhd2VyLmlzLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm5hdmJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubW9iaWxlLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm1vYmlsZS1kcmF3ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4vKiBJbnRybyAvIGhlcm8gKi9cbiNpbnRyby5zZWN0aW9uIHtcbiAgbWluLWhlaWdodDogOTV2aDtcbiAgbWF4LWhlaWdodDogOTV2aDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTB2aCA2dnc7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gICNpbnRyby5zZWN0aW9uIHtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogNnZoIDZ2dyA4dmg7XG4gIH1cbiAgLmludHJvX193cmFwIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmludHJvX19jdGEge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG4jaW50cm86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IC0xO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTIwMHB4IDYwMHB4IGF0IDEwJSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUzMzMzMzMzMzMpLCB0cmFuc3BhcmVudCA2MCUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNCksIHJnYmEoMCwgMCwgMCwgMC42KSk7XG59XG5cbiNiZy12aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB6LWluZGV4OiAtMTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbn1cblxuLmludHJvX193cmFwIHtcbiAgd2lkdGg6IG1pbigxMjAwcHgsIDEwMCUpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMTVmciAwLjg1ZnI7XG4gIGdhcDogY2xhbXAoMThweCwgM3Z3LCAzNnB4KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5pbnRyb19fd3JhcCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uaW50cm9fX2tpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA3MDU4ODIzNTMpO1xuICBjb2xvcjogI2UwZTBlMDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0MTE3NjQ3MDYpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbn1cblxuLmludHJvX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0taDEpO1xuICBsaW5lLWhlaWdodDogMS4wNTtcbiAgbWFyZ2luOiAxMnB4IDAgMTBweDtcbn1cblxuLmludHJvX19sZWFkIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1sZWFkKTtcbiAgbWF4LXdpZHRoOiA2NGNoO1xuICBtYXJnaW46IDAgMCAxOHB4O1xufVxuXG4uaW50cm9fX2N0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTJweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDE4cHggMCAxMHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuaW50cm9fX2N0YSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbi5idG4ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAzcHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbn1cblxuLmJ0bi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDEycHggMjRweCByZ2JhKDIyOSwgNTcsIDUzLCAwLjI4KTtcbn1cblxuLmJ0bi0tZ2hvc3Qge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcwNTg4MjM1Myk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNDkwMTk2MDc4KTtcbn1cblxuLnNjcm9sbC1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjRweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbn1cblxuLnNjcm9sbC1pbmRpY2F0b3IgLmRvdCB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgYW5pbWF0aW9uOiBzZC1ib3VuY2UgMS42cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLnNjcm9sbC1pbmRpY2F0b3IgLmRvdDpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMTVzO1xufVxuXG4uc2Nyb2xsLWluZGljYXRvciAuZG90Om50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4zcztcbn1cblxuQGtleWZyYW1lcyBzZC1ib3VuY2Uge1xuICAwJSwgNjAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7XG4gIH1cbn1cbi8qIEFib3V0ICovXG4uc2VjdGlvbl9fd3JhcCB7XG4gIHdpZHRoOiBtaW4oMTIwMHB4LCAxMDAlKTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgcGFkZGluZzogMTB2aCA2dnc7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgMC45ZnI7XG4gIGdhcDogY2xhbXAoMThweCwgM3Z3LCAzNnB4KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5zZWN0aW9uX193cmFwIHtcbiAgICB3aWR0aDogODMlO1xuICAgIHBhZGRpbmc6IDEwdmggMDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5hYm91dF9fdGl0bGUge1xuICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDR2dywgNDRweCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4uYWJvdXRfX2xlYWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWxlYWQpO1xuICBsaW5lLWhlaWdodDogMS42NTtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLmFib3V0X19wIHtcbiAgbGluZS1oZWlnaHQ6IDEuNzU7XG4gIG1hcmdpbjogMCAwIDE0cHg7XG4gIG1heC13aWR0aDogNzBjaDtcbn1cblxuLmFib3V0X19iYWRnZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogODYwcHgpIHtcbiAgLmFib3V0X19iYWRnZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGFuZWwpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGNvbG9yOiAjZWFlYWVhO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5rcGlzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5rcGkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYyNzQ1MDk4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNTQ5MDE5NjEpO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qIE5VUkEgKi9cbiNOVVJBLnNlY3Rpb24ge1xuICBwYWRkaW5nOiAxMHZoIDZ2dztcbn1cblxuLk5VUkFfX3dyYXAge1xuICB3aWR0aDogbWluKDEyMDBweCwgMTAwJSk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4wNWZyIDAuOTVmcjtcbiAgZ2FwOiBjbGFtcCgxOHB4LCAzdncsIDM2cHgpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLk5VUkFfX3dyYXAge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4uTlVSQV9fbWVkaWEge1xuICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICBib3gtc2hhZG93OiAwIDE4cHggNDRweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uTlVSQV9fdGl0bGUge1xuICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDR2dywgNDRweCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDAgMCAxMHB4O1xufVxuXG4uTlVSQV9fbGVhZCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbGVhZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4uTlVSQV9fcCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICBtYXJnaW46IDAgMCAxNHB4O1xufVxuXG4uTlVSQV9fYmFkZ2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogOHB4IDAgNnB4O1xufVxuXG4uTlVSQV9fc3BlY3Mge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEycHg7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xufVxuXG4uTlVSQV9fc3BlYyB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1wYW5lbCksICMxZjFmMWYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDg2MHB4KSB7XG4gIC5OVVJBX19zcGVjIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA2O1xuICB9XG59XG4uTlVSQV9fY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG5cbi8qIENvbnRhY3QgKi9cbiNjb250YWN0ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jY29udGFjdCBoMSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgNHZ3LCA0NHB4KTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuI2NvbnRhY3QgcC5sZWFkIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbiAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgbWF4LXdpZHRoOiA3MGNoO1xufVxuXG4jY29udGFjdCAud3JhcCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICBnYXA6IGNsYW1wKDE2cHgsIDJ2dywgMjRweCk7XG4gIHdpZHRoOiBtaW4oMTIwMHB4LCAxMDAlKTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbn1cblxuI2NvbnRhY3QgLmNhcmQge1xuICBncmlkLWNvbHVtbjogc3BhbiAxMjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tY2FyZCksICMyNDI0MjQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xufVxuXG4jY29udGFjdCAubGVmdCwgI2NvbnRhY3QgLnJpZ2h0IHtcbiAgcGFkZGluZzogY2xhbXAoMTZweCwgMi4ydncsIDI4cHgpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgI2NvbnRhY3QgLmNhcmQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjFmciAwLjlmcjtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gICNjb250YWN0IC5sZWZ0IHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICB9XG4gICNjb250YWN0IC5sZWZ0LCAjY29udGFjdCAucmlnaHQge1xuICAgIHBhZGRpbmc6IDMycHg7XG4gIH1cbn1cbiNjb250YWN0IC5pbmZvIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBjb2xvcjogI2U5ZTllOTtcbn1cblxuI2NvbnRhY3QgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTRweDtcbn1cblxuI2NvbnRhY3QgbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjZDlkOWQ5O1xufVxuXG4jY29udGFjdCBpbnB1dCwgI2NvbnRhY3QgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBiYWNrZ3JvdW5kOiAjMWYxZjFmO1xuICBjb2xvcjogI2ZmZjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4jY29udGFjdCBpbnB1dDpmb2N1cywgI2NvbnRhY3QgdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0YTRhNGE7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcwNTg4MjM1Myk7XG59XG5cbiNjb250YWN0IC5yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiAxNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgI2NvbnRhY3QgLnJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICB9XG59XG4jY29udGFjdCAuY29uc2VudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICNlYWVhZWE7XG59XG5cbiNjb250YWN0IGJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAxMnB4IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJhY2tncm91bmQ6ICNmZjRkNGQ7XG4gIGNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDEycHggMjRweCByZ2JhKDI1NSwgNzcsIDc3LCAwLjI1KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTtcbn1cblxuI2NvbnRhY3QgYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDE2cHggMzRweCByZ2JhKDI1NSwgNzcsIDc3LCAwLjM1KTtcbn1cblxuI2NvbnRhY3QgLmFsZXJ0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBiYWNrZ3JvdW5kOiAjMWYxZjFmO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI2NvbnRhY3QgLmFsZXJ0LnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2NvbnRhY3QgLmFsZXJ0LnN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6ICMyZTdkMzI7XG4gIGJhY2tncm91bmQ6ICMxMzMwMTY7XG59XG5cbiNjb250YWN0IC5hbGVydC5lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogI2EzMzMzMztcbiAgYmFja2dyb3VuZDogIzJhMTQxNDtcbn1cblxuLyogRm9vdGVyICovXG4jZm9vdGVyIHtcbiAgY29sb3I6IHZhcigtLWZnKTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDkwMHB4IDQwMHB4IGF0IDE1JSAtMTAlLCAjMjIyLCB2YXIoLS1iZykpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTYxNjE2LCB2YXIoLS1iZykpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgcGFkZGluZzogNDhweCA2dncgMjhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODIwcHgpIHtcbiAgI2Zvb3RlciAuY29sLmJyYW5kIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA1O1xuICB9XG4gICNmb290ZXIgLmNvbC5uYXYge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDM7XG4gIH1cbiAgI2Zvb3RlciAuY29sLmNvbnRhY3Qge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gIH1cbn1cbiNmb290ZXIgLm1pbmktbmF2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiA4cHg7XG59XG5cbi8qIE1vYmllbDogbWluaS1uYXYgY2VudHJlcmVuICovXG4jZm9vdGVyIC5taW5pLW5hdiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogIzFmMWYxZjtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuI2Zvb3RlciAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMjZweDtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbiNmb290ZXIgLnRvLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDE4cHg7XG4gIGJvdHRvbTogMThweDtcbiAgei1pbmRleDogNTA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDIyOSwgNTcsIDUzLCAwLjMyKTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2Zvb3RlciAudG8tdG9wLnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2Zvb3RlciAud3JhcCB7XG4gIHdpZHRoOiBtaW4oMTIwMHB4LCAxMDAlKTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogY2xhbXAoMTZweCwgMnZ3LCAyNHB4KTtcbn1cblxuI2Zvb3RlciAuY29sIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MjBweCkge1xuICAjZm9vdGVyIC5jb2wuYnJhbmQge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDU7XG4gIH1cbiAgI2Zvb3RlciAuY29sLm5hdiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMztcbiAgfVxuICAjZm9vdGVyIC5jb2wuY29udGFjdCB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gNDtcbiAgfVxufVxuI2Zvb3Rlcl9sb2dvIHtcbiAgbWF4LXdpZHRoOiA3MHZ3O1xufVxuXG4vKiBGb290ZXI6IG5hdi1rb2xvbSBlbiBtaW5pLW5hdiBjZW50cmVyZW4gb3Aga2xlaW5lIHNjaGVybWVuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLyogS29sb20gemVsZiBjZW50cmVyZW4gKi9cbiAgI2Zvb3RlciAuY29sLm5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogY2VudGVyIGRlIG1pbmktbmF2IGluIGRlIGtvbG9tICovXG4gIH1cbiAgLyogRGUgbGlua3MgaW4gaGV0IG1pZGRlbiBlbiBuZXR0ZSBicmVlZHRlIGdldmVuICovXG4gICNmb290ZXIgLm1pbmktbmF2IHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4OyAvKiBvZiA1MHB4IGFscyBqZSBtZWVyIHJ1aW10ZSB3aWx0ICovXG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjZm9vdGVyIC5taW5pLW5hdiBhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogaWNvbiArIHRla3N0IGNlbnRyZXJlbiBpbiBkZSBwaWxsICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyNjBweDsgLyogem9kYXQgemUgbmlldCB0ZSBicmVlZCB3b3JkZW4gKi9cbiAgfVxufVxuLyogQ29uc2VudCBiYW5uZXIgKi9cbiNyaS1jb25zZW50LWJhbm5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IGF1dG8gMCAwIDA7XG4gIHotaW5kZXg6IDIwMDA7XG4gIGJhY2tncm91bmQ6ICMxMTE7XG4gIGNvbG9yOiAjZWVlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzJhMmEyYTtcbiAgYm94LXNoYWRvdzogMCAtMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4jcmktY29uc2VudC1pbm5lciB7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMThweCAxNnB4O1xufVxuXG4ucmktYnRuIHtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiAjMmUyZTJlO1xuICBjb2xvcjogI2VlZTtcbn1cblxuLnJpLWJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzFmNmZlYjtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5zd2l0Y2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogMjRweDtcbn1cblxuLnN3aXRjaCBpbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6ICM0NDQ7XG4gIHRyYW5zaXRpb246IDAuMnM7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG59XG5cbi5zbGlkZXI6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBsZWZ0OiAzcHg7XG4gIHRvcDogM3B4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogMC4ycztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XG4gIGJhY2tncm91bmQ6ICMyYTdiZmY7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNHB4KTtcbn1cblxuLyogQ09OVEFDVCAqL1xuI2NvbnRhY3QgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiNjb250YWN0IGgxIHtcbiAgZm9udC1zaXplOiBjbGFtcCgyOHB4LCA0dncsIDQ0cHgpO1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG4jY29udGFjdCBwLmxlYWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBtYXJnaW46IDAgMCAycmVtO1xuICBtYXgtd2lkdGg6IDcwY2g7XG59XG5cbiNjb250YWN0IC53cmFwIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogY2xhbXAoMTZweCwgMnZ3LCAyNHB4KTtcbiAgd2lkdGg6IG1pbigxMjAwcHgsIDEwMCUpO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG4jY29udGFjdCAuY2FyZCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jYXJkKSwgIzI0MjQyNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbiNjb250YWN0IC5sZWZ0LCAjY29udGFjdCAucmlnaHQge1xuICBwYWRkaW5nOiBjbGFtcCgxNnB4LCAyLjJ2dywgMjhweCk7XG59XG5cbi8qIDIga29sb21tZW4gb3AgZ3JvdGVyIHNjaGVybSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICNjb250YWN0IC5jYXJkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgMC45ZnI7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAjY29udGFjdCAubGVmdCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgfVxuICAjY29udGFjdCAubGVmdCwgI2NvbnRhY3QgLnJpZ2h0IHtcbiAgICBwYWRkaW5nOiAzMnB4O1xuICB9XG59XG4vKiBMb2dvICsgaGVhZGluZ2xpbnQgKi9cbiNjb250YWN0IC5icmFuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4jY29udGFjdCAuYnJhbmQgaW1nIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIENvbnRhY3QgaW5mbyBsaWpzdCAqL1xuI2NvbnRhY3QgLmluZm8ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGNvbG9yOiAjZTllOWU5O1xufVxuXG4jY29udGFjdCAuaW5mbyBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiNjb250YWN0IC5pbmZvIHN2ZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLyogTWFwL3Zpc3VhbCBwbGFjZWhvbGRlciAodmVydmFuZyBtZXQgZWNodGUgZW1iZWQvYWZiZWVsZGluZykgKi9cbiNjb250YWN0IC52aXN1YWwge1xuICBoZWlnaHQ6IDIyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmIyYjJiLCAjMWYxZjFmKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLyogRm9ybSAqL1xuI2NvbnRhY3QgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTRweDtcbn1cblxuI2NvbnRhY3QgbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjZDlkOWQ5O1xufVxuXG4jY29udGFjdCBpbnB1dCwgI2NvbnRhY3QgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBiYWNrZ3JvdW5kOiAjMWYxZjFmO1xuICBjb2xvcjogI2ZmZjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4jY29udGFjdCBpbnB1dDpmb2N1cywgI2NvbnRhY3QgdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0YTRhNGE7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcwNTg4MjM1Myk7XG59XG5cbiNjb250YWN0IC5yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiAxNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgI2NvbnRhY3QgLnJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICB9XG59XG4jY29udGFjdCAuY29uc2VudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICNlYWVhZWE7XG59XG5cbiNjb250YWN0IC5jb25zZW50IGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDNweDtcbn1cblxuI2NvbnRhY3QgYnV0dG9uIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDEycHggMThweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAyNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMjUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xufVxuXG4jY29udGFjdCBidXR0b246aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMzUpO1xufVxuXG4jY29udGFjdCAuaGludCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbn1cblxuLyogQWxlcnRzICovXG4jY29udGFjdCAuYWxlcnQge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGJhY2tncm91bmQ6ICMxZjFmMWY7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jY29udGFjdCAuYWxlcnQuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jY29udGFjdCAuYWxlcnQuc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogIzJlN2QzMjtcbiAgYmFja2dyb3VuZDogIzEzMzAxNjtcbn1cblxuI2NvbnRhY3QgLmFsZXJ0LmVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiAjYTMzMzMzO1xuICBiYWNrZ3JvdW5kOiAjMmExNDE0O1xufVxuXG4jY29udGFjdCBzdHJvbmcge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmZvcm0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDE0cHg7XG59XG5mb3JtIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogI2U2ZTZlNjtcbn1cbmZvcm0gLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuZm9ybSBpbnB1dFt0eXBlPXRleHRdLCBmb3JtIGlucHV0W3R5cGU9ZW1haWxdLCBmb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgYmFja2dyb3VuZDogIzFiMWIxYjtcbiAgY29sb3I6ICNmZmY7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG5mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsIGZvcm0gaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsIGZvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0MDQwNDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcwNTg4MjM1Myk7XG59XG5mb3JtIC50b2dnbGUtcGFzcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEyJSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNzA1ODgyMzUzKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2NDcwNTg4MjQpO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbmZvcm0gLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5mb3JtIC5yb3cgLnJlbWVtYmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICNlNmU2ZTY7XG59XG5mb3JtIC5yb3cgYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5mb3JtIC5yb3cgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuZm9ybSBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAyNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMjUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMsIGJveC1zaGFkb3cgMC4xNXM7XG59XG5mb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMzUpO1xufVxuZm9ybSAuaGludCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbn1cbmZvcm0gLmFsZXJ0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xufVxuZm9ybSAuYWxlcnQuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuZm9ybSAuYWxlcnQuZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjMmExNDE0O1xuICBib3JkZXItY29sb3I6ICNhMzMzMzM7XG59XG5mb3JtIC5hbGVydC5vayB7XG4gIGJhY2tncm91bmQ6ICMxMzMwMTY7XG4gIGJvcmRlci1jb2xvcjogIzJjOGEzMTtcbn1cbmZvcm0ge1xuICAvKiBDb250YWluZXIgdmFuIEJvb3RzdHJhcCBjaGVja2JveCBlZW4ga2xlaW4gYmVldGplIGZpbmV0dW5lbiAqL1xufVxuZm9ybSAuZm9ybS1jaGVjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW4tbGVmdDogMjVweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5OTlweDtcbn1cbmZvcm0gLmZvcm0tY2hlY2staW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbmZvcm0gLmZvcm0tY29udHJvbC1zbSwgZm9ybSBmb3JtIGlucHV0W3R5cGU9dGV4dF0sIGZvcm0gZm9ybSBpbnB1dFt0eXBlPW51bWJlcl0sIGZvcm0gLmZvcm0gaW5wdXRbdHlwZT1lbWFpbF0sIGZvcm0gZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGJhY2tncm91bmQ6ICMxYjFiMWI7XG4gIGNvbG9yOiAjZmZmO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuZm9ybSB7XG4gIC8qIFZlcmJlcmcgZGUgc3RhbmRhYXJkIGJyb3dzZXItc3RpamwgKi9cbn1cbmZvcm0gLmNhZC10b2dnbGUge1xuICBtYXJnaW4tbGVmdDogMjVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyNjI2MjYsICMxMTEpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG5mb3JtIHtcbiAgLyogRGUg4oCca25vcOKAnSBiaW5uZW4gZGUgdG9nZ2xlICovXG59XG5mb3JtIC5jYWQtdG9nZ2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzMCUgMzAlLCAjZmZmZmZmLCAjZDBkMGQwKTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cbmZvcm0ge1xuICAvKiBDaGVja2VkIHN0YXRlICovXG59XG5mb3JtIC5jYWQtdG9nZ2xlOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGY5ZmNhLCAjMDBiN2ZmKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI2LCAyMTMsIDIyNiwgMC45KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNTQsIDczLCAyNDcsIDAuNCk7XG59XG5mb3JtIC5jYWQtdG9nZ2xlOmNoZWNrZWQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbn1cbmZvcm0ge1xuICAvKiBIb3ZlciBzdGF0ZSAqL1xufVxuZm9ybSAuY2FkLXRvZ2dsZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuZm9ybSB7XG4gIC8qIEZvY3VzIChrZXlib2FyZCBhY2Nlc3NpYmlsaXR5KSAqL1xufVxuZm9ybSAuY2FkLXRvZ2dsZTpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG59XG5mb3JtIHtcbiAgLyogRGlzYWJsZWQgc3RhdGUgKi9cbn1cbmZvcm0gLmNhZC10b2dnbGU6ZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAwLjQ1O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuZm9ybSB7XG4gIC8qIExhYmVsIGVybmFhc3QgaWV0cyBzdWJ0aWVsZXIgbWFrZW4gKi9cbn1cbmZvcm0gLmNhZC10b2dnbGUtbGFiZWwge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuOnJvb3Qge1xuICAtLWJnOiMxMjEyMTI7XG4gIC0tcGFuZWw6IzFlMWUxZTtcbiAgLS1wYW5lbDI6IzI0MjQyNDtcbiAgLS1zdHJva2U6IzJhMmEyYTtcbiAgLS1mZzojZmZmO1xuICAtLW11dGVkOiNjZmNmY2Y7XG4gIC0tYWNjZW50OiNmZjRkNGQ7XG59XG5cbi5sb2dpbi1wYWdlIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tZmcpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTIwMHB4IDYwMHB4IGF0IDE1JSAtMTAlLCAjMjAyMDIwLCB2YXIoLS1iZykgNjAlKSwgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE2MTYxNiwgIzEyMTIxMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5sb2dpbi1wYWdlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IGF1dG8gLTIwJSAtMzAlIC0yMCU7XG4gIGhlaWdodDogMjYwcHg7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg1MCUgMTYwJSBhdCA1MCUgMCUsIHJnYmEoMjU1LCA3NywgNzcsIDAuMjUpLCB0cmFuc3BhcmVudCA3MCUpO1xuICBmaWx0ZXI6IGJsdXIoMzJweCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBhbmltYXRpb246IGxvZ2luRmxvYXQgMTBzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGxvZ2luRmxvYXQge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG59XG4uYnJhbmQtbG9nbyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxNnB4O1xuICBsZWZ0OiAxNnB4O1xuICB6LWluZGV4OiAyMDAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgY29sb3I6IHZhcigtLWZnKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbn1cbi5icmFuZC1sb2dvIGltZyB7XG4gIGhlaWdodDogNTBweDtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjUpKTtcbn1cbi5icmFuZC1sb2dvOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiAwIDEycHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDk0MTE3NjQ3MSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkge1xuICAuYnJhbmQtbG9nbyB7XG4gICAgdG9wOiAxMnB4O1xuICAgIGxlZnQ6IDEycHg7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgfVxuICAuYnJhbmQtbG9nbyBpbWcge1xuICAgIGhlaWdodDogMjJweDtcbiAgfVxufVxuLmxvZ2luLWNhcmQge1xuICB3aWR0aDogbWluKDUyMHB4LCAxMDAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tcGFuZWwpLCAjMTkxOTE5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgcGFkZGluZzogMjhweDtcbiAgYm94LXNoYWRvdzogMCAxOHB4IDQ0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cbi5sb2dpbi1jYXJkIGgyIHtcbiAgbWFyZ2luOiAwIDAgNHB4O1xuICBmb250LXNpemU6IGNsYW1wKDIycHgsIDN2dywgMzBweCk7XG59XG4ubG9naW4tY2FyZCAuc3ViIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbiAgbWFyZ2luOiAwIDAgMThweDtcbn1cblxuOnJvb3Qge1xuICAtLWJnOiMxMjEyMTI7XG4gIC0tcGFuZWw6IzFlMWUxZTtcbiAgLS1wYW5lbDI6IzI0MjQyNDtcbiAgLS1zdHJva2U6IzJhMmEyYTtcbiAgLS1mZzojZmZmO1xuICAtLW11dGVkOiNjZmNmY2Y7XG4gIC0tYWNjZW50OiNmZjRkNGQ7XG59XG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5oZWFkZXIgaW1nIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuaGVhZGVyIGEge1xuICBjb2xvcjogdmFyKC0tZmcpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbn1cblxuaGVhZGVyIGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxubWFpbiB7XG4gIHBhZGRpbmc6IDE2cHggMjRweCA4MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuaDEsIGgyLCBoMyB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjZweCwgNHZ3LCAzNnB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuaDIge1xuICBtYXJnaW4tdG9wOiA0MnB4O1xuICBmb250LXNpemU6IGNsYW1wKDIwcHgsIDIuNXZ3LCAyNnB4KTtcbn1cblxuaDMge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbnAsIGxpIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG5mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDMycHggMTZweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuaHRtbFtkYXRhLXRoZW1lPWxpZ2h0XSB7XG4gIC0tY2FkLWJnOiNmN2Y4ZmE7XG4gIC0tY2FkLXN1cmZhY2U6I2ZmZmZmZjtcbiAgLS1jYWQtdGV4dDojMGUwZjExO1xuICAtLWNhZC1tdXRlZDojNWM1ZjY2O1xuICAtLWNhZC1ib3JkZXI6IHJnYmEoMCwwLDAsLjA4KTtcbiAgLS1jYWQtYm9yZGVyLWhvdmVyOiByZ2JhKDAsMCwwLC4xNik7XG59XG5cbjpyb290IHtcbiAgLS1jYWQtYmc6ICMwZjBmMTA7XG4gIC0tY2FkLXN1cmZhY2U6ICMxNjE3MTk7XG4gIC0tY2FkLWJvcmRlcjogcmdiYSgyNTUsMjU1LDI1NSwuMDgpO1xuICAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtcbiAgLS1jYWQtdGV4dDogI2U5ZWFlZTtcbiAgLS1jYWQtbXV0ZWQ6ICNhN2E4YWQ7XG4gIC0tY2FkLWFjY2VudDogI2UzMWIyMzsgLyogQ0FEQVBUSVgvdmVyd2FudCByb29kICovXG59XG5cbi5jYWQtaGVhZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XG4gIHRleHQtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbi8qIENhcmRzICovXG4uY2FkLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjI1cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikpLCByYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDAlIDAlLCByZ2JhKDIyNywgMjcsIDM1LCAwLjA4KSAwJSwgdHJhbnNwYXJlbnQgNDAlKSwgdmFyKC0tY2FkLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYWQtYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgY29sb3I6IHZhcigtLWNhZC10ZXh0KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGVhc2UsIGJveC1zaGFkb3cgMC4xOHMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMThzIGVhc2U7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuXG4uY2FkLWNhcmQgLmNsaWNrYWJsZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jYWQtYm9yZGVyLWhvdmVyKTtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cblxuLmNhZC1jYXJkIC5jYWQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbjogMC4yNXJlbSAwIDAuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbn1cblxuLmNhZC1jYXJkIC5jYWQtY2FyZC10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XG59XG5cbi8qIEljb24gYnViYmxlICovXG4uY2FkLWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgyMjcsIDI3LCAzNSwgMC4xMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI3LCAyNywgMzUsIDAuMzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLmNhZC1jYXJkLWNsaWNrIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiBCcmFuZCBidXR0b24gKi9cbi5idG4tY2FkIHtcbiAgLS1icy1idG4tY29sb3I6I2ZmZjtcbiAgLS1icy1idG4tYmc6IHZhcigtLWNhZC1hY2NlbnQpO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWNhZC1hY2NlbnQpO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogI2M3MTkyMDtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjYzcxOTIwO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyMjcsMjcsMzU7XG59XG5cbi8qIFRhYmVsIGluIENhZGFwdGl4LXN0aWpsICovXG4uY2FkLWNhcmQgLnRhYmxlIHtcbiAgLS1icy10YWJsZS1iZzogdHJhbnNwYXJlbnQ7IC8qIHpldCB2YXJpYWJlbGUgb3AgdHJhbnNwYXJhbnQgKi9cbiAgLS1icy10YWJsZS1zdHJpcGVkLWJnOiB0cmFuc3BhcmVudDsgLyogdm9vciBzdHJpcGVkIHZhcmlhbnRlbiAqL1xuICAtLWJzLXRhYmxlLWhvdmVyLWJnOiB0cmFuc3BhcmVudDsgLyogdm9vciBob3ZlciB2YXJpYW50ZW4gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIGZhbGxiYWNrICovXG59XG5cbi8qIG92ZXJyaWRlIGRlIGNlbHJlZ2VsIHZhbiBCb290c3RyYXAgKi9cbi5jYWQtY2FyZCAuY2FkLXRhYmxlID4gOm5vdChjYXB0aW9uKSA+ICogPiAqIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmNhZC10YWJsZSB7XG4gIC0tcm93LWhvdmVyOiByZ2JhKDIzNSwgNDIsIDQyLCAwLjQyMSk7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2FkLXRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tY2FkLXN1cmZhY2UpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5jYWQtdGFibGUgdGgsIC5jYWQtdGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xuICBjb2xvcjogcmdiYSg5LCA5LCA5LCAwLjk0OSk7XG59XG5cbi5jYWQtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xufVxuXG4vKiBVc2Vya29sb20gbWV0IGF2YXRhci1pbml0aWFscyAqL1xuLmNhZC11c2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uY2FkLWF2YXRhciB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgyMjcsIDI3LCAzNSwgMC4xMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI3LCAyNywgMzUsIDAuMzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XG59XG5cbi8qIEJhZGdlcy9jaWpmZXJzICovXG4uY2FkLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4uY2FkLWFsaWduLW51bSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4uY2FkLWRhdGUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTtcbn1cblxuLyogVHJhbnNwYXJhbnRlIGxpc3QgKyBpdGVtcyAqL1xuLmNhZC1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uY2FkLWxpc3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmNhZC1saXN0LWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4uY2FkLWxpc3QtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG59XG5cbi8qIFVzZXJibG9ramUgbWV0IG1pbmktYXZhdGFyICovXG4uY2FkLXVzZXItc20ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2FkLWF2YXRhci1zbSB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywgMjcsIDM1LCAwLjEyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjcsIDI3LCAzNSwgMC4zNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgY29sb3I6IHZhcigtLWNhZC10ZXh0KTtcbn1cblxuLmNhZC11c2VyLW5hbWUge1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLyogRGF0dW0gcmVjaHRzICovXG4uY2FkLWxpc3QtZGF0ZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4vKiBtYWFrIHpla2VyIGRlIFVMIHRyYW5zcGFyYW50IGJpbm5lbiBjYXJkcyAqL1xuLmNhZC1jYXJkIC5jYWQtbGlzdCxcbi5jYWQtY2FyZCAubGlzdC11bnN0eWxlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uY2FkLWFtb3VudCB7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jYWQtY3VycmVuY3kge1xuICBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xufVxuXG4uYnRuLWdob3N0IHtcbiAgLS1iZDpyZ2JhKDI1NSwyNTUsMjU1LC4yMik7XG4gIGNvbG9yOiAjODQ4NTg1O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iZCk7XG59XG5cbi5idG4tZ2hvc3Q6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbjpyb290IHtcbiAgLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkOiAyMjBweDtcbiAgLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNzJweDtcbiAgLS1zaWRlYmFyLWJnOiAjMTExMTExO1xuICAtLXNpZGViYXItYmctZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxNTE1MTUsICMwNTA1MDUpO1xuICAvKiBjdXN0b21lciBicmFuZCBhY2NlbnQsIGZhbGxiYWNrIHRvIFJFU1RpbnNwZWN0IG9yYW5nZSAqL1xuICAtLWJyYW5kLWFjY2VudDogI2M4MDAwMDsgLyogZS5nLiBTdW1pdG9tbyBibHVlIOKAkyBvdmVycmlkZSBwZXIgY3VzdG9tZXIgbGF0ZXIgKi9cbn1cblxuLyogPT09IExFRlQgU0lERUJBUiA9PT0gKi9cbi5hZG1pbi1zaWRlYmFyIHtcbiAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQpO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA5OTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZy1ncmFkaWVudCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2U7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2cHg7IC8qIHNwYWNlIGZvciB5b3VyIHRvcCBoZWFkZXIgKi9cbn1cblxuLyogbWFpbiBjb2x1bW4gc2hpZnRzIG5leHQgdG8gc2lkZWJhciAqL1xuLmFkbWluLW1haW4ge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7XG4gIHBhZGRpbmctbGVmdDogNTBweDtcbiAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgMC4ycyBlYXNlO1xufVxuXG4vKiB3cmFwcGVyIGZvciBsb2dvICsgdG9nZ2xlICovXG4uYWRtaW4tc2lkZWJhci10b3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi8qIGN1c3RvbWVyIGxvZ28gKi9cbi5hZG1pbi1zaWRlYmFyIC5jdXN0b21lci1sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5hZG1pbi1zaWRlYmFyIC5jdXN0b21lci1sb2dvIGltZyB7XG4gIG1heC1oZWlnaHQ6IDI4cHg7XG4gIG1heC13aWR0aDogMzZweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmFkbWluLXNpZGViYXIgLmN1c3RvbWVyLW5hbWUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLyogbmF2IGxpbmtzICovXG4uYWRtaW4tc2lkZWJhciAubmF2LWxpbmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgcGFkZGluZzogMC41NXJlbSAwLjlyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXMsIHRyYW5zZm9ybSAwLjFzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNTVyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuLmFkbWluLXNpZGViYXIgLm5hdi1saW5rIGkge1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbi5hZG1pbi1zaWRlYmFyIC5uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcbn1cblxuLmFkbWluLXNpZGViYXIgLm5hdi1saW5rLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMTIwLCAyMDAsIDAuMTgpOyAvKiB1c2VzIGJyYW5kIGFjY2VudCBmZWVsICovXG4gIGNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIHZhcigtLWJyYW5kLWFjY2VudCk7XG59XG5cbi8qIOKAnHBvd2VyZWQgYnnigJ0gZm9vdGVyIHRleHQgKi9cbi5zaWRlYmFyLXBvd2VyZWQge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG59XG5cbi8qIHRvZ2dsZSBidXR0b24gKi9cbi5zaWRlYmFyLXRvZ2dsZS1idG4ge1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjQ1cmVtO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xufVxuXG4vKiBNb2JpbGU6IHNpZGViYXIgYmVjb21lcyBmdWxsLXdpZHRoIHRvcCBiYXIsIG5vIGNvbGxhcHNpbmcgbWFnaWMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAuYWRtaW4tc2lkZWJhciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbiAgLmFkbWluLW1haW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIGJvZHkuc2lkZWJhci1jb2xsYXBzZWQgLmFkbWluLXNpZGViYXIgLmN1c3RvbWVyX21haW4gYm9keS5zaWRlYmFyLWNvbGxhcHNlZCAuYWRtaW4tbWFpbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLnNpZGViYXItdG9nZ2xlLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvKiB3ZSBjYW4gZG8gYW5vdGhlciBwYXR0ZXJuIG9uIG1vYmlsZSBsYXRlciAqL1xuICB9XG59XG5odG1sW2RhdGEtdGhlbWU9bGlnaHRdIHtcbiAgLS1jYWQtYmc6I2Y3ZjhmYTtcbiAgLS1jYWQtc3VyZmFjZTojZmZmZmZmO1xuICAtLWNhZC10ZXh0OiMwZTBmMTE7XG4gIC0tY2FkLW11dGVkOiM1YzVmNjY7XG4gIC0tY2FkLWJvcmRlcjogcmdiYSgwLDAsMCwuMDgpO1xuICAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMCwwLDAsLjE2KTtcbn1cblxuOnJvb3Qge1xuICAtLWNhZC1iZzogIzBmMGYxMDtcbiAgLS1jYWQtc3VyZmFjZTogIzE2MTcxOTtcbiAgLS1jYWQtYm9yZGVyOiByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7XG4gIC0tY2FkLWJvcmRlci1ob3ZlcjogcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xuICAtLWNhZC10ZXh0OiAjZTllYWVlO1xuICAtLWNhZC1tdXRlZDogI2E3YThhZDtcbiAgLS1jYWQtYWNjZW50OiAjZTMxYjIzOyAvKiBSRVNUaW5zcGVjdC92ZXJ3YW50IHJvb2QgKi9cbn1cblxuLmNhcmVlcnMge1xuICBtYXJnaW4tdG9wOiA1dmg7XG59XG5cbi5jYWQtaGVhZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XG4gIHRleHQtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbi8qIENhcmRzICovXG4uY2FkLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjI1cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikpLCByYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDAlIDAlLCByZ2JhKDIyNywgMjcsIDM1LCAwLjA4KSAwJSwgdHJhbnNwYXJlbnQgNDAlKSwgdmFyKC0tY2FkLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYWQtYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgY29sb3I6IHZhcigtLWNhZC10ZXh0KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGVhc2UsIGJveC1zaGFkb3cgMC4xOHMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMThzIGVhc2U7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRpdGxlIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDAgMC4yNXJlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG59XG5cbi5jYWQtY2FyZCAuY2FkLWNhcmQtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpO1xufVxuXG4vKiBJY29uIGJ1YmJsZSAqL1xuLmNhZC1jYXJkLWljb24ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjI3LCAyNywgMzUsIDAuMTIpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNywgMjcsIDM1LCAwLjM1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5jYWQtY2FyZC1jbGljayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogQnJhbmQgYnV0dG9uICovXG4uYnRuLWNhZCB7XG4gIC0tYnMtYnRuLWNvbG9yOiNmZmY7XG4gIC0tYnMtYnRuLWJnOiB2YXIoLS1jYWQtYWNjZW50KTtcbiAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB2YXIoLS1jYWQtYWNjZW50KTtcbiAgLS1icy1idG4taG92ZXItYmc6ICNjNzE5MjA7XG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogI2M3MTkyMDtcbiAgLS1icy1idG4tZm9jdXMtc2hhZG93LXJnYjogMjI3LDI3LDM1O1xufVxuXG4vKiA9PT09PT09PT09IEZlYXR1cmUgVGlsZXMgKGhlcm8tYWNodGlnLCBnZWVuIGNhcmRzKSA9PT09PT09PT09ICovXG4uY2FkLWZlYXR1cmVzIHtcbiAgLS1jYWQtZmVhdHVyZS1yYWRpdXM6IDE4cHg7XG59XG5cbi5jYWQtZmVhdHVyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FkLWZlYXR1cmUtcmFkaXVzKTtcbiAgcGFkZGluZzogMjJweCAyMnB4IDIwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogTGF5ZXIgMTogc3VidGllbGUgZ3JpZC9nbG93ICovXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxNDAlIDEyMCUgYXQgMCUgMCUsIHJnYmEoMjI3LCAyNywgMzUsIDAuMTgpIDAlLCByZ2JhKDIyNywgMjcsIDM1LCAwKSA0OCUpLCByYWRpYWwtZ3JhZGllbnQoMTIwJSAxNDAlIGF0IDEwMCUgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNTUlKSwgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSksIHZhcigtLWNhZC1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FkLWJvcmRlcik7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpLCAwIDE0cHggNDRweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgZWFzZSwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLCBib3JkZXItY29sb3IgMC4xOHMgZWFzZTtcbn1cblxuLmNhZC1mZWF0dXJlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNhZC1ib3JkZXItaG92ZXIpO1xuICBib3gtc2hhZG93OiAwIDIycHggNTRweCByZ2JhKDAsIDAsIDAsIDAuNTUpO1xufVxuXG4uY2FkLWZlYXR1cmU6OmFmdGVyIHtcbiAgLyogZGVjb3JhdGlldmUgc29mdCBoaWdobGlnaHQgcmVjaHRzIG9uZGVyICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IGF1dG8gLTIwJSAtMzUlIGF1dG87XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogNjAlO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNDAlIDQwJSBhdCA1MCUgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEyZGVnKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIFZhcmlhdGllcyBtZXQga2xldXJhY2NlbnRlbiAqL1xuLmNhZC1mZWF0dXJlLS1ibHVlIHtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDE0MCUgMTIwJSBhdCAwJSAwJSwgcmdiYSg3NCwgMTQ0LCAyMjYsIDAuMTgpIDAlLCByZ2JhKDc0LCAxNDQsIDIyNiwgMCkgNDglKSwgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTQwJSBhdCAxMDAlIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDU1JSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikpLCB2YXIoLS1jYWQtc3VyZmFjZSk7XG59XG5cbi5jYWQtZmVhdHVyZS0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTQwJSAxMjAlIGF0IDAlIDAlLCByZ2JhKDQxLCAyMDUsIDY1LCAwLjE4KSAwJSwgcmdiYSg0MSwgMjA1LCA2NSwgMCkgNDglKSwgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTQwJSBhdCAxMDAlIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDU1JSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikpLCB2YXIoLS1jYWQtc3VyZmFjZSk7XG59XG5cbi8qIEljb24gYnViYmxlIGdyb290IGVuIGJvbGQgKi9cbi5jYWQtZmVhdHVyZV9faWNvbiB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywgMjcsIDM1LCAwLjE2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjcsIDI3LCAzNSwgMC4zNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuXG4uY2FkLWZlYXR1cmUtLWJsdWUgLmNhZC1mZWF0dXJlX19pY29uIHtcbiAgYmFja2dyb3VuZDogcmdiYSg3NCwgMTQ0LCAyMjYsIDAuMTYpO1xuICBib3JkZXItY29sb3I6IHJnYmEoNzQsIDE0NCwgMjI2LCAwLjM1KTtcbn1cblxuLmNhZC1mZWF0dXJlLS1ncmVlbiAuY2FkLWZlYXR1cmVfX2ljb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQxLCAyMDUsIDY1LCAwLjE2KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDQxLCAyMDUsIDY1LCAwLjM1KTtcbn1cblxuLyogVGVrc3QgKi9cbi5jYWQtZmVhdHVyZV9fdGl0bGUge1xuICBtYXJnaW46IDJweCAwIDZweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xufVxuXG4uY2FkLWZlYXR1cmVfX3RleHQge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4vKiBDYXJkIG11c3QgYmUgcmVsYXRpdmUgc28gdGhlIG92ZXJsYXkgY2FuIHNpdCBpbiB0aGUgdG9wLXJpZ2h0IGNvcm5lciAqL1xuLmhlYXRtYXAtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJvcmRlci1yYWRpdXMgMC4ycyBlYXNlLCBtYXJnaW4gMC4ycyBlYXNlO1xufVxuXG4vKiBIb3ZlciBpbmZvIG92ZXJsYXkgKi9cbi5oZWF0bWFwLWhvdmVyLWluZm8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC43NXJlbTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjZyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG5cbi8qIE9ubHkgZXZlciB2aXNpYmxlIGluIHRoZWF0ZXIgbW9kZTsgSlMgdG9nZ2xlcyBkLW5vbmUgd2hlbiB2YWxpZCAqL1xuLmhlYXRtYXAtY2FyZC5oZWF0bWFwLXRoZWF0ZXItbW9kZSAuaGVhdG1hcC1ob3Zlci1pbmZvIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBZb3VyIGV4aXN0aW5nIHRoZWF0ZXIgcnVsZXMgY2FuIHN0YXk7IGp1c3Qga2VlcCB0aGVzZTogKi9cbi5oZWF0bWFwLWNhcmQuaGVhdG1hcC10aGVhdGVyLW1vZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDMwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxMDB2bWF4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1pbi1oZWlnaHQ6IDkwdmg7XG59XG5cbi5oZWF0bWFwLWNhcmQuaGVhdG1hcC10aGVhdGVyLW1vZGUgLmhlYXRtYXAtdmlld3BvcnQge1xuICBtaW4taGVpZ2h0OiA5MHZoO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4uaGVhdG1hcC1jYXJkLmhlYXRtYXAtdGhlYXRlci1tb2RlIC5oZWF0bWFwLTNkLXNjZW5lIHtcbiAgaGVpZ2h0OiA5MHZoO1xufVxuXG4vKiAyRCBmbGF0IHZpZXcgKHVud3JhcHBlZCB3YWxscykgKi9cbi8qIEZsYXQgKDJEKSB2aWV3IHNob3VsZCBmaWxsIHRoZSB2aWV3cG9ydCBqdXN0IGxpa2UgM0QgKi9cbi5oZWF0bWFwLTJkLXNjZW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0MjBweDsgLyogbm9ybWFsIG1vZGUgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIE1ha2UgdGhlIGZsYXQgY2FudmFzIGZpbGwgaXRzIHNjZW5lICovXG4uaGVhdG1hcC0yZC1zY2VuZSBjYW52YXMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSW4gdGhlYXRlciBtb2RlLCBsZXQgZmxhdCB2aWV3IGZpbGwgdGhlIHZpZXdwb3J0IHRvbyAqL1xuLmhlYXRtYXAtY2FyZC5oZWF0bWFwLXRoZWF0ZXItbW9kZSAuaGVhdG1hcC0yZC1zY2VuZSB7XG4gIGhlaWdodDogMTAwdmg7IC8qIG1hdGNoIHRoZSAzRCB0aGVhdGVyIGhlaWdodCAqL1xufVxuXG4vKiBDYW52YXMgaXMgYWxyZWFkeSBzZXQgdG8gZmlsbCBpdHMgcGFyZW50LCBzbyB0aGlzIHdpbGwgbm93IGZpbGwgdGhlIHNjcmVlbiAqL1xuLmhlYXRtYXAtMmQtc2NlbmUgY2FudmFzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFNsaWdodGx5IHdpZGVyIGluIHRoZSBtYWluIGNvbHVtbiBvbiBsYXJnZSBzY3JlZW5zICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oZWF0bWFwLWNhcmQuaGVhdG1hcC10aGVhdGVyLW1vZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgfVxufVxuLmhlYXRtYXAtdmlld3BvcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyNjBweDtcbiAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgLyogM0QgcGVyc3BlY3RpdmUgaXMgYXBwbGllZCBoZXJlICovXG4gIHBlcnNwZWN0aXZlOiA5MDBweDtcbn1cblxuLmhlYXRtYXAtdmlld3BvcnQ6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLmhlYXRtYXAtaW5uZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG59XG5cbi8qIDNEIOKAnHR1YmXigJ0gZWZmZWN0ICovXG4uaGVhdG1hcC0zZC1zY2VuZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBUaGUg4oCcYm944oCdIHdpdGggdGhlIDQgZmFjZXMgKi9cbi5oZWF0bWFwLTNkLWJveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgLyogaW5pdGlhbCBvcmllbnRhdGlvbiAqL1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTI1ZGVnKSByb3RhdGVZKDM1ZGVnKTtcbn1cblxuLyogRWFjaCBjYW52YXMgaXMgb25lIHdhbGwgKi9cbi5oZWF0bWFwLWZhY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5cbi8qIENvbG9yIGxlZ2VuZDogcmVkIOKGkiB5ZWxsb3cg4oaSIGdyZWVuICovXG4uaGVhdG1hcC1sZWdlbmQge1xuICBoZWlnaHQ6IDhweDtcbiAgbWluLXdpZHRoOiAxMjBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmMDAwMCwgI2ZmZmYwMCwgIzAwZmYwMCk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi8qIFRoZWF0ZXIgbW9kdXM6IHZlcndpamRlciBkaWUgcGFkZGluZyBvdmVyYWwgKi9cbmJvZHkuaGVhdG1hcC10aGVhdGVyLW9wZW4gLnJvdyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIERBU0hCT0FSRCEhICovXG4uZGFzaGJvYXJkLWFsZXJ0LWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEuNXJlbTtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTIwJSAxNjAlIGF0IDAlIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgMCUsIHRyYW5zcGFyZW50IDQwJSksIGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICNmZjRiNWMgMCUsICNlMzFiMjMgNDAlLCAjN2EwYjEyIDEwMCUpO1xuICBib3gtc2hhZG93OiAwIDE2cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIHN1YnRsZSBnbG93IGFjY2VudCBvbiB0aGUgcmlnaHQgKi9cbi5kYXNoYm9hcmQtYWxlcnQtYmFubmVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IC00MCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTEwJSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSAwJSwgdHJhbnNwYXJlbnQgNTUlKTtcbiAgb3BhY2l0eTogMC43O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRhc2hib2FyZC1hbGVydC1tYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG4gIHotaW5kZXg6IDE7XG59XG5cbi5kYXNoYm9hcmQtYWxlcnQtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjdyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbi5kYXNoYm9hcmQtYWxlcnQtc3ViIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLmRhc2hib2FyZC1hbGVydC1hY3Rpb25zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC41cmVtO1xuICB6LWluZGV4OiAxO1xufVxuXG4vKiBNYWtlIGJ1dHRvbnMgbWF0Y2ggdGhlIGJyaWdodCBiYW5uZXIgKi9cbi5kYXNoYm9hcmQtYWxlcnQtYWN0aW9ucyAuYnRuLXNtIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmRhc2hib2FyZC1hbGVydC1hY3Rpb25zIC5idG4tb3V0bGluZS1saWdodCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuXG4uZGFzaGJvYXJkLWFsZXJ0LWFjdGlvbnMgLmJ0bi1saW5rIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuLmRhc2hib2FyZC1hbGVydC1hY3Rpb25zIC5idG4tbGluazpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIFN0YWNrIG5pY2VseSBvbiBzbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLmRhc2hib2FyZC1hbGVydC1iYW5uZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLmRhc2hib2FyZC1hbGVydC1hY3Rpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLyogTGF5b3V0IG5hYXN0IGFib3V0LXRla3N0ICovXG4uYWJvdXQtd2l0aC12aWV3ZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxLjA1ZnIpIG1pbm1heCgwLCAxLjJmcik7XG4gIGdhcDogM3JlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5hYm91dF9fdmlld2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uYWJvdXRfX3ZpZXdlci10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4vKiBUcmFuc3BhcmFudGUgdmFyaWFudCBvcCBkZSBob21lcGFnZSAqL1xuLmhlYXRtYXAtY2FyZC0tdHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uaGVhdG1hcC1jYXJkLWJvZHktLWNvbXBhY3Qge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uaGVhdG1hcC12aWV3cG9ydC0tdHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLyogc2xpZGVyIC8gcmFuZ2UtY29udHJvbHMgKGNvbXBhY3QpICovXG4uaGVhdG1hcC1yYW5nZS1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uaGVhdG1hcC1yYW5nZS1pbnB1dHMge1xuICBmbGV4OiAxO1xufVxuXG4uaGVhdG1hcC1yYW5nZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICBvcGFjaXR5OiAwLjc7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmhlYXRtYXAtcmFuZ2UtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmhlYXRtYXAtcmFuZ2UtaW5wdXQge1xuICB3aWR0aDogNXJlbTtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4uaGVhdG1hcC1yYW5nZS1zZXAge1xuICBvcGFjaXR5OiAwLjc7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuXG4uaGVhdG1hcC1yYW5nZS1sZWdlbmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMXJlbTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4vKiBNb2JpZWw6IHZpZXdlciBvbmRlciBkZSB0ZWtzdCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5hYm91dC13aXRoLXZpZXdlciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgcGFkZGluZzogMTB2aCAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5oNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLWJzLWhlYWRpbmctY29sb3IpO1xufVxuXG5oNSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmJ0bi1jbG9zZSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uc21hbGwge1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1tdXRlZCB0aCwgLnRleHQtbXV0ZWQgdGQge1xuICBjb2xvcjogI2IwYjBiMCAhaW1wb3J0YW50O1xufVxuXG4ua3BpLWNhcmQge1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xuICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5rcGktY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG5cbi8qIEtsZXVyZW4gKi9cbi5rcGktYmx1ZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxZTg4ZTUsICMxNTY1YzApO1xufVxuXG4ua3BpLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzQzYTA0NywgIzJlN2QzMik7XG59XG5cbi5rcGktb3JhbmdlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZiOGMwMCwgI2VmNmMwMCk7XG59XG5cbi5rcGktcmVkIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2U1MzkzNSwgI2I3MWMxYyk7XG59XG5cbi5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5hZG1pbi1tYWluLWlubmVyIHtcbiAgcGFkZGluZy1yaWdodDogNTBweDtcbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2IoNTksIDU5LCA1OSksIHJnYigxNCwgMTEsIDExKSk7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogdmFyKC0tYnRuLWJnKTtcbn1cblxuLmNhZC1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQge1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogMS4zZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG4gIGJvcmRlci1jb2xvcjogIzM0M2E0MDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xufVxuXG4uY2FkLXN3aXRjaCAuZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWIyMzsgLyogUkVTVGluc3BlY3Qgcm9vZCAqL1xuICBib3JkZXItY29sb3I6ICNlMzFiMjM7XG59XG5cbi5jYWQtc3dpdGNoIC5mb3JtLWNoZWNrLWlucHV0OmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4xNXJlbSByZ2JhKDIyNywgMjcsIDM1LCAwLjM1KTtcbn1cblxuLmNhZC1zd2l0Y2ggLmZvcm0tY2hlY2stbGFiZWwge1xuICBjb2xvcjogI2Y4ZjlmYTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2FkLXN3aXRjaCAuZm9ybS10ZXh0IHtcbiAgY29sb3I6ICNhZWIwYjM7XG59XG5cbiNtYXBGaWx0ZXJzRm9ybSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUUlVTVEVEIERBU0hCT0FSRCBWSUVXIChPcHMgQ29uc29sZSlcbiAgIC0gQWxsIGN1c3RvbSBzdHlsaW5nIGlzIHNjb3BlZCB1bmRlciAub3BzZGFzaCB0byBhdm9pZFxuICAgICBtZXNzaW5nIHdpdGggZXhpc3RpbmcgY2FkLSogc3R5bGluZyBlbHNld2hlcmUuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vcHNkYXNoIHtcbiAgcGFkZGluZzogMS4yNXJlbSAwO1xufVxuXG4ub3BzZGFzaCAub3BzZGFzaC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjg1cmVtO1xufVxuXG4ub3BzZGFzaCAub3BzZGFzaC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuLm9wc2Rhc2ggLm9wc2Rhc2gtc3VidGl0bGUge1xuICBmb250LXNpemU6IDEycHg7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbn1cblxuLm9wc2Rhc2ggLm9wc2Rhc2gtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ub3BzZGFzaCAub3BzZGFzaC1pbnB1dCB7XG4gIGhlaWdodDogMzRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC42cmVtO1xuICBmb250LXNpemU6IDEycHg7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5vcHNkYXNoIC5vcHNkYXNoLWJ0biB7XG4gIGhlaWdodDogMzRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC42NXJlbTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ub3BzZGFzaCAub3BzZGFzaC1idG46aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLm9wc2Rhc2ggLm9wc2Rhc2gtYnRuLmlzLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMywgMTEwLCAyNTMsIDAuNTUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzLCAxMTAsIDI1MywgMC4xMik7XG59XG5cbi5vcHNkYXNoIC5vcHNkYXNoLWdyaWQge1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFMRVJUIENFTlRFUiAoUnVuaHViKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm9wc2Rhc2ggLnJ1bmh1YiB7XG4gIG1hcmdpbi1ib3R0b206IDEuMXJlbTtcbn1cblxuLm9wc2Rhc2ggLnJ1bmh1Yi1hbGVydGJhciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ2FwOiAwLjZyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAub3BzZGFzaCAucnVuaHViLWFsZXJ0YmFyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cbi5vcHNkYXNoIC5ydW5odWItY2hpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41NXJlbTtcbiAgcGFkZGluZzogMC41NXJlbSAwLjdyZW07XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEwLCAxMiwgMC41NSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4cyBlYXNlLCBib3JkZXItY29sb3IgMC4wOHMgZWFzZSwgYmFja2dyb3VuZCAwLjA4cyBlYXNlO1xuICBtaW4taGVpZ2h0OiA1NnB4O1xufVxuXG4ub3BzZGFzaCAucnVuaHViLWNoaXA6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAxMCwgMTIsIDAuNyk7XG59XG5cbi5vcHNkYXNoIC5ydW5odWItY2hpcF9faWNvbiB7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwX19pY29uIGkge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5vcHNkYXNoIC5ydW5odWItY2hpcF9fbWV0YSB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwX19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgb3BhY2l0eTogMC44NTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5vcHNkYXNoIC5ydW5odWItY2hpcF9fY291bnQge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG59XG5cbi5vcHNkYXNoIC5ydW5odWItY2hpcF9fYmFkZ2Uge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBvcGFjaXR5OiAwLjkyO1xufVxuXG4vKiBTZXZlcml0eSB2YXJpYW50cyAqL1xuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS1kYW5nZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjIwLCA1MywgNjksIDAuNTUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjEpO1xufVxuXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLWRhbmdlciAucnVuaHViLWNoaXBfX2ljb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjIwLCA1MywgNjksIDAuNTUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjE2KTtcbn1cblxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS13YXJuaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMTkzLCA3LCAwLjU1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE5MywgNywgMC4xKTtcbn1cblxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS13YXJuaW5nIC5ydW5odWItY2hpcF9faWNvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDE5MywgNywgMC41NSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxOTMsIDcsIDAuMTYpO1xufVxuXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLWluZm8ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTMsIDExMCwgMjUzLCAwLjU1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMywgMTEwLCAyNTMsIDAuMSk7XG59XG5cbi5vcHNkYXNoIC5ydW5odWItY2hpcC0taW5mbyAucnVuaHViLWNoaXBfX2ljb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTMsIDExMCwgMjUzLCAwLjU1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMywgMTEwLCAyNTMsIDAuMTYpO1xufVxuXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLW9rIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xufVxuXG4vKiBQdWxzZSBvbmx5IGZvciByZWFsIGFsZXJ0cyAqL1xuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS1kYW5nZXIucnVuaHViLWNoaXAtLXB1bHNlIHtcbiAgYW5pbWF0aW9uOiBydW5odWJQdWxzZURhbmdlciAxLjE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS13YXJuaW5nLnJ1bmh1Yi1jaGlwLS1wdWxzZSB7XG4gIGFuaW1hdGlvbjogcnVuaHViUHVsc2VXYXJuIDEuMzVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHJ1bmh1YlB1bHNlRGFuZ2VyIHtcbiAgMCUsIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyMjAsIDUzLCA2OSwgMCk7XG4gIH1cbiAgNTAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA2cHggcmdiYSgyMjAsIDUzLCA2OSwgMC4xOCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcnVuaHViUHVsc2VXYXJuIHtcbiAgMCUsIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDE5MywgNywgMCk7XG4gIH1cbiAgNTAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA2cHggcmdiYSgyNTUsIDE5MywgNywgMC4xNik7XG4gIH1cbn1cbi8qIE9uZS10aW1lIGhpZ2hsaWdodCBwdWxzZSB3aGVuIG5hdmlnYXRpbmcgdG8gYSBjYXJkICovXG5Aa2V5ZnJhbWVzIG9wc0ZvY3VzIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxMywgMTEwLCAyNTMsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICAzMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDZweCByZ2JhKDEzLCAxMTAsIDI1MywgMC4xOCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxMywgMTEwLCAyNTMsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuLm9wc2Rhc2ggLm9wcy1mb2N1cyB7XG4gIGFuaW1hdGlvbjogb3BzRm9jdXMgMC45cyBlYXNlLW91dCAxO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBPcHMgY2FyZHMgKHRhYmxlcylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vcHNkYXNoIC5vcHMtY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yOCk7XG4gIHBhZGRpbmc6IDAuODVyZW0gMC45cmVtO1xufVxuXG4ub3BzZGFzaCAub3BzLWNhcmRfX2hlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4ub3BzZGFzaCAub3BzLWNhcmRfX3RpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLm9wc2Rhc2ggLm9wcy1jYXJkX190aXRsZSBpIHtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4ub3BzZGFzaCAub3BzLWNhcmRfX21ldGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIG9wYWNpdHk6IDAuODtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm9wc2Rhc2ggLm9wcy1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgcGFkZGluZzogMC4xMnJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG5cbi5vcHNkYXNoIC5vcHMtcGlsbC0tZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjQ1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDUzLCA2OSwgMC4xMik7XG59XG5cbi5vcHNkYXNoIC5vcHMtcGlsbC0td2FybmluZyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDE5MywgNywgMC40NSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxOTMsIDcsIDAuMTIpO1xufVxuXG4ub3BzZGFzaCAub3BzLXBpbGwtLWluZm8ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTMsIDExMCwgMjUzLCAwLjQ1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMywgMTEwLCAyNTMsIDAuMTIpO1xufVxuXG4ub3BzZGFzaCAub3BzLWNhcmRfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNDVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm9wc2Rhc2ggLm9wcy1jYXJkX19hY3Rpb25zIGEge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjU1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xufVxuXG4ub3BzZGFzaCAub3BzLWNhcmRfX2FjdGlvbnMgYTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4ub3BzZGFzaCAub3BzLXNjcm9sbCB7XG4gIG1heC1oZWlnaHQ6IDI3MHB4O1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm9wc2Rhc2ggLm9wcy10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vcHNkYXNoIC5vcHMtdGFibGUgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgcGFkZGluZzogMC40NXJlbSAwLjM1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cblxuLm9wc2Rhc2ggLm9wcy10YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC4zNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5vcHNkYXNoIC5tdXRlZCB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm9wc2Rhc2ggLm9wcy1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ub3BzZGFzaCAub3BzLWVtcHR5IHtcbiAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnVzaW5lc3MgbWV0cmljcyAoY29tcGFjdClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vcHNkYXNoIC5iaXpiYXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMC42cmVtO1xuICBtYXJnaW4tdG9wOiAwLjlyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAub3BzZGFzaCAuYml6YmFyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cbi5vcHNkYXNoIC5iaXp0aWxlIHtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgcGFkZGluZzogMC42cmVtIDAuN3JlbTtcbn1cblxuLm9wc2Rhc2ggLmJpenRpbGVfX2xhYmVsIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwLjg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xufVxuXG4ub3BzZGFzaCAuYml6dGlsZV9fdmFsdWUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIG1hcmdpbi10b3A6IDAuMTVyZW07XG59XG5cbi5vcHNkYXNoIC5iaXp0aWxlX19oaW50IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwLjcyO1xuICBtYXJnaW4tdG9wOiAwLjE1cmVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNYXA6IGtlZXAgZXhpc3RpbmcgbGF5b3V0LCBqdXN0IGltcHJvdmUgZGVuc2l0eSBhIGJpdFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm9wc2Rhc2ggLm1hcHdyYXAge1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xufVxuXG4ub3BzZGFzaCAubWFwLXBhbmVsIHtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIyKTtcbiAgcGFkZGluZzogMC44NXJlbSAwLjlyZW07XG59XG5cbi5idG4ge1xuICBmb250LXNpemU6IDExcHg7XG59IiwiICBcclxuICA6cm9vdHsgXHJcbiAgICAtLWJnOiMxMjEyMTI7IFxyXG4gICAgLS1wYW5lbDojMWUxZTFlOyBcclxuICAgIC0tcGFuZWwtMjojMjYyNjI2OyBcclxuICAgIC0tZmc6I2ZmZmZmZjsgXHJcbiAgICAtLW11dGVkOiNiZGJkYmQ7IFxyXG4gICAgLS1hY2NlbnQ6I0U1MzkzNTsgXHJcbiAgICAtLWFjY2VudC0yOiNGRjhBNjU7IFxyXG4gICAgLS1zdHJva2U6IzJhMmEyYTsgXHJcbiAgICAtLXJhZGl1czoxNHB4OyBcclxuICAgIC0taDE6IGNsYW1wKDM2cHgsIDV2dywgNjRweCk7IFxyXG4gICAgLS1sZWFkOiBjbGFtcCgxNnB4LCAxLjR2dywgMThweCk7IFxyXG4gICAgLS1mb250OiAnSW50ZXInLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmOyBcclxuICAgIC0tdGV4dDogdmFyKC0tZmcpOyBcclxuICAgIC0tbGluazogIzgwZDhmZjsgXHJcbiAgICAtLXN1cmZhY2U6IHZhcigtLXBhbmVsKTsgXHJcbiAgICAtLWJnLTI6IHZhcigtLXBhbmVsLTIpOyBcclxuICAgIC0tY2FyZDogdmFyKC0tcGFuZWwpOyBcclxuICAgIC0taDI6IGNsYW1wKDI4cHgsIDR2dywgNDRweCk7IC0tcDogY2xhbXAoMTVweCwgMS4yNXZ3LCAxN3B4KTsgXHJcbiAgICAtLWJ0bi1iZzogIzQyNDI0MjsgXHJcbiAgICAtLWJ0bi1iZy1ob3ZlcjogIzYxNjE2MTsgXHJcbiAgICAtLWJyYW5kLTE6IHZhcigtLWFjY2VudCk7IFxyXG4gICAgLS1icmFuZC0zOiAjODBkOGZmOyBcclxuICAgIC0tdGItYmc6IHJnYmEoMTgsMTgsMTgsLjcyKTsgXHJcbiAgICAtLXRiLXN0cm9rZTojMmEyYTJhOyBcclxuICAgIC0tdGItYWNjZW50OiNFNTM5MzU7IFxyXG4gICAgLS10Yi10ZXh0OiNmZmY7IFxyXG4gICAgLS1icy1oZWFkaW5nLWNvbG9yOiAjNWY1ZDVkO1xyXG4gICAgLS1icy1zZWNvbmRhcnktY29sb3I6ICNiZGJkYmQ7IFxyXG4gICAgLS1icy10YWJsZS1jb2xvci1zdGF0ZTogI2JkYmRiZDtcclxufSIsIlxyXG5cclxuICAgIC8qID09PSBUaGVtZSB0b2tlbnMgZXRjLiAobWlncmF0ZWQgZnJvbSBQSFAgZmlsZSkgPT09ICovXHJcbiAgICBcclxuICAgIGJvZHl7IGJhY2tncm91bmQ6dmFyKC0tYmcpOyBjb2xvcjp2YXIoLS1mZyk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250KTsgbWFyZ2luOjAgfVxyXG4gICAgYXsgY29sb3I6dmFyKC0tbGluayk7IH0gYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfVxyXG4gICAgLnNlY3Rpb257IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IGNvbG9yOnZhcigtLWZnKTsgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDEyMDBweCA2MDBweCBhdCAxMiUgLTEwJSwgIzJhMmEyYSwgdmFyKC0tYmcpKTsgIGNvbnRhaW46IHBhaW50OyB9XHJcbiAgICAuc2VjdGlvbi0tZGVlcHsgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDE0MDBweCA3MDBweCBhdCAxNSUgLTEwJSwgIzJhMmEyYSAwJSwgIzFiMWIxYiA1NSUsIHZhcigtLWJnKSAxMDAlKSwgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE2MTYxNiwgdmFyKC0tYmcpKTsgfVxyXG5cclxuICAgIC8qIFRvcGJhciAqL1xyXG4gICAgLnRvcGJhcnsgcG9zaXRpb246IGZpeGVkOyBpbnNldDogMCAwIGF1dG8gMDsgaGVpZ2h0OiA2NHB4OyB6LWluZGV4OiAxMDAwOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE4cHgpOyBvcGFjaXR5OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4yNXMgZWFzZSwgb3BhY2l0eSAuMjVzIGVhc2UsIGJhY2tncm91bmQgLjJzIGVhc2UsIGJvcmRlci1jb2xvciAuMnMgZWFzZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxyXG4gICAgLnRvcGJhcltkYXRhLXJldmVhbD1cInRydWVcIl17IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgb3BhY2l0eToxOyBwb2ludGVyLWV2ZW50czphdXRvOyBiYWNrZ3JvdW5kOiByZ2JhKDE4LDE4LDE4LC43Mik7IGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRiLXN0cm9rZSk7IH1cclxuICAgIC50b3BiYXJfX2lubmVyeyB3aWR0aDptaW4oMTIwMHB4LCA5MiUpOyBtYXJnaW4taW5saW5lOmF1dG87IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgZ2FwOjE2cHg7IH1cclxuICAgIC5sb2dvIGltZyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogNDZweDtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBsZWZ0OiAyNXB4O1xyXG4gICAgdG9wOiA1cHg7XHJcbn1cclxuICAgIC5uYXZiYXJ7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MjJweDsgfVxyXG4gICAgLm5hdmJhciBheyBjb2xvcjogdmFyKC0tdGItdGV4dCk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDo2MDA7IGxldHRlci1zcGFjaW5nOi4ycHg7IHBhZGRpbmc6IDhweCAxMHB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMgZWFzZSwgYmFja2dyb3VuZCAuMnMgZWFzZSwgY29sb3IgLjJzIGVhc2U7IH1cclxuICAgIC5uYXZiYXIgYTpob3ZlcnsgYm9yZGVyLWNvbG9yOiNmZmZmZmYyNjsgYmFja2dyb3VuZDojZmZmZmZmMTA7IH1cclxuICAgICNsb2dpbl9idG5fbGFyZ2V7IFxyXG4gICAgICBjb2xvcjojZmZmOyBcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGItYWNjZW50KTsgXHJcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IFxyXG4gICAgICBwYWRkaW5nOjhweCAxNHB4OyBcclxuICAgICAgYm9yZGVyLXJhZGl1czoxMnB4OyBcclxuICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgyMjksNTcsNTMsLjMyKTsgXHJcbiAgICAgIHBvc2l0aW9uOmZpeGVkOyByaWdodDoyNXB4O1xyXG4gICAgICB0b3A6MTBweDsgXHJcbiAgICAgIHotaW5kZXg6OTk5OTk5OTk5O1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICAgICAgICBAbWVkaWEobWF4LXdpZHRoOjk2MHB4KSB7XHJcbiAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm5hdmJlciBhLmxvZ2lue1xyXG4gICAgICBAbWVkaWEobWluLXdpZHRoOjk2MHB4KSB7XHJcbiAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAubmF2YmFyIGEubG9nb3V0eyBiYWNrZ3JvdW5kOiNiNzFjMWM7IH1cclxuXHJcbiAgICAubW9iaWxlLXRvZ2dsZXsgZGlzcGxheTpub25lOyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6NDJweDsgaGVpZ2h0OjQycHg7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjI2OyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6I2ZmZmZmZjEwOyBjdXJzb3I6cG9pbnRlcjsgfVxyXG4gICAgLm1vYmlsZS10b2dnbGUgc3BhbnsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgaGVpZ2h0OjJweDsgYmFja2dyb3VuZDojZmZmOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UsIG9wYWNpdHkgLjJzIGVhc2UsIHRvcCAuMnMgZWFzZTsgfVxyXG4gICAgLm1vYmlsZS10b2dnbGUgc3BhbjpudGgtY2hpbGQoMSl7IHRvcDoxMnB4OyB9IC5tb2JpbGUtdG9nZ2xlIHNwYW46bnRoLWNoaWxkKDIpeyB0b3A6MjBweDsgfSAubW9iaWxlLXRvZ2dsZSBzcGFuOm50aC1jaGlsZCgzKXsgdG9wOjI4cHg7IH1cclxuICAgIC5tb2JpbGUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHNwYW46bnRoLWNoaWxkKDEpeyB0b3A6MjBweDsgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XHJcbiAgICAubW9iaWxlLXRvZ2dsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSBzcGFuOm50aC1jaGlsZCgyKXsgb3BhY2l0eTowOyB9XHJcbiAgICAubW9iaWxlLXRvZ2dsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSBzcGFuOm50aC1jaGlsZCgzKXsgdG9wOjIwcHg7IHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cclxuICAgIC5tb2JpbGUtZHJhd2VyeyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmZpeGVkOyB0b3A6NjRweDsgbGVmdDowOyByaWdodDowOyBiYWNrZ3JvdW5kOiByZ2JhKDE4LDE4LDE4LC45NSk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS10Yi1zdHJva2UpOyBwYWRkaW5nOjEycHggNHZ3IDIwcHg7IHotaW5kZXg6IDk5OTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTsgb3BhY2l0eTowOyBwb2ludGVyLWV2ZW50czpub25lOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UsIG9wYWNpdHkgLjJzIGVhc2U7IH1cclxuICAgIC5tb2JpbGUtZHJhd2VyIGF7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MTJweCAxMHB4OyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLXJhZGl1czoxMnB4OyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmYxYTsgbWFyZ2luOjZweCAwOyBiYWNrZ3JvdW5kOiNmZmZmZmYwODsgfVxyXG4gICAgLm1vYmlsZS1kcmF3ZXIgYS5sb2dpbnsgYmFja2dyb3VuZDogdmFyKC0tdGItYWNjZW50KTsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxyXG4gICAgLm1vYmlsZS1kcmF3ZXIuaXMtb3BlbnsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OjE7IHBvaW50ZXItZXZlbnRzOmF1dG87IH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCl7IC5uYXZiYXJ7IGRpc3BsYXk6bm9uZTsgfSAubW9iaWxlLXRvZ2dsZXsgZGlzcGxheTpibG9jazsgfSAubW9iaWxlLWRyYXdlcnsgZGlzcGxheTpibG9jazsgfSB9XHJcblxyXG4gICAgLyogSW50cm8gLyBoZXJvICovXHJcbiAgICAjaW50cm8uc2VjdGlvbnsgXHJcbiAgICAgIG1pbi1oZWlnaHQ6OTV2aDsgXHJcbiAgICAgIG1heC1oZWlnaHQ6OTV2aDsgXHJcbiAgICAgIGRpc3BsYXk6Z3JpZDsgXHJcbiAgICAgIHBsYWNlLWl0ZW1zOmNlbnRlcjsgXHJcbiAgICAgIHBhZGRpbmc6IDEwdmggNnZ3OyBcclxuICAgICAgaXNvbGF0aW9uOmlzb2xhdGU7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IH1cclxuXHJcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgIC5zZWN0aW9uIHtcclxuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgI2ludHJvLnNlY3Rpb24ge1xyXG4gICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcclxuICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICBwYWRkaW5nOiA2dmggNnZ3IDh2aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pbnRyb19fd3JhcCB7XHJcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pbnRyb19fY3RhIHtcclxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICNpbnRybzo6YmVmb3JleyBjb250ZW50OlwiXCI7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTIwMHB4IDYwMHB4IGF0IDEwJSAwJSwgIzAwMDAwMDg4LCB0cmFuc3BhcmVudCA2MCUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDAwMDAwNjYsICMwMDAwMDA5OSk7IH1cclxuICAgICNiZy12aWRlb3sgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvYmplY3QtZml0OmNvdmVyOyB6LWluZGV4Oi0xOyBwb2ludGVyLWV2ZW50czpub25lOyBiYWNrZ3JvdW5kOiMwMDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfVxyXG4gICAgLmludHJvX193cmFweyB3aWR0aDptaW4oMTIwMHB4LCAxMDAlKTsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMTVmciAuODVmcjsgZ2FwOiBjbGFtcCgxOHB4LCAzdncsIDM2cHgpOyBhbGlnbi1pdGVtczpjZW50ZXI7IH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCl7IC5pbnRyb19fd3JhcHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gfVxyXG4gICAgLmludHJvX19raWNrZXJ7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjhweDsgYmFja2dyb3VuZDojZmZmZmZmMTI7IGNvbG9yOiNlMGUwZTA7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjI0OyBib3JkZXItcmFkaXVzOjk5OXB4OyBwYWRkaW5nOjhweCAxMnB4OyBmb250LXNpemU6MTJweDsgbGV0dGVyLXNwYWNpbmc6LjNweDsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7IH1cclxuICAgIC5pbnRyb19fdGl0bGV7IGZvbnQtc2l6ZTogdmFyKC0taDEpOyBsaW5lLWhlaWdodDoxLjA1OyBtYXJnaW46IDEycHggMCAxMHB4OyB9XHJcbiAgICAuaW50cm9fX2xlYWR7IGNvbG9yOnZhcigtLW11dGVkKTsgZm9udC1zaXplOiB2YXIoLS1sZWFkKTsgbWF4LXdpZHRoOjY0Y2g7IG1hcmdpbjogMCAwIDE4cHg7IH1cclxuICAgIC5pbnRyb19fY3RheyBkaXNwbGF5OmZsZXg7IGdhcDoxMnB4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOjE4cHggMCAxMHB4OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfVxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KXsgLmludHJvX19jdGF7IGp1c3RpZnktY29udGVudDpjZW50ZXIgfSB9XHJcbiAgICAuYnRueyBhcHBlYXJhbmNlOm5vbmU7IGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7IGN1cnNvcjpwb2ludGVyOyBwYWRkaW5nOjNweCAxNnB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBmb250LXdlaWdodDo3MDA7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZTsgfVxyXG4gICAgLmJ0bi0tcHJpbWFyeXsgYmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpOyBjb2xvcjojZmZmOyBib3gtc2hhZG93OjAgMTJweCAyNHB4IHJnYmEoMjI5LDU3LDUzLC4yOCk7IH1cclxuICAgIC5idG4tLWdob3N0eyBiYWNrZ3JvdW5kOiNmZmZmZmYxMjsgY29sb3I6I2ZmZjsgYm9yZGVyLWNvbG9yOiNmZmZmZmYyNjsgfVxyXG5cclxuICAgIC5zY3JvbGwtaW5kaWNhdG9yeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjI0cHg7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo4cHg7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjojZmZmZmZmY2M7IGxldHRlci1zcGFjaW5nOi40cHg7IH1cclxuICAgIC5zY3JvbGwtaW5kaWNhdG9yIC5kb3R7IHdpZHRoOjZweDsgaGVpZ2h0OjZweDsgYm9yZGVyLXJhZGl1czo1MCU7IGJhY2tncm91bmQ6I2ZmZmZmZjY2OyBhbmltYXRpb246c2QtYm91bmNlIDEuNnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH1cclxuICAgIC5zY3JvbGwtaW5kaWNhdG9yIC5kb3Q6bnRoLWNoaWxkKDIpeyBhbmltYXRpb24tZGVsYXk6LjE1cyB9XHJcbiAgICAuc2Nyb2xsLWluZGljYXRvciAuZG90Om50aC1jaGlsZCgzKXsgYW5pbWF0aW9uLWRlbGF5Oi4zcyB9XHJcbiAgICBAa2V5ZnJhbWVzIHNkLWJvdW5jZXsgMCUsNjAlLDEwMCV7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTt9IDMwJXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpO30gfVxyXG5cclxuICAgIC8qIEFib3V0ICovXHJcbiAgICAuc2VjdGlvbl9fd3JhcHsgXHJcbiAgICAgIHdpZHRoOm1pbigxMjAwcHgsMTAwJSk7IFxyXG4gICAgICBtYXJnaW4taW5saW5lOmF1dG87IFxyXG4gICAgICBwYWRkaW5nOiAxMHZoIDZ2dzsgXHJcbiAgICAgIGRpc3BsYXk6Z3JpZDsgXHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgLjlmcjsgXHJcbiAgICAgIGdhcDogY2xhbXAoMThweCwgM3Z3LCAzNnB4KTsgXHJcbiAgICAgIGFsaWduLWl0ZW1zOmNlbnRlcjsgXHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogOTYwcHgpXHJcbiAgICB7IFxyXG4gICAgICAuc2VjdGlvbl9fd3JhcHtcclxuICAgICAgICB3aWR0aDogODMlOyBcclxuICAgICAgICBwYWRkaW5nOjEwdmggMDsgXHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjsgXHJcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXIgXHJcbiAgICAgIH0gXHJcbiAgICB9XHJcbiAgICAuYWJvdXRfX3RpdGxleyBmb250LXNpemU6IGNsYW1wKDI4cHgsIDR2dywgNDRweCk7IGxpbmUtaGVpZ2h0OjEuMTU7IG1hcmdpbjogMCAwIDEycHg7IH1cclxuICAgIC5hYm91dF9fbGVhZHsgY29sb3I6IHZhcigtLW11dGVkKTsgZm9udC1zaXplOiB2YXIoLS1sZWFkKTsgbGluZS1oZWlnaHQ6IDEuNjU7IG1hcmdpbjogMCAwIDE2cHg7IH1cclxuICAgIC5hYm91dF9fcHsgbGluZS1oZWlnaHQ6MS43NTsgbWFyZ2luOjAgMCAxNHB4OyBtYXgtd2lkdGg6IDcwY2g7IH1cclxuICAgIC5hYm91dF9fYmFkZ2VzeyBkaXNwbGF5OmZsZXg7IGdhcDoxMHB4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luLXRvcDogOHB4OyB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogODYwcHgpey5hYm91dF9fYmFkZ2Vze2Rpc3BsYXk6bm9uZTt9fVxyXG4gICAgLmJhZGdleyBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo4cHg7IGJhY2tncm91bmQ6IHZhcigtLXBhbmVsKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpOyBwYWRkaW5nOiA4cHggMTJweDsgYm9yZGVyLXJhZGl1czogOTk5cHg7IGNvbG9yOiNlYWVhZWE7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zaXplOiAxM3B4OyB9XHJcbiAgICAua3Bpc3sgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgZmxleC13cmFwOndyYXA7IG1hcmdpbi10b3A6IDEycHg7IH1cclxuICAgIC5rcGl7IGJhY2tncm91bmQ6I2ZmZmZmZjEwOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmYyMDsgY29sb3I6I2ZmZjsgcGFkZGluZzo4cHggMTJweDsgYm9yZGVyLXJhZGl1czoxMnB4OyBmb250LXdlaWdodDo3MDA7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH1cclxuXHJcbiAgICAvKiBOVVJBICovXHJcbiAgICAjTlVSQS5zZWN0aW9ueyBwYWRkaW5nOiAxMHZoIDZ2dzsgfVxyXG4gICAgLk5VUkFfX3dyYXB7IHdpZHRoOm1pbigxMjAwcHgsMTAwJSk7IG1hcmdpbi1pbmxpbmU6YXV0bzsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMDVmciAuOTVmcjsgZ2FwOiBjbGFtcCgxOHB4LCAzdncsIDM2cHgpOyBhbGlnbi1pdGVtczpjZW50ZXI7IH1cclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCl7IC5OVVJBX193cmFweyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfSB9XHJcbiAgICAuTlVSQV9fbWVkaWF7IGJvcmRlci1yYWRpdXM6MjJweDsgIGJveC1zaGFkb3c6IDAgMThweCA0NHB4IHJnYmEoMCwwLDAsLjM1KTsgb3ZlcmZsb3c6aGlkZGVuOyB9XHJcbiAgICAuTlVSQV9fdGl0bGV7IGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgNHZ3LCA0NHB4KTsgbGluZS1oZWlnaHQ6MS4xNTsgbWFyZ2luOiAwIDAgMTBweDsgfVxyXG4gICAgLk5VUkFfX2xlYWR7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tbGVhZCk7IGxpbmUtaGVpZ2h0OjEuNjU7IG1hcmdpbjogMCAwIDE2cHg7IH1cclxuICAgIC5OVVJBX19weyBsaW5lLWhlaWdodDoxLjc1OyBtYXJnaW46IDAgMCAxNHB4OyB9XHJcbiAgICAuTlVSQV9fYmFkZ2VzeyBkaXNwbGF5OmZsZXg7IGdhcDoxMHB4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOiA4cHggMCA2cHg7IH1cclxuICAgIC5OVVJBX19zcGVjc3sgbWFyZ2luLXRvcDogMzVweDsgZGlzcGxheTpncmlkOyBnYXA6MTJweDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsMWZyKTsgfVxyXG4gICAgLk5VUkFfX3NwZWN7IGdyaWQtY29sdW1uOiBzcGFuIDEyOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1wYW5lbCksICMxZjFmMWYpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IGJvcmRlci1yYWRpdXM6MTRweDsgcGFkZGluZzoxMnB4IDE0cHg7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTJweDsgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDg2MHB4KXsgLk5VUkFfX3NwZWN7IGdyaWQtY29sdW1uOiBzcGFuIDY7IH0gfVxyXG4gICAgLk5VUkFfX2N0YXsgZGlzcGxheTpmbGV4OyBnYXA6MTJweDsgZmxleC13cmFwOndyYXA7IG1hcmdpbi10b3A6IDE0cHg7IH1cclxuXHJcbiAgICAvKiBDb250YWN0ICovXHJcbiAgICAjY29udGFjdCAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3ggfVxyXG4gICAgI2NvbnRhY3QgaDF7IGZvbnQtc2l6ZTpjbGFtcCgyOHB4LDR2dyw0NHB4KTsgbWFyZ2luOjAgMCAxcmVtIH1cclxuICAgICNjb250YWN0IHAubGVhZHsgY29sb3I6dmFyKC0tbXV0ZWQpOyBtYXJnaW46MCAwIDJyZW07IG1heC13aWR0aDo3MGNoIH1cclxuICAgICNjb250YWN0IC53cmFweyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMTIsMWZyKTsgZ2FwOmNsYW1wKDE2cHgsMnZ3LDI0cHgpOyB3aWR0aDptaW4oMTIwMHB4LDEwMCUpOyBtYXJnaW4taW5saW5lOmF1dG87IH1cclxuICAgICNjb250YWN0IC5jYXJkeyBncmlkLWNvbHVtbjpzcGFuIDEyOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tY2FyZCksIzI0MjQyNCk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTsgYm9yZGVyLXJhZGl1czoxOHB4OyBvdmVyZmxvdzpoaWRkZW47IGJveC1zaGFkb3c6MCAxMnB4IDMycHggcmdiYSgwLDAsMCwuMzUpOyB9XHJcbiAgICAjY29udGFjdCAubGVmdCwgI2NvbnRhY3QgLnJpZ2h0eyBwYWRkaW5nOmNsYW1wKDE2cHgsMi4ydncsMjhweCkgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6OTgwcHgpeyAjY29udGFjdCAuY2FyZHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MS4xZnIgLjlmcjsgcGFkZGluZzowIH0gI2NvbnRhY3QgLmxlZnR7IGJvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tc3Ryb2tlKSB9ICNjb250YWN0IC5sZWZ0LCAjY29udGFjdCAucmlnaHR7IHBhZGRpbmc6MzJweCB9IH1cclxuICAgICNjb250YWN0IC5pbmZveyBkaXNwbGF5OmdyaWQ7IGdhcDoxMnB4OyBtYXJnaW4tdG9wOjEycHg7IGNvbG9yOiNlOWU5ZTkgfVxyXG4gICAgI2NvbnRhY3QgZm9ybXsgZGlzcGxheTpncmlkOyBnYXA6MTRweCB9XHJcbiAgICAjY29udGFjdCBsYWJlbHsgZm9udC1zaXplOjEzcHg7IGNvbG9yOiNkOWQ5ZDkgfVxyXG4gICAgI2NvbnRhY3QgaW5wdXQsICNjb250YWN0IHRleHRhcmVheyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHggMTRweDsgYm9yZGVyLXJhZGl1czoxMnB4OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IGJhY2tncm91bmQ6IzFmMWYxZjsgY29sb3I6I2ZmZjsgb3V0bGluZTpub25lOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMgZWFzZSwgYm94LXNoYWRvdyAuMnMgZWFzZSwgYmFja2dyb3VuZCAuMnMgZWFzZTsgfVxyXG4gICAgI2NvbnRhY3QgaW5wdXQ6Zm9jdXMsICNjb250YWN0IHRleHRhcmVhOmZvY3VzeyBib3JkZXItY29sb3I6IzRhNGE0YTsgYm94LXNoYWRvdzowIDAgMCAzcHggI2ZmZmZmZjEyOyB9XHJcbiAgICAjY29udGFjdCAucm93eyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7IGdhcDoxNHB4IH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsgI2NvbnRhY3QgLnJvd3sgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgfSB9XHJcbiAgICAjY29udGFjdCAuY29uc2VudHsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgZm9udC1zaXplOjEzcHg7IGNvbG9yOiNlYWVhZWEgfVxyXG5cclxuICAgICNjb250YWN0IGJ1dHRvbntcclxuICAgICAgYXBwZWFyYW5jZTpub25lOyBib3JkZXI6MDsgY3Vyc29yOnBvaW50ZXI7IHBhZGRpbmc6MTJweCAxOHB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOjEycHg7IGZvbnQtd2VpZ2h0OjcwMDsgYmFja2dyb3VuZDogI2ZmNGQ0ZDsgY29sb3I6I2ZmZjtcclxuICAgICAgYm94LXNoYWRvdzowIDEycHggMjRweCByZ2JhKDI1NSw3Nyw3NywuMjUpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlO1xyXG4gICAgfVxyXG4gICAgI2NvbnRhY3QgYnV0dG9uOmhvdmVyeyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzowIDE2cHggMzRweCByZ2JhKDI1NSw3Nyw3NywuMzUpIH1cclxuICAgIFxyXG4gICAgI2NvbnRhY3QgLmFsZXJ0eyBkaXNwbGF5Om5vbmU7IG1hcmdpbi10b3A6MTJweDsgcGFkZGluZzoxMHB4IDEycHg7IGJvcmRlci1yYWRpdXM6MTJweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpOyBiYWNrZ3JvdW5kOiMxZjFmMWY7IGNvbG9yOiNmZmY7IH1cclxuICAgICNjb250YWN0IC5hbGVydC5zaG93eyBkaXNwbGF5OmJsb2NrIH1cclxuICAgICNjb250YWN0IC5hbGVydC5zdWNjZXNzeyBib3JkZXItY29sb3I6IzJlN2QzMjsgYmFja2dyb3VuZDojMTMzMDE2IH1cclxuICAgICNjb250YWN0IC5hbGVydC5lcnJvcnsgYm9yZGVyLWNvbG9yOiNhMzMzMzM7IGJhY2tncm91bmQ6IzJhMTQxNCB9XHJcblxyXG4gICAgLyogRm9vdGVyICovXHJcbiAgICAjZm9vdGVyeyBcclxuICAgICAgY29sb3I6dmFyKC0tZmcpOyBcclxuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDkwMHB4IDQwMHB4IGF0IDE1JSAtMTAlLCAjMjIyLCB2YXIoLS1iZykpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCMxNjE2MTYsdmFyKC0tYmcpKTsgXHJcbiAgICAgIGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IFxyXG4gICAgICBwYWRkaW5nOjQ4cHggNnZ3IDI4cHg7IFxyXG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgXHJcbiAgICAgIG92ZXJmbG93OmhpZGRlbjsgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjgyMHB4KXsgXHJcbiAgICAgICNmb290ZXIgLmNvbC5icmFuZHsgZ3JpZC1jb2x1bW46IHNwYW4gNTsgfSBcclxuICAgICAgI2Zvb3RlciAuY29sLm5hdnsgZ3JpZC1jb2x1bW46IHNwYW4gMzsgfSBcclxuICAgICAgI2Zvb3RlciAuY29sLmNvbnRhY3R7IGdyaWQtY29sdW1uOiBzcGFuIDQ7IH0gXHJcbiAgICB9XHJcbiAgICBcclxuICAgICNmb290ZXIgLm1pbmktbmF2IHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgZ2FwOiA4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyogTW9iaWVsOiBtaW5pLW5hdiBjZW50cmVyZW4gKi9cclxuICAgIFxyXG4gICAgI2Zvb3RlciAubWluaS1uYXYgYXsgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4OyBwYWRkaW5nOjhweCAxMHB4OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IGJvcmRlci1yYWRpdXM6MTBweDsgYmFja2dyb3VuZDojMWYxZjFmOyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZSB9XHJcbiAgICAjZm9vdGVyIC5ib3R0b217IG1hcmdpbi10b3A6MjZweDsgcGFkZGluZy10b3A6MTZweDsgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTJweDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGNvbG9yOnZhcigtLW11dGVkKTsgZm9udC1zaXplOjEzcHg7IH1cclxuICAgICNmb290ZXIgLnRvLXRvcHsgcG9zaXRpb246IGZpeGVkOyByaWdodDoxOHB4OyBib3R0b206MThweDsgei1pbmRleDo1MDsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgY29sb3I6I2ZmZjsgYm9yZGVyOjA7IGJvcmRlci1yYWRpdXM6MTJweDsgcGFkZGluZzoxMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyBib3gtc2hhZG93OjAgMTBweCAyNHB4IHJnYmEoMjI5LDU3LDUzLC4zMik7IGRpc3BsYXk6bm9uZTsgfVxyXG4gICAgI2Zvb3RlciAudG8tdG9wLnNob3d7IGRpc3BsYXk6YmxvY2s7IH1cclxuICAgICNmb290ZXIgLndyYXB7XHJcbiAgICAgIHdpZHRoOm1pbigxMjAwcHgsMTAwJSk7XHJcbiAgICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcclxuICAgICAgZGlzcGxheTpncmlkO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwxZnIpO1xyXG4gICAgICBnYXA6IGNsYW1wKDE2cHgsMnZ3LDI0cHgpO1xyXG4gICAgfVxyXG4gICAgI2Zvb3RlciAuY29seyBncmlkLWNvbHVtbjogc3BhbiAxMjsgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ODIwcHgpe1xyXG4gICAgICAjZm9vdGVyIC5jb2wuYnJhbmR7IGdyaWQtY29sdW1uOiBzcGFuIDU7IH1cclxuICAgICAgI2Zvb3RlciAuY29sLm5hdnsgZ3JpZC1jb2x1bW46IHNwYW4gMzsgfVxyXG4gICAgICAjZm9vdGVyIC5jb2wuY29udGFjdHsgZ3JpZC1jb2x1bW46IHNwYW4gNDsgfVxyXG4gICAgfVxyXG4gICAgI2Zvb3Rlcl9sb2dve21heC13aWR0aDogNzB2dzt9XHJcblxyXG4gICAgLyogRm9vdGVyOiBuYXYta29sb20gZW4gbWluaS1uYXYgY2VudHJlcmVuIG9wIGtsZWluZSBzY2hlcm1lbiAqL1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XHJcbiAgICAgIC8qIEtvbG9tIHplbGYgY2VudHJlcmVuICovXHJcbiAgICAgICNmb290ZXIgLmNvbC5uYXYge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICAgLyogY2VudGVyIGRlIG1pbmktbmF2IGluIGRlIGtvbG9tICovXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8qIERlIGxpbmtzIGluIGhldCBtaWRkZW4gZW4gbmV0dGUgYnJlZWR0ZSBnZXZlbiAqL1xyXG4gICAgICAjZm9vdGVyIC5taW5pLW5hdiB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMzJweDsgICAgICAgICAgLyogb2YgNTBweCBhbHMgamUgbWVlciBydWltdGUgd2lsdCAqL1xyXG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICNmb290ZXIgLm1pbmktbmF2IGEge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAgIC8qIGljb24gKyB0ZWtzdCBjZW50cmVyZW4gaW4gZGUgcGlsbCAqL1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogMjYwcHg7ICAgICAgICAgIC8qIHpvZGF0IHplIG5pZXQgdGUgYnJlZWQgd29yZGVuICovXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogQ29uc2VudCBiYW5uZXIgKi9cclxuICAgICNyaS1jb25zZW50LWJhbm5lcnsgcG9zaXRpb246IGZpeGVkOyBpbnNldDogYXV0byAwIDAgMDsgei1pbmRleDogMjAwMDsgYmFja2dyb3VuZDojMTExOyBjb2xvcjojZWVlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjMmEyYTJhOyBib3gtc2hhZG93OiAwIC0xMHB4IDMwcHggcmdiYSgwLDAsMCwwLjQpOyBkaXNwbGF5Om5vbmU7IGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgfVxyXG4gICAgI3JpLWNvbnNlbnQtaW5uZXJ7IG1heC13aWR0aDogMTAwMHB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMThweCAxNnB4OyB9XHJcbiAgICAucmktYnRueyBwYWRkaW5nOiAxMHB4IDE0cHg7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXI6MDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OjYwMDsgYmFja2dyb3VuZDojMmUyZTJlOyBjb2xvcjojZWVlOyB9XHJcbiAgICAucmktYnRuLXByaW1hcnl7IGJhY2tncm91bmQ6IzFmNmZlYjsgY29sb3I6I2ZmZjsgfVxyXG4gICAgLnN3aXRjaHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDI0cHg7IH1cclxuICAgIC5zd2l0Y2ggaW5wdXR7IGRpc3BsYXk6bm9uZTsgfVxyXG4gICAgLnNsaWRlcnsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyBpbnNldDowOyBiYWNrZ3JvdW5kOiM0NDQ7IHRyYW5zaXRpb246LjJzOyBib3JkZXItcmFkaXVzOjI0cHg7IH1cclxuICAgIC5zbGlkZXI6YmVmb3JleyBwb3NpdGlvbjphYnNvbHV0ZTsgY29udGVudDpcIlwiOyBoZWlnaHQ6MThweDt3aWR0aDoxOHB4O2xlZnQ6M3B4O3RvcDozcHg7YmFja2dyb3VuZDp3aGl0ZTt0cmFuc2l0aW9uOi4ycztib3JkZXItcmFkaXVzOjUwJTsgfVxyXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXJ7IGJhY2tncm91bmQ6IzJhN2JmZjsgfVxyXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXI6YmVmb3JleyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7IH1cclxuXHJcbi8qIENPTlRBQ1QgKi9cclxuICAgICAjY29udGFjdCAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3ggfVxyXG4gICAgI2NvbnRhY3QgaDF7IGZvbnQtc2l6ZTpjbGFtcCgyOHB4LDR2dyw0NHB4KTsgbWFyZ2luOjAgMCAxcmVtIH1cclxuICAgICNjb250YWN0IHAubGVhZHsgY29sb3I6dmFyKC0tbXV0ZWQpOyBtYXJnaW46MCAwIDJyZW07IG1heC13aWR0aDo3MGNoIH1cclxuICAgICNjb250YWN0IC53cmFwe1xyXG4gICAgICBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMTIsMWZyKTsgZ2FwOmNsYW1wKDE2cHgsMnZ3LDI0cHgpO1xyXG4gICAgICB3aWR0aDptaW4oMTIwMHB4LDEwMCUpOyBtYXJnaW4taW5saW5lOmF1dG87XHJcbiAgICB9XHJcbiAgICAjY29udGFjdCAuY2FyZHtcclxuICAgICAgZ3JpZC1jb2x1bW46c3BhbiAxMjsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWNhcmQpLCMyNDI0MjQpO1xyXG4gICAgICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IGJvcmRlci1yYWRpdXM6MThweDsgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgICBib3gtc2hhZG93OjAgMTJweCAzMnB4IHJnYmEoMCwwLDAsLjM1KTtcclxuICAgIH1cclxuICAgICNjb250YWN0IC5sZWZ0LCAjY29udGFjdCAucmlnaHR7IHBhZGRpbmc6Y2xhbXAoMTZweCwyLjJ2dywyOHB4KSB9XHJcbiAgICAvKiAyIGtvbG9tbWVuIG9wIGdyb3RlciBzY2hlcm0gKi9cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjk4MHB4KXtcclxuICAgICAgI2NvbnRhY3QgLmNhcmR7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjEuMWZyIC45ZnI7IHBhZGRpbmc6MCB9XHJcbiAgICAgICNjb250YWN0IC5sZWZ0eyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSkgfVxyXG4gICAgICAjY29udGFjdCAubGVmdCwgI2NvbnRhY3QgLnJpZ2h0eyBwYWRkaW5nOjMycHggfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIExvZ28gKyBoZWFkaW5nbGludCAqL1xyXG4gICAgI2NvbnRhY3QgLmJyYW5keyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjEycHg7IG1hcmdpbi1ib3R0b206LjVyZW0gfVxyXG4gICAgI2NvbnRhY3QgLmJyYW5kIGltZ3sgaGVpZ2h0OjI4cHg7IHdpZHRoOmF1dG87IGRpc3BsYXk6YmxvY2sgfVxyXG5cclxuICAgIC8qIENvbnRhY3QgaW5mbyBsaWpzdCAqL1xyXG4gICAgI2NvbnRhY3QgLmluZm97IGRpc3BsYXk6Z3JpZDsgZ2FwOjEycHg7IG1hcmdpbi10b3A6MTJweDsgY29sb3I6I2U5ZTllOSB9XHJcbiAgICAjY29udGFjdCAuaW5mbyBkaXZ7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IGFsaWduLWl0ZW1zOmNlbnRlciB9XHJcbiAgICAjY29udGFjdCAuaW5mbyBzdmd7IHdpZHRoOjE4cHg7IGhlaWdodDoxOHB4OyBvcGFjaXR5Oi45IH1cclxuXHJcbiAgICAvKiBNYXAvdmlzdWFsIHBsYWNlaG9sZGVyICh2ZXJ2YW5nIG1ldCBlY2h0ZSBlbWJlZC9hZmJlZWxkaW5nKSAqL1xyXG4gICAgI2NvbnRhY3QgLnZpc3VhbHtcclxuICAgICAgaGVpZ2h0OjIyMHB4OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IGJvcmRlci1yYWRpdXM6MTRweDsgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzJiMmIyYiwjMWYxZjFmKTtcclxuICAgICAgZGlzcGxheTpncmlkOyBwbGFjZS1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTZweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBGb3JtICovXHJcbiAgICAjY29udGFjdCBmb3JteyBkaXNwbGF5OmdyaWQ7IGdhcDoxNHB4IH1cclxuICAgICNjb250YWN0IGxhYmVseyBmb250LXNpemU6MTNweDsgY29sb3I6I2Q5ZDlkOSB9XHJcbiAgICAjY29udGFjdCBpbnB1dCwgI2NvbnRhY3QgdGV4dGFyZWF7XHJcbiAgICAgIHdpZHRoOjEwMCU7IHBhZGRpbmc6MTJweCAxNHB4OyBib3JkZXItcmFkaXVzOjEycHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcclxuICAgICAgYmFja2dyb3VuZDojMWYxZjFmOyBjb2xvcjojZmZmOyBvdXRsaW5lOm5vbmU7XHJcbiAgICAgIHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyBlYXNlLCBib3gtc2hhZG93IC4ycyBlYXNlLCBiYWNrZ3JvdW5kIC4ycyBlYXNlO1xyXG4gICAgfVxyXG4gICAgI2NvbnRhY3QgaW5wdXQ6Zm9jdXMsICNjb250YWN0IHRleHRhcmVhOmZvY3Vze1xyXG4gICAgICBib3JkZXItY29sb3I6IzRhNGE0YTsgYm94LXNoYWRvdzowIDAgMCAzcHggI2ZmZmZmZjEyO1xyXG4gICAgfVxyXG4gICAgI2NvbnRhY3QgLnJvd3sgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyOyBnYXA6MTRweCB9XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7ICNjb250YWN0IC5yb3d7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyIH0gfVxyXG5cclxuICAgICNjb250YWN0IC5jb25zZW50eyBkaXNwbGF5OmZsZXg7IGdhcDoxMHB4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyBmb250LXNpemU6MTNweDsgY29sb3I6I2VhZWFlYSB9XHJcbiAgICAjY29udGFjdCAuY29uc2VudCBpbnB1dHsgd2lkdGg6YXV0bzsgbWFyZ2luLXRvcDozcHggfVxyXG5cclxuICAgICNjb250YWN0IGJ1dHRvbntcclxuICAgICAgYXBwZWFyYW5jZTpub25lOyBib3JkZXI6MDsgY3Vyc29yOnBvaW50ZXI7IHBhZGRpbmc6MTJweCAxOHB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOjEycHg7IGZvbnQtd2VpZ2h0OjcwMDsgYmFja2dyb3VuZDojZmY0ZDRkOyBjb2xvcjojZmZmO1xyXG4gICAgICBib3gtc2hhZG93OjAgMTJweCAyNHB4IHJnYmEoMjU1LDc3LDc3LC4yNSk7IHRyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZSwgYm94LXNoYWRvdyAuMTVzIGVhc2U7XHJcbiAgICB9XHJcbiAgICAjY29udGFjdCBidXR0b246aG92ZXJ7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OjAgMTZweCAzNHB4IHJnYmEoMjU1LDc3LDc3LC4zNSkgfVxyXG4gICAgI2NvbnRhY3QgLmhpbnR7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjp2YXIoLS1tdXRlZCkgfVxyXG5cclxuICAgIC8qIEFsZXJ0cyAqL1xyXG4gICAgI2NvbnRhY3QgLmFsZXJ0e1xyXG4gICAgICBkaXNwbGF5Om5vbmU7IG1hcmdpbi10b3A6MTJweDsgcGFkZGluZzoxMHB4IDEycHg7IGJvcmRlci1yYWRpdXM6MTJweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiMxZjFmMWY7IGNvbG9yOiNmZmY7XHJcbiAgICB9XHJcbiAgICAjY29udGFjdCAuYWxlcnQuc2hvd3sgZGlzcGxheTpibG9jayB9XHJcbiAgICAjY29udGFjdCAuYWxlcnQuc3VjY2Vzc3sgYm9yZGVyLWNvbG9yOiMyZTdkMzI7IGJhY2tncm91bmQ6IzEzMzAxNiB9XHJcbiAgICAjY29udGFjdCAuYWxlcnQuZXJyb3J7IGJvcmRlci1jb2xvcjojYTMzMzMzOyBiYWNrZ3JvdW5kOiMyYTE0MTQgfVxyXG4gICAgI2NvbnRhY3Qgc3Ryb25ne2NvbG9yOndoaXRlfSIsIlxyXG5mb3Jte1xyXG4gIGRpc3BsYXk6Z3JpZDsgZ2FwOjE0cHg7XHJcblxyXG4gIGxhYmVseyBmb250LXNpemU6MTNweDsgY29sb3I6I2U2ZTZlNiB9XHJcbiAgLmlucHV0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgfVxyXG5cclxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl17XHJcbiAgICB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHggMTRweDsgYm9yZGVyLXJhZGl1czoxMnB4OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XHJcbiAgICBiYWNrZ3JvdW5kOiMxYjFiMWI7IGNvbG9yOiNmZmY7IG91dGxpbmU6bm9uZTsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzLCBib3gtc2hhZG93IC4ycztcclxuICAgICY6Zm9jdXN7IGJvcmRlci1jb2xvcjojNDA0MDQwOyBib3gtc2hhZG93OjAgMCAwIDNweCAjZmZmZmZmMTI7IH1cclxuICB9XHJcblxyXG4gIC50b2dnbGUtcGFzc3tcclxuICAgIHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxMHB4OyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTIlKTtcclxuICAgIGJhY2tncm91bmQ6I2ZmZmZmZjEyOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmYyYTsgY29sb3I6I2ZmZjtcclxuICAgIGJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjZweCA4cHg7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MTJweDtcclxuICB9XHJcblxyXG4gIC5yb3d7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgZ2FwOjEwcHg7IGZsZXgtd3JhcDp3cmFwIH1cclxuICAucm93IC5yZW1lbWJlcnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo4cHg7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjojZTZlNmU2IH1cclxuICAucm93IGF7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyAmOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIH0gfVxyXG5cclxuICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXXtcclxuICAgIGFwcGVhcmFuY2U6bm9uZTsgYm9yZGVyOjA7IGN1cnNvcjpwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpOyBjb2xvcjojZmZmOyBmb250LXdlaWdodDo3MDA7XHJcbiAgICBwYWRkaW5nOjEycHggMTZweDsgYm9yZGVyLXJhZGl1czoxMnB4O1xyXG4gICAgYm94LXNoYWRvdzowIDEycHggMjRweCByZ2JhKDI1NSw3Nyw3NywuMjUpO1xyXG4gICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cywgYm94LXNoYWRvdyAuMTVzO1xyXG4gICAgJjpob3ZlcnsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6MCAxNnB4IDM0cHggcmdiYSgyNTUsNzcsNzcsLjM1KSB9XHJcbiAgfVxyXG5cclxuICAuaGludHsgZm9udC1zaXplOjEycHg7IGNvbG9yOnZhcigtLW11dGVkKSB9XHJcblxyXG4gIC5hbGVydHsgZGlzcGxheTpub25lOyBwYWRkaW5nOjEwcHggMTJweDsgYm9yZGVyLXJhZGl1czoxMnB4OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7IH1cclxuICAuYWxlcnQuc2hvd3sgZGlzcGxheTpibG9jayB9XHJcbiAgLmFsZXJ0LmVycm9yeyBiYWNrZ3JvdW5kOiMyYTE0MTQ7IGJvcmRlci1jb2xvcjojYTMzMzMzfVxyXG4gIC5hbGVydC5va3sgYmFja2dyb3VuZDojMTMzMDE2OyBib3JkZXItY29sb3I6IzJjOGEzMSB9XHJcblxyXG4gIC8qIENvbnRhaW5lciB2YW4gQm9vdHN0cmFwIGNoZWNrYm94IGVlbiBrbGVpbiBiZWV0amUgZmluZXR1bmVuICovXHJcbi5mb3JtLWNoZWNrIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjVyZW07XHJcbiAgbWFyZ2luLWxlZnQ6MjVweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogOTk5OTlweDtcclxufVxyXG4uZm9ybS1jaGVjay1pbnB1dFt0eXBlPWNoZWNrYm94XSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxufVxyXG4uZm9ybS1jb250cm9sLXNtLCBmb3JtIGlucHV0W3R5cGU9dGV4dF0sIGZvcm0gaW5wdXRbdHlwZT1udW1iZXJdLCAuZm9ybSBpbnB1dFt0eXBlPWVtYWlsXSwgZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDEycHggMTRweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xyXG4gICAgYmFja2dyb3VuZDogIzFiMWIxYjtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XHJcbn1cclxuLyogVmVyYmVyZyBkZSBzdGFuZGFhcmQgYnJvd3Nlci1zdGlqbCAqL1xyXG4uY2FkLXRvZ2dsZSB7XHJcbiAgICBtYXJnaW4tbGVmdDoyNXB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogNDJweDtcclxuICBoZWlnaHQ6IDIycHg7XHJcbiAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjYyNjI2LCAjMTExKTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XHJcbn1cclxuXHJcbi8qIERlIOKAnGtub3DigJ0gYmlubmVuIGRlIHRvZ2dsZSAqL1xyXG4uY2FkLXRvZ2dsZTo6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDJweDtcclxuICBsZWZ0OiAycHg7XHJcbiAgd2lkdGg6IDE4cHg7XHJcbiAgaGVpZ2h0OiAxOHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSAzMCUsICNmZmZmZmYsICNkMGQwZDApO1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLDAuNik7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcclxufVxyXG5cclxuLyogQ2hlY2tlZCBzdGF0ZSAqL1xyXG4uY2FkLXRvZ2dsZTpjaGVja2VkIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGY5ZmNhLCAjMDBiN2ZmKTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjYsIDIxMywgMjI2LCAwLjkpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDU0LCA3MywgMjQ3LCAwLjQpO1xyXG59XHJcblxyXG4uY2FkLXRvZ2dsZTpjaGVja2VkOjpiZWZvcmUge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcclxufVxyXG5cclxuLyogSG92ZXIgc3RhdGUgKi9cclxuLmNhZC10b2dnbGU6aG92ZXIge1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xyXG59XHJcblxyXG4vKiBGb2N1cyAoa2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSkgKi9cclxuLmNhZC10b2dnbGU6Zm9jdXMtdmlzaWJsZSB7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjU1LDI1NSwyNTUsMC40NSk7XHJcbn1cclxuXHJcbi8qIERpc2FibGVkIHN0YXRlICovXHJcbi5jYWQtdG9nZ2xlOmRpc2FibGVkIHtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIG9wYWNpdHk6IDAuNDU7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLyogTGFiZWwgZXJuYWFzdCBpZXRzIHN1YnRpZWxlciBtYWtlbiAqL1xyXG4uY2FkLXRvZ2dsZS1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG59IiwiOnJvb3R7XHJcbiAgLS1iZzojMTIxMjEyOyAtLXBhbmVsOiMxZTFlMWU7IC0tcGFuZWwyOiMyNDI0MjQ7IC0tc3Ryb2tlOiMyYTJhMmE7XHJcbiAgLS1mZzojZmZmOyAtLW11dGVkOiNjZmNmY2Y7IC0tYWNjZW50OiNmZjRkNGQ7XHJcbn1cclxuXHJcbi5sb2dpbi1wYWdle1xyXG4gIG1pbi1oZWlnaHQ6MTAwdmg7XHJcbiAgbWF4LWhlaWdodDoxMDB2aDtcclxuICBkaXNwbGF5OmdyaWQ7IHBsYWNlLWl0ZW1zOmNlbnRlcjsgXHJcbiAgY29sb3I6dmFyKC0tZmcpO1xyXG4gIGJhY2tncm91bmQ6XHJcbiAgICByYWRpYWwtZ3JhZGllbnQoMTIwMHB4IDYwMHB4IGF0IDE1JSAtMTAlLCAjMjAyMDIwLCB2YXIoLS1iZykgNjAlKSxcclxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxNjE2MTYsICMxMjEyMTIpO1xyXG4gIHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47XHJcblxyXG4gICY6OmFmdGVye1xyXG4gICAgY29udGVudDpcIlwiOyBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6YXV0byAtMjAlIC0zMCUgLTIwJTsgaGVpZ2h0OjI2MHB4O1xyXG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDUwJSAxNjAlIGF0IDUwJSAwJSwgcmdiYSgyNTUsNzcsNzcsLjI1KSwgdHJhbnNwYXJlbnQgNzAlKTtcclxuICAgIGZpbHRlcjogYmx1cigzMnB4KTsgcG9pbnRlci1ldmVudHM6bm9uZTsgYW5pbWF0aW9uOiBsb2dpbkZsb2F0IDEwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbG9naW5GbG9hdCB7IDAlLDEwMCV7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApfSA1MCV7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpfSB9XHJcblxyXG4uYnJhbmQtbG9nb3tcclxuICBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMTZweDsgbGVmdDogMTZweDsgei1pbmRleDogMjAwMDtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4O1xyXG4gIHBhZGRpbmc6IDhweCAxMHB4OyBib3JkZXItcmFkaXVzOiAxMnB4OyBjb2xvcjogdmFyKC0tZmcpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XHJcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsMCwwLC4zNSk7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgZWFzZSwgYm94LXNoYWRvdyAuMTVzIGVhc2UsIGJhY2tncm91bmQgLjJzIGVhc2UsIGJvcmRlci1jb2xvciAuMnMgZWFzZTtcclxuICBpbWd7IGhlaWdodDogNTBweDsgd2lkdGg6IGF1dG87IGRpc3BsYXk6IGJsb2NrOyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSkpOyB9XHJcbiAgJjpob3ZlcnsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyBib3gtc2hhZG93OiAwIDEycHggMzBweCByZ2JhKDAsMCwwLC40NSk7IGJhY2tncm91bmQ6ICNmZmZmZmYxODsgfVxyXG59XHJcbkBtZWRpYSAobWF4LXdpZHRoOjU2MHB4KXsgLmJyYW5kLWxvZ297IHRvcDoxMnB4OyBsZWZ0OjEycHg7IHBhZGRpbmc6NnB4IDhweDsgaW1neyBoZWlnaHQ6MjJweDsgfSB9IH1cclxuXHJcbi5sb2dpbi1jYXJke1xyXG4gIHdpZHRoOm1pbig1MjBweCwgMTAwJSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1wYW5lbCksIzE5MTkxOSk7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpOyBib3JkZXItcmFkaXVzOjIycHg7IHBhZGRpbmc6MjhweDtcclxuICBib3gtc2hhZG93OiAwIDE4cHggNDRweCByZ2JhKDAsMCwwLC4zNSk7XHJcblxyXG4gIGgyeyBtYXJnaW46MCAwIDRweDsgZm9udC1zaXplOmNsYW1wKDIycHgsM3Z3LDMwcHgpIH1cclxuICAuc3VieyBjb2xvcjp2YXIoLS1tdXRlZCk7IG1hcmdpbjowIDAgMThweCB9XHJcbn1cclxuXHJcbiIsIiAgOnJvb3R7XHJcbiAgICAtLWJnOiMxMjEyMTI7IC0tcGFuZWw6IzFlMWUxZTsgLS1wYW5lbDI6IzI0MjQyNDtcclxuICAgIC0tc3Ryb2tlOiMyYTJhMmE7IC0tZmc6I2ZmZjsgLS1tdXRlZDojY2ZjZmNmOyAtLWFjY2VudDojZmY0ZDRkO1xyXG4gIH1cclxuICAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH1cclxuICBoZWFkZXIgaW1ne2hlaWdodDoyOHB4O2Rpc3BsYXk6YmxvY2s7fVxyXG4gIGhlYWRlciBhe2NvbG9yOnZhcigtLWZnKTt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjNweDt9XHJcbiAgaGVhZGVyIGE6aG92ZXJ7Y29sb3I6dmFyKC0tYWNjZW50KTt9XHJcbiAgbWFpbntcclxuICAgIHBhZGRpbmc6MTZweCAyNHB4IDgwcHg7XHJcbiAgICBtYXJnaW46MCBhdXRvO1xyXG4gIH1cclxuICBoMSxoMixoM3tjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDt9XHJcbiAgaDF7Zm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDM2cHgpO21hcmdpbi1ib3R0b206MTBweDt9XHJcbiAgaDJ7bWFyZ2luLXRvcDo0MnB4O2ZvbnQtc2l6ZTpjbGFtcCgyMHB4LDIuNXZ3LDI2cHgpO31cclxuICBoM3ttYXJnaW4tdG9wOjI0cHg7Zm9udC1zaXplOjE4cHg7fVxyXG4gIHAsbGl7Y29sb3I6dmFyKC0tbXV0ZWQpO31cclxuICBcclxuICBhe2NvbG9yOnZhcigtLWFjY2VudCk7fVxyXG4gIGZvb3RlcntcclxuICAgIHRleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MzJweCAxNnB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XHJcbiAgICBjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjE0cHg7XHJcbiAgfSIsImh0bWxbZGF0YS10aGVtZT1cImxpZ2h0XCJde1xyXG4gIC0tY2FkLWJnOiNmN2Y4ZmE7IC0tY2FkLXN1cmZhY2U6I2ZmZmZmZjsgLS1jYWQtdGV4dDojMGUwZjExOyAtLWNhZC1tdXRlZDojNWM1ZjY2O1xyXG4gIC0tY2FkLWJvcmRlcjogcmdiYSgwLDAsMCwuMDgpOyAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMCwwLDAsLjE2KTtcclxufVxyXG46cm9vdHtcclxuICAtLWNhZC1iZzogIzBmMGYxMDtcclxuICAtLWNhZC1zdXJmYWNlOiAjMTYxNzE5O1xyXG4gIC0tY2FkLWJvcmRlcjogcmdiYSgyNTUsMjU1LDI1NSwuMDgpO1xyXG4gIC0tY2FkLWJvcmRlci1ob3ZlcjogcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xyXG4gIC0tY2FkLXRleHQ6ICNlOWVhZWU7XHJcbiAgLS1jYWQtbXV0ZWQ6ICNhN2E4YWQ7XHJcbiAgLS1jYWQtYWNjZW50OiAjZTMxYjIzOyAvKiBDQURBUFRJWC92ZXJ3YW50IHJvb2QgKi9cclxufVxyXG5cclxuLmNhZC1oZWFkaW5neyBjb2xvcjogdmFyKC0tY2FkLXRleHQpOyB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsMCwwLC4zNSk7IH1cclxuXHJcbi8qIENhcmRzICovXHJcbi5jYWQtY2FyZHtcclxuICBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZ2FwOi41cmVtOyBwYWRkaW5nOjEuMjVyZW0gMS4yNXJlbSAxcmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6MTZweDtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwuMDQpLCByZ2JhKDI1NSwyNTUsMjU1LC4wMikpLFxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSwgcmdiYSgyMjcsMjcsMzUsLjA4KSAwJSwgdHJhbnNwYXJlbnQgNDAlKSxcclxuICAgIHZhcigtLWNhZC1zdXJmYWNlKTtcclxuICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsLjM1KTtcclxuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIGVhc2UsIGJveC1zaGFkb3cgLjE4cyBlYXNlLCBib3JkZXItY29sb3IgLjE4cyBlYXNlO1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xyXG59XHJcbi5jYWQtY2FyZCAuY2xpY2thYmxlOmhvdmVye1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcclxuICBib3JkZXItY29sb3I6IHZhcigtLWNhZC1ib3JkZXItaG92ZXIpO1xyXG4gIGJveC1zaGFkb3c6IDAgMTZweCA0MHB4IHJnYmEoMCwwLDAsLjQ1KTtcclxufVxyXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRpdGxle1xyXG4gIG1hcmdpbjogLjI1cmVtIDAgLjI1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6LjJweDtcclxufVxyXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRleHR7IGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpOyB9XHJcblxyXG4vKiBJY29uIGJ1YmJsZSAqL1xyXG4uY2FkLWNhcmQtaWNvbntcclxuICB3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MTBweDtcclxuICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjI3LDI3LDM1LC4xMik7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIyNywyNywzNSwuMzUpO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7XHJcbiAgbWFyZ2luLWJvdHRvbTouMjVyZW07XHJcbn1cclxuLmNhZC1jYXJkLWNsaWNreyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH1cclxuLyogQnJhbmQgYnV0dG9uICovXHJcbi5idG4tY2Fke1xyXG4gIC0tYnMtYnRuLWNvbG9yOiNmZmY7XHJcbiAgLS1icy1idG4tYmc6IHZhcigtLWNhZC1hY2NlbnQpO1xyXG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdmFyKC0tY2FkLWFjY2VudCk7XHJcbiAgLS1icy1idG4taG92ZXItYmc6ICNjNzE5MjA7XHJcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjYzcxOTIwO1xyXG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDIyNywyNywzNTtcclxufVxyXG5cclxuLyogVGFiZWwgaW4gQ2FkYXB0aXgtc3RpamwgKi9cclxuLmNhZC1jYXJkIC50YWJsZXtcclxuICAtLWJzLXRhYmxlLWJnOiB0cmFuc3BhcmVudDsgICAgICAgICAgLyogemV0IHZhcmlhYmVsZSBvcCB0cmFuc3BhcmFudCAqL1xyXG4gIC0tYnMtdGFibGUtc3RyaXBlZC1iZzogdHJhbnNwYXJlbnQ7ICAvKiB2b29yIHN0cmlwZWQgdmFyaWFudGVuICovXHJcbiAgLS1icy10YWJsZS1ob3Zlci1iZzogdHJhbnNwYXJlbnQ7ICAgIC8qIHZvb3IgaG92ZXIgdmFyaWFudGVuICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7ICAgICAgIC8qIGZhbGxiYWNrICovXHJcbn1cclxuLyogb3ZlcnJpZGUgZGUgY2VscmVnZWwgdmFuIEJvb3RzdHJhcCAqL1xyXG4uY2FkLWNhcmQgLmNhZC10YWJsZSA+IDpub3QoY2FwdGlvbikgPiAqID4gKntcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcbi5jYWQtdGFibGUge1xyXG4gIC0tcm93LWhvdmVyOiByZ2JhKDIzNSwgNDIsIDQyLCAwLjQyMSk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuLmNhZC10YWJsZSB0aGVhZCB0aHtcclxuICBib3JkZXI6IDA7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogdmFyKC0tY2FkLXN1cmZhY2UpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC4wM2VtO1xyXG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xyXG59XHJcbi5jYWQtdGFibGUgdGgsIC5jYWQtdGFibGUgdGR7XHJcbiAgcGFkZGluZzogLjZyZW0gLjc1cmVtO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGNvbG9yOiByZ2JhKDksIDksIDksIDAuOTQ5KTtcclxufVxyXG5cclxuLmNhZC10YWJsZSB0Ym9keSB0cjpob3ZlcnsgXHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTsgXHJcbn1cclxuXHJcbi8vIC8qIG1ha2UgdGhlIHRleHQgaW5zaWRlIHRoZSByb3cgc3dpdGNoIHRvIGRhcmsgKi9cclxuLy8gLmNhZC10YWJsZSB0Ym9keSB0cjpob3ZlciA+IHRoLFxyXG4vLyAuY2FkLXRhYmxlIHRib2R5IHRyOmhvdmVyID4gdGQge1xyXG4vLyAgIGNvbG9yOiByZ2JhKDI3LCAyNiwgMjYsIDAuOTQ5KSAhaW1wb3J0YW50O1xyXG4vLyB9XHJcblxyXG4vKiBVc2Vya29sb20gbWV0IGF2YXRhci1pbml0aWFscyAqL1xyXG4uY2FkLXVzZXJ7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6Ljc1cmVtOyB9XHJcbi5jYWQtYXZhdGFye1xyXG4gIHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDM2cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjI3LDI3LDM1LC4xMik7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIyNywyNywzNSwuMzUpO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAuOHJlbTtcclxuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xyXG59XHJcblxyXG4vKiBCYWRnZXMvY2lqZmVycyAqL1xyXG4uY2FkLWJhZGdle1xyXG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOi4yNXJlbSAuNXJlbTsgYm9yZGVyLXJhZGl1czo5OTlweDtcclxuICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGZvbnQtd2VpZ2h0OjYwMDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxufVxyXG4uY2FkLWFsaWduLW51bXsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfVxyXG4uY2FkLWRhdGV7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpOyB9XHJcblxyXG4vKiBUcmFuc3BhcmFudGUgbGlzdCArIGl0ZW1zICovXHJcbi5jYWQtbGlzdHtcclxuICBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuLmNhZC1saXN0LWl0ZW17XHJcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1xyXG4gIGdhcDogLjc1cmVtOyBwYWRkaW5nOiAuNXJlbSAuMjVyZW07IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG59XHJcbi5jYWQtbGlzdC1pdGVtOmZpcnN0LWNoaWxkeyBib3JkZXItdG9wOiAwOyB9XHJcbi5jYWQtbGlzdC1pdGVtOmhvdmVyeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wMyk7IH1cclxuXHJcbi8qIFVzZXJibG9ramUgbWV0IG1pbmktYXZhdGFyICovXHJcbi5jYWQtdXNlci1zbXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDouNXJlbTsgbWluLXdpZHRoOjA7IH1cclxuLmNhZC1hdmF0YXItc217XHJcbiAgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywyNywzNSwuMTIpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMjcsMjcsMzUsLjM1KTtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDQpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogLjdyZW07IGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XHJcbn1cclxuLmNhZC11c2VyLW5hbWV7IGZvbnQtd2VpZ2h0OjYwMDsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IH1cclxuXHJcbi8qIERhdHVtIHJlY2h0cyAqL1xyXG4uY2FkLWxpc3QtZGF0ZXsgd2hpdGUtc3BhY2U6bm93cmFwOyBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfVxyXG5cclxuLyogbWFhayB6ZWtlciBkZSBVTCB0cmFuc3BhcmFudCBiaW5uZW4gY2FyZHMgKi9cclxuLmNhZC1jYXJkIC5jYWQtbGlzdCxcclxuLmNhZC1jYXJkIC5saXN0LXVuc3R5bGVkeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxyXG5cclxuLmNhZC1hbW91bnR7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cclxuLmNhZC1jdXJyZW5jeXsgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7IGZvbnQtc2l6ZTogLjg1ZW07IG1hcmdpbi1sZWZ0OiAuMjVyZW07IH1cclxuXHJcbi5idG4tZ2hvc3R7IC0tYmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjIpOyBjb2xvcjojODQ4NTg1OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJkKTsgfVxyXG4uYnRuLWdob3N0OmhvdmVyeyBib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMzUpOyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA1KTsgfSIsIjpyb290IHtcclxuICAtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQ6IDIyMHB4O1xyXG4gIC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDcycHg7XHJcbiAgLS1zaWRlYmFyLWJnOiAjMTExMTExO1xyXG4gIC0tc2lkZWJhci1iZy1ncmFkaWVudDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE1MTUxNSwgIzA1MDUwNSk7XHJcbiAgLyogY3VzdG9tZXIgYnJhbmQgYWNjZW50LCBmYWxsYmFjayB0byBSRVNUaW5zcGVjdCBvcmFuZ2UgKi9cclxuICAtLWJyYW5kLWFjY2VudDogI2M4MDAwMDsgLyogZS5nLiBTdW1pdG9tbyBibHVlIOKAkyBvdmVycmlkZSBwZXIgY3VzdG9tZXIgbGF0ZXIgKi9cclxufVxyXG5cclxuLyogPT09IExFRlQgU0lERUJBUiA9PT0gKi9cclxuXHJcbi5hZG1pbi1zaWRlYmFyIHtcclxuICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogOTk7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZy1ncmFkaWVudCk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcclxuICB0cmFuc2l0aW9uOiB3aWR0aCAuMnMgZWFzZTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBwYWRkaW5nLXRvcDogNTZweDsgLyogc3BhY2UgZm9yIHlvdXIgdG9wIGhlYWRlciAqL1xyXG59XHJcblxyXG4vKiBtYWluIGNvbHVtbiBzaGlmdHMgbmV4dCB0byBzaWRlYmFyICovXHJcbi5hZG1pbi1tYWluIHtcclxuICBtYXJnaW4tbGVmdDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7XHJcbiAgcGFkZGluZy1sZWZ0OjUwcHg7XHJcbiAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgLjJzIGVhc2U7XHJcbn1cclxuXHJcbi8qIHdyYXBwZXIgZm9yIGxvZ28gKyB0b2dnbGUgKi9cclxuLmFkbWluLXNpZGViYXItdG9wIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XHJcbn1cclxuXHJcbi8qIGN1c3RvbWVyIGxvZ28gKi9cclxuLmFkbWluLXNpZGViYXIgLmN1c3RvbWVyLWxvZ28ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IC41cmVtO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLmFkbWluLXNpZGViYXIgLmN1c3RvbWVyLWxvZ28gaW1nIHtcclxuICBtYXgtaGVpZ2h0OiAyOHB4O1xyXG4gIG1heC13aWR0aDogMzZweDtcclxuICBvYmplY3QtZml0OiBjb250YWluO1xyXG59XHJcblxyXG4uYWRtaW4tc2lkZWJhciAuY3VzdG9tZXItbmFtZSB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBmb250LXNpemU6IC45cmVtO1xyXG59XHJcblxyXG4vKiBuYXYgbGlua3MgKi9cclxuXHJcbi5hZG1pbi1zaWRlYmFyIC5uYXYtbGluayB7XHJcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43NSk7XHJcbiAgcGFkZGluZzogLjU1cmVtIC45cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IC41cmVtO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjE1cywgY29sb3IgLjE1cywgdHJhbnNmb3JtIC4xcztcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAuNTVyZW07XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBmb250LXNpemU6IC44NXJlbTtcclxufVxyXG5cclxuLmFkbWluLXNpZGViYXIgLm5hdi1saW5rIGkge1xyXG4gIGZvbnQtc2l6ZTogMXJlbTtcclxufVxyXG5cclxuLmFkbWluLXNpZGViYXIgLm5hdi1saW5rOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xyXG59XHJcblxyXG4uYWRtaW4tc2lkZWJhciAubmF2LWxpbmsuYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEyMCwgMjAwLCAwLjE4KTsgLyogdXNlcyBicmFuZCBhY2NlbnQgZmVlbCAqL1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIDAgdmFyKC0tYnJhbmQtYWNjZW50KTtcclxufVxyXG5cclxuLyog4oCccG93ZXJlZCBieeKAnSBmb290ZXIgdGV4dCAqL1xyXG4uc2lkZWJhci1wb3dlcmVkIHtcclxuICBmb250LXNpemU6IC43cmVtO1xyXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNDUpO1xyXG59XHJcblxyXG4vLyAvKiA9PT0gQ09MTEFQU0VEIFNUQVRFIChkZXNrdG9wKSA9PT0gKi9cclxuXHJcbi8vIGJvZHkuc2lkZWJhci1jb2xsYXBzZWQgLmFkbWluLXNpZGViYXIge1xyXG4vLyAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7XHJcbi8vIH1cclxuXHJcbi8vIGJvZHkuc2lkZWJhci1jb2xsYXBzZWQgLmFkbWluLW1haW4ge1xyXG4vLyAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7XHJcbi8vIH1cclxuXHJcbi8vIC8qIGhpZGUgbGFiZWxzLCBvbmx5IHNob3cgaWNvbnMgJiBsb2dvIGljb24gKi9cclxuLy8gYm9keS5zaWRlYmFyLWNvbGxhcHNlZCAuYWRtaW4tc2lkZWJhciAuc2lkZWJhci1sYWJlbCxcclxuLy8gYm9keS5zaWRlYmFyLWNvbGxhcHNlZCAuYWRtaW4tc2lkZWJhciAuY3VzdG9tZXItbmFtZSxcclxuLy8gYm9keS5zaWRlYmFyLWNvbGxhcHNlZCAuYWRtaW4tc2lkZWJhciAuc2lkZWJhci1wb3dlcmVkIHtcclxuLy8gICBkaXNwbGF5OiBub25lO1xyXG4vLyB9XHJcblxyXG4vLyBib2R5LnNpZGViYXItY29sbGFwc2VkIC5hZG1pbi1zaWRlYmFyIC5uYXYtbGluayB7XHJcbi8vICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbi8vICAgcGFkZGluZy1sZWZ0OiAuNzVyZW07XHJcbi8vICAgcGFkZGluZy1yaWdodDogLjc1cmVtO1xyXG4vLyB9XHJcblxyXG4vLyAvKiB3aGVuIGNvbGxhcHNlZCwgY2VudGVyIGxvZ28gKyB0b2dnbGUgdmVydGljYWxseSAqL1xyXG4vLyBib2R5LnNpZGViYXItY29sbGFwc2VkIC5hZG1pbi1zaWRlYmFyLXRvcCB7XHJcbi8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuLy8gICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4vLyAgIGdhcDogLjVyZW07XHJcbi8vIH1cclxuXHJcbi8qIHRvZ2dsZSBidXR0b24gKi9cclxuLnNpZGViYXItdG9nZ2xlLWJ0biB7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgcGFkZGluZzogLjI1cmVtIC40NXJlbTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNSk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjM1KTtcclxufVxyXG5cclxuLyogTW9iaWxlOiBzaWRlYmFyIGJlY29tZXMgZnVsbC13aWR0aCB0b3AgYmFyLCBubyBjb2xsYXBzaW5nIG1hZ2ljICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xyXG4gIC5hZG1pbi1zaWRlYmFyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWluLWhlaWdodDogYXV0bztcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmFkbWluLW1haW4ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgfVxyXG5cclxuICBib2R5LnNpZGViYXItY29sbGFwc2VkIC5hZG1pbi1zaWRlYmFyIC5jdXN0b21lcl9tYWluXHJcbiAgYm9keS5zaWRlYmFyLWNvbGxhcHNlZCAuYWRtaW4tbWFpbiB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItdG9nZ2xlLWJ0biB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIHdlIGNhbiBkbyBhbm90aGVyIHBhdHRlcm4gb24gbW9iaWxlIGxhdGVyICovXHJcbiAgfVxyXG59XHJcbiIsImh0bWxbZGF0YS10aGVtZT1cImxpZ2h0XCJde1xyXG4gIC0tY2FkLWJnOiNmN2Y4ZmE7IC0tY2FkLXN1cmZhY2U6I2ZmZmZmZjsgLS1jYWQtdGV4dDojMGUwZjExOyAtLWNhZC1tdXRlZDojNWM1ZjY2O1xyXG4gIC0tY2FkLWJvcmRlcjogcmdiYSgwLDAsMCwuMDgpOyAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMCwwLDAsLjE2KTtcclxufVxyXG46cm9vdHtcclxuICAtLWNhZC1iZzogIzBmMGYxMDtcclxuICAtLWNhZC1zdXJmYWNlOiAjMTYxNzE5O1xyXG4gIC0tY2FkLWJvcmRlcjogcmdiYSgyNTUsMjU1LDI1NSwuMDgpO1xyXG4gIC0tY2FkLWJvcmRlci1ob3ZlcjogcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xyXG4gIC0tY2FkLXRleHQ6ICNlOWVhZWU7XHJcbiAgLS1jYWQtbXV0ZWQ6ICNhN2E4YWQ7XHJcbiAgLS1jYWQtYWNjZW50OiAjZTMxYjIzOyAvKiBSRVNUaW5zcGVjdC92ZXJ3YW50IHJvb2QgKi9cclxufVxyXG4uY2FyZWVyc3tcclxuICAgIG1hcmdpbi10b3A6NXZoO1xyXG59XHJcbi5jYWQtaGVhZGluZ3sgY29sb3I6IHZhcigtLWNhZC10ZXh0KTsgdGV4dC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLDAsMCwuMzUpOyB9XHJcblxyXG4vKiBDYXJkcyAqL1xyXG4uY2FkLWNhcmR7XHJcbiAgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDouNXJlbTtcclxuICAgcGFkZGluZzoxLjI1cmVtIDEuMjVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOjE2cHg7XHJcbiAgYmFja2dyb3VuZDpcclxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsLjA0KSwgcmdiYSgyNTUsMjU1LDI1NSwuMDIpKSxcclxuICAgIHJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMCUgMCUsIHJnYmEoMjI3LDI3LDM1LC4wOCkgMCUsIHRyYW5zcGFyZW50IDQwJSksXHJcbiAgICB2YXIoLS1jYWQtc3VyZmFjZSk7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1jYWQtYm9yZGVyKTtcclxuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsMCwwLC4zNSk7XHJcbiAgY29sb3I6IHZhcigtLWNhZC10ZXh0KTtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE4cyBlYXNlLCBib3gtc2hhZG93IC4xOHMgZWFzZSwgYm9yZGVyLWNvbG9yIC4xOHMgZWFzZTtcclxuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcclxufVxyXG5cclxuLmNhZC1jYXJkIC5jYWQtY2FyZC10aXRsZXtcclxuICBtYXJnaW46IC4yNXJlbSAwIC4yNXJlbTtcclxuICBjb2xvcjp3aGl0ZTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOi4ycHg7XHJcbn1cclxuLmNhZC1jYXJkIC5jYWQtY2FyZC10ZXh0eyBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTsgfVxyXG5cclxuLyogSWNvbiBidWJibGUgKi9cclxuLmNhZC1jYXJkLWljb257XHJcbiAgd2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjEwcHg7XHJcbiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywyNywzNSwuMTIpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMjcsMjcsMzUsLjM1KTtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDQpO1xyXG4gIG1hcmdpbi1ib3R0b206LjI1cmVtO1xyXG59XHJcbi5jYWQtY2FyZC1jbGlja3sgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9XHJcbi8qIEJyYW5kIGJ1dHRvbiAqL1xyXG4uYnRuLWNhZHtcclxuICAtLWJzLWJ0bi1jb2xvcjojZmZmO1xyXG4gIC0tYnMtYnRuLWJnOiB2YXIoLS1jYWQtYWNjZW50KTtcclxuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWNhZC1hY2NlbnQpO1xyXG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjYzcxOTIwO1xyXG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogI2M3MTkyMDtcclxuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyMjcsMjcsMzU7XHJcbn1cclxuLyogPT09PT09PT09PSBGZWF0dXJlIFRpbGVzIChoZXJvLWFjaHRpZywgZ2VlbiBjYXJkcykgPT09PT09PT09PSAqL1xyXG4uY2FkLWZlYXR1cmVzIHsgLS1jYWQtZmVhdHVyZS1yYWRpdXM6IDE4cHg7IH1cclxuXHJcbi5jYWQtZmVhdHVyZXtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FkLWZlYXR1cmUtcmFkaXVzKTtcclxuICBwYWRkaW5nOiAyMnB4IDIycHggMjBweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgLyogTGF5ZXIgMTogc3VidGllbGUgZ3JpZC9nbG93ICovXHJcbiAgYmFja2dyb3VuZDpcclxuICAgIHJhZGlhbC1ncmFkaWVudCgxNDAlIDEyMCUgYXQgMCUgMCUsIHJnYmEoMjI3LDI3LDM1LC4xOCkgMCUsIHJnYmEoMjI3LDI3LDM1LDApIDQ4JSksXHJcbiAgICByYWRpYWwtZ3JhZGllbnQoMTIwJSAxNDAlIGF0IDEwMCUgMCUsIHJnYmEoMjU1LDI1NSwyNTUsLjA4KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA1NSUpLFxyXG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwuMDUpLCByZ2JhKDI1NSwyNTUsMjU1LC4wMikpLFxyXG4gICAgdmFyKC0tY2FkLXN1cmZhY2UpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGJveC1zaGFkb3c6XHJcbiAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDMpLFxyXG4gICAgMCAxNHB4IDQ0cHggcmdiYSgwLDAsMCwuNDUpO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIGVhc2UsIGJveC1zaGFkb3cgLjE4cyBlYXNlLCBib3JkZXItY29sb3IgLjE4cyBlYXNlO1xyXG59XHJcblxyXG4uY2FkLWZlYXR1cmU6aG92ZXJ7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2FkLWJvcmRlci1ob3Zlcik7XHJcbiAgYm94LXNoYWRvdzogMCAyMnB4IDU0cHggcmdiYSgwLDAsMCwuNTUpO1xyXG59XHJcblxyXG4uY2FkLWZlYXR1cmU6OmFmdGVye1xyXG4gIC8qIGRlY29yYXRpZXZlIHNvZnQgaGlnaGxpZ2h0IHJlY2h0cyBvbmRlciAqL1xyXG4gIGNvbnRlbnQ6XCJcIjtcclxuICBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6YXV0byAtMjAlIC0zNSUgYXV0bztcclxuICB3aWR0aDogNjAlOyBoZWlnaHQ6IDYwJTtcclxuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNDAlIDQwJSBhdCA1MCUgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xMiksIHJnYmEoMjU1LDI1NSwyNTUsMCkpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7XHJcbiAgcG9pbnRlci1ldmVudHM6bm9uZTtcclxufVxyXG5cclxuLyogVmFyaWF0aWVzIG1ldCBrbGV1cmFjY2VudGVuICovXHJcbi5jYWQtZmVhdHVyZS0tYmx1ZXtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDE0MCUgMTIwJSBhdCAwJSAwJSwgcmdiYSg3NCwxNDQsMjI2LC4xOCkgMCUsIHJnYmEoNzQsMTQ0LDIyNiwwKSA0OCUpLFxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTQwJSBhdCAxMDAlIDAlLCByZ2JhKDI1NSwyNTUsMjU1LC4wOCkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgNTUlKSxcclxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsLjA1KSwgcmdiYSgyNTUsMjU1LDI1NSwuMDIpKSxcclxuICAgIHZhcigtLWNhZC1zdXJmYWNlKTtcclxufVxyXG5cclxuLmNhZC1mZWF0dXJlLS1ncmVlbntcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDE0MCUgMTIwJSBhdCAwJSAwJSwgcmdiYSg0MSwyMDUsNjUsLjE4KSAwJSwgcmdiYSg0MSwyMDUsNjUsMCkgNDglKSxcclxuICAgIHJhZGlhbC1ncmFkaWVudCgxMjAlIDE0MCUgYXQgMTAwJSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMDgpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDU1JSksXHJcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LC4wNSksIHJnYmEoMjU1LDI1NSwyNTUsLjAyKSksXHJcbiAgICB2YXIoLS1jYWQtc3VyZmFjZSk7XHJcbn1cclxuXHJcbi8qIEljb24gYnViYmxlIGdyb290IGVuIGJvbGQgKi9cclxuLmNhZC1mZWF0dXJlX19pY29ue1xyXG4gIHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDhweDtcclxuXHJcbiAgYmFja2dyb3VuZDogcmdiYSgyMjcsMjcsMzUsLjE2KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNywyNywzNSwuMzUpO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG59XHJcblxyXG4uY2FkLWZlYXR1cmUtLWJsdWUgLmNhZC1mZWF0dXJlX19pY29ue1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoNzQsMTQ0LDIyNiwuMTYpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSg3NCwxNDQsMjI2LC4zNSk7XHJcbn1cclxuLmNhZC1mZWF0dXJlLS1ncmVlbiAuY2FkLWZlYXR1cmVfX2ljb257XHJcbiAgYmFja2dyb3VuZDogcmdiYSg0MSwyMDUsNjUsLjE2KTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoNDEsMjA1LDY1LC4zNSk7XHJcbn1cclxuXHJcbi8qIFRla3N0ICovXHJcbi5jYWQtZmVhdHVyZV9fdGl0bGV7XHJcbiAgbWFyZ2luOiAycHggMCA2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICBsZXR0ZXItc3BhY2luZzogLjJweDtcclxuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xyXG59XHJcbi5jYWQtZmVhdHVyZV9fdGV4dHtcclxuICBtYXJnaW46IDA7XHJcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG4iLCIvKiBDYXJkIG11c3QgYmUgcmVsYXRpdmUgc28gdGhlIG92ZXJsYXkgY2FuIHNpdCBpbiB0aGUgdG9wLXJpZ2h0IGNvcm5lciAqL1xyXG4uaGVhdG1hcC1jYXJkIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjJzIGVhc2UsIHRyYW5zZm9ybSAuMnMgZWFzZSxcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXMgLjJzIGVhc2UsIG1hcmdpbiAuMnMgZWFzZTtcclxufVxyXG5cclxuLyogSG92ZXIgaW5mbyBvdmVybGF5ICovXHJcbi5oZWF0bWFwLWhvdmVyLWluZm8ge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwLjc1cmVtO1xyXG4gICAgcmlnaHQ6IDAuNzVyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICAgIHBhZGRpbmc6IDAuMzVyZW0gMC42cmVtO1xyXG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoMCwwLDAsMC4zNSk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIGVhc2UsIHRyYW5zZm9ybSAuMTVzIGVhc2U7XHJcbn1cclxuXHJcbi8qIE9ubHkgZXZlciB2aXNpYmxlIGluIHRoZWF0ZXIgbW9kZTsgSlMgdG9nZ2xlcyBkLW5vbmUgd2hlbiB2YWxpZCAqL1xyXG4uaGVhdG1hcC1jYXJkLmhlYXRtYXAtdGhlYXRlci1tb2RlIC5oZWF0bWFwLWhvdmVyLWluZm8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxufVxyXG5cclxuLyogWW91ciBleGlzdGluZyB0aGVhdGVyIHJ1bGVzIGNhbiBzdGF5OyBqdXN0IGtlZXAgdGhlc2U6ICovXHJcbi5oZWF0bWFwLWNhcmQuaGVhdG1hcC10aGVhdGVyLW1vZGUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMzA7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMDB2bWF4IHJnYmEoMCwwLDAsMC40NSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgbWluLWhlaWdodDogOTB2aDtcclxufVxyXG5cclxuLmhlYXRtYXAtY2FyZC5oZWF0bWFwLXRoZWF0ZXItbW9kZSAuaGVhdG1hcC12aWV3cG9ydCB7XHJcbiAgICBtaW4taGVpZ2h0OiA5MHZoO1xyXG4gICAgYmFja2dyb3VuZDogIzAwMDtcclxufVxyXG5cclxuLmhlYXRtYXAtY2FyZC5oZWF0bWFwLXRoZWF0ZXItbW9kZSAuaGVhdG1hcC0zZC1zY2VuZSB7XHJcbiAgICBoZWlnaHQ6IDkwdmg7XHJcbn1cclxuLyogMkQgZmxhdCB2aWV3ICh1bndyYXBwZWQgd2FsbHMpICovXHJcbi8qIEZsYXQgKDJEKSB2aWV3IHNob3VsZCBmaWxsIHRoZSB2aWV3cG9ydCBqdXN0IGxpa2UgM0QgKi9cclxuLmhlYXRtYXAtMmQtc2NlbmUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQyMHB4OyAgICAgICAgICAvKiBub3JtYWwgbW9kZSAqL1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLyogTWFrZSB0aGUgZmxhdCBjYW52YXMgZmlsbCBpdHMgc2NlbmUgKi9cclxuLmhlYXRtYXAtMmQtc2NlbmUgY2FudmFzIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qIEluIHRoZWF0ZXIgbW9kZSwgbGV0IGZsYXQgdmlldyBmaWxsIHRoZSB2aWV3cG9ydCB0b28gKi9cclxuLmhlYXRtYXAtY2FyZC5oZWF0bWFwLXRoZWF0ZXItbW9kZSAuaGVhdG1hcC0yZC1zY2VuZSB7XHJcbiAgICBoZWlnaHQ6IDEwMHZoOyAgICAgICAgICAvKiBtYXRjaCB0aGUgM0QgdGhlYXRlciBoZWlnaHQgKi9cclxufVxyXG5cclxuLyogQ2FudmFzIGlzIGFscmVhZHkgc2V0IHRvIGZpbGwgaXRzIHBhcmVudCwgc28gdGhpcyB3aWxsIG5vdyBmaWxsIHRoZSBzY3JlZW4gKi9cclxuLmhlYXRtYXAtMmQtc2NlbmUgY2FudmFzIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcblxyXG5cclxuLyogU2xpZ2h0bHkgd2lkZXIgaW4gdGhlIG1haW4gY29sdW1uIG9uIGxhcmdlIHNjcmVlbnMgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gICAgLmhlYXRtYXAtY2FyZC5oZWF0bWFwLXRoZWF0ZXItbW9kZSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xyXG4gICAgfVxyXG59XHJcbi5oZWF0bWFwLXZpZXdwb3J0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDI2MHB4O1xyXG4gICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcclxuICAgIC8qIDNEIHBlcnNwZWN0aXZlIGlzIGFwcGxpZWQgaGVyZSAqL1xyXG4gICAgcGVyc3BlY3RpdmU6IDkwMHB4O1xyXG59XHJcbi5oZWF0bWFwLXZpZXdwb3J0OmFjdGl2ZSB7XHJcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xyXG59XHJcbi5oZWF0bWFwLWlubmVyIHtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxufVxyXG5cclxuLyogM0Qg4oCcdHViZeKAnSBlZmZlY3QgKi9cclxuLmhlYXRtYXAtM2Qtc2NlbmUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDQyMHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLyogVGhlIOKAnGJveOKAnSB3aXRoIHRoZSA0IGZhY2VzICovXHJcbi5oZWF0bWFwLTNkLWJveCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcclxuICAgIC8qIGluaXRpYWwgb3JpZW50YXRpb24gKi9cclxuICAgIHRyYW5zZm9ybTogcm90YXRlWCgtMjVkZWcpIHJvdGF0ZVkoMzVkZWcpO1xyXG59XHJcblxyXG4vKiBFYWNoIGNhbnZhcyBpcyBvbmUgd2FsbCAqL1xyXG4uaGVhdG1hcC1mYWNlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcclxufVxyXG5cclxuLyogQ29sb3IgbGVnZW5kOiByZWQg4oaSIHllbGxvdyDihpIgZ3JlZW4gKi9cclxuLmhlYXRtYXAtbGVnZW5kIHtcclxuICAgIGhlaWdodDogOHB4O1xyXG4gICAgbWluLXdpZHRoOiAxMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmYwMDAwLCAjZmZmZjAwLCAjMDBmZjAwKTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLDAuMSk7XHJcbn1cclxuXHJcbi8qIFRoZWF0ZXIgbW9kdXM6IHZlcndpamRlciBkaWUgcGFkZGluZyBvdmVyYWwgKi9cclxuYm9keS5oZWF0bWFwLXRoZWF0ZXItb3BlbiAucm93IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctbGVmdDogIDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcblxyXG4vKiBEQVNIQk9BUkQhISAqL1xyXG4uZGFzaGJvYXJkLWFsZXJ0LWJhbm5lcntcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBnYXA6IDEuNXJlbTtcclxuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcclxuICBcclxuICBjb2xvcjogI2ZmZjtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTYwJSBhdCAwJSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMjApIDAlLCB0cmFuc3BhcmVudCA0MCUpLFxyXG4gICAgbGluZWFyLWdyYWRpZW50KDEyMGRlZywgI2ZmNGI1YyAwJSwgI2UzMWIyMyA0MCUsICM3YTBiMTIgMTAwJSk7XHJcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgwLDAsMCwuNik7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLyogc3VidGxlIGdsb3cgYWNjZW50IG9uIHRoZSByaWdodCAqL1xyXG4uZGFzaGJvYXJkLWFsZXJ0LWJhbm5lcjo6YWZ0ZXJ7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaW5zZXQ6IC00MCU7XHJcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxMTAlIDAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xOCkgMCUsIHRyYW5zcGFyZW50IDU1JSk7XHJcbiAgb3BhY2l0eTogLjc7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtYWxlcnQtbWFpbntcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMXJlbTtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLWFsZXJ0LXBpbGx7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAuMjVyZW0gLjdyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgZm9udC1zaXplOiAuNzVyZW07XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC4xMmVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC40NSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMzUpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcclxufVxyXG5cclxuLmRhc2hib2FyZC1hbGVydC1zdWJ7XHJcbiAgb3BhY2l0eTogLjg1O1xyXG59XHJcblxyXG4uZGFzaGJvYXJkLWFsZXJ0LWFjdGlvbnN7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGdhcDogLjVyZW07XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLyogTWFrZSBidXR0b25zIG1hdGNoIHRoZSBicmlnaHQgYmFubmVyICovXHJcbi5kYXNoYm9hcmQtYWxlcnQtYWN0aW9ucyAuYnRuLXNte1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtYWxlcnQtYWN0aW9ucyAuYnRuLW91dGxpbmUtbGlnaHR7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC43KTtcclxufVxyXG5cclxuLmRhc2hib2FyZC1hbGVydC1hY3Rpb25zIC5idG4tbGlua3tcclxuICBvcGFjaXR5OiAuNzU7XHJcbn1cclxuLmRhc2hib2FyZC1hbGVydC1hY3Rpb25zIC5idG4tbGluazpob3ZlcntcclxuICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4vKiBTdGFjayBuaWNlbHkgb24gc21hbGwgc2NyZWVucyAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpe1xyXG4gIC5kYXNoYm9hcmQtYWxlcnQtYmFubmVye1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuICAuZGFzaGJvYXJkLWFsZXJ0LWFjdGlvbnN7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuIiwiLyogTGF5b3V0IG5hYXN0IGFib3V0LXRla3N0ICovXHJcbi5hYm91dC13aXRoLXZpZXdlciB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxLjA1ZnIpIG1pbm1heCgwLCAxLjJmcik7XHJcbiAgZ2FwOiAzcmVtO1xyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG59XHJcblxyXG4uYWJvdXRfX3ZpZXdlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLmFib3V0X192aWV3ZXItdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC4xMmVtO1xyXG4gIG9wYWNpdHk6IC43NTtcclxufVxyXG5cclxuLyogVHJhbnNwYXJhbnRlIHZhcmlhbnQgb3AgZGUgaG9tZXBhZ2UgKi9cclxuLmhlYXRtYXAtY2FyZC0tdHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uaGVhdG1hcC1jYXJkLWJvZHktLWNvbXBhY3Qge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5oZWF0bWFwLXZpZXdwb3J0LS10cmFuc3BhcmVudCB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qIHNsaWRlciAvIHJhbmdlLWNvbnRyb2xzIChjb21wYWN0KSAqL1xyXG4uaGVhdG1hcC1yYW5nZS1jb250cm9scyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5oZWF0bWFwLXJhbmdlLWlucHV0cyB7XHJcbiAgZmxleDogMTtcclxufVxyXG5cclxuLmhlYXRtYXAtcmFuZ2UtbGFiZWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XHJcbiAgb3BhY2l0eTogMC43O1xyXG4gIGNvbG9yOndoaXRlO1xyXG59XHJcblxyXG4uaGVhdG1hcC1yYW5nZS1pbnB1dC1ncm91cCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC40cmVtO1xyXG59XHJcblxyXG4uaGVhdG1hcC1yYW5nZS1pbnB1dCB7XHJcbiAgd2lkdGg6IDVyZW07XHJcbiAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6OHB4O1xyXG59XHJcblxyXG4uaGVhdG1hcC1yYW5nZS1zZXAge1xyXG4gIG9wYWNpdHk6IDAuNztcclxuICBmb250LXNpemU6IDAuOHJlbTtcclxufVxyXG5cclxuLmhlYXRtYXAtcmFuZ2UtbGVnZW5kIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAwLjFyZW07XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgb3BhY2l0eTogMC44O1xyXG4gIGNvbG9yOndoaXRlO1xyXG59XHJcblxyXG4vKiBNb2JpZWw6IHZpZXdlciBvbmRlciBkZSB0ZWtzdCAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcclxuICAuYWJvdXQtd2l0aC12aWV3ZXIge1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XHJcbiAgICBwYWRkaW5nOiAxMHZoIDAgO1xyXG4gICAgZGlzcGxheTpibG9jaztcclxuICB9XHJcbn0iLCJoNntcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgY29sb3I6IHZhcigtLWJzLWhlYWRpbmctY29sb3IpO1xyXG59XHJcblxyXG5oNXtcclxuICAgIGNvbG9yOndoaXRlO1xyXG59XHJcblxyXG4uYnRuLWNsb3Nle1xyXG4gICAgY29sb3I6dmFyKC0tYWNjZW50KVxyXG59XHJcblxyXG4uc21hbGx7XHJcbiAgICBjb2xvcjp3aGl0ZSFpbXBvcnRhbnQ7XHJcbn1cclxuLnRleHQtbXV0ZWR7XHJcbiAgICAgICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcclxufVxyXG4udGV4dC1tdXRlZCB0aCwgLnRleHQtbXV0ZWQgdGR7XHJcbiAgICAgICAgY29sb3I6ICNiMGIwYjAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmtwaS1jYXJkIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgwLDAsMCwuMjUpO1xyXG59XHJcblxyXG4ua3BpLWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMzBweCByZ2JhKDAsMCwwLC40KTtcclxufVxyXG5cclxuLyogS2xldXJlbiAqL1xyXG4ua3BpLWJsdWUgICB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxZTg4ZTUsICMxNTY1YzApOyB9XHJcbi5rcGktZ3JlZW4gIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzQzYTA0NywgIzJlN2QzMik7IH1cclxuLmtwaS1vcmFuZ2UgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmI4YzAwLCAjZWY2YzAwKTsgfVxyXG4ua3BpLXJlZCAgICB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlNTM5MzUsICNiNzFjMWMpOyB9XHJcblxyXG4ucm93e1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbi5hZG1pbi1tYWluLWlubmVye1xyXG4gICAgcGFkZGluZy1yaWdodDo1MHB4O1xyXG59XHJcblxyXG4ubW9kYWwtY29udGVudHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoNTksNTksNTksMSksIHJnYmEoMTQsMTEsMTEsMSkpO1xyXG59XHJcblxyXG4udGV4dC1kYXJre1xyXG4gICAgY29sb3I6dmFyKC0tYnRuLWJnKTtcclxufVxyXG5cclxuLmNhZC1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQge1xyXG4gIHdpZHRoOiAyLjVlbTtcclxuICBoZWlnaHQ6IDEuM2VtO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xyXG4gIGJvcmRlci1jb2xvcjogIzM0M2E0MDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLCBib3JkZXItY29sb3IgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTtcclxufVxyXG5cclxuLmNhZC1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQ6Y2hlY2tlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMWIyMzsgICAvKiBSRVNUaW5zcGVjdCByb29kICovXHJcbiAgYm9yZGVyLWNvbG9yOiAjZTMxYjIzO1xyXG59XHJcblxyXG4uY2FkLXN3aXRjaCAuZm9ybS1jaGVjay1pbnB1dDpmb2N1cyB7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4xNXJlbSByZ2JhKDIyNywyNywzNSwuMzUpO1xyXG59XHJcblxyXG4uY2FkLXN3aXRjaCAuZm9ybS1jaGVjay1sYWJlbCB7XHJcbiAgY29sb3I6ICNmOGY5ZmE7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5jYWQtc3dpdGNoIC5mb3JtLXRleHQge1xyXG4gIGNvbG9yOiAjYWViMGIzO1xyXG59XHJcblxyXG4jbWFwRmlsdGVyc0Zvcm17XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgVFJVU1RFRCBEQVNIQk9BUkQgVklFVyAoT3BzIENvbnNvbGUpXHJcbiAgIC0gQWxsIGN1c3RvbSBzdHlsaW5nIGlzIHNjb3BlZCB1bmRlciAub3BzZGFzaCB0byBhdm9pZFxyXG4gICAgIG1lc3Npbmcgd2l0aCBleGlzdGluZyBjYWQtKiBzdHlsaW5nIGVsc2V3aGVyZS5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5vcHNkYXNoeyBwYWRkaW5nOiAxLjI1cmVtIDA7IH1cclxuLm9wc2Rhc2ggLm9wc2Rhc2gtaGVhZGVye1xyXG4gIGRpc3BsYXk6ZmxleDtcclxuICBhbGlnbi1pdGVtczpmbGV4LWVuZDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtcclxuICBnYXA6MXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAuODVyZW07XHJcbn1cclxuLm9wc2Rhc2ggLm9wc2Rhc2gtdGl0bGV7XHJcbiAgbWFyZ2luOjA7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBsZXR0ZXItc3BhY2luZzogLjAyZW07XHJcbn1cclxuLm9wc2Rhc2ggLm9wc2Rhc2gtc3VidGl0bGV7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIG9wYWNpdHk6Ljc1O1xyXG4gIG1hcmdpbi10b3A6LjJyZW07XHJcbn1cclxuLm9wc2Rhc2ggLm9wc2Rhc2gtY29udHJvbHN7XHJcbiAgZGlzcGxheTpmbGV4O1xyXG4gIGdhcDouNXJlbTtcclxuICBmbGV4LXdyYXA6d3JhcDtcclxuICBhbGlnbi1pdGVtczpjZW50ZXI7XHJcbn1cclxuLm9wc2Rhc2ggLm9wc2Rhc2gtaW5wdXR7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjI1KTtcclxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuOTIpO1xyXG4gIHBhZGRpbmc6IC4zNXJlbSAuNnJlbTtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG4ub3BzZGFzaCAub3BzZGFzaC1idG57XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA2KTtcclxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuOTIpO1xyXG4gIHBhZGRpbmc6IC4zNXJlbSAuNjVyZW07XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIHRleHQtZGVjb3JhdGlvbjpub25lO1xyXG4gIGRpc3BsYXk6aW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xyXG4gIGdhcDouNHJlbTtcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG4ub3BzZGFzaCAub3BzZGFzaC1idG46aG92ZXJ7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4yOCk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMTApO1xyXG59XHJcbi5vcHNkYXNoIC5vcHNkYXNoLWJ0bi5pcy1hY3RpdmV7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDEzLDExMCwyNTMsLjU1KTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDEzLDExMCwyNTMsLjEyKTtcclxufVxyXG5cclxuLm9wc2Rhc2ggLm9wc2Rhc2gtZ3JpZHsgbWFyZ2luLXRvcDogLjhyZW07IH1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQUxFUlQgQ0VOVEVSIChSdW5odWIpXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLm9wc2Rhc2ggLnJ1bmh1YnsgbWFyZ2luLWJvdHRvbTogMS4xcmVtOyB9XHJcbi5vcHNkYXNoIC5ydW5odWItYWxlcnRiYXJ7XHJcbiAgZGlzcGxheTpncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcclxuICBnYXA6LjZyZW07XHJcbn1cclxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXtcclxuICAub3BzZGFzaCAucnVuaHViLWFsZXJ0YmFyeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH1cclxufVxyXG4ub3BzZGFzaCAucnVuaHViLWNoaXB7XHJcbiAgZGlzcGxheTpmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuICBnYXA6LjU1cmVtO1xyXG4gIHBhZGRpbmc6LjU1cmVtIC43cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNik7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTAsIDEyLCAuNTUpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjpub25lO1xyXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC45Mik7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4wOHMgZWFzZSwgYm9yZGVyLWNvbG9yIC4wOHMgZWFzZSwgYmFja2dyb3VuZCAuMDhzIGVhc2U7XHJcbiAgbWluLWhlaWdodDogNTZweDtcclxufVxyXG4ub3BzZGFzaCAucnVuaHViLWNoaXA6aG92ZXJ7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMzApO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEwLCAxMiwgLjcwKTtcclxufVxyXG4ub3BzZGFzaCAucnVuaHViLWNoaXBfX2ljb257XHJcbiAgd2lkdGg6IDM0cHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgZGlzcGxheTpmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTQpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA2KTtcclxuICBmbGV4OjAgMCBhdXRvO1xyXG59XHJcbi5vcHNkYXNoIC5ydW5odWItY2hpcF9faWNvbiBpeyBmb250LXNpemU6IDE2cHg7IH1cclxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwX19tZXRheyBtaW4td2lkdGg6MDsgfVxyXG4ub3BzZGFzaCAucnVuaHViLWNoaXBfX2xhYmVse1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBsZXR0ZXItc3BhY2luZzogLjAyZW07XHJcbiAgb3BhY2l0eTogLjg1O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcbi5vcHNkYXNoIC5ydW5odWItY2hpcF9fY291bnR7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMTtcclxuICBsZXR0ZXItc3BhY2luZzogLjAyZW07XHJcbn1cclxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwX19iYWRnZXtcclxuICBtYXJnaW4tbGVmdDphdXRvO1xyXG4gIGRpc3BsYXk6aW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xyXG4gIGdhcDouMzVyZW07XHJcbiAgcGFkZGluZzouMjVyZW0gLjVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XHJcbiAgZm9udC1zaXplOiAxMXB4O1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTgpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA2KTtcclxuICBmbGV4OjAgMCBhdXRvO1xyXG4gIG9wYWNpdHk6LjkyO1xyXG59XHJcblxyXG4vKiBTZXZlcml0eSB2YXJpYW50cyAqL1xyXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLWRhbmdlcntcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjIwLDUzLDY5LC41NSk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyMjAsNTMsNjksLjEwKTtcclxufVxyXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLWRhbmdlciAucnVuaHViLWNoaXBfX2ljb257XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIyMCw1Myw2OSwuNTUpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjIwLDUzLDY5LC4xNik7XHJcbn1cclxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS13YXJuaW5ne1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMTkzLDcsLjU1KTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwxOTMsNywuMTApO1xyXG59XHJcbi5vcHNkYXNoIC5ydW5odWItY2hpcC0td2FybmluZyAucnVuaHViLWNoaXBfX2ljb257XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwxOTMsNywuNTUpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDE5Myw3LC4xNik7XHJcbn1cclxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS1pbmZve1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMywxMTAsMjUzLC41NSk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxMywxMTAsMjUzLC4xMCk7XHJcbn1cclxuLm9wc2Rhc2ggLnJ1bmh1Yi1jaGlwLS1pbmZvIC5ydW5odWItY2hpcF9faWNvbntcclxuICBib3JkZXItY29sb3I6IHJnYmEoMTMsMTEwLDI1MywuNTUpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMTMsMTEwLDI1MywuMTYpO1xyXG59XHJcbi5vcHNkYXNoIC5ydW5odWItY2hpcC0tb2t7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNik7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMDYpO1xyXG59XHJcblxyXG4vKiBQdWxzZSBvbmx5IGZvciByZWFsIGFsZXJ0cyAqL1xyXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLWRhbmdlci5ydW5odWItY2hpcC0tcHVsc2V7XHJcbiAgYW5pbWF0aW9uOiBydW5odWJQdWxzZURhbmdlciAxLjE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxufVxyXG4ub3BzZGFzaCAucnVuaHViLWNoaXAtLXdhcm5pbmcucnVuaHViLWNoaXAtLXB1bHNle1xyXG4gIGFuaW1hdGlvbjogcnVuaHViUHVsc2VXYXJuIDEuMzVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xyXG59XHJcbkBrZXlmcmFtZXMgcnVuaHViUHVsc2VEYW5nZXJ7XHJcbiAgMCUsMTAwJXsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDIyMCw1Myw2OSwuMCk7IH1cclxuICA1MCV7IGJveC1zaGFkb3c6IDAgMCAwIDZweCByZ2JhKDIyMCw1Myw2OSwuMTgpOyB9XHJcbn1cclxuQGtleWZyYW1lcyBydW5odWJQdWxzZVdhcm57XHJcbiAgMCUsMTAwJXsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwxOTMsNywuMCk7IH1cclxuICA1MCV7IGJveC1zaGFkb3c6IDAgMCAwIDZweCByZ2JhKDI1NSwxOTMsNywuMTYpOyB9XHJcbn1cclxuXHJcbi8qIE9uZS10aW1lIGhpZ2hsaWdodCBwdWxzZSB3aGVuIG5hdmlnYXRpbmcgdG8gYSBjYXJkICovXHJcbkBrZXlmcmFtZXMgb3BzRm9jdXMge1xyXG4gIDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDEzLDExMCwyNTMsLjApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cclxuICAzMCUgeyBib3gtc2hhZG93OiAwIDAgMCA2cHggcmdiYSgxMywxMTAsMjUzLC4xOCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgfVxyXG4gIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTMsMTEwLDI1MywuMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxyXG59XHJcbi5vcHNkYXNoIC5vcHMtZm9jdXN7XHJcbiAgYW5pbWF0aW9uOiBvcHNGb2N1cyAuOXMgZWFzZS1vdXQgMTtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBPcHMgY2FyZHMgKHRhYmxlcylcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4ub3BzZGFzaCAub3BzLWNhcmR7XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNCk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjgpO1xyXG4gIHBhZGRpbmc6IC44NXJlbSAuOXJlbTtcclxufVxyXG4ub3BzZGFzaCAub3BzLWNhcmRfX2hlYWR7XHJcbiAgZGlzcGxheTpmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtcclxuICBnYXA6Ljc1cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xyXG59XHJcbi5vcHNkYXNoIC5vcHMtY2FyZF9fdGl0bGV7XHJcbiAgZGlzcGxheTpmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuICBnYXA6LjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBsZXR0ZXItc3BhY2luZzogLjAyZW07XHJcbiAgbWFyZ2luOjA7XHJcbn1cclxuLm9wc2Rhc2ggLm9wcy1jYXJkX190aXRsZSBpeyBvcGFjaXR5Oi45OyB9XHJcbi5vcHNkYXNoIC5vcHMtY2FyZF9fbWV0YXtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgb3BhY2l0eTouODtcclxuICBkaXNwbGF5OmZsZXg7XHJcbiAgZ2FwOi41cmVtO1xyXG4gIGZsZXgtd3JhcDp3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxufVxyXG4ub3BzZGFzaCAub3BzLXBpbGx7XHJcbiAgZGlzcGxheTppbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczpjZW50ZXI7XHJcbiAgZ2FwOi4zNXJlbTtcclxuICBwYWRkaW5nOi4xMnJlbSAuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNik7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMDYpO1xyXG59XHJcbi5vcHNkYXNoIC5vcHMtcGlsbC0tZGFuZ2VyeyBib3JkZXItY29sb3I6IHJnYmEoMjIwLDUzLDY5LC40NSk7IGJhY2tncm91bmQ6IHJnYmEoMjIwLDUzLDY5LC4xMik7IH1cclxuLm9wc2Rhc2ggLm9wcy1waWxsLS13YXJuaW5neyBib3JkZXItY29sb3I6IHJnYmEoMjU1LDE5Myw3LC40NSk7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDE5Myw3LC4xMik7IH1cclxuLm9wc2Rhc2ggLm9wcy1waWxsLS1pbmZveyBib3JkZXItY29sb3I6IHJnYmEoMTMsMTEwLDI1MywuNDUpOyBiYWNrZ3JvdW5kOiByZ2JhKDEzLDExMCwyNTMsLjEyKTsgfVxyXG5cclxuLm9wc2Rhc2ggLm9wcy1jYXJkX19hY3Rpb25ze1xyXG4gIGRpc3BsYXk6ZmxleDtcclxuICBnYXA6LjQ1cmVtO1xyXG4gIGZsZXgtd3JhcDp3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxufVxyXG4ub3BzZGFzaCAub3BzLWNhcmRfX2FjdGlvbnMgYXtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wNik7XHJcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjg4KTtcclxuICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgcGFkZGluZzogLjI1cmVtIC41NXJlbTtcclxuICBkaXNwbGF5OmlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuICBnYXA6LjM1cmVtO1xyXG59XHJcbi5vcHNkYXNoIC5vcHMtY2FyZF9fYWN0aW9ucyBhOmhvdmVye1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMjgpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjEwKTtcclxufVxyXG5cclxuLm9wc2Rhc2ggLm9wcy1zY3JvbGx7XHJcbiAgbWF4LWhlaWdodDogMjcwcHg7XHJcbiAgb3ZlcmZsb3c6YXV0bztcclxufVxyXG4ub3BzZGFzaCAub3BzLXRhYmxle1xyXG4gIHdpZHRoOjEwMCU7XHJcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuLm9wc2Rhc2ggLm9wcy10YWJsZSB0aHtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgb3BhY2l0eTouODA7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICBwYWRkaW5nOiAuNDVyZW0gLjM1cmVtO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7XHJcbn1cclxuLm9wc2Rhc2ggLm9wcy10YWJsZSB0ZHtcclxuICBwYWRkaW5nOiAuNDVyZW0gLjM1cmVtO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG4ub3BzZGFzaCAubXV0ZWR7IG9wYWNpdHk6Ljc7IH1cclxuLm9wc2Rhc2ggLm9wcy1yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfVxyXG5cclxuLm9wc2Rhc2ggLm9wcy1lbXB0eXtcclxuICBwYWRkaW5nOiAxcmVtIC41cmVtO1xyXG4gIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gIG9wYWNpdHk6Ljc1O1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJ1c2luZXNzIG1ldHJpY3MgKGNvbXBhY3QpXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLm9wc2Rhc2ggLmJpemJhcntcclxuICBkaXNwbGF5OmdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xyXG4gIGdhcDogLjZyZW07XHJcbiAgbWFyZ2luLXRvcDogLjlyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpe1xyXG4gIC5vcHNkYXNoIC5iaXpiYXJ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsgfVxyXG59XHJcbi5vcHNkYXNoIC5iaXp0aWxle1xyXG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNCk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMDYpO1xyXG4gIHBhZGRpbmc6IC42cmVtIC43cmVtO1xyXG59XHJcbi5vcHNkYXNoIC5iaXp0aWxlX19sYWJlbHtcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgb3BhY2l0eTouODtcclxuICBkaXNwbGF5OmZsZXg7XHJcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xyXG4gIGdhcDouNHJlbTtcclxufVxyXG4ub3BzZGFzaCAuYml6dGlsZV9fdmFsdWV7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xyXG4gIG1hcmdpbi10b3A6LjE1cmVtO1xyXG59XHJcbi5vcHNkYXNoIC5iaXp0aWxlX19oaW50e1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBvcGFjaXR5Oi43MjtcclxuICBtYXJnaW4tdG9wOi4xNXJlbTtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBNYXA6IGtlZXAgZXhpc3RpbmcgbGF5b3V0LCBqdXN0IGltcHJvdmUgZGVuc2l0eSBhIGJpdFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5vcHNkYXNoIC5tYXB3cmFwe1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTQpO1xyXG59XHJcbi5vcHNkYXNoIC5tYXAtcGFuZWx7XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE0KTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4yMik7XHJcbiAgcGFkZGluZzogLjg1cmVtIC45cmVtO1xyXG59IiwiLmJ0bntcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/