/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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;
}

.btn-link {
  --bs-btn-font-weight: 400;
  --bs-btn-color: white;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: #E53935;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: #E53935;
  --bs-btn-active-border-color: transparent;
  --bs-btn-disabled-color: #6c757d;
  --bs-btn-disabled-border-color: transparent;
  --bs-btn-box-shadow: 0 0 0 #000;
  --bs-btn-focus-shadow-rgb: 49, 132, 253;
  text-decoration: underline;
}

: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;
}

#loginForm, #setPasswordForm, #forgotForm {
  display: grid;
  gap: 14px;
}
#loginForm label, #setPasswordForm label, #forgotForm label {
  font-size: 13px;
  color: #e6e6e6;
}
#loginForm .input, #setPasswordForm .input, #forgotForm .input {
  position: relative;
}
#loginForm input[type=text], #loginForm input[type=email], #loginForm input[type=password], #setPasswordForm input[type=text], #setPasswordForm input[type=email], #setPasswordForm input[type=password], #forgotForm input[type=text], #forgotForm input[type=email], #forgotForm 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;
}
#loginForm input[type=text]:focus, #loginForm input[type=email]:focus, #loginForm input[type=password]:focus, #setPasswordForm input[type=text]:focus, #setPasswordForm input[type=email]:focus, #setPasswordForm input[type=password]:focus, #forgotForm input[type=text]:focus, #forgotForm input[type=email]:focus, #forgotForm input[type=password]:focus {
  border-color: #404040;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.0705882353);
}
#loginForm .toggle-pass, #setPasswordForm .toggle-pass, #forgotForm .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;
}
#loginForm .row, #setPasswordForm .row, #forgotForm .row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
#loginForm .row .remember, #setPasswordForm .row .remember, #forgotForm .row .remember {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #e6e6e6;
}
#loginForm .row a, #setPasswordForm .row a, #forgotForm .row a {
  color: #fff;
  text-decoration: none;
}
#loginForm .row a:hover, #setPasswordForm .row a:hover, #forgotForm .row a:hover {
  text-decoration: underline;
}
#loginForm button[type=submit], #setPasswordForm button[type=submit], #forgotForm 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;
}
#loginForm button[type=submit]:hover, #setPasswordForm button[type=submit]:hover, #forgotForm button[type=submit]:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(255, 77, 77, 0.35);
}
#loginForm .hint, #setPasswordForm .hint, #forgotForm .hint {
  font-size: 12px;
  color: var(--muted);
}
#loginForm .alert, #setPasswordForm .alert, #forgotForm .alert {
  display: none;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
}
#loginForm .alert.show, #setPasswordForm .alert.show, #forgotForm .alert.show {
  display: block;
}
#loginForm .alert.error, #setPasswordForm .alert.error, #forgotForm .alert.error {
  background: #2a1414;
  border-color: #a33333;
}
#loginForm .alert.ok, #setPasswordForm .alert.ok, #forgotForm .alert.ok {
  background: #133016;
  border-color: #2c8a31;
}

: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: 100px 24px 80px;
  max-width: 960px;
  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);
}

ul {
  margin-left: 20px;
}

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

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

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 */
}

.btn-danger {
  background: #e31b23;
  border-color: #e31b23;
}

.btn-danger:hover {
  filter: brightness(1.05);
}

.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;
  height: 100%;
  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);
  backdrop-filter: blur(4px);
}

.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 */
/* override de celregel van Bootstrap */
.cad-table {
  --row-hover: rgba(255,255,255,.03);
  width: 100%;
}

.cad-table thead th {
  border: 0;
  font-weight: 600;
  color: var(--cad-muted);
  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: var(--cad-bg);
}

.cad-table tbody tr:hover {
  background: var(--row-hover);
}

/* 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(12, 84, 237, 0.12);
  border: 1px solid rgba(12, 83, 237, 0.829);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  font-weight: 700;
  font-size: 0.8rem;
  color: rgba(12, 83, 237, 0.829);
}

/* 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);
}

.admin-sidebar {
  width: 240px;
  min-height: 100vh;
  position: fixed;
  z-index: 99999999999;
  background: linear-gradient(180deg, #1b1b1b, #0f0f0f);
  color: #fff;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-sidebar .nav-link {
  color: rgba(255, 255, 255, 0.75);
  padding: 0.6rem 1rem;
  border-radius: 0.4rem;
  transition: all 0.15s;
}

.admin-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.admin-sidebar .nav-link.active {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

:root {
  --sidebar-w: 260px; /* pas aan naar smaak */
  --page-max: 1280px; /* max breedte van je content-kolom */
}

.admin-layout {
  display: flex;
  min-height: 100vh;
}

/* Zorg dat je bestaande .admin-sidebar hierop aansluit */
.admin-sidebar {
  width: var(--sidebar-w);
  flex: 0 0 var(--sidebar-w);
  position: sticky; /* blijft staan bij scrollen */
  top: 0;
  height: 100vh;
  overflow: auto;
}

/* Rechter kolom vult de rest automatisch */
.admin-main {
  flex: 1 1 auto;
  min-width: 0; /* voorkomt overflow issues met flex */
}

/* Centreer de echte pagina-inhoud */
.admin-main-inner {
  margin-left: auto;
  margin-right: auto;
  padding: 24px clamp(12px, 2vw, 32px);
}

/* Optioneel: mobiel gedrag (sidebar bovenaan of via offcanvas) */
@media (max-width: 991.98px) {
  .admin-layout {
    display: block;
  }
  .admin-sidebar {
    position: relative;
    height: auto;
    width: 100%;
    flex: none;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
}
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;
  height: 100%;
  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);
  backdrop-filter: blur(4px);
}

.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;
}

/* ========== 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;
}

html, body {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
  background-color: #212121;
  color: #f0f0f0;
  scroll-behavior: smooth;
}

body {
  scroll-snap-type: y mandatory;
  overflow-y: scroll;
}

#bg-video {
  position: fixed;
  top: 0;
  left: 0;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  object-fit: cover;
  z-index: -1;
  pointer-events: none;
  background: black;
}

.overlay-content {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #f0f0f0;
  padding-top: 20vh;
}

.scroll-indicator {
  position: absolute;
  bottom: 20px;
  width: 100%;
  text-align: center;
  font-size: 24px;
  color: #fff;
  animation: bounce 2s infinite;
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(8px);
  }
}
/* .container {
    #background-color: #2e2e2e;
    padding: 40px;
    border-radius: 12px;
    max-width: 600px;
    width: 90%;
    margin: 0 auto;
    box-shadow: 0 0 20px rgba(0,0,0,0.5);
    text-align: center;
} */
.contact-info {
  text-align: left;
  margin-top: 20px;
}

.contact-info p {
  margin: 10px 0;
}

a {
  color: #80d8ff;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.portal-login {
  position: fixed;
  top: 20px;
  right: 30px;
  background-color: #2e2e2e;
  padding: 12px 16px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  z-index: 1002;
}

.portal-login form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.portal-login input {
  padding: 6px 10px;
  border: none;
  border-radius: 4px;
  font-size: 14px;
}

.portal-login button {
  background-color: #424242;
  color: #f0f0f0;
  border: none;
  border-radius: 4px;
  padding: 6px 10px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.portal-login button:hover {
  background-color: #616161;
}

.error-message {
  color: #ff5252;
  margin-top: 8px;
  font-size: 14px;
}

.hamburger {
  display: none;
  position: absolute;
  top: 20px;
  left: 20px;
  font-size: 32px;
  color: #f0f0f0;
  cursor: pointer;
  z-index: 1001;
}

@media (max-width: 768px) {
  #intro {
    max-height: 9200vh;
  }
}

@media (max-width: 768px) {
  .portal-login {
    display: none;
  }
  .hamburger {
    display: block;
  }
}
.mobile-login-form {
  margin-top: 20vh;
}

.titan-section {
  background-color: #262626;
  padding-top: 10vh;
  padding-bottom: 10vh;
  color: #f0f0f0;
}
@media (max-width: 768px) {
  .titan-section {
    padding-top: 10vh;
  }
}

.titan-container {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row-reverse; /* ← This flips image to right, text to left */
  max-width: 60vw;
  margin: 0 auto;
  align-items: center;
  gap: 40px;
}
@media (max-width: 768px) {
  .titan-container {
    gap: 0px;
    max-width: 100vw;
    flex-wrap: nowrap;
  }
}

.titan-image {
  flex: 1 1 400px;
  max-width: 500px;
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}
@media (max-width: 768px) {
  .titan-image {
    flex: 1 1 0;
    width: 100vw;
    height: 50%;
    width: 100%;
  }
}

.titan-text {
  flex: 1 1 400px;
  min-width: 280px;
}
@media (max-width: 768px) {
  .titan-text {
    flex: 1 1 1;
    min-width: 80vw;
  }
}

.titan-text h2 {
  font-size: 32px;
  margin-bottom: 20px;
  color: #80d8ff;
}

.titan-text p {
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 16px;
}

@media (max-width: 768px) {
  .titan-container {
    flex-direction: column;
    text-align: center;
  }
}
.site-footer {
  background-color: #1b1b1b;
  color: #ccc;
  text-align: center;
  padding: 20px 10px;
  font-size: 14px;
  border-top: 1px solid #333;
}

.site-footer a {
  color: #80d8ff;
  text-decoration: none;
  margin: 0 5px;
}

.site-footer a:hover {
  text-decoration: underline;
}

/* HEADER */
.corner-logo {
  top: 20px;
  width: 60px;
  height: auto;
  z-index: 1003;
  opacity: 0.9;
  transition: transform 0.3s ease;
}
@media (min-width: 768px) {
  .corner-logo {
    left: 0px;
    position: fixed;
  }
}
@media (max-width: 768px) {
  .corner-logo {
    position: absolute;
    right: 110px;
    width: 20px;
  }
}

.logo2 {
  width: 225px;
}
@media (max-width: 768px) {
  .logo2 {
    right: 50px;
    width: 100px;
    top: 10px;
  }
}

.corner-logo:hover {
  transform: scale(1.1);
}

.top-header {
  position: fixed;
  top: 0;
  right: 0;
  background-color: #2e2e2e;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 15px;
  z-index: 1100;
  border-bottom-left-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.top-header .header-btn {
  background-color: #424242;
  color: #fff;
  padding: 6px 12px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 14px;
  transition: background-color 0.3s ease;
}

.top-header .header-btn:hover {
  background-color: #616161;
}

.top-header .logout {
  background-color: #b71c1c;
}

.top-header .logout:hover {
  background-color: #d32f2f;
}

.user-status {
  color: #80d8ff;
  font-size: 14px;
  font-weight: bold;
}

section {
  padding: 60px 0;
}

/* Contactformulier */
.contact-form input,
.contact-form textarea {
  display: block;
  width: 100%;
  margin-bottom: 15px;
  padding: 10px;
  font-size: 1em;
}

.contact-form button {
  padding: 10px 20px;
  background-color: #e02d24;
  color: white;
  border: none;
  cursor: pointer;
}

.contact-form button:hover {
  background-color: #900;
}

/* Responsive */
@media (max-width: 768px) {
  nav {
    width: 100%;
    height: auto;
    position: relative;
    transform: none !important;
  }
  .toggle-btn {
    left: 10px;
  }
  main,
  header,
  .top-banner {
    margin-left: 0;
  }
  .top-banner {
    flex-direction: column;
    text-align: center;
  }
  .top-banner img {
    margin-top: 30px;
    min-width: 150px;
  }
}
#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-consent-title {
  font-size: 18px;
  margin: 0 0 6px;
  color: #80d8ff;
}

#ri-consent-text {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 12px;
  color: #ccc;
}

#ri-consent-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

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

.ri-btn:hover {
  background: #3a3a3a;
}

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

.ri-btn-primary:hover {
  background: #2a7bff;
}

.ri-link {
  color: #80d8ff;
  text-decoration: underline;
  cursor: pointer;
}

#ri-consent-panel {
  margin-top: 10px;
  padding: 12px;
  border-radius: 10px;
  background: #1a1a1a;
  display: none;
}

.ri-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #2a2a2a;
}

.ri-row:last-child {
  border-bottom: 0;
}

.ri-row label {
  font-size: 14px;
  color: #ddd;
}

.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);
}

@media (max-width: 768px) {
  #ri-consent-inner {
    padding: 14px;
  }
}
.top-banner {
  background-color: #0d0343;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 10vw 15vw;
  color: white;
}

.top-banner .text {
  max-width: 500px;
}

.top-banner img {
  max-width: 400px;
  width: 100%;
  border-radius: 8px;
}

.top-banner a {
  display: inline-block;
  margin-top: 20px;
  padding: 12px 24px;
  background: white;
  color: var(--primary-color);
  font-weight: bold;
  border-radius: 5px;
  text-decoration: none;
}

/* ------ Theme ------ */
:root {
  --bg:#121212;
  --panel:#1e1e1e;
  --panel-2:#262626;
  --fg:#ffffff;
  --muted:#cfcfcf;
  --accent:#ff4d4d;
}

/* ------ Base ------ */
#intro {
  display: grid;
  place-items: center;
  padding: 6vw 6vw;
  color: var(--fg);
  background: radial-gradient(1400px 700px at 15% -10%, #2a2a2a 0%, #1b1b1b 55%, var(--bg) 100%), linear-gradient(180deg, #161616, #121212);
  position: relative;
  overflow: hidden;
  gap: 28px;
  isolation: isolate;
}

#intro .container {
  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 .container {
    grid-template-columns: 1fr;
  }
}
/* ------ Left: Content ------ */
#intro .kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.0588235294);
  color: var(--muted);
  border: 1px solid rgba(255, 255, 255, 0.1019607843);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 12px;
  letter-spacing: 0.4px;
  backdrop-filter: blur(6px);
}

#intro h1 {
  font-size: clamp(36px, 5vw, 68px);
  line-height: 1.05;
  margin: 12px 0 10px;
  letter-spacing: 0.4px;
}

#intro .lead {
  color: var(--muted);
  font-size: clamp(16px, 1.4vw, 18px);
  max-width: 64ch;
  margin: 0 0 18px;
}

#intro .cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 18px 0 10px;
}

#intro .btn {
  appearance: none;
  border: 1px solid transparent;
  cursor: pointer;
  padding: 12px 18px;
  border-radius: 12px;
  font-weight: 600;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

#intro .btn.primary {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 12px 24px rgba(255, 77, 77, 0.25);
}

#intro .btn.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(255, 77, 77, 0.35);
}

#intro .btn.ghost {
  background: rgba(255, 255, 255, 0.0549019608);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.1411764706);
}

#intro .btn.ghost:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.2509803922);
}

/* ------ Feature badges ------ */
#intro .badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

#intro .badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--panel);
  border: 1px solid #2f2f2f;
  padding: 8px 12px;
  border-radius: 999px;
  color: #eaeaea;
}

#intro .badge svg {
  width: 16px;
  height: 16px;
}

/* ------ Right: Visual ------ */
#intro .visual {
  position: relative;
  height: clamp(280px, 42vw, 520px);
  background: linear-gradient(135deg, var(--panel-2), var(--panel));
  border: 1px solid #303030;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
  display: grid;
  place-items: center;
}

#intro .visual img,
#intro .visual video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
  mix-blend-mode: normal;
}

/* Decorative cube / placeholder if no image */
#intro .cube {
  width: 58%;
  aspect-ratio: 1/1;
  min-width: 220px;
  max-width: 380px;
  /* background: linear-gradient(145deg, #f44, #d22); */
  border-radius: 18px;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.5px;
  font-size: clamp(48px, 8vw, 96px);
  /* box-shadow: 0 30px 60px rgba(255,77,77,.35); */
}

/* ------ Mini cards under content ------ */
#intro .mini {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(12px, 2vw, 18px);
  margin-top: 22px;
}

#intro .card {
  grid-column: span 12;
  background: linear-gradient(180deg, var(--panel), #1f1f1f);
  border: 1px solid #2d2d2d;
  border-radius: 16px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: center;
}

#intro .icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.0705882353);
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.1254901961);
}

#intro .card h3 {
  margin: 0 0 2px;
  font-size: 16px;
}

#intro .card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

@media (min-width: 760px) {
  #intro .card {
    grid-column: span 6;
  }
}
@media (min-width: 1100px) {
  #intro .card {
    grid-column: span 4;
  }
}
/* ------ Scroll indicator ------ */
.scroll-indicator {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.7019607843);
  font-size: 13px;
  letter-spacing: 0.4px;
  display: flex;
  align-items: center;
  gap: 8px;
  opacity: 0.9;
}

@media (max-width: 960px) {
  .scroll-indicator {
    display: None;
  }
}
.scroll-indicator .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  animation: 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 bounce {
  0%, 60%, 100% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-6px);
  }
}
/* Zorg dat de sentinel echt het viewport in kan komen */
#header-sentinel {
  position: relative;
  height: 2px; /* >0 is genoeg */
  width: 100%;
  pointer-events: none;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 72px;
}

:root {
  --tb-bg: rgba(18,18,18,.72);
  --tb-stroke: #2a2a2a;
  --tb-accent:#ff4d4d;
  --tb-text:#fff;
  --tb-muted:#cfcfcf;
}

/* Base topbar */
.topbar {
  position: fixed;
  inset: 0 0 auto 0;
  height: 64px;
  z-index: 1000;
  display: grid;
  place-items: center;
  transform: translateY(-18px);
  opacity: 0;
  transition: transform 0.25s ease, opacity 0.25s ease, background 0.2s ease, border-color 0.2s ease;
  background: var(--tb-bg);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
}

/* Revealed state */
.topbar[data-reveal=true] {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  border-bottom-color: var(--tb-stroke);
}

.topbar__inner {
  width: 100%;
  margin-inline: auto;
  padding: 0 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.logo img {
  display: block;
  height: 46px;
  width: auto;
}

.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);
}

.navbar a.login {
  color: #fff;
  background: var(--tb-accent);
  border-color: transparent;
  padding: 8px 14px;
  border-radius: 12px;
}

.navbar a.login:hover {
  box-shadow: 0 10px 24px rgba(255, 77, 77, 0.32);
  transform: translateY(-1px);
}

/* Mobile toggle */
#top-banner {
  --bg:#121212;
  --fg:#fff;
  --muted:#bdbdbd;
  --accent:#ff4d4d;
  --pad:8vw 6vw;
}

.top-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: var(--pad);
  color: var(--fg);
  background: radial-gradient(1200px 600px at 10% 20%, #1b1b1b, var(--bg));
  background-size: cover;
  position: relative;
  overflow: hidden;
  min-height: 95vh;
}

.top-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255, 77, 77, 0.1254901961) 0%, transparent 60%);
}

.top-banner .text {
  z-index: 1;
  max-width: 600px;
  flex: 1 1 460px;
}

.top-banner h1 {
  font-size: clamp(36px, 5vw, 64px);
  margin: 0 0 0.6em;
  background: linear-gradient(90deg, var(--accent), #ff8d4d);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.top-banner p {
  font-size: 1.15rem;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 2rem;
  max-width: 52ch;
}

.top-banner a.cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 14px;
  background: var(--accent);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(255, 77, 77, 0.3);
  transition: transform 0.2s, box-shadow 0.2s;
}

.top-banner a.cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(255, 77, 77, 0.45);
}

.top-banner img {
  flex: 1 1 380px;
  max-width: 420px;
  width: 100%;
  height: auto;
  object-fit: contain;
  z-index: 1;
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.5));
  transition: transform 0.6s ease;
}

.top-banner:hover img {
  transform: scale(1.04);
}

@media (max-width: 820px) {
  .top-banner {
    text-align: center;
    justify-content: center;
  }
  .top-banner img {
    margin-top: 40px;
    max-width: 300px;
  }
  .top-banner h1 {
    -webkit-text-fill-color: white;
  }
}
#diensten * {
  box-sizing: border-box;
}

#diensten h2 {
  font-size: clamp(28px, 4vw, 44px);
  margin: 0 0 1.2rem;
  letter-spacing: 0.5px;
}

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

#diensten .grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(14px, 2vw, 22px);
}

#diensten .card {
  grid-column: span 12;
  background: linear-gradient(180deg, var(--card), #242424);
  border: 1px solid #323232;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

#diensten .card:hover {
  transform: translateY(-4px);
  border-color: #3a3a3a;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

#diensten .hero {
  position: relative;
  height: clamp(140px, 22vw, 220px);
  background: radial-gradient(600px 300px at 70% 20%, rgba(255, 77, 77, 0.25), transparent 60%), linear-gradient(135deg, #2f2f2f, #262626);
  display: grid;
  place-items: center;
  border-bottom: 1px solid #303030;
}

#diensten .step {
  position: absolute;
  top: 14px;
  left: 14px;
  background: #ff4d4d;
  color: #fff;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.5px;
  box-shadow: 0 6px 18px rgba(255, 77, 77, 0.35);
}

#diensten .body {
  padding: 18px 18px 20px;
}

#diensten .body h3 {
  margin: 0 0 8px;
  font-size: clamp(18px, 2.2vw, 22px);
}

#diensten .body p {
  margin: 0 0 10px;
  color: var(--muted);
}

#diensten ul {
  margin: 0;
  padding-left: 18px;
  color: #d9d9d9;
}

#diensten li {
  margin-bottom: 6px;
}

/* Responsive columns */
@media (min-width: 720px) {
  #diensten .card {
    grid-column: span 6;
  }
}
@media (min-width: 1080px) {
  #diensten .card {
    grid-column: span 4;
  }
}
/* SVGs */
#diensten svg {
  width: 64%;
  max-width: 240px;
  height: auto;
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.35));
}

#usp-strip {
  background: #ff4d4d;
}

#usp-strip .wrap {
  width: min(1200px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(12px, 2vw, 16px);
  align-items: center;
  background: #ff4d4d;
}

#usp-strip .pill {
  grid-column: span 12;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #2a2a2a, #242424);
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 700;
  box-shadow: 0 8px 28px color-mix(in oklab, var(--panel-2) 25%, transparent);
}

#usp-strip .grid {
  grid-column: span 12;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(12px, 2vw, 16px);
}

#usp-strip .card {
  grid-column: span 12;
  background: linear-gradient(180deg, #1f1f1f, #1a1a1a);
  border: 1px solid #2a2a2a;
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

#usp-strip .card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in oklab, var(--accent) 35%, #2a2a2a);
  box-shadow: 0 16px 36px color-mix(in oklab, var(--accent) 18%, transparent);
}

#usp-strip .icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: linear-gradient(135deg, color-mix(in oklab, var(--accent) 35%, #2a2a2a), #2a2a2a);
  border: 1px solid rgba(255, 255, 255, 0.1882352941);
  display: grid;
  place-items: center;
  flex: 0 0 28px;
}

#usp-strip p {
  margin: 0;
  color: var(--muted);
}

@media (min-width: 860px) {
  #usp-strip .card {
    grid-column: span 4;
  }
}
/* Subtiele animated glow */
/* #usp-strip::before{
  content:""; position:absolute; inset:auto -20% -60% -20%; height:200px;
  background: #ff4d4d;
  filter: blur(30px); opacity:.7; pointer-events:none; animation: uspGlow 10s linear infinite;
}
@keyframes uspGlow{
  0%{ transform: translateY(0) }
  50%{ transform: translateY(10px) }
  100%{ transform: translateY(0) }
} */
/* Respecteer reduced motion */
@media (prefers-reduced-motion: reduce) {
  #usp-strip::before {
    animation: none;
  }
}
#over * {
  box-sizing: border-box;
}

#over h2 {
  font-size: clamp(28px, 4vw, 44px);
  margin-bottom: 1.2rem;
  letter-spacing: 0.5px;
}

#over p.lead {
  color: var(--muted);
  margin-bottom: 3rem;
  max-width: 70ch;
  font-size: clamp(16px, 1.3vw, 18px);
  line-height: 1.6;
}

#over .grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(16px, 2vw, 24px);
  align-items: stretch;
}

#over .card {
  grid-column: span 12;
  background: linear-gradient(180deg, var(--card), #242424);
  border: 1px solid #333;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

#over .card:hover {
  transform: translateY(-4px);
  border-color: #3a3a3a;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

#over .image {
  position: relative;
  background: linear-gradient(135deg, #2f2f2f, #262626);
  display: grid;
  place-items: center;
}

#over .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
}

#over .image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(255, 77, 77, 0.25), transparent 60%);
}

#over .body {
  padding: 24px 24px 28px;
}

#over .body h3 {
  margin: 0 0 10px;
  font-size: clamp(18px, 2vw, 22px);
}

#over .body p {
  color: var(--muted);
  margin: 0;
  line-height: 1.6;
}

/* Responsive columns */
@media (min-width: 720px) {
  #over .card {
    grid-column: span 6;
  }
}
@media (min-width: 1080px) {
  #over .card {
    grid-column: span 4;
  }
}
#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: var(--accent);
  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;
}

#faq {
  --bg:#212121;
  --fg:#fff;
  --muted:#bdbdbd;
  padding: 6vw 6vw;
  color: var(--fg);
  background: radial-gradient(900px 400px at 15% -10%, #2a2a2a, #212121);
  border-top: 1px solid #2a2a2a;
}

#faq .wrap {
  width: min(1000px, 100%);
  margin-inline: auto;
}

#faq h2 {
  font-size: clamp(28px, 4vw, 40px);
  margin: 0 0 14px;
}

#faq details {
  background: #1f1f1f;
  border: 1px solid #2a2a2a;
  border-radius: 14px;
  padding: 12px 16px;
  margin: 10px 0;
}

#faq summary {
  cursor: pointer;
  font-weight: 700;
}

#faq p {
  color: var(--muted);
  margin: 0.6rem 0 0;
}

#footer {
  --bg:#121212;
  --panel:#1e1e1e;
  --stroke:#2a2a2a;
  --fg:#fff;
  --muted:#bdbdbd;
  --accent:#ff4d4d;
}

#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;
}

#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 .brand-line {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

#footer .brand-line img {
  height: 28px;
  width: auto;
  display: block;
}

#footer p {
  margin: 6px 0;
  color: var(--muted);
}

#footer a {
  color: #fff;
  text-decoration: none;
}

#footer a:hover {
  text-decoration: underline;
}

#footer .mini-nav {
  display: grid;
  gap: 8px;
}

#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;
}

#footer .contact-list {
  display: grid;
  gap: 8px;
}

#footer .badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.062745098);
  border: 1px solid rgba(255, 255, 255, 0.1254901961);
  color: #eaeaea;
  margin-top: 8px;
}

/* bottom line */
#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;
}

/* back to top */
#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(255, 77, 77, 0.32);
  display: none;
}

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

/* Cookie banner (dark) */
#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-consent-title {
  font-size: 18px;
  margin: 0 0 6px;
  color: #80d8ff;
}

#ri-consent-text {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 12px;
  color: #ccc;
}

#ri-consent-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

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

.ri-btn:hover {
  background: #3a3a3a;
}

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

.ri-btn-primary:hover {
  background: #2a7bff;
}

.ri-link {
  color: #80d8ff;
  text-decoration: underline;
  cursor: pointer;
}

#ri-consent-panel {
  margin-top: 10px;
  padding: 12px;
  border-radius: 10px;
  background: #1a1a1a;
  display: none;
}

.ri-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #2a2a2a;
}

.ri-row:last-child {
  border-bottom: 0;
}

.ri-row label {
  font-size: 14px;
  color: #ddd;
}

.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);
}

@media (max-width: 768px) {
  #ri-consent-inner {
    padding: 14px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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OztBUS96Q0E7RUFDRTtFQUFrQjtFQUFjO0VBQW9CO0VBQW9CO0FSczBDMUU7O0FRcDBDQTtFQUFVO0VBQWM7RUFBb0I7RUFBK0I7RUFBZTtBUjQwQzFGOztBUTMwQ0E7RUFBb0I7QVIrMENwQjs7QVE5MENBO0VBQWU7RUFBZ0I7QVJtMUMvQjs7QVFsMUNBO0VBQVU7RUFBb0I7RUFBdUI7RUFBYTtBUnkxQ2xFOztBUXgxQ0E7RUFBZ0I7QVI0MUNoQjs7QVEzMUNBO0VBQVU7RUFBbUI7RUFBZ0I7RUFBUztFQUFpQjtFQUFnQjtBUm8yQ3ZGOztBUW4yQ0E7RUFBZ0I7RUFBbUI7RUFBWTtFQUFZO0VBQVc7RUFBUztFQUFRO0VBQWlCO0VBQWU7QVIrMkN2SDs7QVE5MkNBO0VBQXlCO0FSazNDekI7O0FRajNDQTtFQUFnQztBUnEzQ2hDOztBUXAzQ0E7RUFDRTtJQUFtQjtFUnczQ25CO0FBQ0YsQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL2FwcC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19sb2dpbi5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zY3NzL19wcml2YWN5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvX2FkbWluX2JhY2tlbmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9hZG1pbl9zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Njc3MvX2NhcmVlcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Nzcy9faG9tZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbjpyb290IHtcbiAgLS1iZzojMTIxMjEyO1xuICAtLXBhbmVsOiMxZTFlMWU7XG4gIC0tcGFuZWwtMjojMjYyNjI2O1xuICAtLWZnOiNmZmZmZmY7XG4gIC0tbXV0ZWQ6I2JkYmRiZDtcbiAgLS1hY2NlbnQ6I0U1MzkzNTtcbiAgLS1hY2NlbnQtMjojRkY4QTY1O1xuICAtLXN0cm9rZTojMmEyYTJhO1xuICAtLXJhZGl1czoxNHB4O1xuICAtLWgxOiBjbGFtcCgzNnB4LCA1dncsIDY0cHgpO1xuICAtLWxlYWQ6IGNsYW1wKDE2cHgsIDEuNHZ3LCAxOHB4KTtcbiAgLS1mb250OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIC0tdGV4dDogdmFyKC0tZmcpO1xuICAtLWxpbms6ICM4MGQ4ZmY7XG4gIC0tc3VyZmFjZTogdmFyKC0tcGFuZWwpO1xuICAtLWJnLTI6IHZhcigtLXBhbmVsLTIpO1xuICAtLWNhcmQ6IHZhcigtLXBhbmVsKTtcbiAgLS1oMjogY2xhbXAoMjhweCwgNHZ3LCA0NHB4KTtcbiAgLS1wOiBjbGFtcCgxNXB4LCAxLjI1dncsIDE3cHgpO1xuICAtLWJ0bi1iZzogIzQyNDI0MjtcbiAgLS1idG4tYmctaG92ZXI6ICM2MTYxNjE7XG4gIC0tYnJhbmQtMTogdmFyKC0tYWNjZW50KTtcbiAgLS1icmFuZC0zOiAjODBkOGZmO1xuICAtLXRiLWJnOiByZ2JhKDE4LDE4LDE4LC43Mik7XG4gIC0tdGItc3Ryb2tlOiMyYTJhMmE7XG4gIC0tdGItYWNjZW50OiNFNTM5MzU7XG4gIC0tdGItdGV4dDojZmZmO1xufVxuXG4uYnRuLWxpbmsge1xuICAtLWJzLWJ0bi1mb250LXdlaWdodDogNDAwO1xuICAtLWJzLWJ0bi1jb2xvcjogd2hpdGU7XG4gIC0tYnMtYnRuLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNFNTM5MzU7XG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI0U1MzkzNTtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjNmM3NTdkO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAtLWJzLWJ0bi1ib3gtc2hhZG93OiAwIDAgMCAjMDAwO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiA0OSwgMTMyLCAyNTM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG46cm9vdCB7XG4gIC0tYmc6IzEyMTIxMjtcbiAgLS1wYW5lbDojMWUxZTFlO1xuICAtLXBhbmVsMjojMjQyNDI0O1xuICAtLXN0cm9rZTojMmEyYTJhO1xuICAtLWZnOiNmZmY7XG4gIC0tbXV0ZWQ6I2NmY2ZjZjtcbiAgLS1hY2NlbnQ6I2ZmNGQ0ZDtcbn1cblxuLmxvZ2luLXBhZ2Uge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWF4LWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1mZyk7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMjAwcHggNjAwcHggYXQgMTUlIC0xMCUsICMyMDIwMjAsIHZhcigtLWJnKSA2MCUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTYxNjE2LCAjMTIxMjEyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmxvZ2luLXBhZ2U6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogYXV0byAtMjAlIC0zMCUgLTIwJTtcbiAgaGVpZ2h0OiAyNjBweDtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDUwJSAxNjAlIGF0IDUwJSAwJSwgcmdiYSgyNTUsIDc3LCA3NywgMC4yNSksIHRyYW5zcGFyZW50IDcwJSk7XG4gIGZpbHRlcjogYmx1cigzMnB4KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGFuaW1hdGlvbjogbG9naW5GbG9hdCAxMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgbG9naW5GbG9hdCB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gIH1cbn1cbi5icmFuZC1sb2dvIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDE2cHg7XG4gIGxlZnQ6IDE2cHg7XG4gIHotaW5kZXg6IDIwMDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tZmcpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuLmJyYW5kLWxvZ28gaW1nIHtcbiAgaGVpZ2h0OiA1MHB4O1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yNSkpO1xufVxuLmJyYW5kLWxvZ286aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOTQxMTc2NDcxKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KSB7XG4gIC5icmFuZC1sb2dvIHtcbiAgICB0b3A6IDEycHg7XG4gICAgbGVmdDogMTJweDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICB9XG4gIC5icmFuZC1sb2dvIGltZyB7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICB9XG59XG4ubG9naW4tY2FyZCB7XG4gIHdpZHRoOiBtaW4oNTIwcHgsIDEwMCUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1wYW5lbCksICMxOTE5MTkpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICBwYWRkaW5nOiAyOHB4O1xuICBib3gtc2hhZG93OiAwIDE4cHggNDRweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xufVxuLmxvZ2luLWNhcmQgaDIge1xuICBtYXJnaW46IDAgMCA0cHg7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjJweCwgM3Z3LCAzMHB4KTtcbn1cbi5sb2dpbi1jYXJkIC5zdWIge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBtYXJnaW46IDAgMCAxOHB4O1xufVxuXG4jbG9naW5Gb3JtLCAjc2V0UGFzc3dvcmRGb3JtLCAjZm9yZ290Rm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTRweDtcbn1cbiNsb2dpbkZvcm0gbGFiZWwsICNzZXRQYXNzd29yZEZvcm0gbGFiZWwsICNmb3Jnb3RGb3JtIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogI2U2ZTZlNjtcbn1cbiNsb2dpbkZvcm0gLmlucHV0LCAjc2V0UGFzc3dvcmRGb3JtIC5pbnB1dCwgI2ZvcmdvdEZvcm0gLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2xvZ2luRm9ybSBpbnB1dFt0eXBlPXRleHRdLCAjbG9naW5Gb3JtIGlucHV0W3R5cGU9ZW1haWxdLCAjbG9naW5Gb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAjc2V0UGFzc3dvcmRGb3JtIGlucHV0W3R5cGU9dGV4dF0sICNzZXRQYXNzd29yZEZvcm0gaW5wdXRbdHlwZT1lbWFpbF0sICNzZXRQYXNzd29yZEZvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF0sICNmb3Jnb3RGb3JtIGlucHV0W3R5cGU9dGV4dF0sICNmb3Jnb3RGb3JtIGlucHV0W3R5cGU9ZW1haWxdLCAjZm9yZ290Rm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGJhY2tncm91bmQ6ICMxYjFiMWI7XG4gIGNvbG9yOiAjZmZmO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuI2xvZ2luRm9ybSBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLCAjbG9naW5Gb3JtIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLCAjbG9naW5Gb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzLCAjc2V0UGFzc3dvcmRGb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsICNzZXRQYXNzd29yZEZvcm0gaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsICNzZXRQYXNzd29yZEZvcm0gaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsICNmb3Jnb3RGb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsICNmb3Jnb3RGb3JtIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLCAjZm9yZ290Rm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzQwNDA0MDtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNzA1ODgyMzUzKTtcbn1cbiNsb2dpbkZvcm0gLnRvZ2dsZS1wYXNzLCAjc2V0UGFzc3dvcmRGb3JtIC50b2dnbGUtcGFzcywgI2ZvcmdvdEZvcm0gLnRvZ2dsZS1wYXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTBweDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTIlKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA3MDU4ODIzNTMpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTY0NzA1ODgyNCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuI2xvZ2luRm9ybSAucm93LCAjc2V0UGFzc3dvcmRGb3JtIC5yb3csICNmb3Jnb3RGb3JtIC5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuI2xvZ2luRm9ybSAucm93IC5yZW1lbWJlciwgI3NldFBhc3N3b3JkRm9ybSAucm93IC5yZW1lbWJlciwgI2ZvcmdvdEZvcm0gLnJvdyAucmVtZW1iZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogI2U2ZTZlNjtcbn1cbiNsb2dpbkZvcm0gLnJvdyBhLCAjc2V0UGFzc3dvcmRGb3JtIC5yb3cgYSwgI2ZvcmdvdEZvcm0gLnJvdyBhIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiNsb2dpbkZvcm0gLnJvdyBhOmhvdmVyLCAjc2V0UGFzc3dvcmRGb3JtIC5yb3cgYTpob3ZlciwgI2ZvcmdvdEZvcm0gLnJvdyBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4jbG9naW5Gb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF0sICNzZXRQYXNzd29yZEZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XSwgI2ZvcmdvdEZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogMTJweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAwIDEycHggMjRweCByZ2JhKDI1NSwgNzcsIDc3LCAwLjI1KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzLCBib3gtc2hhZG93IDAuMTVzO1xufVxuI2xvZ2luRm9ybSBidXR0b25bdHlwZT1zdWJtaXRdOmhvdmVyLCAjc2V0UGFzc3dvcmRGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06aG92ZXIsICNmb3Jnb3RGb3JtIGJ1dHRvblt0eXBlPXN1Ym1pdF06aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMzUpO1xufVxuI2xvZ2luRm9ybSAuaGludCwgI3NldFBhc3N3b3JkRm9ybSAuaGludCwgI2ZvcmdvdEZvcm0gLmhpbnQge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG59XG4jbG9naW5Gb3JtIC5hbGVydCwgI3NldFBhc3N3b3JkRm9ybSAuYWxlcnQsICNmb3Jnb3RGb3JtIC5hbGVydCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbn1cbiNsb2dpbkZvcm0gLmFsZXJ0LnNob3csICNzZXRQYXNzd29yZEZvcm0gLmFsZXJ0LnNob3csICNmb3Jnb3RGb3JtIC5hbGVydC5zaG93IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4jbG9naW5Gb3JtIC5hbGVydC5lcnJvciwgI3NldFBhc3N3b3JkRm9ybSAuYWxlcnQuZXJyb3IsICNmb3Jnb3RGb3JtIC5hbGVydC5lcnJvciB7XG4gIGJhY2tncm91bmQ6ICMyYTE0MTQ7XG4gIGJvcmRlci1jb2xvcjogI2EzMzMzMztcbn1cbiNsb2dpbkZvcm0gLmFsZXJ0Lm9rLCAjc2V0UGFzc3dvcmRGb3JtIC5hbGVydC5vaywgI2ZvcmdvdEZvcm0gLmFsZXJ0Lm9rIHtcbiAgYmFja2dyb3VuZDogIzEzMzAxNjtcbiAgYm9yZGVyLWNvbG9yOiAjMmM4YTMxO1xufVxuXG46cm9vdCB7XG4gIC0tYmc6IzEyMTIxMjtcbiAgLS1wYW5lbDojMWUxZTFlO1xuICAtLXBhbmVsMjojMjQyNDI0O1xuICAtLXN0cm9rZTojMmEyYTJhO1xuICAtLWZnOiNmZmY7XG4gIC0tbXV0ZWQ6I2NmY2ZjZjtcbiAgLS1hY2NlbnQ6I2ZmNGQ0ZDtcbn1cblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmhlYWRlciBpbWcge1xuICBoZWlnaHQ6IDI4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5oZWFkZXIgYSB7XG4gIGNvbG9yOiB2YXIoLS1mZyk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xufVxuXG5oZWFkZXIgYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG5tYWluIHtcbiAgcGFkZGluZzogMTAwcHggMjRweCA4MHB4O1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuaDEsIGgyLCBoMyB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjZweCwgNHZ3LCAzNnB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuaDIge1xuICBtYXJnaW4tdG9wOiA0MnB4O1xuICBmb250LXNpemU6IGNsYW1wKDIwcHgsIDIuNXZ3LCAyNnB4KTtcbn1cblxuaDMge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbnAsIGxpIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbn1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG5mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDMycHggMTZweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLXRvcDogNjBweDtcbn1cblxuaHRtbFtkYXRhLXRoZW1lPWxpZ2h0XSB7XG4gIC0tY2FkLWJnOiNmN2Y4ZmE7XG4gIC0tY2FkLXN1cmZhY2U6I2ZmZmZmZjtcbiAgLS1jYWQtdGV4dDojMGUwZjExO1xuICAtLWNhZC1tdXRlZDojNWM1ZjY2O1xuICAtLWNhZC1ib3JkZXI6IHJnYmEoMCwwLDAsLjA4KTtcbiAgLS1jYWQtYm9yZGVyLWhvdmVyOiByZ2JhKDAsMCwwLC4xNik7XG59XG5cbjpyb290IHtcbiAgLS1jYWQtYmc6ICMwZjBmMTA7XG4gIC0tY2FkLXN1cmZhY2U6ICMxNjE3MTk7XG4gIC0tY2FkLWJvcmRlcjogcmdiYSgyNTUsMjU1LDI1NSwuMDgpO1xuICAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtcbiAgLS1jYWQtdGV4dDogI2U5ZWFlZTtcbiAgLS1jYWQtbXV0ZWQ6ICNhN2E4YWQ7XG4gIC0tY2FkLWFjY2VudDogI2UzMWIyMzsgLyogQ0FEQVBUSVgvdmVyd2FudCByb29kICovXG59XG5cbi5idG4tZGFuZ2VyIHtcbiAgYmFja2dyb3VuZDogI2UzMWIyMztcbiAgYm9yZGVyLWNvbG9yOiAjZTMxYjIzO1xufVxuXG4uYnRuLWRhbmdlcjpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KTtcbn1cblxuLmNhZC1oZWFkaW5nIHtcbiAgY29sb3I6IHZhcigtLWNhZC10ZXh0KTtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuLyogQ2FyZHMgKi9cbi5jYWQtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMS4yNXJlbSAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpKSwgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSwgcmdiYSgyMjcsIDI3LCAzNSwgMC4wOCkgMCUsIHRyYW5zcGFyZW50IDQwJSksIHZhcigtLWNhZC1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FkLWJvcmRlcik7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRpdGxlIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDAgMC4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xufVxuXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRleHQge1xuICBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTtcbn1cblxuLyogSWNvbiBidWJibGUgKi9cbi5jYWQtY2FyZC1pY29uIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywgMjcsIDM1LCAwLjEyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjcsIDI3LCAzNSwgMC4zNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuXG4uY2FkLWNhcmQtY2xpY2sge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi8qIEJyYW5kIGJ1dHRvbiAqL1xuLmJ0bi1jYWQge1xuICAtLWJzLWJ0bi1jb2xvcjojZmZmO1xuICAtLWJzLWJ0bi1iZzogdmFyKC0tY2FkLWFjY2VudCk7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdmFyKC0tY2FkLWFjY2VudCk7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjYzcxOTIwO1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICNjNzE5MjA7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDIyNywyNywzNTtcbn1cblxuLyogVGFiZWwgaW4gQ2FkYXB0aXgtc3RpamwgKi9cbi8qIG92ZXJyaWRlIGRlIGNlbHJlZ2VsIHZhbiBCb290c3RyYXAgKi9cbi5jYWQtdGFibGUge1xuICAtLXJvdy1ob3ZlcjogcmdiYSgyNTUsMjU1LDI1NSwuMDMpO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhZC10YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlcjogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLmNhZC10YWJsZSB0aCwgLmNhZC10YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjc1cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2FkLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jYWQtYmcpO1xufVxuXG4uY2FkLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcm93LWhvdmVyKTtcbn1cblxuLyogVXNlcmtvbG9tIG1ldCBhdmF0YXItaW5pdGlhbHMgKi9cbi5jYWQtdXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLmNhZC1hdmF0YXIge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTIsIDg0LCAyMzcsIDAuMTIpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyLCA4MywgMjM3LCAwLjgyOSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6IHJnYmEoMTIsIDgzLCAyMzcsIDAuODI5KTtcbn1cblxuLyogQmFkZ2VzL2NpamZlcnMgKi9cbi5jYWQtYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2FkLWJvcmRlcik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi5jYWQtYWxpZ24tbnVtIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi5jYWQtZGF0ZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpO1xufVxuXG4vKiBUcmFuc3BhcmFudGUgbGlzdCArIGl0ZW1zICovXG4uY2FkLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jYWQtbGlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2FkLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uY2FkLWxpc3QtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5jYWQtbGlzdC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTtcbn1cblxuLyogVXNlcmJsb2tqZSBtZXQgbWluaS1hdmF0YXIgKi9cbi5jYWQtdXNlci1zbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jYWQtYXZhdGFyLXNtIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjI3LCAyNywgMzUsIDAuMTIpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNywgMjcsIDM1LCAwLjM1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xufVxuXG4uY2FkLXVzZXItbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vKiBEYXR1bSByZWNodHMgKi9cbi5jYWQtbGlzdC1kYXRlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qIG1hYWsgemVrZXIgZGUgVUwgdHJhbnNwYXJhbnQgYmlubmVuIGNhcmRzICovXG4uY2FkLWNhcmQgLmNhZC1saXN0LFxuLmNhZC1jYXJkIC5saXN0LXVuc3R5bGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jYWQtYW1vdW50IHtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNhZC1jdXJyZW5jeSB7XG4gIGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG59XG5cbi5idG4tZ2hvc3Qge1xuICAtLWJkOnJnYmEoMjU1LDI1NSwyNTUsLjIyKTtcbiAgY29sb3I6ICM4NDg1ODU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJkKTtcbn1cblxuLmJ0bi1naG9zdDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cblxuLmFkbWluLXNpZGViYXIge1xuICB3aWR0aDogMjQwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk5OTk5OTk5O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMWIxYjFiLCAjMGYwZjBmKTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG5cbi5hZG1pbi1zaWRlYmFyIC5uYXYtbGluayB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICBwYWRkaW5nOiAwLjZyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7XG59XG5cbi5hZG1pbi1zaWRlYmFyIC5uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5hZG1pbi1zaWRlYmFyIC5uYXYtbGluay5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG46cm9vdCB7XG4gIC0tc2lkZWJhci13OiAyNjBweDsgLyogcGFzIGFhbiBuYWFyIHNtYWFrICovXG4gIC0tcGFnZS1tYXg6IDEyODBweDsgLyogbWF4IGJyZWVkdGUgdmFuIGplIGNvbnRlbnQta29sb20gKi9cbn1cblxuLmFkbWluLWxheW91dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4vKiBab3JnIGRhdCBqZSBiZXN0YWFuZGUgLmFkbWluLXNpZGViYXIgaGllcm9wIGFhbnNsdWl0ICovXG4uYWRtaW4tc2lkZWJhciB7XG4gIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXcpO1xuICBmbGV4OiAwIDAgdmFyKC0tc2lkZWJhci13KTtcbiAgcG9zaXRpb246IHN0aWNreTsgLyogYmxpamZ0IHN0YWFuIGJpaiBzY3JvbGxlbiAqL1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKiBSZWNodGVyIGtvbG9tIHZ1bHQgZGUgcmVzdCBhdXRvbWF0aXNjaCAqL1xuLmFkbWluLW1haW4ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwOyAvKiB2b29ya29tdCBvdmVyZmxvdyBpc3N1ZXMgbWV0IGZsZXggKi9cbn1cblxuLyogQ2VudHJlZXIgZGUgZWNodGUgcGFnaW5hLWluaG91ZCAqL1xuLmFkbWluLW1haW4taW5uZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAyNHB4IGNsYW1wKDEycHgsIDJ2dywgMzJweCk7XG59XG5cbi8qIE9wdGlvbmVlbDogbW9iaWVsIGdlZHJhZyAoc2lkZWJhciBib3ZlbmFhbiBvZiB2aWEgb2ZmY2FudmFzKSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5hZG1pbi1sYXlvdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5hZG1pbi1zaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICB9XG59XG5odG1sW2RhdGEtdGhlbWU9bGlnaHRdIHtcbiAgLS1jYWQtYmc6I2Y3ZjhmYTtcbiAgLS1jYWQtc3VyZmFjZTojZmZmZmZmO1xuICAtLWNhZC10ZXh0OiMwZTBmMTE7XG4gIC0tY2FkLW11dGVkOiM1YzVmNjY7XG4gIC0tY2FkLWJvcmRlcjogcmdiYSgwLDAsMCwuMDgpO1xuICAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMCwwLDAsLjE2KTtcbn1cblxuOnJvb3Qge1xuICAtLWNhZC1iZzogIzBmMGYxMDtcbiAgLS1jYWQtc3VyZmFjZTogIzE2MTcxOTtcbiAgLS1jYWQtYm9yZGVyOiByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7XG4gIC0tY2FkLWJvcmRlci1ob3ZlcjogcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xuICAtLWNhZC10ZXh0OiAjZTllYWVlO1xuICAtLWNhZC1tdXRlZDogI2E3YThhZDtcbiAgLS1jYWQtYWNjZW50OiAjZTMxYjIzOyAvKiBSRVNUaW5zcGVjdC92ZXJ3YW50IHJvb2QgKi9cbn1cblxuLmNhcmVlcnMge1xuICBtYXJnaW4tdG9wOiA1dmg7XG59XG5cbi5jYWQtaGVhZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XG4gIHRleHQtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbi8qIENhcmRzICovXG4uY2FkLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSksIHJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMCUgMCUsIHJnYmEoMjI3LCAyNywgMzUsIDAuMDgpIDAlLCB0cmFuc3BhcmVudCA0MCUpLCB2YXIoLS1jYWQtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbn1cblxuLmNhZC1jYXJkIC5jYWQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbjogMC4yNXJlbSAwIDAuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbn1cblxuLmNhZC1jYXJkIC5jYWQtY2FyZC10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XG59XG5cbi8qIEljb24gYnViYmxlICovXG4uY2FkLWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgyMjcsIDI3LCAzNSwgMC4xMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI3LCAyNywgMzUsIDAuMzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLmNhZC1jYXJkLWNsaWNrIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiBCcmFuZCBidXR0b24gKi9cbi5idG4tY2FkIHtcbiAgLS1icy1idG4tY29sb3I6I2ZmZjtcbiAgLS1icy1idG4tYmc6IHZhcigtLWNhZC1hY2NlbnQpO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWNhZC1hY2NlbnQpO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogI2M3MTkyMDtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjYzcxOTIwO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyMjcsMjcsMzU7XG59XG5cbi8qID09PT09PT09PT0gRmVhdHVyZSBUaWxlcyAoaGVyby1hY2h0aWcsIGdlZW4gY2FyZHMpID09PT09PT09PT0gKi9cbi5jYWQtZmVhdHVyZXMge1xuICAtLWNhZC1mZWF0dXJlLXJhZGl1czogMThweDtcbn1cblxuLmNhZC1mZWF0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jYWQtZmVhdHVyZS1yYWRpdXMpO1xuICBwYWRkaW5nOiAyMnB4IDIycHggMjBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiBMYXllciAxOiBzdWJ0aWVsZSBncmlkL2dsb3cgKi9cbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDE0MCUgMTIwJSBhdCAwJSAwJSwgcmdiYSgyMjcsIDI3LCAzNSwgMC4xOCkgMCUsIHJnYmEoMjI3LCAyNywgMzUsIDApIDQ4JSksIHJhZGlhbC1ncmFkaWVudCgxMjAlIDE0MCUgYXQgMTAwJSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA1NSUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpKSwgdmFyKC0tY2FkLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jYWQtYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyksIDAgMTRweCA0NHB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBlYXNlLCBib3gtc2hhZG93IDAuMThzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE4cyBlYXNlO1xufVxuXG4uY2FkLWZlYXR1cmU6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2FkLWJvcmRlci1ob3Zlcik7XG4gIGJveC1zaGFkb3c6IDAgMjJweCA1NHB4IHJnYmEoMCwgMCwgMCwgMC41NSk7XG59XG5cbi5jYWQtZmVhdHVyZTo6YWZ0ZXIge1xuICAvKiBkZWNvcmF0aWV2ZSBzb2Z0IGhpZ2hsaWdodCByZWNodHMgb25kZXIgKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogYXV0byAtMjAlIC0zNSUgYXV0bztcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiA2MCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg0MCUgNDAlIGF0IDUwJSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTJkZWcpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogVmFyaWF0aWVzIG1ldCBrbGV1cmFjY2VudGVuICovXG4uY2FkLWZlYXR1cmUtLWJsdWUge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTQwJSAxMjAlIGF0IDAlIDAlLCByZ2JhKDc0LCAxNDQsIDIyNiwgMC4xOCkgMCUsIHJnYmEoNzQsIDE0NCwgMjI2LCAwKSA0OCUpLCByYWRpYWwtZ3JhZGllbnQoMTIwJSAxNDAlIGF0IDEwMCUgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNTUlKSwgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSksIHZhcigtLWNhZC1zdXJmYWNlKTtcbn1cblxuLmNhZC1mZWF0dXJlLS1ncmVlbiB7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxNDAlIDEyMCUgYXQgMCUgMCUsIHJnYmEoNDEsIDIwNSwgNjUsIDAuMTgpIDAlLCByZ2JhKDQxLCAyMDUsIDY1LCAwKSA0OCUpLCByYWRpYWwtZ3JhZGllbnQoMTIwJSAxNDAlIGF0IDEwMCUgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNTUlKSwgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSksIHZhcigtLWNhZC1zdXJmYWNlKTtcbn1cblxuLyogSWNvbiBidWJibGUgZ3Jvb3QgZW4gYm9sZCAqL1xuLmNhZC1mZWF0dXJlX19pY29uIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjI3LCAyNywgMzUsIDAuMTYpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNywgMjcsIDM1LCAwLjM1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDIycHg7XG59XG5cbi5jYWQtZmVhdHVyZS0tYmx1ZSAuY2FkLWZlYXR1cmVfX2ljb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDc0LCAxNDQsIDIyNiwgMC4xNik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg3NCwgMTQ0LCAyMjYsIDAuMzUpO1xufVxuXG4uY2FkLWZlYXR1cmUtLWdyZWVuIC5jYWQtZmVhdHVyZV9faWNvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDEsIDIwNSwgNjUsIDAuMTYpO1xuICBib3JkZXItY29sb3I6IHJnYmEoNDEsIDIwNSwgNjUsIDAuMzUpO1xufVxuXG4vKiBUZWtzdCAqL1xuLmNhZC1mZWF0dXJlX190aXRsZSB7XG4gIG1hcmdpbjogMnB4IDAgNnB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XG59XG5cbi5jYWQtZmVhdHVyZV9fdGV4dCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbmh0bWwsIGJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcbiAgY29sb3I6ICNmMGYwZjA7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG5ib2R5IHtcbiAgc2Nyb2xsLXNuYXAtdHlwZTogeSBtYW5kYXRvcnk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuI2JnLXZpZGVvIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHotaW5kZXg6IC0xO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG5cbi5vdmVybGF5LWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmMGYwZjA7XG4gIHBhZGRpbmctdG9wOiAyMHZoO1xufVxuXG4uc2Nyb2xsLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAyMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBhbmltYXRpb246IGJvdW5jZSAycyBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gIH1cbn1cbi8qIC5jb250YWluZXIge1xuICAgICNiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLDAsMCwwLjUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn0gKi9cbi5jb250YWN0LWluZm8ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uY29udGFjdC1pbmZvIHAge1xuICBtYXJnaW46IDEwcHggMDtcbn1cblxuYSB7XG4gIGNvbG9yOiAjODBkOGZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBvcnRhbC1sb2dpbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJlMmUyZTtcbiAgcGFkZGluZzogMTJweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgei1pbmRleDogMTAwMjtcbn1cblxuLnBvcnRhbC1sb2dpbiBmb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5wb3J0YWwtbG9naW4gaW5wdXQge1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnBvcnRhbC1sb2dpbiBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xuICBjb2xvcjogI2YwZjBmMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xufVxuXG4ucG9ydGFsLWxvZ2luIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG59XG5cbi5lcnJvci1tZXNzYWdlIHtcbiAgY29sb3I6ICNmZjUyNTI7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uaGFtYnVyZ2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIGxlZnQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgY29sb3I6ICNmMGYwZjA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTAwMTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNpbnRybyB7XG4gICAgbWF4LWhlaWdodDogOTIwMHZoO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucG9ydGFsLWxvZ2luIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oYW1idXJnZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ubW9iaWxlLWxvZ2luLWZvcm0ge1xuICBtYXJnaW4tdG9wOiAyMHZoO1xufVxuXG4udGl0YW4tc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gIHBhZGRpbmctdG9wOiAxMHZoO1xuICBwYWRkaW5nLWJvdHRvbTogMTB2aDtcbiAgY29sb3I6ICNmMGYwZjA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnRpdGFuLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiAxMHZoO1xuICB9XG59XG5cbi50aXRhbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAvKiDihpAgVGhpcyBmbGlwcyBpbWFnZSB0byByaWdodCwgdGV4dCB0byBsZWZ0ICovXG4gIG1heC13aWR0aDogNjB2dztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAudGl0YW4tY29udGFpbmVyIHtcbiAgICBnYXA6IDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi50aXRhbi1pbWFnZSB7XG4gIGZsZXg6IDEgMSA0MDBweDtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAudGl0YW4taW1hZ2Uge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4udGl0YW4tdGV4dCB7XG4gIGZsZXg6IDEgMSA0MDBweDtcbiAgbWluLXdpZHRoOiAyODBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAudGl0YW4tdGV4dCB7XG4gICAgZmxleDogMSAxIDE7XG4gICAgbWluLXdpZHRoOiA4MHZ3O1xuICB9XG59XG5cbi50aXRhbi10ZXh0IGgyIHtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBjb2xvcjogIzgwZDhmZjtcbn1cblxuLnRpdGFuLXRleHQgcCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC50aXRhbi1jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uc2l0ZS1mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWIxYjFiO1xuICBjb2xvcjogI2NjYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7XG59XG5cbi5zaXRlLWZvb3RlciBhIHtcbiAgY29sb3I6ICM4MGQ4ZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luOiAwIDVweDtcbn1cblxuLnNpdGUtZm9vdGVyIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogSEVBREVSICovXG4uY29ybmVyLWxvZ28ge1xuICB0b3A6IDIwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDEwMDM7XG4gIG9wYWNpdHk6IDAuOTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29ybmVyLWxvZ28ge1xuICAgIGxlZnQ6IDBweDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY29ybmVyLWxvZ28ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTEwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cbn1cblxuLmxvZ28yIHtcbiAgd2lkdGg6IDIyNXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5sb2dvMiB7XG4gICAgcmlnaHQ6IDUwcHg7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIHRvcDogMTBweDtcbiAgfVxufVxuXG4uY29ybmVyLWxvZ286aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi50b3AtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTVweDtcbiAgei1pbmRleDogMTEwMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuLnRvcC1oZWFkZXIgLmhlYWRlci1idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xufVxuXG4udG9wLWhlYWRlciAuaGVhZGVyLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG59XG5cbi50b3AtaGVhZGVyIC5sb2dvdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjcxYzFjO1xufVxuXG4udG9wLWhlYWRlciAubG9nb3V0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzMmYyZjtcbn1cblxuLnVzZXItc3RhdHVzIHtcbiAgY29sb3I6ICM4MGQ4ZmY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbnNlY3Rpb24ge1xuICBwYWRkaW5nOiA2MHB4IDA7XG59XG5cbi8qIENvbnRhY3Rmb3JtdWxpZXIgKi9cbi5jb250YWN0LWZvcm0gaW5wdXQsXG4uY29udGFjdC1mb3JtIHRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLmNvbnRhY3QtZm9ybSBidXR0b24ge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDJkMjQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jb250YWN0LWZvcm0gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwMDtcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIG5hdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudG9nZ2xlLWJ0biB7XG4gICAgbGVmdDogMTBweDtcbiAgfVxuICBtYWluLFxuICBoZWFkZXIsXG4gIC50b3AtYmFubmVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAudG9wLWJhbm5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnRvcC1iYW5uZXIgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gIH1cbn1cbiNyaS1jb25zZW50LWJhbm5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IGF1dG8gMCAwIDA7XG4gIHotaW5kZXg6IDIwMDA7XG4gIGJhY2tncm91bmQ6ICMxMTE7XG4gIGNvbG9yOiAjZWVlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzJhMmEyYTtcbiAgYm94LXNoYWRvdzogMCAtMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4jcmktY29uc2VudC1pbm5lciB7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMThweCAxNnB4O1xufVxuXG4jcmktY29uc2VudC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luOiAwIDAgNnB4O1xuICBjb2xvcjogIzgwZDhmZjtcbn1cblxuI3JpLWNvbnNlbnQtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbiAgY29sb3I6ICNjY2M7XG59XG5cbiNyaS1jb25zZW50LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnJpLWJ0biB7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogIzJlMmUyZTtcbiAgY29sb3I6ICNlZWU7XG59XG5cbi5yaS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjM2EzYTNhO1xufVxuXG4ucmktYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMWY2ZmViO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnJpLWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzJhN2JmZjtcbn1cblxuLnJpLWxpbmsge1xuICBjb2xvcjogIzgwZDhmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3JpLWNvbnNlbnQtcGFuZWwge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjMWExYTFhO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucmktcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiA4cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyYTJhMmE7XG59XG5cbi5yaS1yb3c6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi5yaS1yb3cgbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjZGRkO1xufVxuXG4uc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5cbi5zd2l0Y2ggaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiAjNDQ0O1xuICB0cmFuc2l0aW9uOiAwLjJzO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xufVxuXG4uc2xpZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMThweDtcbiAgbGVmdDogM3B4O1xuICB0b3A6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHRyYW5zaXRpb246IDAuMnM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICBiYWNrZ3JvdW5kOiAjMmE3YmZmO1xufVxuXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjcmktY29uc2VudC1pbm5lciB7XG4gICAgcGFkZGluZzogMTRweDtcbiAgfVxufVxuLnRvcC1iYW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQwMzQzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMTB2dyAxNXZ3O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi50b3AtYmFubmVyIC50ZXh0IHtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbn1cblxuLnRvcC1iYW5uZXIgaW1nIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLnRvcC1iYW5uZXIgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIC0tLS0tLSBUaGVtZSAtLS0tLS0gKi9cbjpyb290IHtcbiAgLS1iZzojMTIxMjEyO1xuICAtLXBhbmVsOiMxZTFlMWU7XG4gIC0tcGFuZWwtMjojMjYyNjI2O1xuICAtLWZnOiNmZmZmZmY7XG4gIC0tbXV0ZWQ6I2NmY2ZjZjtcbiAgLS1hY2NlbnQ6I2ZmNGQ0ZDtcbn1cblxuLyogLS0tLS0tIEJhc2UgLS0tLS0tICovXG4jaW50cm8ge1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA2dncgNnZ3O1xuICBjb2xvcjogdmFyKC0tZmcpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTQwMHB4IDcwMHB4IGF0IDE1JSAtMTAlLCAjMmEyYTJhIDAlLCAjMWIxYjFiIDU1JSwgdmFyKC0tYmcpIDEwMCUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTYxNjE2LCAjMTIxMjEyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBnYXA6IDI4cHg7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbn1cblxuI2ludHJvIC5jb250YWluZXIge1xuICB3aWR0aDogbWluKDEyMDBweCwgMTAwJSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xNWZyIDAuODVmcjtcbiAgZ2FwOiBjbGFtcCgxOHB4LCAzdncsIDM2cHgpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgI2ludHJvIC5jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4vKiAtLS0tLS0gTGVmdDogQ29udGVudCAtLS0tLS0gKi9cbiNpbnRybyAua2lja2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1ODgyMzUyOTQpO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTAxOTYwNzg0Myk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xufVxuXG4jaW50cm8gaDEge1xuICBmb250LXNpemU6IGNsYW1wKDM2cHgsIDV2dywgNjhweCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICBtYXJnaW46IDEycHggMCAxMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG59XG5cbiNpbnRybyAubGVhZCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMTZweCwgMS40dncsIDE4cHgpO1xuICBtYXgtd2lkdGg6IDY0Y2g7XG4gIG1hcmdpbjogMCAwIDE4cHg7XG59XG5cbiNpbnRybyAuY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogMThweCAwIDEwcHg7XG59XG5cbiNpbnRybyAuYnRuIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMTJweCAxOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4jaW50cm8gLmJ0bi5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAyNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMjUpO1xufVxuXG4jaW50cm8gLmJ0bi5wcmltYXJ5OmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDE2cHggMzRweCByZ2JhKDI1NSwgNzcsIDc3LCAwLjM1KTtcbn1cblxuI2ludHJvIC5idG4uZ2hvc3Qge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDU0OTAxOTYwOCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNDExNzY0NzA2KTtcbn1cblxuI2ludHJvIC5idG4uZ2hvc3Q6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1MDk4MDM5MjIpO1xufVxuXG4vKiAtLS0tLS0gRmVhdHVyZSBiYWRnZXMgLS0tLS0tICovXG4jaW50cm8gLmJhZGdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tdG9wOiAxNHB4O1xufVxuXG4jaW50cm8gLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyZjJmMmY7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgY29sb3I6ICNlYWVhZWE7XG59XG5cbiNpbnRybyAuYmFkZ2Ugc3ZnIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuLyogLS0tLS0tIFJpZ2h0OiBWaXN1YWwgLS0tLS0tICovXG4jaW50cm8gLnZpc3VhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBjbGFtcCgyODBweCwgNDJ2dywgNTIwcHgpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wYW5lbC0yKSwgdmFyKC0tcGFuZWwpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMwMzAzMDtcbiAgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAxOHB4IDQ0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbn1cblxuI2ludHJvIC52aXN1YWwgaW1nLFxuI2ludHJvIC52aXN1YWwgdmlkZW8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb3BhY2l0eTogMC45O1xuICBtaXgtYmxlbmQtbW9kZTogbm9ybWFsO1xufVxuXG4vKiBEZWNvcmF0aXZlIGN1YmUgLyBwbGFjZWhvbGRlciBpZiBubyBpbWFnZSAqL1xuI2ludHJvIC5jdWJlIHtcbiAgd2lkdGg6IDU4JTtcbiAgYXNwZWN0LXJhdGlvOiAxLzE7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIG1heC13aWR0aDogMzgwcHg7XG4gIC8qIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICNmNDQsICNkMjIpOyAqL1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICBmb250LXNpemU6IGNsYW1wKDQ4cHgsIDh2dywgOTZweCk7XG4gIC8qIGJveC1zaGFkb3c6IDAgMzBweCA2MHB4IHJnYmEoMjU1LDc3LDc3LC4zNSk7ICovXG59XG5cbi8qIC0tLS0tLSBNaW5pIGNhcmRzIHVuZGVyIGNvbnRlbnQgLS0tLS0tICovXG4jaW50cm8gLm1pbmkge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgZ2FwOiBjbGFtcCgxMnB4LCAydncsIDE4cHgpO1xuICBtYXJnaW4tdG9wOiAyMnB4O1xufVxuXG4jaW50cm8gLmNhcmQge1xuICBncmlkLWNvbHVtbjogc3BhbiAxMjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tcGFuZWwpLCAjMWYxZjFmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJkMmQyZDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiNpbnRybyAuaWNvbiB7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNzA1ODgyMzUzKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNTQ5MDE5NjEpO1xufVxuXG4jaW50cm8gLmNhcmQgaDMge1xuICBtYXJnaW46IDAgMCAycHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuI2ludHJvIC5jYXJkIHAge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gICNpbnRybyAuY2FyZCB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gNjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAjaW50cm8gLmNhcmQge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gIH1cbn1cbi8qIC0tLS0tLSBTY3JvbGwgaW5kaWNhdG9yIC0tLS0tLSAqL1xuLnNjcm9sbC1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMThweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzAxOTYwNzg0Myk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgb3BhY2l0eTogMC45O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnNjcm9sbC1pbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IE5vbmU7XG4gIH1cbn1cbi5zY3JvbGwtaW5kaWNhdG9yIC5kb3Qge1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIGFuaW1hdGlvbjogYm91bmNlIDEuNnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbi5zY3JvbGwtaW5kaWNhdG9yIC5kb3Q6bnRoLWNoaWxkKDIpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjE1cztcbn1cblxuLnNjcm9sbC1pbmRpY2F0b3IgLmRvdDpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsIDYwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpO1xuICB9XG59XG4vKiBab3JnIGRhdCBkZSBzZW50aW5lbCBlY2h0IGhldCB2aWV3cG9ydCBpbiBrYW4ga29tZW4gKi9cbiNoZWFkZXItc2VudGluZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMnB4OyAvKiA+MCBpcyBnZW5vZWcgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5odG1sIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDogNzJweDtcbn1cblxuOnJvb3Qge1xuICAtLXRiLWJnOiByZ2JhKDE4LDE4LDE4LC43Mik7XG4gIC0tdGItc3Ryb2tlOiAjMmEyYTJhO1xuICAtLXRiLWFjY2VudDojZmY0ZDRkO1xuICAtLXRiLXRleHQ6I2ZmZjtcbiAgLS10Yi1tdXRlZDojY2ZjZmNmO1xufVxuXG4vKiBCYXNlIHRvcGJhciAqL1xuLnRvcGJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDAgMCBhdXRvIDA7XG4gIGhlaWdodDogNjRweDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xOHB4KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4yNXMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRiLWJnKTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vKiBSZXZlYWxlZCBzdGF0ZSAqL1xuLnRvcGJhcltkYXRhLXJldmVhbD10cnVlXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRiLXN0cm9rZSk7XG59XG5cbi50b3BiYXJfX2lubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIHBhZGRpbmc6IDAgMjVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDE2cHg7XG59XG5cbi5sb2dvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4ubmF2YmFyIGEge1xuICBjb2xvcjogdmFyKC0tdGItdGV4dCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi5uYXZiYXIgYTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0OTAxOTYwNzgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYyNzQ1MDk4KTtcbn1cblxuLm5hdmJhciBhLmxvZ2luIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRiLWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4ubmF2YmFyIGEubG9naW46aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDI1NSwgNzcsIDc3LCAwLjMyKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4vKiBNb2JpbGUgdG9nZ2xlICovXG4jdG9wLWJhbm5lciB7XG4gIC0tYmc6IzEyMTIxMjtcbiAgLS1mZzojZmZmO1xuICAtLW11dGVkOiNiZGJkYmQ7XG4gIC0tYWNjZW50OiNmZjRkNGQ7XG4gIC0tcGFkOjh2dyA2dnc7XG59XG5cbi50b3AtYmFubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLXBhZCk7XG4gIGNvbG9yOiB2YXIoLS1mZyk7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMjAwcHggNjAwcHggYXQgMTAlIDIwJSwgIzFiMWIxYiwgdmFyKC0tYmcpKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiA5NXZoO1xufVxuXG4udG9wLWJhbm5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSA0MCUsIHJnYmEoMjU1LCA3NywgNzcsIDAuMTI1NDkwMTk2MSkgMCUsIHRyYW5zcGFyZW50IDYwJSk7XG59XG5cbi50b3AtYmFubmVyIC50ZXh0IHtcbiAgei1pbmRleDogMTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgZmxleDogMSAxIDQ2MHB4O1xufVxuXG4udG9wLWJhbm5lciBoMSB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMzZweCwgNXZ3LCA2NHB4KTtcbiAgbWFyZ2luOiAwIDAgMC42ZW07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYWNjZW50KSwgI2ZmOGQ0ZCk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50b3AtYmFubmVyIHAge1xuICBmb250LXNpemU6IDEuMTVyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIG1heC13aWR0aDogNTJjaDtcbn1cblxuLnRvcC1iYW5uZXIgYS5jdGEge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDE0cHggMjhweDtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgyNTUsIDc3LCA3NywgMC4zKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbn1cblxuLnRvcC1iYW5uZXIgYS5jdGE6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAyOHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuNDUpO1xufVxuXG4udG9wLWJhbm5lciBpbWcge1xuICBmbGV4OiAxIDEgMzgwcHg7XG4gIG1heC13aWR0aDogNDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHotaW5kZXg6IDE7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjUpKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZTtcbn1cblxuLnRvcC1iYW5uZXI6aG92ZXIgaW1nIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDgyMHB4KSB7XG4gIC50b3AtYmFubmVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLnRvcC1iYW5uZXIgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gIH1cbiAgLnRvcC1iYW5uZXIgaDEge1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuI2RpZW5zdGVuICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jZGllbnN0ZW4gaDIge1xuICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDR2dywgNDRweCk7XG4gIG1hcmdpbjogMCAwIDEuMnJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4jZGllbnN0ZW4gcC5sZWFkIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbiAgbWFyZ2luOiAwIDAgMi4ycmVtO1xuICBtYXgtd2lkdGg6IDcwY2g7XG59XG5cbiNkaWVuc3RlbiAuZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICBnYXA6IGNsYW1wKDE0cHgsIDJ2dywgMjJweCk7XG59XG5cbiNkaWVuc3RlbiAuY2FyZCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jYXJkKSwgIzI0MjQyNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMjMyMzI7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuXG4jZGllbnN0ZW4gLmNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIGJvcmRlci1jb2xvcjogIzNhM2EzYTtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cblxuI2RpZW5zdGVuIC5oZXJvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IGNsYW1wKDE0MHB4LCAyMnZ3LCAyMjBweCk7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg2MDBweCAzMDBweCBhdCA3MCUgMjAlLCByZ2JhKDI1NSwgNzcsIDc3LCAwLjI1KSwgdHJhbnNwYXJlbnQgNjAlKSwgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJmMmYyZiwgIzI2MjYyNik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzAzMDMwO1xufVxuXG4jZGllbnN0ZW4gLnN0ZXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgbGVmdDogMTRweDtcbiAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyNTUsIDc3LCA3NywgMC4zNSk7XG59XG5cbiNkaWVuc3RlbiAuYm9keSB7XG4gIHBhZGRpbmc6IDE4cHggMThweCAyMHB4O1xufVxuXG4jZGllbnN0ZW4gLmJvZHkgaDMge1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMThweCwgMi4ydncsIDIycHgpO1xufVxuXG4jZGllbnN0ZW4gLmJvZHkgcCB7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG59XG5cbiNkaWVuc3RlbiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICBjb2xvcjogI2Q5ZDlkOTtcbn1cblxuI2RpZW5zdGVuIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4vKiBSZXNwb25zaXZlIGNvbHVtbnMgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAjZGllbnN0ZW4gLmNhcmQge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDY7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMDgwcHgpIHtcbiAgI2RpZW5zdGVuIC5jYXJkIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA0O1xuICB9XG59XG4vKiBTVkdzICovXG4jZGllbnN0ZW4gc3ZnIHtcbiAgd2lkdGg6IDY0JTtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMTBweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4zNSkpO1xufVxuXG4jdXNwLXN0cmlwIHtcbiAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcbn1cblxuI3VzcC1zdHJpcCAud3JhcCB7XG4gIHdpZHRoOiBtaW4oMTIwMHB4LCAxMDAlKTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogY2xhbXAoMTJweCwgMnZ3LCAxNnB4KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcbn1cblxuI3VzcC1zdHJpcCAucGlsbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMmEyYTJhLCAjMjQyNDI0KTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjhweCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLXBhbmVsLTIpIDI1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4jdXNwLXN0cmlwIC5ncmlkIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICBnYXA6IGNsYW1wKDEycHgsIDJ2dywgMTZweCk7XG59XG5cbiN1c3Atc3RyaXAgLmNhcmQge1xuICBncmlkLWNvbHVtbjogc3BhbiAxMjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzFmMWYxZiwgIzFhMWExYSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyYTJhMmE7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIHBhZGRpbmc6IDEycHggMTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG5cbiN1c3Atc3RyaXAgLmNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1hY2NlbnQpIDM1JSwgIzJhMmEyYSk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzNnB4IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYWNjZW50KSAxOCUsIHRyYW5zcGFyZW50KTtcbn1cblxuI3VzcC1zdHJpcCAuaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1hY2NlbnQpIDM1JSwgIzJhMmEyYSksICMyYTJhMmEpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTg4MjM1Mjk0MSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCAyOHB4O1xufVxuXG4jdXNwLXN0cmlwIHAge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4NjBweCkge1xuICAjdXNwLXN0cmlwIC5jYXJkIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA0O1xuICB9XG59XG4vKiBTdWJ0aWVsZSBhbmltYXRlZCBnbG93ICovXG4vKiAjdXNwLXN0cmlwOjpiZWZvcmV7XG4gIGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OmF1dG8gLTIwJSAtNjAlIC0yMCU7IGhlaWdodDoyMDBweDtcbiAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcbiAgZmlsdGVyOiBibHVyKDMwcHgpOyBvcGFjaXR5Oi43OyBwb2ludGVyLWV2ZW50czpub25lOyBhbmltYXRpb246IHVzcEdsb3cgMTBzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgdXNwR2xvd3tcbiAgMCV7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSB9XG4gIDUwJXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIH1cbiAgMTAwJXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIH1cbn0gKi9cbi8qIFJlc3BlY3RlZXIgcmVkdWNlZCBtb3Rpb24gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICN1c3Atc3RyaXA6OmJlZm9yZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG4jb3ZlciAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuI292ZXIgaDIge1xuICBmb250LXNpemU6IGNsYW1wKDI4cHgsIDR2dywgNDRweCk7XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4jb3ZlciBwLmxlYWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICBtYXgtd2lkdGg6IDcwY2g7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMTZweCwgMS4zdncsIDE4cHgpO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4jb3ZlciAuZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICBnYXA6IGNsYW1wKDE2cHgsIDJ2dywgMjRweCk7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4jb3ZlciAuY2FyZCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jYXJkKSwgIzI0MjQyNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLCBib3gtc2hhZG93IDAuMjVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlO1xufVxuXG4jb3ZlciAuY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgYm9yZGVyLWNvbG9yOiAjM2EzYTNhO1xuICBib3gtc2hhZG93OiAwIDE2cHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xufVxuXG4jb3ZlciAuaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyZjJmMmYsICMyNjI2MjYpO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xufVxuXG4jb3ZlciAuaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuI292ZXIgLmltYWdlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzAlIDMwJSwgcmdiYSgyNTUsIDc3LCA3NywgMC4yNSksIHRyYW5zcGFyZW50IDYwJSk7XG59XG5cbiNvdmVyIC5ib2R5IHtcbiAgcGFkZGluZzogMjRweCAyNHB4IDI4cHg7XG59XG5cbiNvdmVyIC5ib2R5IGgzIHtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbiAgZm9udC1zaXplOiBjbGFtcCgxOHB4LCAydncsIDIycHgpO1xufVxuXG4jb3ZlciAuYm9keSBwIHtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBSZXNwb25zaXZlIGNvbHVtbnMgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAjb3ZlciAuY2FyZCB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gNjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwODBweCkge1xuICAjb3ZlciAuY2FyZCB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gNDtcbiAgfVxufVxuI2NvbnRhY3QgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiNjb250YWN0IGgxIHtcbiAgZm9udC1zaXplOiBjbGFtcCgyOHB4LCA0dncsIDQ0cHgpO1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG4jY29udGFjdCBwLmxlYWQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBtYXJnaW46IDAgMCAycmVtO1xuICBtYXgtd2lkdGg6IDcwY2g7XG59XG5cbiNjb250YWN0IC53cmFwIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogY2xhbXAoMTZweCwgMnZ3LCAyNHB4KTtcbiAgd2lkdGg6IG1pbigxMjAwcHgsIDEwMCUpO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG4jY29udGFjdCAuY2FyZCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jYXJkKSwgIzI0MjQyNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbiNjb250YWN0IC5sZWZ0LCAjY29udGFjdCAucmlnaHQge1xuICBwYWRkaW5nOiBjbGFtcCgxNnB4LCAyLjJ2dywgMjhweCk7XG59XG5cbi8qIDIga29sb21tZW4gb3AgZ3JvdGVyIHNjaGVybSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICNjb250YWN0IC5jYXJkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgMC45ZnI7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAjY29udGFjdCAubGVmdCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgfVxuICAjY29udGFjdCAubGVmdCwgI2NvbnRhY3QgLnJpZ2h0IHtcbiAgICBwYWRkaW5nOiAzMnB4O1xuICB9XG59XG4vKiBMb2dvICsgaGVhZGluZ2xpbnQgKi9cbiNjb250YWN0IC5icmFuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4jY29udGFjdCAuYnJhbmQgaW1nIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIENvbnRhY3QgaW5mbyBsaWpzdCAqL1xuI2NvbnRhY3QgLmluZm8ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGNvbG9yOiAjZTllOWU5O1xufVxuXG4jY29udGFjdCAuaW5mbyBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiNjb250YWN0IC5pbmZvIHN2ZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLyogTWFwL3Zpc3VhbCBwbGFjZWhvbGRlciAodmVydmFuZyBtZXQgZWNodGUgZW1iZWQvYWZiZWVsZGluZykgKi9cbiNjb250YWN0IC52aXN1YWwge1xuICBoZWlnaHQ6IDIyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmIyYjJiLCAjMWYxZjFmKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLyogRm9ybSAqL1xuI2NvbnRhY3QgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTRweDtcbn1cblxuI2NvbnRhY3QgbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjZDlkOWQ5O1xufVxuXG4jY29udGFjdCBpbnB1dCwgI2NvbnRhY3QgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBiYWNrZ3JvdW5kOiAjMWYxZjFmO1xuICBjb2xvcjogI2ZmZjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4jY29udGFjdCBpbnB1dDpmb2N1cywgI2NvbnRhY3QgdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0YTRhNGE7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDcwNTg4MjM1Myk7XG59XG5cbiNjb250YWN0IC5yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiAxNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgI2NvbnRhY3QgLnJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICB9XG59XG4jY29udGFjdCAuY29uc2VudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICNlYWVhZWE7XG59XG5cbiNjb250YWN0IC5jb25zZW50IGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDNweDtcbn1cblxuI2NvbnRhY3QgYnV0dG9uIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDEycHggMThweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAyNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMjUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xufVxuXG4jY29udGFjdCBidXR0b246aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzNHB4IHJnYmEoMjU1LCA3NywgNzcsIDAuMzUpO1xufVxuXG4jY29udGFjdCAuaGludCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLW11dGVkKTtcbn1cblxuLyogQWxlcnRzICovXG4jY29udGFjdCAuYWxlcnQge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGJhY2tncm91bmQ6ICMxZjFmMWY7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jY29udGFjdCAuYWxlcnQuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jY29udGFjdCAuYWxlcnQuc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogIzJlN2QzMjtcbiAgYmFja2dyb3VuZDogIzEzMzAxNjtcbn1cblxuI2NvbnRhY3QgLmFsZXJ0LmVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiAjYTMzMzMzO1xuICBiYWNrZ3JvdW5kOiAjMmExNDE0O1xufVxuXG4jY29udGFjdCBzdHJvbmcge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbiNmYXEge1xuICAtLWJnOiMyMTIxMjE7XG4gIC0tZmc6I2ZmZjtcbiAgLS1tdXRlZDojYmRiZGJkO1xuICBwYWRkaW5nOiA2dncgNnZ3O1xuICBjb2xvcjogdmFyKC0tZmcpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoOTAwcHggNDAwcHggYXQgMTUlIC0xMCUsICMyYTJhMmEsICMyMTIxMjEpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzJhMmEyYTtcbn1cblxuI2ZhcSAud3JhcCB7XG4gIHdpZHRoOiBtaW4oMTAwMHB4LCAxMDAlKTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbn1cblxuI2ZhcSBoMiB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgNHZ3LCA0MHB4KTtcbiAgbWFyZ2luOiAwIDAgMTRweDtcbn1cblxuI2ZhcSBkZXRhaWxzIHtcbiAgYmFja2dyb3VuZDogIzFmMWYxZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzJhMmEyYTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgcGFkZGluZzogMTJweCAxNnB4O1xuICBtYXJnaW46IDEwcHggMDtcbn1cblxuI2ZhcSBzdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4jZmFxIHAge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xuICBtYXJnaW46IDAuNnJlbSAwIDA7XG59XG5cbiNmb290ZXIge1xuICAtLWJnOiMxMjEyMTI7XG4gIC0tcGFuZWw6IzFlMWUxZTtcbiAgLS1zdHJva2U6IzJhMmEyYTtcbiAgLS1mZzojZmZmO1xuICAtLW11dGVkOiNiZGJkYmQ7XG4gIC0tYWNjZW50OiNmZjRkNGQ7XG59XG5cbiNmb290ZXIge1xuICBjb2xvcjogdmFyKC0tZmcpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoOTAwcHggNDAwcHggYXQgMTUlIC0xMCUsICMyMjIsIHZhcigtLWJnKSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxNjE2MTYsIHZhcigtLWJnKSk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xuICBwYWRkaW5nOiA0OHB4IDZ2dyAyOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiNmb290ZXIgLndyYXAge1xuICB3aWR0aDogbWluKDEyMDBweCwgMTAwJSk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICBnYXA6IGNsYW1wKDE2cHgsIDJ2dywgMjRweCk7XG59XG5cbiNmb290ZXIgLmNvbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODIwcHgpIHtcbiAgI2Zvb3RlciAuY29sLmJyYW5kIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA1O1xuICB9XG4gICNmb290ZXIgLmNvbC5uYXYge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDM7XG4gIH1cbiAgI2Zvb3RlciAuY29sLmNvbnRhY3Qge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gIH1cbn1cbiNmb290ZXIgLmJyYW5kLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNmb290ZXIgLmJyYW5kLWxpbmUgaW1nIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNmb290ZXIgcCB7XG4gIG1hcmdpbjogNnB4IDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG59XG5cbiNmb290ZXIgYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbiNmb290ZXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4jZm9vdGVyIC5taW5pLW5hdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogOHB4O1xufVxuXG4jZm9vdGVyIC5taW5pLW5hdiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogIzFmMWYxZjtcbn1cblxuI2Zvb3RlciAuY29udGFjdC1saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiA4cHg7XG59XG5cbiNmb290ZXIgLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNjI3NDUwOTgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTI1NDkwMTk2MSk7XG4gIGNvbG9yOiAjZWFlYWVhO1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi8qIGJvdHRvbSBsaW5lICovXG4jZm9vdGVyIC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGNvbG9yOiB2YXIoLS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLyogYmFjayB0byB0b3AgKi9cbiNmb290ZXIgLnRvLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDE4cHg7XG4gIGJvdHRvbTogMThweDtcbiAgei1pbmRleDogNTA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDI1NSwgNzcsIDc3LCAwLjMyKTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2Zvb3RlciAudG8tdG9wLnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogQ29va2llIGJhbm5lciAoZGFyaykgKi9cbiNyaS1jb25zZW50LWJhbm5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IGF1dG8gMCAwIDA7XG4gIHotaW5kZXg6IDIwMDA7XG4gIGJhY2tncm91bmQ6ICMxMTE7XG4gIGNvbG9yOiAjZWVlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzJhMmEyYTtcbiAgYm94LXNoYWRvdzogMCAtMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4jcmktY29uc2VudC1pbm5lciB7XG4gIG1heC13aWR0aDogMTAwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMThweCAxNnB4O1xufVxuXG4jcmktY29uc2VudC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luOiAwIDAgNnB4O1xuICBjb2xvcjogIzgwZDhmZjtcbn1cblxuI3JpLWNvbnNlbnQtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbiAgY29sb3I6ICNjY2M7XG59XG5cbiNyaS1jb25zZW50LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnJpLWJ0biB7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogIzJlMmUyZTtcbiAgY29sb3I6ICNlZWU7XG59XG5cbi5yaS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjM2EzYTNhO1xufVxuXG4ucmktYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMWY2ZmViO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnJpLWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzJhN2JmZjtcbn1cblxuLnJpLWxpbmsge1xuICBjb2xvcjogIzgwZDhmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3JpLWNvbnNlbnQtcGFuZWwge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjMWExYTFhO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucmktcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiA4cHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyYTJhMmE7XG59XG5cbi5yaS1yb3c6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi5yaS1yb3cgbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjZGRkO1xufVxuXG4uc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5cbi5zd2l0Y2ggaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiAjNDQ0O1xuICB0cmFuc2l0aW9uOiAwLjJzO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xufVxuXG4uc2xpZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMThweDtcbiAgbGVmdDogM3B4O1xuICB0b3A6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHRyYW5zaXRpb246IDAuMnM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICBiYWNrZ3JvdW5kOiAjMmE3YmZmO1xufVxuXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjcmktY29uc2VudC1pbm5lciB7XG4gICAgcGFkZGluZzogMTRweDtcbiAgfVxufSIsIiAgXHJcbiAgOnJvb3R7IFxyXG4gICAgLS1iZzojMTIxMjEyOyBcclxuICAgIC0tcGFuZWw6IzFlMWUxZTsgXHJcbiAgICAtLXBhbmVsLTI6IzI2MjYyNjsgXHJcbiAgICAtLWZnOiNmZmZmZmY7IFxyXG4gICAgLS1tdXRlZDojYmRiZGJkOyBcclxuICAgIC0tYWNjZW50OiNFNTM5MzU7IFxyXG4gICAgLS1hY2NlbnQtMjojRkY4QTY1OyBcclxuICAgIC0tc3Ryb2tlOiMyYTJhMmE7IFxyXG4gICAgLS1yYWRpdXM6MTRweDsgXHJcbiAgICAtLWgxOiBjbGFtcCgzNnB4LCA1dncsIDY0cHgpOyBcclxuICAgIC0tbGVhZDogY2xhbXAoMTZweCwgMS40dncsIDE4cHgpOyBcclxuICAgIC0tZm9udDogJ0ludGVyJywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjsgXHJcbiAgICAtLXRleHQ6IHZhcigtLWZnKTsgXHJcbiAgICAtLWxpbms6ICM4MGQ4ZmY7IFxyXG4gICAgLS1zdXJmYWNlOiB2YXIoLS1wYW5lbCk7IFxyXG4gICAgLS1iZy0yOiB2YXIoLS1wYW5lbC0yKTsgXHJcbiAgICAtLWNhcmQ6IHZhcigtLXBhbmVsKTsgXHJcbiAgICAtLWgyOiBjbGFtcCgyOHB4LCA0dncsIDQ0cHgpOyAtLXA6IGNsYW1wKDE1cHgsIDEuMjV2dywgMTdweCk7IFxyXG4gICAgLS1idG4tYmc6ICM0MjQyNDI7IFxyXG4gICAgLS1idG4tYmctaG92ZXI6ICM2MTYxNjE7IFxyXG4gICAgLS1icmFuZC0xOiB2YXIoLS1hY2NlbnQpOyBcclxuICAgIC0tYnJhbmQtMzogIzgwZDhmZjsgXHJcbiAgICAtLXRiLWJnOiByZ2JhKDE4LDE4LDE4LC43Mik7IFxyXG4gICAgLS10Yi1zdHJva2U6IzJhMmEyYTsgXHJcbiAgICAtLXRiLWFjY2VudDojRTUzOTM1OyBcclxuICAgIC0tdGItdGV4dDojZmZmOyBcclxufSIsIi5idG4tbGluayB7XHJcbi0tYnMtYnRuLWZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAtLWJzLWJ0bi1jb2xvcjogd2hpdGU7XHJcbiAgICAtLWJzLWJ0bi1iZzogdHJhbnNwYXJlbnQ7XHJcbiAgICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgLS1icy1idG4taG92ZXItY29sb3I6ICNFNTM5MzU7XHJcbiAgICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiAjRTUzOTM1O1xyXG4gICAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogIzZjNzU3ZDtcclxuICAgIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAtLWJzLWJ0bi1ib3gtc2hhZG93OiAwIDAgMCAjMDAwO1xyXG4gICAgLS1icy1idG4tZm9jdXMtc2hhZG93LXJnYjogNDksIDEzMiwgMjUzO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fSIsIjpyb290e1xyXG4gIC0tYmc6IzEyMTIxMjsgLS1wYW5lbDojMWUxZTFlOyAtLXBhbmVsMjojMjQyNDI0OyAtLXN0cm9rZTojMmEyYTJhO1xyXG4gIC0tZmc6I2ZmZjsgLS1tdXRlZDojY2ZjZmNmOyAtLWFjY2VudDojZmY0ZDRkO1xyXG59XHJcblxyXG4ubG9naW4tcGFnZXtcclxuICBtaW4taGVpZ2h0OjEwMHZoO1xyXG4gIG1heC1oZWlnaHQ6MTAwdmg7XHJcbiAgZGlzcGxheTpncmlkOyBwbGFjZS1pdGVtczpjZW50ZXI7IFxyXG4gIGNvbG9yOnZhcigtLWZnKTtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDEyMDBweCA2MDBweCBhdCAxNSUgLTEwJSwgIzIwMjAyMCwgdmFyKC0tYmcpIDYwJSksXHJcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTYxNjE2LCAjMTIxMjEyKTtcclxuICBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuO1xyXG5cclxuICAmOjphZnRlcntcclxuICAgIGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OmF1dG8gLTIwJSAtMzAlIC0yMCU7IGhlaWdodDoyNjBweDtcclxuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg1MCUgMTYwJSBhdCA1MCUgMCUsIHJnYmEoMjU1LDc3LDc3LC4yNSksIHRyYW5zcGFyZW50IDcwJSk7XHJcbiAgICBmaWx0ZXI6IGJsdXIoMzJweCk7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGFuaW1hdGlvbjogbG9naW5GbG9hdCAxMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGxvZ2luRmxvYXQgeyAwJSwxMDAleyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0gNTAleyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KX0gfVxyXG5cclxuLmJyYW5kLWxvZ297XHJcbiAgcG9zaXRpb246IGZpeGVkOyB0b3A6IDE2cHg7IGxlZnQ6IDE2cHg7IHotaW5kZXg6IDIwMDA7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDtcclxuICBwYWRkaW5nOiA4cHggMTBweDsgYm9yZGVyLXJhZGl1czogMTJweDsgY29sb3I6IHZhcigtLWZnKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xyXG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLDAsMCwuMzUpO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4ycyBlYXNlLCBib3JkZXItY29sb3IgLjJzIGVhc2U7XHJcbiAgaW1neyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiBhdXRvOyBkaXNwbGF5OiBibG9jazsgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA2cHggcmdiYSgwLDAsMCwuMjUpKTsgfVxyXG4gICY6aG92ZXJ7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgYm94LXNoYWRvdzogMCAxMnB4IDMwcHggcmdiYSgwLDAsMCwuNDUpOyBiYWNrZ3JvdW5kOiAjZmZmZmZmMTg7IH1cclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDo1NjBweCl7IC5icmFuZC1sb2dveyB0b3A6MTJweDsgbGVmdDoxMnB4OyBwYWRkaW5nOjZweCA4cHg7IGltZ3sgaGVpZ2h0OjIycHg7IH0gfSB9XHJcblxyXG4ubG9naW4tY2FyZHtcclxuICB3aWR0aDptaW4oNTIwcHgsIDEwMCUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tcGFuZWwpLCMxOTE5MTkpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTsgYm9yZGVyLXJhZGl1czoyMnB4OyBwYWRkaW5nOjI4cHg7XHJcbiAgYm94LXNoYWRvdzogMCAxOHB4IDQ0cHggcmdiYSgwLDAsMCwuMzUpO1xyXG5cclxuICBoMnsgbWFyZ2luOjAgMCA0cHg7IGZvbnQtc2l6ZTpjbGFtcCgyMnB4LDN2dywzMHB4KSB9XHJcbiAgLnN1YnsgY29sb3I6dmFyKC0tbXV0ZWQpOyBtYXJnaW46MCAwIDE4cHggfVxyXG59XHJcblxyXG4jbG9naW5Gb3JtLCAjc2V0UGFzc3dvcmRGb3JtLCAjZm9yZ290Rm9ybXtcclxuICBkaXNwbGF5OmdyaWQ7IGdhcDoxNHB4O1xyXG5cclxuICBsYWJlbHsgZm9udC1zaXplOjEzcHg7IGNvbG9yOiNlNmU2ZTYgfVxyXG4gIC5pbnB1dHsgcG9zaXRpb246cmVsYXRpdmU7IH1cclxuXHJcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJde1xyXG4gICAgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4IDE0cHg7IGJvcmRlci1yYWRpdXM6MTJweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xyXG4gICAgYmFja2dyb3VuZDojMWIxYjFiOyBjb2xvcjojZmZmOyBvdXRsaW5lOm5vbmU7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycywgYm94LXNoYWRvdyAuMnM7XHJcbiAgICAmOmZvY3VzeyBib3JkZXItY29sb3I6IzQwNDA0MDsgYm94LXNoYWRvdzowIDAgMCAzcHggI2ZmZmZmZjEyOyB9XHJcbiAgfVxyXG5cclxuICAudG9nZ2xlLXBhc3N7XHJcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTBweDsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEyJSk7XHJcbiAgICBiYWNrZ3JvdW5kOiNmZmZmZmYxMjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmMmE7IGNvbG9yOiNmZmY7XHJcbiAgICBib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzo2cHggOHB4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjEycHg7XHJcbiAgfVxyXG5cclxuICAucm93eyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGdhcDoxMHB4OyBmbGV4LXdyYXA6d3JhcCB9XHJcbiAgLnJvdyAucmVtZW1iZXJ7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4OyBmb250LXNpemU6MTNweDsgY29sb3I6I2U2ZTZlNiB9XHJcbiAgLnJvdyBheyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgJjpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSB9IH1cclxuXHJcbiAgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl17XHJcbiAgICBhcHBlYXJhbmNlOm5vbmU7IGJvcmRlcjowOyBjdXJzb3I6cG9pbnRlcjtcclxuICAgIGJhY2tncm91bmQ6dmFyKC0tYWNjZW50KTsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6NzAwO1xyXG4gICAgcGFkZGluZzoxMnB4IDE2cHg7IGJvcmRlci1yYWRpdXM6MTJweDtcclxuICAgIGJveC1zaGFkb3c6MCAxMnB4IDI0cHggcmdiYSgyNTUsNzcsNzcsLjI1KTtcclxuICAgIHRyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMsIGJveC1zaGFkb3cgLjE1cztcclxuICAgICY6aG92ZXJ7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OjAgMTZweCAzNHB4IHJnYmEoMjU1LDc3LDc3LC4zNSkgfVxyXG4gIH1cclxuXHJcbiAgLmhpbnR7IGZvbnQtc2l6ZToxMnB4OyBjb2xvcjp2YXIoLS1tdXRlZCkgfVxyXG5cclxuICAuYWxlcnR7IGRpc3BsYXk6bm9uZTsgcGFkZGluZzoxMHB4IDEycHg7IGJvcmRlci1yYWRpdXM6MTJweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpOyB9XHJcbiAgLmFsZXJ0LnNob3d7IGRpc3BsYXk6YmxvY2sgfVxyXG4gIC5hbGVydC5lcnJvcnsgYmFja2dyb3VuZDojMmExNDE0OyBib3JkZXItY29sb3I6I2EzMzMzM31cclxuICAuYWxlcnQub2t7IGJhY2tncm91bmQ6IzEzMzAxNjsgYm9yZGVyLWNvbG9yOiMyYzhhMzEgfVxyXG59XHJcbiIsIiAgOnJvb3R7XHJcbiAgICAtLWJnOiMxMjEyMTI7IC0tcGFuZWw6IzFlMWUxZTsgLS1wYW5lbDI6IzI0MjQyNDtcclxuICAgIC0tc3Ryb2tlOiMyYTJhMmE7IC0tZmc6I2ZmZjsgLS1tdXRlZDojY2ZjZmNmOyAtLWFjY2VudDojZmY0ZDRkO1xyXG4gIH1cclxuICAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH1cclxuICBoZWFkZXIgaW1ne2hlaWdodDoyOHB4O2Rpc3BsYXk6YmxvY2s7fVxyXG4gIGhlYWRlciBhe2NvbG9yOnZhcigtLWZnKTt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjNweDt9XHJcbiAgaGVhZGVyIGE6aG92ZXJ7Y29sb3I6dmFyKC0tYWNjZW50KTt9XHJcbiAgbWFpbntcclxuICAgIHBhZGRpbmc6MTAwcHggMjRweCA4MHB4O1xyXG4gICAgbWF4LXdpZHRoOjk2MHB4O21hcmdpbjowIGF1dG87XHJcbiAgfVxyXG4gIGgxLGgyLGgze2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwO31cclxuICBoMXtmb250LXNpemU6Y2xhbXAoMjZweCw0dncsMzZweCk7bWFyZ2luLWJvdHRvbToxMHB4O31cclxuICBoMnttYXJnaW4tdG9wOjQycHg7Zm9udC1zaXplOmNsYW1wKDIwcHgsMi41dncsMjZweCk7fVxyXG4gIGgze21hcmdpbi10b3A6MjRweDtmb250LXNpemU6MThweDt9XHJcbiAgcCxsaXtjb2xvcjp2YXIoLS1tdXRlZCk7fVxyXG4gIHVse21hcmdpbi1sZWZ0OjIwcHg7fVxyXG4gIGF7Y29sb3I6dmFyKC0tYWNjZW50KTt9XHJcbiAgZm9vdGVye1xyXG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozMnB4IDE2cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcclxuICAgIGNvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTRweDttYXJnaW4tdG9wOjYwcHg7XHJcbiAgfSIsImh0bWxbZGF0YS10aGVtZT1cImxpZ2h0XCJde1xyXG4gIC0tY2FkLWJnOiNmN2Y4ZmE7IC0tY2FkLXN1cmZhY2U6I2ZmZmZmZjsgLS1jYWQtdGV4dDojMGUwZjExOyAtLWNhZC1tdXRlZDojNWM1ZjY2O1xyXG4gIC0tY2FkLWJvcmRlcjogcmdiYSgwLDAsMCwuMDgpOyAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMCwwLDAsLjE2KTtcclxufVxyXG46cm9vdHtcclxuICAtLWNhZC1iZzogIzBmMGYxMDtcclxuICAtLWNhZC1zdXJmYWNlOiAjMTYxNzE5O1xyXG4gIC0tY2FkLWJvcmRlcjogcmdiYSgyNTUsMjU1LDI1NSwuMDgpO1xyXG4gIC0tY2FkLWJvcmRlci1ob3ZlcjogcmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xyXG4gIC0tY2FkLXRleHQ6ICNlOWVhZWU7XHJcbiAgLS1jYWQtbXV0ZWQ6ICNhN2E4YWQ7XHJcbiAgLS1jYWQtYWNjZW50OiAjZTMxYjIzOyAvKiBDQURBUFRJWC92ZXJ3YW50IHJvb2QgKi9cclxufVxyXG4uYnRuLWRhbmdlciB7XHJcbiAgYmFja2dyb3VuZDogI2UzMWIyMztcclxuICBib3JkZXItY29sb3I6ICNlMzFiMjM7XHJcbn1cclxuLmJ0bi1kYW5nZXI6aG92ZXIge1xyXG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KTtcclxufVxyXG5cclxuLmNhZC1oZWFkaW5neyBjb2xvcjogdmFyKC0tY2FkLXRleHQpOyB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsMCwwLC4zNSk7IH1cclxuXHJcbi8qIENhcmRzICovXHJcbi5jYWQtY2FyZHtcclxuICBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZ2FwOi41cmVtO1xyXG4gIGhlaWdodDoxMDAlOyBwYWRkaW5nOjEuMjVyZW0gMS4yNXJlbSAxcmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6MTZweDtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwuMDQpLCByZ2JhKDI1NSwyNTUsMjU1LC4wMikpLFxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSwgcmdiYSgyMjcsMjcsMzUsLjA4KSAwJSwgdHJhbnNwYXJlbnQgNDAlKSxcclxuICAgIHZhcigtLWNhZC1zdXJmYWNlKTtcclxuICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsLjM1KTtcclxuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xyXG59XHJcblxyXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRpdGxle1xyXG4gIG1hcmdpbjogLjI1cmVtIDAgLjI1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6LjJweDtcclxufVxyXG4uY2FkLWNhcmQgLmNhZC1jYXJkLXRleHR7IGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpOyB9XHJcblxyXG4vKiBJY29uIGJ1YmJsZSAqL1xyXG4uY2FkLWNhcmQtaWNvbntcclxuICB3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MTBweDtcclxuICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjI3LDI3LDM1LC4xMik7XHJcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIyNywyNywzNSwuMzUpO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7XHJcbiAgbWFyZ2luLWJvdHRvbTouMjVyZW07XHJcbn1cclxuLmNhZC1jYXJkLWNsaWNreyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH1cclxuLyogQnJhbmQgYnV0dG9uICovXHJcbi5idG4tY2Fke1xyXG4gIC0tYnMtYnRuLWNvbG9yOiNmZmY7XHJcbiAgLS1icy1idG4tYmc6IHZhcigtLWNhZC1hY2NlbnQpO1xyXG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdmFyKC0tY2FkLWFjY2VudCk7XHJcbiAgLS1icy1idG4taG92ZXItYmc6ICNjNzE5MjA7XHJcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjYzcxOTIwO1xyXG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDIyNywyNywzNTtcclxufVxyXG5cclxuLyogVGFiZWwgaW4gQ2FkYXB0aXgtc3RpamwgKi9cclxuLy8gLmNhZC1jYXJkIC50YWJsZXtcclxuLy8gICAtLWJzLXRhYmxlLWJnOiB0cmFuc3BhcmVudDsgICAgICAgICAgLyogemV0IHZhcmlhYmVsZSBvcCB0cmFuc3BhcmFudCAqL1xyXG4vLyAgIC0tYnMtdGFibGUtc3RyaXBlZC1iZzogdHJhbnNwYXJlbnQ7ICAvKiB2b29yIHN0cmlwZWQgdmFyaWFudGVuICovXHJcbi8vICAgLS1icy10YWJsZS1ob3Zlci1iZzogdHJhbnNwYXJlbnQ7ICAgIC8qIHZvb3IgaG92ZXIgdmFyaWFudGVuICovXHJcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7ICAgICAgIC8qIGZhbGxiYWNrICovXHJcbi8vIH1cclxuLyogb3ZlcnJpZGUgZGUgY2VscmVnZWwgdmFuIEJvb3RzdHJhcCAqL1xyXG4vLyAuY2FkLWNhcmQgLmNhZC10YWJsZSA+IDpub3QoY2FwdGlvbikgPiAqID4gKntcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG4vLyB9XHJcbi5jYWQtdGFibGUge1xyXG4gIC0tcm93LWhvdmVyOiByZ2JhKDI1NSwyNTUsMjU1LC4wMyk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuLmNhZC10YWJsZSB0aGVhZCB0aHtcclxuICBib3JkZXI6IDA7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxldHRlci1zcGFjaW5nOiAuMDNlbTtcclxuICBmb250LXNpemU6IC43NXJlbTtcclxufVxyXG4uY2FkLXRhYmxlIHRoLCAuY2FkLXRhYmxlIHRke1xyXG4gIHBhZGRpbmc6IC42cmVtIC43NXJlbTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jYWQtYm9yZGVyKTtcclxuICBjb2xvcjogdmFyKC0tY2FkLWJnKTtcclxufVxyXG4uY2FkLXRhYmxlIHRib2R5IHRyOmhvdmVyeyBiYWNrZ3JvdW5kOiB2YXIoLS1yb3ctaG92ZXIpOyB9XHJcblxyXG4vKiBVc2Vya29sb20gbWV0IGF2YXRhci1pbml0aWFscyAqL1xyXG4uY2FkLXVzZXJ7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6Ljc1cmVtOyB9XHJcbi5jYWQtYXZhdGFye1xyXG4gIHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDM2cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMTIsIDg0LCAyMzcsIDAuMTIpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgxMiwgODMsIDIzNywgMC44MjkpO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAuOHJlbTtcclxuICBjb2xvcjogcmdiYSgxMiwgODMsIDIzNywgMC44MjkpO1xyXG59XHJcblxyXG4vKiBCYWRnZXMvY2lqZmVycyAqL1xyXG4uY2FkLWJhZGdle1xyXG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOi4yNXJlbSAuNXJlbTsgYm9yZGVyLXJhZGl1czo5OTlweDtcclxuICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGZvbnQtd2VpZ2h0OjYwMDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxufVxyXG4uY2FkLWFsaWduLW51bXsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfVxyXG4uY2FkLWRhdGV7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGNvbG9yOiB2YXIoLS1jYWQtbXV0ZWQpOyB9XHJcblxyXG4vKiBUcmFuc3BhcmFudGUgbGlzdCArIGl0ZW1zICovXHJcbi5jYWQtbGlzdHtcclxuICBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuLmNhZC1saXN0LWl0ZW17XHJcbiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1xyXG4gIGdhcDogLjc1cmVtOyBwYWRkaW5nOiAuNXJlbSAuMjVyZW07IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG59XHJcbi5jYWQtbGlzdC1pdGVtOmZpcnN0LWNoaWxkeyBib3JkZXItdG9wOiAwOyB9XHJcbi5jYWQtbGlzdC1pdGVtOmhvdmVyeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wMyk7IH1cclxuXHJcbi8qIFVzZXJibG9ramUgbWV0IG1pbmktYXZhdGFyICovXHJcbi5jYWQtdXNlci1zbXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDouNXJlbTsgbWluLXdpZHRoOjA7IH1cclxuLmNhZC1hdmF0YXItc217XHJcbiAgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywyNywzNSwuMTIpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMjcsMjcsMzUsLjM1KTtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDQpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogLjdyZW07IGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XHJcbn1cclxuLmNhZC11c2VyLW5hbWV7IGZvbnQtd2VpZ2h0OjYwMDsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IH1cclxuXHJcbi8qIERhdHVtIHJlY2h0cyAqL1xyXG4uY2FkLWxpc3QtZGF0ZXsgd2hpdGUtc3BhY2U6bm93cmFwOyBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfVxyXG5cclxuLyogbWFhayB6ZWtlciBkZSBVTCB0cmFuc3BhcmFudCBiaW5uZW4gY2FyZHMgKi9cclxuLmNhZC1jYXJkIC5jYWQtbGlzdCxcclxuLmNhZC1jYXJkIC5saXN0LXVuc3R5bGVkeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxyXG5cclxuLmNhZC1hbW91bnR7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cclxuLmNhZC1jdXJyZW5jeXsgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7IGZvbnQtc2l6ZTogLjg1ZW07IG1hcmdpbi1sZWZ0OiAuMjVyZW07IH1cclxuXHJcbi5idG4tZ2hvc3R7IC0tYmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjIpOyBjb2xvcjojODQ4NTg1OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJkKTsgfVxyXG4uYnRuLWdob3N0OmhvdmVyeyBib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMzUpOyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA1KTsgfSIsIi5hZG1pbi1zaWRlYmFyIHtcclxuICB3aWR0aDogMjQwcHg7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgcG9zaXRpb246Zml4ZWQ7XHJcbiAgei1pbmRleDo5OTk5OTk5OTk5OTtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMWIxYjFiLCAjMGYwZjBmKTtcclxuICBjb2xvcjogI2ZmZjtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xyXG59XHJcblxyXG4uYWRtaW4tc2lkZWJhciAubmF2LWxpbmsge1xyXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpO1xyXG4gIHBhZGRpbmc6IC42cmVtIDFyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogLjRyZW07XHJcbiAgdHJhbnNpdGlvbjogYWxsIC4xNXM7XHJcbn1cclxuXHJcbi5hZG1pbi1zaWRlYmFyIC5uYXYtbGluazpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4uYWRtaW4tc2lkZWJhciAubmF2LWxpbmsuYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbjpyb290e1xyXG4gIC0tc2lkZWJhci13OiAyNjBweDsgICAvKiBwYXMgYWFuIG5hYXIgc21hYWsgKi9cclxuICAtLXBhZ2UtbWF4OiAxMjgwcHg7ICAgLyogbWF4IGJyZWVkdGUgdmFuIGplIGNvbnRlbnQta29sb20gKi9cclxufVxyXG5cclxuLmFkbWluLWxheW91dHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG59XHJcblxyXG4vKiBab3JnIGRhdCBqZSBiZXN0YWFuZGUgLmFkbWluLXNpZGViYXIgaGllcm9wIGFhbnNsdWl0ICovXHJcbi5hZG1pbi1zaWRlYmFye1xyXG4gIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXcpO1xyXG4gIGZsZXg6IDAgMCB2YXIoLS1zaWRlYmFyLXcpO1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7ICAgICAgLyogYmxpamZ0IHN0YWFuIGJpaiBzY3JvbGxlbiAqL1xyXG4gIHRvcDogMDtcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4vKiBSZWNodGVyIGtvbG9tIHZ1bHQgZGUgcmVzdCBhdXRvbWF0aXNjaCAqL1xyXG4uYWRtaW4tbWFpbntcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBtaW4td2lkdGg6IDA7ICAgICAgICAgIC8qIHZvb3Jrb210IG92ZXJmbG93IGlzc3VlcyBtZXQgZmxleCAqL1xyXG59XHJcblxyXG4vKiBDZW50cmVlciBkZSBlY2h0ZSBwYWdpbmEtaW5ob3VkICovXHJcbi5hZG1pbi1tYWluLWlubmVye1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBwYWRkaW5nOiAyNHB4IGNsYW1wKDEycHgsIDJ2dywgMzJweCk7XHJcbn1cclxuXHJcbi8qIE9wdGlvbmVlbDogbW9iaWVsIGdlZHJhZyAoc2lkZWJhciBib3ZlbmFhbiBvZiB2aWEgb2ZmY2FudmFzKSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpe1xyXG4gIC5hZG1pbi1sYXlvdXR7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgLmFkbWluLXNpZGViYXJ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO1xyXG4gIH1cclxufVxyXG4iLCJodG1sW2RhdGEtdGhlbWU9XCJsaWdodFwiXXtcclxuICAtLWNhZC1iZzojZjdmOGZhOyAtLWNhZC1zdXJmYWNlOiNmZmZmZmY7IC0tY2FkLXRleHQ6IzBlMGYxMTsgLS1jYWQtbXV0ZWQ6IzVjNWY2NjtcclxuICAtLWNhZC1ib3JkZXI6IHJnYmEoMCwwLDAsLjA4KTsgLS1jYWQtYm9yZGVyLWhvdmVyOiByZ2JhKDAsMCwwLC4xNik7XHJcbn1cclxuOnJvb3R7XHJcbiAgLS1jYWQtYmc6ICMwZjBmMTA7XHJcbiAgLS1jYWQtc3VyZmFjZTogIzE2MTcxOTtcclxuICAtLWNhZC1ib3JkZXI6IHJnYmEoMjU1LDI1NSwyNTUsLjA4KTtcclxuICAtLWNhZC1ib3JkZXItaG92ZXI6IHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtcclxuICAtLWNhZC10ZXh0OiAjZTllYWVlO1xyXG4gIC0tY2FkLW11dGVkOiAjYTdhOGFkO1xyXG4gIC0tY2FkLWFjY2VudDogI2UzMWIyMzsgLyogUkVTVGluc3BlY3QvdmVyd2FudCByb29kICovXHJcbn1cclxuLmNhcmVlcnN7XHJcbiAgICBtYXJnaW4tdG9wOjV2aDtcclxufVxyXG4uY2FkLWhlYWRpbmd7IGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7IHRleHQtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwwLDAsLjM1KTsgfVxyXG5cclxuLyogQ2FyZHMgKi9cclxuLmNhZC1jYXJke1xyXG4gIGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6LjVyZW07XHJcbiAgaGVpZ2h0OjEwMCU7IHBhZGRpbmc6MS4yNXJlbSAxLjI1cmVtIDFyZW07XHJcbiAgYm9yZGVyLXJhZGl1czoxNnB4O1xyXG4gIGJhY2tncm91bmQ6XHJcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LC4wNCksIHJnYmEoMjU1LDI1NSwyNTUsLjAyKSksXHJcbiAgICByYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDAlIDAlLCByZ2JhKDIyNywyNywzNSwuMDgpIDAlLCB0cmFuc3BhcmVudCA0MCUpLFxyXG4gICAgdmFyKC0tY2FkLXN1cmZhY2UpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tY2FkLWJvcmRlcik7XHJcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwuMzUpO1xyXG4gIGNvbG9yOiB2YXIoLS1jYWQtdGV4dCk7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XHJcbn1cclxuLmNhZC1jYXJkIC5jYWQtY2FyZC10aXRsZXtcclxuICBtYXJnaW46IC4yNXJlbSAwIC4yNXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOi4ycHg7XHJcbn1cclxuLmNhZC1jYXJkIC5jYWQtY2FyZC10ZXh0eyBjb2xvcjogdmFyKC0tY2FkLW11dGVkKTsgfVxyXG5cclxuLyogSWNvbiBidWJibGUgKi9cclxuLmNhZC1jYXJkLWljb257XHJcbiAgd2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjEwcHg7XHJcbiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDIyNywyNywzNSwuMTIpO1xyXG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMjcsMjcsMzUsLjM1KTtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDQpO1xyXG4gIG1hcmdpbi1ib3R0b206LjI1cmVtO1xyXG59XHJcbi5jYWQtY2FyZC1jbGlja3sgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9XHJcbi8qIEJyYW5kIGJ1dHRvbiAqL1xyXG4uYnRuLWNhZHtcclxuICAtLWJzLWJ0bi1jb2xvcjojZmZmO1xyXG4gIC0tYnMtYnRuLWJnOiB2YXIoLS1jYWQtYWNjZW50KTtcclxuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWNhZC1hY2NlbnQpO1xyXG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjYzcxOTIwO1xyXG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogI2M3MTkyMDtcclxuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyMjcsMjcsMzU7XHJcbn1cclxuLyogPT09PT09PT09PSBGZWF0dXJlIFRpbGVzIChoZXJvLWFjaHRpZywgZ2VlbiBjYXJkcykgPT09PT09PT09PSAqL1xyXG4uY2FkLWZlYXR1cmVzIHsgLS1jYWQtZmVhdHVyZS1yYWRpdXM6IDE4cHg7IH1cclxuXHJcbi5jYWQtZmVhdHVyZXtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2FkLWZlYXR1cmUtcmFkaXVzKTtcclxuICBwYWRkaW5nOiAyMnB4IDIycHggMjBweDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgLyogTGF5ZXIgMTogc3VidGllbGUgZ3JpZC9nbG93ICovXHJcbiAgYmFja2dyb3VuZDpcclxuICAgIHJhZGlhbC1ncmFkaWVudCgxNDAlIDEyMCUgYXQgMCUgMCUsIHJnYmEoMjI3LDI3LDM1LC4xOCkgMCUsIHJnYmEoMjI3LDI3LDM1LDApIDQ4JSksXHJcbiAgICByYWRpYWwtZ3JhZGllbnQoMTIwJSAxNDAlIGF0IDEwMCUgMCUsIHJnYmEoMjU1LDI1NSwyNTUsLjA4KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA1NSUpLFxyXG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwuMDUpLCByZ2JhKDI1NSwyNTUsMjU1LC4wMikpLFxyXG4gICAgdmFyKC0tY2FkLXN1cmZhY2UpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhZC1ib3JkZXIpO1xyXG4gIGJveC1zaGFkb3c6XHJcbiAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDMpLFxyXG4gICAgMCAxNHB4IDQ0cHggcmdiYSgwLDAsMCwuNDUpO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMThzIGVhc2UsIGJveC1zaGFkb3cgLjE4cyBlYXNlLCBib3JkZXItY29sb3IgLjE4cyBlYXNlO1xyXG59XHJcblxyXG4uY2FkLWZlYXR1cmU6aG92ZXJ7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2FkLWJvcmRlci1ob3Zlcik7XHJcbiAgYm94LXNoYWRvdzogMCAyMnB4IDU0cHggcmdiYSgwLDAsMCwuNTUpO1xyXG59XHJcblxyXG4uY2FkLWZlYXR1cmU6OmFmdGVye1xyXG4gIC8qIGRlY29yYXRpZXZlIHNvZnQgaGlnaGxpZ2h0IHJlY2h0cyBvbmRlciAqL1xyXG4gIGNvbnRlbnQ6XCJcIjtcclxuICBwb3NpdGlvbjphYnNvbHV0ZTsgaW5zZXQ6YXV0byAtMjAlIC0zNSUgYXV0bztcclxuICB3aWR0aDogNjAlOyBoZWlnaHQ6IDYwJTtcclxuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNDAlIDQwJSBhdCA1MCUgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xMiksIHJnYmEoMjU1LDI1NSwyNTUsMCkpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7XHJcbiAgcG9pbnRlci1ldmVudHM6bm9uZTtcclxufVxyXG5cclxuLyogVmFyaWF0aWVzIG1ldCBrbGV1cmFjY2VudGVuICovXHJcbi5jYWQtZmVhdHVyZS0tYmx1ZXtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDE0MCUgMTIwJSBhdCAwJSAwJSwgcmdiYSg3NCwxNDQsMjI2LC4xOCkgMCUsIHJnYmEoNzQsMTQ0LDIyNiwwKSA0OCUpLFxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDEyMCUgMTQwJSBhdCAxMDAlIDAlLCByZ2JhKDI1NSwyNTUsMjU1LC4wOCkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgNTUlKSxcclxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsLjA1KSwgcmdiYSgyNTUsMjU1LDI1NSwuMDIpKSxcclxuICAgIHZhcigtLWNhZC1zdXJmYWNlKTtcclxufVxyXG5cclxuLmNhZC1mZWF0dXJlLS1ncmVlbntcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgcmFkaWFsLWdyYWRpZW50KDE0MCUgMTIwJSBhdCAwJSAwJSwgcmdiYSg0MSwyMDUsNjUsLjE4KSAwJSwgcmdiYSg0MSwyMDUsNjUsMCkgNDglKSxcclxuICAgIHJhZGlhbC1ncmFkaWVudCgxMjAlIDE0MCUgYXQgMTAwJSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMDgpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDU1JSksXHJcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LC4wNSksIHJnYmEoMjU1LDI1NSwyNTUsLjAyKSksXHJcbiAgICB2YXIoLS1jYWQtc3VyZmFjZSk7XHJcbn1cclxuXHJcbi8qIEljb24gYnViYmxlIGdyb290IGVuIGJvbGQgKi9cclxuLmNhZC1mZWF0dXJlX19pY29ue1xyXG4gIHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDhweDtcclxuXHJcbiAgYmFja2dyb3VuZDogcmdiYSgyMjcsMjcsMzUsLjE2KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNywyNywzNSwuMzUpO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wNCk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG59XHJcblxyXG4uY2FkLWZlYXR1cmUtLWJsdWUgLmNhZC1mZWF0dXJlX19pY29ue1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoNzQsMTQ0LDIyNiwuMTYpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSg3NCwxNDQsMjI2LC4zNSk7XHJcbn1cclxuLmNhZC1mZWF0dXJlLS1ncmVlbiAuY2FkLWZlYXR1cmVfX2ljb257XHJcbiAgYmFja2dyb3VuZDogcmdiYSg0MSwyMDUsNjUsLjE2KTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoNDEsMjA1LDY1LC4zNSk7XHJcbn1cclxuXHJcbi8qIFRla3N0ICovXHJcbi5jYWQtZmVhdHVyZV9fdGl0bGV7XHJcbiAgbWFyZ2luOiAycHggMCA2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICBsZXR0ZXItc3BhY2luZzogLjJweDtcclxuICBjb2xvcjogdmFyKC0tY2FkLXRleHQpO1xyXG59XHJcbi5jYWQtZmVhdHVyZV9fdGV4dHtcclxuICBtYXJnaW46IDA7XHJcbiAgY29sb3I6IHZhcigtLWNhZC1tdXRlZCk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG4iLCIgIGh0bWwsIGJvZHkge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcclxuICAgICAgICAgICAgY29sb3I6ICNmMGYwZjA7XHJcbiAgICAgICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYm9keSB7XHJcbiAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5O1xyXG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgI2JnLXZpZGVvIHtcclxuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdG1pbi13aWR0aDogMTAwJTtcclxuXHRcdFx0bWluLWhlaWdodDogMTAwJTtcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRcdFx0YmFja2dyb3VuZDogYmxhY2s7XHJcblx0XHR9XHJcblxyXG4gICAgICAgIC5vdmVybGF5LWNvbnRlbnQge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgY29sb3I6ICNmMGYwZjA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHZoO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC5zY3JvbGwtaW5kaWNhdG9yIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGtleWZyYW1lcyBib3VuY2Uge1xyXG4gICAgICAgICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxyXG4gICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgICNiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLDAsMCwwLjUpO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfSAqL1xyXG5cclxuICAgICAgICAuY29udGFjdC1pbmZvIHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5jb250YWN0LWluZm8gcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjODBkOGZmO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhOmhvdmVyIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucG9ydGFsLWxvZ2luIHtcclxuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0XHR0b3A6IDIwcHg7XHJcblx0XHRcdHJpZ2h0OiAzMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xyXG5cdFx0XHRwYWRkaW5nOiAxMnB4IDE2cHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDhweDtcclxuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDAsMCwwLjMpO1xyXG5cdFx0XHR6LWluZGV4OiAxMDAyO1xyXG5cdFx0fVxyXG5cclxuICAgICAgICAucG9ydGFsLWxvZ2luIGZvcm0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBnYXA6IDhweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wb3J0YWwtbG9naW4gaW5wdXQge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTBweDtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wb3J0YWwtbG9naW4gYnV0dG9uIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcclxuICAgICAgICAgICAgY29sb3I6ICNmMGYwZjA7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTBweDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wb3J0YWwtbG9naW4gYnV0dG9uOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5lcnJvci1tZXNzYWdlIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZjUyNTI7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhhbWJ1cmdlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICBsZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZjBmMGYwO1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDEwMDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAuc2lkZWJhciB7XHJcbiAgICAgICAgLy8gICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgLy8gICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAvLyAgICAgdG9wOiAwO1xyXG4gICAgICAgIC8vICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIC8vICAgICB3aWR0aDogMjYwcHg7XHJcbiAgICAgICAgLy8gICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJlMmUyZTtcclxuICAgICAgICAvLyAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAvLyAgICAgYm94LXNoYWRvdzogMnB4IDAgMTBweCByZ2JhKDAsMCwwLDAuNCk7XHJcbiAgICAgICAgLy8gICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAvLyAuc2lkZWJhciBmb3JtIHtcclxuICAgICAgICAvLyAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAvLyAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAvLyAgICAgZ2FwOiA4cHg7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAvLyAuc2lkZWJhciBpbnB1dCwgLnNpZGViYXIgYnV0dG9uIHtcclxuICAgICAgICAvLyAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIC8vICAgICBwYWRkaW5nOiA2cHggMTBweDtcclxuICAgICAgICAvLyAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIC8vICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAvLyAuc2lkZWJhciBidXR0b24ge1xyXG4gICAgICAgIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xyXG4gICAgICAgIC8vICAgICBjb2xvcjogI2YwZjBmMDtcclxuICAgICAgICAvLyAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgLy8gLnNpZGViYXIgYnV0dG9uOmhvdmVyIHtcclxuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTtcclxuICAgICAgICAvLyB9XHJcblx0XHQjaW50cm97XHJcblx0XHRcdC8vIG1heC1oZWlnaHQ6MTAwdmg7XHJcblx0XHRcdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6OTIwMHZoO1xyXG5cdFx0XHR9XHRcdFx0XHRcclxuXHRcdFxyXG5cdFx0fVxyXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgICAgICAucG9ydGFsLWxvZ2luIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5oYW1idXJnZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0XHQubW9iaWxlLWxvZ2luLWZvcm17XHJcblx0XHRcdG1hcmdpbi10b3A6MjB2aFxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQudGl0YW4tc2VjdGlvbiB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEwdmg7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjEwdmg7XHJcblx0XHRcdGNvbG9yOiAjZjBmMGYwO1xyXG5cdFx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDoxMHZoO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG4udGl0YW4tY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgIC8qIOKGkCBUaGlzIGZsaXBzIGltYWdlIHRvIHJpZ2h0LCB0ZXh0IHRvIGxlZnQgKi9cclxuICAgIG1heC13aWR0aDogNjB2dztcclxuXHRcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogNDBweDtcclxuXHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuXHRcdGdhcDogMHB4O1xyXG5cdFx0bWF4LXdpZHRoOjEwMHZ3O1xyXG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi50aXRhbi1pbWFnZSB7XHJcbiAgICBmbGV4OiAxIDEgNDAwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLDAsMCwwLjQpO1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG5cdFx0ZmxleDogMSAxIDA7XHJcblx0XHR3aWR0aDoxMDB2dztcclxuXHRcdGhlaWdodDo1MCU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcbn1cclxuXHJcbi50aXRhbi10ZXh0IHtcclxuICAgIGZsZXg6IDEgMSA0MDBweDtcclxuICAgIG1pbi13aWR0aDogMjgwcHg7XHJcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuXHRcdGZsZXg6IDEgMSAxO1xyXG5cdFx0bWluLXdpZHRoOiA4MHZ3O1xyXG5cdFx0XHJcblx0XHRcclxuXHR9XHJcbn1cclxuXHJcbi50aXRhbi10ZXh0IGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICBjb2xvcjogIzgwZDhmZjtcclxufVxyXG5cclxuLnRpdGFuLXRleHQgcCB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAudGl0YW4tY29udGFpbmVyIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxufVxyXG5cclxuLnNpdGUtZm9vdGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYjFiMWI7XHJcbiAgICBjb2xvcjogI2NjYztcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuXHRcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzMzO1xyXG59XHJcblxyXG4uc2l0ZS1mb290ZXIgYSB7XHJcbiAgICBjb2xvcjogIzgwZDhmZjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbn1cclxuXHJcbi5zaXRlLWZvb3RlciBhOmhvdmVyIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4vKiBIRUFERVIgKi9cclxuLmNvcm5lci1sb2dvIHtcclxuICAgIFxyXG4gICAgdG9wOiAyMHB4O1xyXG4gICAgXHJcbiAgICB3aWR0aDogNjBweDtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHotaW5kZXg6IDEwMDM7XHJcbiAgICBvcGFjaXR5OiAwLjk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xyXG5cdEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge2xlZnQ6MHB4OyBwb3NpdGlvbjogZml4ZWQ7fVxyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRyaWdodDoxMTBweDtcclxuXHRcdHdpZHRoOiAyMHB4O1xyXG5cdH1cclxufVxyXG4ubG9nbzJ7XHJcblx0XHJcblx0d2lkdGg6MjI1cHg7XHJcblx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcblx0XHRyaWdodDo1MHB4O1xyXG5cdFx0d2lkdGg6IDEwMHB4O1xyXG5cdFx0dG9wOjEwcHg7XHJcblx0fVxyXG5cdFxyXG59XHJcblxyXG4uY29ybmVyLWxvZ286aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG59XHJcblxyXG5cclxuLnRvcC1oZWFkZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDE1cHg7XHJcbiAgICB6LWluZGV4OiAxMTAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTJweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsMCwwLDAuNCk7XHJcbn1cclxuXHJcbi50b3AtaGVhZGVyIC5oZWFkZXItYnRuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi50b3AtaGVhZGVyIC5oZWFkZXItYnRuOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XHJcbn1cclxuXHJcbi50b3AtaGVhZGVyIC5sb2dvdXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2I3MWMxYztcclxufVxyXG5cclxuLnRvcC1oZWFkZXIgLmxvZ291dDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDMyZjJmO1xyXG59XHJcblxyXG4udXNlci1zdGF0dXMge1xyXG4gICAgY29sb3I6ICM4MGQ4ZmY7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG4vLyAuc2lkZWJhciB7XHJcbi8vICAgZGlzcGxheTogbm9uZTtcclxuLy8gICBwb3NpdGlvbjogZml4ZWQ7XHJcbi8vICAgbWluLWhlaWdodDoxMDB2aDtcclxuLy8gICB0b3A6IDA7XHJcbi8vICAgbGVmdDogMDtcclxuLy8gICB3aWR0aDogMjIwcHg7XHJcbi8vICAgaGVpZ2h0OiAxMDAlO1xyXG4vLyAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XHJcbi8vICAgcGFkZGluZzogNDBweCAyMHB4O1xyXG4vLyAgIGJveC1zaGFkb3c6IDJweCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4vLyAgIHotaW5kZXg6IDUwMDtcclxuLy8gICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4vLyAgIGdhcDogMTVweDtcclxuLy8gfVxyXG5cclxuLy8gLnNpZGViYXItYnRuIHtcclxuLy8gICBkaXNwbGF5OiBibG9jaztcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xyXG4vLyAgIGNvbG9yOiAjZmZmO1xyXG4vLyAgIHBhZGRpbmc6IDEwcHggMTRweDtcclxuLy8gICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbi8vICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4vLyAgIGZvbnQtc2l6ZTogMTZweDtcclxuLy8gICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4vLyB9XHJcblxyXG4vLyAuc2lkZWJhci1zdGF0dXMge1xyXG4vLyAgIGNvbG9yOiAjODBkOGZmO1xyXG4vLyAgIGZvbnQtc2l6ZTogMTRweDtcclxuLy8gICBmb250LXdlaWdodDogYm9sZDtcclxuLy8gICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4vLyB9XHJcbi8vIC5oYW1idXJnZXIge1xyXG4vLyAgIGZvbnQtc2l6ZTogMjBweDtcclxuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgdG9wOiA1cHg7XHJcbi8vICAgbGVmdDogMjBweDtcclxuLy8gICBjb2xvcjogd2hpdGU7XHJcbi8vICAgY3Vyc29yOiBwb2ludGVyO1xyXG4vLyAgIHotaW5kZXg6IDEwMDE7XHJcbi8vIH1cclxuLy8gQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICBcclxuLy8gXHQudG9wLWhlYWRlcntcclxuLy8gXHRcdGRpc3BsYXk6bm9uZTtcclxuLy8gXHR9XHJcbi8vIFx0LmhlYWRlciB7XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xyXG4vLyBcdFx0Y29sb3I6ICNmZmZmZmY7XHJcbi8vIFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbi8vIFx0XHRwYWRkaW5nOiAyMHB4IDIwcHggMjBweDtcclxuLy8gXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuLy8gXHRcdHRvcDogMDtcclxuLy8gXHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0ei1pbmRleDoxMDUwO1xyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuXHJcblxyXG5cclxuc2VjdGlvbiB7XHJcbiAgICBwYWRkaW5nOiA2MHB4IDA7XHJcbn1cclxuXHJcbi8qIENvbnRhY3Rmb3JtdWxpZXIgKi9cclxuLmNvbnRhY3QtZm9ybSBpbnB1dCxcclxuLmNvbnRhY3QtZm9ybSB0ZXh0YXJlYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxufVxyXG5cclxuLmNvbnRhY3QtZm9ybSBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwMmQyNDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmNvbnRhY3QtZm9ybSBidXR0b246aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkwMDtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIG5hdiB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAudG9nZ2xlLWJ0biB7XHJcbiAgICAgICAgbGVmdDogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBtYWluLFxyXG4gICAgaGVhZGVyLFxyXG4gICAgLnRvcC1iYW5uZXIge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtYmFubmVyIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAudG9wLWJhbm5lciBpbWcge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxNTBweFxyXG4gICAgfVxyXG59XHJcblxyXG4jcmktY29uc2VudC1iYW5uZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkOyBpbnNldDogYXV0byAwIDAgMDsgei1pbmRleDogMjAwMDtcclxuICAgIGJhY2tncm91bmQ6IzExMTsgY29sb3I6I2VlZTsgYm9yZGVyLXRvcDoxcHggc29saWQgIzJhMmEyYTtcclxuICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMzBweCByZ2JhKDAsMCwwLDAuNCk7IGRpc3BsYXk6bm9uZTtcclxuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICB9XHJcbiAgI3JpLWNvbnNlbnQtaW5uZXIgeyBtYXgtd2lkdGg6IDEwMDBweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDE4cHggMTZweDsgfVxyXG4gICNyaS1jb25zZW50LXRpdGxlIHsgZm9udC1zaXplOiAxOHB4OyBtYXJnaW46IDAgMCA2cHg7IGNvbG9yOiM4MGQ4ZmY7IH1cclxuICAjcmktY29uc2VudC10ZXh0IHsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS41OyBtYXJnaW46IDAgMCAxMnB4OyBjb2xvcjojY2NjOyB9XHJcbiAgI3JpLWNvbnNlbnQtYWN0aW9ucyB7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IGZsZXgtd3JhcDp3cmFwOyB9XHJcbiAgLnJpLWJ0biB7IHBhZGRpbmc6IDEwcHggMTRweDsgYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlcjowOyBjdXJzb3I6cG9pbnRlcjsgZm9udC13ZWlnaHQ6NjAwOyBiYWNrZ3JvdW5kOiMyZTJlMmU7IGNvbG9yOiNlZWU7IH1cclxuICAucmktYnRuOmhvdmVyeyBiYWNrZ3JvdW5kOiMzYTNhM2E7IH1cclxuICAucmktYnRuLXByaW1hcnl7IGJhY2tncm91bmQ6IzFmNmZlYjsgY29sb3I6I2ZmZjsgfVxyXG4gIC5yaS1idG4tcHJpbWFyeTpob3ZlcnsgYmFja2dyb3VuZDojMmE3YmZmOyB9XHJcbiAgLnJpLWxpbmsgeyBjb2xvcjojODBkOGZmOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjdXJzb3I6cG9pbnRlcjsgfVxyXG4gICNyaS1jb25zZW50LXBhbmVsIHsgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZzoxMnB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6IzFhMWExYTsgZGlzcGxheTpub25lOyB9XHJcbiAgLnJpLXJvdyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgcGFkZGluZzo4cHggMDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzJhMmEyYTsgfVxyXG4gIC5yaS1yb3c6bGFzdC1jaGlsZHsgYm9yZGVyLWJvdHRvbTowOyB9XHJcbiAgLnJpLXJvdyBsYWJlbHsgZm9udC1zaXplOjE0cHg7IGNvbG9yOiNkZGQ7IH1cclxuICAuc3dpdGNoIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDI0cHg7IH1cclxuICAuc3dpdGNoIGlucHV0IHsgZGlzcGxheTpub25lOyB9XHJcbiAgLnNsaWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgaW5zZXQ6MDsgYmFja2dyb3VuZDojNDQ0OyB0cmFuc2l0aW9uOi4yczsgYm9yZGVyLXJhZGl1czoyNHB4OyB9XHJcbiAgLnNsaWRlcjpiZWZvcmV7IHBvc2l0aW9uOmFic29sdXRlOyBjb250ZW50OlwiXCI7IGhlaWdodDoxOHB4O3dpZHRoOjE4cHg7bGVmdDozcHg7dG9wOjNweDtiYWNrZ3JvdW5kOndoaXRlO3RyYW5zaXRpb246LjJzO2JvcmRlci1yYWRpdXM6NTAlOyB9XHJcbiAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXJ7IGJhY2tncm91bmQ6IzJhN2JmZjsgfVxyXG4gIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpOyB9XHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsgI3JpLWNvbnNlbnQtaW5uZXJ7IHBhZGRpbmc6MTRweDsgfSB9XHJcblxyXG5cclxuXHJcbi50b3AtYmFubmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwZDAzNDNmZjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgcGFkZGluZzogMTB2dyAxNXZ3O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4udG9wLWJhbm5lciAudGV4dCB7XHJcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xyXG59XHJcblxyXG4udG9wLWJhbm5lciBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiA0MDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG59XHJcblxyXG4udG9wLWJhbm5lciBhIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4gLyogLS0tLS0tIFRoZW1lIC0tLS0tLSAqL1xyXG4gICAgOnJvb3Qge1xyXG4gICAgICAtLWJnOiMxMjEyMTI7XHJcbiAgICAgIC0tcGFuZWw6IzFlMWUxZTtcclxuICAgICAgLS1wYW5lbC0yOiMyNjI2MjY7XHJcbiAgICAgIC0tZmc6I2ZmZmZmZjtcclxuICAgICAgLS1tdXRlZDojY2ZjZmNmO1xyXG4gICAgICAtLWFjY2VudDojZmY0ZDRkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIC0tLS0tLSBCYXNlIC0tLS0tLSAqL1xyXG4gICAgI2ludHJvIHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogNnZ3IDZ2dztcclxuICAgICAgY29sb3I6IHZhcigtLWZnKTtcclxuICAgICAgYmFja2dyb3VuZDpcclxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoMTQwMHB4IDcwMHB4IGF0IDE1JSAtMTAlLCAjMmEyYTJhIDAlLCAjMWIxYjFiIDU1JSwgdmFyKC0tYmcpIDEwMCUpLFxyXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxNjE2MTYsICMxMjEyMTIpO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIGdhcDogMjhweDtcclxuICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xyXG4gICAgfVxyXG4gICAgI2ludHJvIC5jb250YWluZXIge1xyXG4gICAgICB3aWR0aDogbWluKDEyMDBweCwgMTAwJSk7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xNWZyIC44NWZyO1xyXG4gICAgICBnYXA6IGNsYW1wKDE4cHgsIDN2dywgMzZweCk7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogOTYwcHgpe1xyXG4gICAgICAjaW50cm8gLmNvbnRhaW5lciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogLS0tLS0tIExlZnQ6IENvbnRlbnQgLS0tLS0tICovXHJcbiAgICAjaW50cm8gLmtpY2tlciB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmYwZjsgY29sb3I6IHZhcigtLW11dGVkKTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjFhOyBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICAgICAgcGFkZGluZzogOHB4IDEycHg7IGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNpbmc6LjRweDtcclxuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gaDEge1xyXG4gICAgICBmb250LXNpemU6IGNsYW1wKDM2cHgsIDV2dywgNjhweCk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1OyBtYXJnaW46IDEycHggMCAxMHB4O1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogLjRweDtcclxuICAgIH1cclxuICAgICNpbnRybyAubGVhZCB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1tdXRlZCk7XHJcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMTZweCwgMS40dncsIDE4cHgpO1xyXG4gICAgICBtYXgtd2lkdGg6IDY0Y2g7IG1hcmdpbjogMCAwIDE4cHg7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLmN0YSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsgZmxleC13cmFwOiB3cmFwOyBtYXJnaW46IDE4cHggMCAxMHB4O1xyXG4gICAgfVxyXG4gICAgI2ludHJvIC5idG4ge1xyXG4gICAgICBhcHBlYXJhbmNlOiBub25lOyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBwYWRkaW5nOiAxMnB4IDE4cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZTtcclxuICAgIH1cclxuICAgICNpbnRybyAuYnRuLnByaW1hcnkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogI2ZmZjsgYm94LXNoYWRvdzogMCAxMnB4IDI0cHggcmdiYSgyNTUsNzcsNzcsLjI1KTsgfVxyXG4gICAgI2ludHJvIC5idG4ucHJpbWFyeTpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzogMCAxNnB4IDM0cHggcmdiYSgyNTUsNzcsNzcsLjM1KTsgfVxyXG4gICAgI2ludHJvIC5idG4uZ2hvc3QgeyBiYWNrZ3JvdW5kOiAjZmZmZmZmMGU7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6I2ZmZmZmZjI0OyB9XHJcbiAgICAjaW50cm8gLmJ0bi5naG9zdDpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgYm9yZGVyLWNvbG9yOiNmZmZmZmY0MDsgfVxyXG5cclxuICAgIC8qIC0tLS0tLSBGZWF0dXJlIGJhZGdlcyAtLS0tLS0gKi9cclxuICAgICNpbnRybyAuYmFkZ2VzIHtcclxuICAgICAgZGlzcGxheTogZmxleDsgZ2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IG1hcmdpbi10b3A6IDE0cHg7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLmJhZGdlIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkICMyZjJmMmY7XHJcbiAgICAgIHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXItcmFkaXVzOiA5OTlweDsgY29sb3I6ICNlYWVhZWE7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLmJhZGdlIHN2ZyB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH1cclxuXHJcbiAgICAvKiAtLS0tLS0gUmlnaHQ6IFZpc3VhbCAtLS0tLS0gKi9cclxuICAgICNpbnRybyAudmlzdWFsIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IGNsYW1wKDI4MHB4LCA0MnZ3LCA1MjBweCk7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXBhbmVsLTIpLCB2YXIoLS1wYW5lbCkpO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzAzMDMwOyBib3JkZXItcmFkaXVzOiAyMnB4O1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyBib3gtc2hhZG93OiAwIDE4cHggNDRweCByZ2JhKDAsMCwwLC4zNSk7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLnZpc3VhbCBpbWcsIFxyXG4gICAgI2ludHJvIC52aXN1YWwgdmlkZW8ge1xyXG4gICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3Zlcjsgb3BhY2l0eTogLjk7XHJcbiAgICAgIG1peC1ibGVuZC1tb2RlOiBub3JtYWw7XHJcbiAgICB9XHJcbiAgICAvKiBEZWNvcmF0aXZlIGN1YmUgLyBwbGFjZWhvbGRlciBpZiBubyBpbWFnZSAqL1xyXG4gICAgI2ludHJvIC5jdWJlIHtcclxuICAgICAgd2lkdGg6IDU4JTsgYXNwZWN0LXJhdGlvOiAxLzE7IG1pbi13aWR0aDogMjIwcHg7IG1heC13aWR0aDogMzgwcHg7XHJcbiAgICAgIC8qIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICNmNDQsICNkMjIpOyAqL1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxOHB4OyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBjb2xvcjojZmZmO1xyXG4gICAgICBmb250LXdlaWdodDogODAwOyBsZXR0ZXItc3BhY2luZzouNXB4OyBmb250LXNpemU6IGNsYW1wKDQ4cHgsIDh2dywgOTZweCk7XHJcbiAgICAgIC8qIGJveC1zaGFkb3c6IDAgMzBweCA2MHB4IHJnYmEoMjU1LDc3LDc3LC4zNSk7ICovXHJcbiAgICB9XHJcblxyXG4gICAgLyogLS0tLS0tIE1pbmkgY2FyZHMgdW5kZXIgY29udGVudCAtLS0tLS0gKi9cclxuICAgICNpbnRybyAubWluaSB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xyXG4gICAgICBnYXA6IGNsYW1wKDEycHgsIDJ2dywgMThweCk7IG1hcmdpbi10b3A6IDIycHg7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLmNhcmQge1xyXG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAxMjtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tcGFuZWwpLCAjMWYxZjFmKTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzJkMmQyZDsgYm9yZGVyLXJhZGl1czogMTZweDsgcGFkZGluZzogMTRweCAxNnB4O1xyXG4gICAgICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyOyBnYXA6IDEycHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLmljb24ge1xyXG4gICAgICB3aWR0aDogNDJweDsgaGVpZ2h0OiA0MnB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBiYWNrZ3JvdW5kOiNmZmZmZmYxMjtcclxuICAgICAgZGlzcGxheTpncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmMjA7XHJcbiAgICB9XHJcbiAgICAjaW50cm8gLmNhcmQgaDMgeyBtYXJnaW46IDAgMCAycHg7IGZvbnQtc2l6ZTogMTZweDsgfVxyXG4gICAgI2ludHJvIC5jYXJkIHAgeyBtYXJnaW46IDA7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6NzYwcHgpeyAjaW50cm8gLmNhcmQgeyBncmlkLWNvbHVtbjogc3BhbiA2OyB9IH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjExMDBweCl7ICNpbnRybyAuY2FyZCB7IGdyaWQtY29sdW1uOiBzcGFuIDQ7IH0gfVxyXG5cclxuICAgIC8qIC0tLS0tLSBTY3JvbGwgaW5kaWNhdG9yIC0tLS0tLSAqL1xyXG4gICAgLnNjcm9sbC1pbmRpY2F0b3Ige1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMThweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgIGNvbG9yOiAjZmZmZmZmYjM7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6LjRweDtcclxuICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo4cHg7IG9wYWNpdHk6Ljk7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogOTYwcHgpe1xyXG4gICAgICAuc2Nyb2xsLWluZGljYXRvciB7ZGlzcGxheTpOb25lO31cclxuICAgIH1cclxuICAgIC5zY3JvbGwtaW5kaWNhdG9yIC5kb3Qge1xyXG4gICAgICB3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDojZmZmZmZmNjY7IGFuaW1hdGlvbjogYm91bmNlIDEuNnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XHJcbiAgICB9XHJcbiAgICAuc2Nyb2xsLWluZGljYXRvciAuZG90Om50aC1jaGlsZCgyKXsgYW5pbWF0aW9uLWRlbGF5Oi4xNXMgfVxyXG4gICAgLnNjcm9sbC1pbmRpY2F0b3IgLmRvdDpudGgtY2hpbGQoMyl7IGFuaW1hdGlvbi1kZWxheTouM3MgfVxyXG4gICAgQGtleWZyYW1lcyBib3VuY2UgeyAwJSw2MCUsMTAwJXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO30gMzAleyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7fSB9XHJcbiAgLyogWm9yZyBkYXQgZGUgc2VudGluZWwgZWNodCBoZXQgdmlld3BvcnQgaW4ga2FuIGtvbWVuICovXHJcbiAgICAjaGVhZGVyLXNlbnRpbmVse1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiAycHg7ICAgICAgLyogPjAgaXMgZ2Vub2VnICovXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG4gICAgaHRtbCB7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyBzY3JvbGwtcGFkZGluZy10b3A6IDcycHg7IH1cclxuXHJcbiAgICA6cm9vdHtcclxuICAgIC0tdGItYmc6IHJnYmEoMTgsMTgsMTgsLjcyKTtcclxuICAgIC0tdGItc3Ryb2tlOiAjMmEyYTJhO1xyXG4gICAgLS10Yi1hY2NlbnQ6I2ZmNGQ0ZDtcclxuICAgIC0tdGItdGV4dDojZmZmO1xyXG4gICAgLS10Yi1tdXRlZDojY2ZjZmNmO1xyXG4gIH1cclxuICAvKiBCYXNlIHRvcGJhciAqL1xyXG4gIC50b3BiYXJ7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwIDAgYXV0byAwOyBoZWlnaHQ6IDY0cHg7IHotaW5kZXg6IDEwMDA7XHJcbiAgICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xOHB4KTtcclxuICAgIG9wYWNpdHk6IDA7IFxyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4yNXMgZWFzZSwgb3BhY2l0eSAuMjVzIGVhc2UsIGJhY2tncm91bmQgLjJzIGVhc2UsIGJvcmRlci1jb2xvciAuMnMgZWFzZTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXRiLWJnKTtcclxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIH1cclxuICAvKiBSZXZlYWxlZCBzdGF0ZSAqL1xyXG4gIC50b3BiYXJbZGF0YS1yZXZlYWw9XCJ0cnVlXCJde1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS10Yi1zdHJva2UpO1xyXG4gIH1cclxuICAudG9wYmFyX19pbm5lcntcclxuICAgIHdpZHRoOjEwMCU7IFxyXG4gICAgbWFyZ2luLWlubGluZTphdXRvO1xyXG4gICAgcGFkZGluZzowIDI1cHg7XHJcbiAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGdhcDoxNnB4O1xyXG4gIH1cclxuICAubG9nbyBpbWd7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDo0NnB4OyB3aWR0aDphdXRvOyB9XHJcbiAgLy8gLm5hdmJhcnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoyMnB4OyB9XHJcbiAgLm5hdmJhciBhe1xyXG4gICAgY29sb3I6IHZhcigtLXRiLXRleHQpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6NjAwOyBsZXR0ZXItc3BhY2luZzouMnB4O1xyXG4gICAgcGFkZGluZzogOHB4IDEwcHg7IGJvcmRlci1yYWRpdXM6MTBweDsgYm9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMgZWFzZSwgYmFja2dyb3VuZCAuMnMgZWFzZSwgY29sb3IgLjJzIGVhc2U7XHJcbiAgfVxyXG4gIC5uYXZiYXIgYTpob3ZlcnsgYm9yZGVyLWNvbG9yOiNmZmZmZmYyNjsgYmFja2dyb3VuZDojZmZmZmZmMTA7IH1cclxuICAubmF2YmFyIGEubG9naW57IGNvbG9yOiNmZmY7IGJhY2tncm91bmQ6IHZhcigtLXRiLWFjY2VudCk7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IHBhZGRpbmc6OHB4IDE0cHg7IGJvcmRlci1yYWRpdXM6MTJweDsgfVxyXG4gIC5uYXZiYXIgYS5sb2dpbjpob3ZlcnsgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgyNTUsNzcsNzcsLjMyKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XHJcblxyXG4gIC8qIE1vYmlsZSB0b2dnbGUgKi9cclxuICAvLyAubW9iaWxlLXRvZ2dsZXtcclxuICAvLyAgIGRpc3BsYXk6bm9uZTsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjQycHg7IGhlaWdodDo0MnB4OyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmYyNjsgYm9yZGVyLXJhZGl1czoxMHB4O1xyXG4gIC8vICAgYmFja2dyb3VuZDojZmZmZmZmMTA7IGN1cnNvcjpwb2ludGVyO1xyXG4gIC8vIH1cclxuICAvLyAubW9iaWxlLXRvZ2dsZSBzcGFue1xyXG4gIC8vICAgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgaGVpZ2h0OjJweDsgYmFja2dyb3VuZDojZmZmOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UsIG9wYWNpdHkgLjJzIGVhc2UsIHRvcCAuMnMgZWFzZTtcclxuICAvLyB9XHJcbiAgLy8gLm1vYmlsZS10b2dnbGUgc3BhbjpudGgtY2hpbGQoMSl7IHRvcDoxMnB4OyB9XHJcbiAgLy8gLm1vYmlsZS10b2dnbGUgc3BhbjpudGgtY2hpbGQoMil7IHRvcDoyMHB4OyB9XHJcbiAgLy8gLm1vYmlsZS10b2dnbGUgc3BhbjpudGgtY2hpbGQoMyl7IHRvcDoyOHB4OyB9XHJcbiAgLy8gLm1vYmlsZS10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gc3BhbjpudGgtY2hpbGQoMSl7IHRvcDoyMHB4OyB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cclxuICAvLyAubW9iaWxlLXRvZ2dsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSBzcGFuOm50aC1jaGlsZCgyKXsgb3BhY2l0eTowOyB9XHJcbiAgLy8gLm1vYmlsZS10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gc3BhbjpudGgtY2hpbGQoMyl7IHRvcDoyMHB4OyB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XHJcblxyXG4gIC8vIC8qIE1vYmlsZSBkcmF3ZXIgKi9cclxuICAvLyAubW9iaWxlLWRyYXdlcntcclxuICAvLyAgIGRpc3BsYXk6bm9uZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDo2NHB4OyBsZWZ0OjA7IHJpZ2h0OjA7XHJcbiAgLy8gICBiYWNrZ3JvdW5kOiByZ2JhKDE4LDE4LDE4LC45NSk7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xyXG4gIC8vICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tdGItc3Ryb2tlKTtcclxuICAvLyAgIHBhZGRpbmc6MTJweCA0dncgMjBweDsgei1pbmRleDogOTk5O1xyXG4gIC8vIH1cclxuICAvLyAubW9iaWxlLWRyYXdlciBhe1xyXG4gIC8vICAgZGlzcGxheTpibG9jazsgcGFkZGluZzoxMnB4IDEwcHg7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItcmFkaXVzOjEycHg7XHJcbiAgLy8gICBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmYxYTsgbWFyZ2luOjZweCAwOyBiYWNrZ3JvdW5kOiNmZmZmZmYwODtcclxuICAvLyB9XHJcbiAgLy8gLm1vYmlsZS1kcmF3ZXIgYS5sb2dpbnsgYmFja2dyb3VuZDogdmFyKC0tdGItYWNjZW50KTsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxyXG5cclxuICAvLyAvKiBSZXNwb25zaXZlICovXHJcbiAgLy8gQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KXtcclxuICAvLyAgIC5uYXZiYXJ7IGRpc3BsYXk6bm9uZTsgfVxyXG4gIC8vICAgLm1vYmlsZS10b2dnbGV7IGRpc3BsYXk6YmxvY2s7IH1cclxuICAvLyAgIC5tb2JpbGUtZHJhd2VyeyBkaXNwbGF5OmJsb2NrOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpOyBvcGFjaXR5OjA7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZSwgb3BhY2l0eSAuMnMgZWFzZTsgfVxyXG4gIC8vICAgLm1vYmlsZS1kcmF3ZXIuaXMtb3BlbnsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OjE7IHBvaW50ZXItZXZlbnRzOmF1dG87IH1cclxuICAvLyB9XHJcbiAgI3RvcC1iYW5uZXJ7XHJcbiAgICAtLWJnOiMxMjEyMTI7IC0tZmc6I2ZmZjsgLS1tdXRlZDojYmRiZGJkOyAtLWFjY2VudDojZmY0ZDRkOyAtLXBhZDo4dncgNnZ3O1xyXG4gIH1cclxuXHJcbiAgLnRvcC1iYW5uZXJ7XHJcbiAgICAgIGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47XHJcbiAgICAgIHBhZGRpbmc6dmFyKC0tcGFkKTsgY29sb3I6dmFyKC0tZmcpO1xyXG4gICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMjAwcHggNjAwcHggYXQgMTAlIDIwJSwgIzFiMWIxYiwgdmFyKC0tYmcpKTtcclxuICAgICAgICBcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjtcclxuICAgICAgbWluLWhlaWdodDo5NXZoO1xyXG4gICAgfVxyXG4gICAgLnRvcC1iYW5uZXI6OmFmdGVye1xyXG4gICAgICBjb250ZW50OlwiXCI7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowO1xyXG4gICAgICBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzAlIDQwJSwgI2ZmNGQ0ZDIwIDAlLCB0cmFuc3BhcmVudCA2MCUpO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIC50b3AtYmFubmVyIC50ZXh0e1xyXG4gICAgICB6LWluZGV4OjE7IG1heC13aWR0aDo2MDBweDsgZmxleDoxIDEgNDYwcHg7XHJcbiAgICB9XHJcbiAgICAudG9wLWJhbm5lciBoMXtcclxuICAgICAgZm9udC1zaXplOmNsYW1wKDM2cHgsNXZ3LDY0cHgpOyBtYXJnaW46MCAwIC42ZW07XHJcbiAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWFjY2VudCksI2ZmOGQ0ZCk7XHJcbiAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IFxyXG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICAgIC50b3AtYmFubmVyIHB7XHJcbiAgICAgIGZvbnQtc2l6ZToxLjE1cmVtOyBjb2xvcjp2YXIoLS1tdXRlZCk7IGxpbmUtaGVpZ2h0OjEuNjsgbWFyZ2luLWJvdHRvbToycmVtO1xyXG4gICAgICBtYXgtd2lkdGg6NTJjaDtcclxuICAgIH1cclxuICAgIC50b3AtYmFubmVyIGEuY3Rhe1xyXG4gICAgICBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo4cHg7XHJcbiAgICAgIHBhZGRpbmc6MTRweCAyOHB4OyBib3JkZXItcmFkaXVzOjE0cHg7IGJhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtcclxuICAgICAgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6NjAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICAgICAgYm94LXNoYWRvdzowIDEwcHggMjRweCByZ2JhKDI1NSw3Nyw3NywuMyk7XHJcbiAgICAgIHRyYW5zaXRpb246dHJhbnNmb3JtIC4ycywgYm94LXNoYWRvdyAuMnM7XHJcbiAgICB9XHJcbiAgICAudG9wLWJhbm5lciBhLmN0YTpob3ZlcntcclxuICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7XHJcbiAgICAgIGJveC1zaGFkb3c6MCAxMnB4IDI4cHggcmdiYSgyNTUsNzcsNzcsLjQ1KTtcclxuICAgIH1cclxuICAgIC50b3AtYmFubmVyIGltZ3tcclxuICAgICAgZmxleDoxIDEgMzgwcHg7IG1heC13aWR0aDo0MjBweDsgd2lkdGg6MTAwJTtcclxuICAgICAgaGVpZ2h0OmF1dG87IG9iamVjdC1maXQ6Y29udGFpbjsgei1pbmRleDoxO1xyXG4gICAgICBmaWx0ZXI6ZHJvcC1zaGFkb3coMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwuNSkpO1xyXG4gICAgICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZTtcclxuICAgIH1cclxuICAgIC50b3AtYmFubmVyOmhvdmVyIGltZ3sgdHJhbnNmb3JtOnNjYWxlKDEuMDQpOyB9XHJcblxyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ODIwcHgpe1xyXG4gICAgICAudG9wLWJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH1cclxuICAgICAgLnRvcC1iYW5uZXIgaW1neyBtYXJnaW4tdG9wOjQwcHg7IG1heC13aWR0aDozMDBweDsgfVxyXG4gICAgICAudG9wLWJhbm5lciBoMXsgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHdoaXRlO31cclxuICAgIH1cclxuXHJcbiAgICAjZGllbnN0ZW4gKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cclxuICAgICNkaWVuc3RlbiBoMiB7IGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgNHZ3LCA0NHB4KTsgbWFyZ2luOiAwIDAgMS4ycmVtOyBsZXR0ZXItc3BhY2luZzogLjVweDsgfVxyXG4gICAgI2RpZW5zdGVuIHAubGVhZCB7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IG1hcmdpbjogMCAwIDIuMnJlbTsgbWF4LXdpZHRoOiA3MGNoOyB9XHJcbiAgICAjZGllbnN0ZW4gLmdyaWQge1xyXG4gICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcclxuICAgICAgZ2FwOiBjbGFtcCgxNHB4LCAydncsIDIycHgpO1xyXG4gICAgfVxyXG4gICAgI2RpZW5zdGVuIC5jYXJkIHtcclxuICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWNhcmQpLCAjMjQyNDI0KTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMyMzIzMjtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwuMzUpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UsIGJveC1zaGFkb3cgLjJzIGVhc2UsIGJvcmRlci1jb2xvciAuMnMgZWFzZTtcclxuICAgIH1cclxuICAgICNkaWVuc3RlbiAuY2FyZDpob3ZlciB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjM2EzYTNhO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDE2cHggNDBweCByZ2JhKDAsMCwwLC40NSk7XHJcbiAgICB9XHJcbiAgICAjZGllbnN0ZW4gLmhlcm8ge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGhlaWdodDogY2xhbXAoMTQwcHgsIDIydncsIDIyMHB4KTtcclxuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDYwMHB4IDMwMHB4IGF0IDcwJSAyMCUsIHJnYmEoMjU1LDc3LDc3LC4yNSksIHRyYW5zcGFyZW50IDYwJSksXHJcbiAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyZjJmMmYsICMyNjI2MjYpO1xyXG4gICAgICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMwMzAzMDtcclxuICAgIH1cclxuICAgICNkaWVuc3RlbiAuc3RlcCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNHB4OyBsZWZ0OiAxNHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmY0ZDRkOyBjb2xvcjogI2ZmZjsgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgcGFkZGluZzogNnB4IDEwcHg7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBmb250LXNpemU6IDEycHg7IGxldHRlci1zcGFjaW5nOi41cHg7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyNTUsNzcsNzcsLjM1KTtcclxuICAgIH1cclxuICAgICNkaWVuc3RlbiAuYm9keSB7IHBhZGRpbmc6IDE4cHggMThweCAyMHB4OyB9XHJcbiAgICAjZGllbnN0ZW4gLmJvZHkgaDMgeyBtYXJnaW46IDAgMCA4cHg7IGZvbnQtc2l6ZTogY2xhbXAoMThweCwgMi4ydncsIDIycHgpOyB9XHJcbiAgICAjZGllbnN0ZW4gLmJvZHkgcCB7IG1hcmdpbjogMCAwIDEwcHg7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IH1cclxuICAgICNkaWVuc3RlbiB1bCB7IG1hcmdpbjogMDsgcGFkZGluZy1sZWZ0OiAxOHB4OyBjb2xvcjogI2Q5ZDlkOTsgfVxyXG4gICAgI2RpZW5zdGVuIGxpIHsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XHJcbiAgICAvKiBSZXNwb25zaXZlIGNvbHVtbnMgKi9cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjcyMHB4KXsgI2RpZW5zdGVuIC5jYXJkIHsgZ3JpZC1jb2x1bW46IHNwYW4gNjsgfSB9XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDoxMDgwcHgpeyAjZGllbnN0ZW4gLmNhcmQgeyBncmlkLWNvbHVtbjogc3BhbiA0OyB9IH1cclxuICAgIC8qIFNWR3MgKi9cclxuICAgICNkaWVuc3RlbiBzdmcgeyB3aWR0aDogNjQlOyBtYXgtd2lkdGg6IDI0MHB4OyBoZWlnaHQ6IGF1dG87IGZpbHRlcjogZHJvcC1zaGFkb3coMCAxMHB4IDE4cHggcmdiYSgwLDAsMCwuMzUpKTsgfVxyXG4gIFxyXG5cclxuICAgICAgI3VzcC1zdHJpcHtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcclxuICB9XHJcblxyXG4gICAgI3VzcC1zdHJpcCAud3JhcHtcclxuICAgICAgd2lkdGg6bWluKDEyMDBweCwxMDAlKTsgbWFyZ2luLWlubGluZTphdXRvO1xyXG4gICAgICBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMTIsMWZyKTtcclxuICAgICAgZ2FwOmNsYW1wKDEycHgsMnZ3LDE2cHgpOyBhbGlnbi1pdGVtczpjZW50ZXI7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZjRkNGQ7XHJcbiAgICB9XHJcbiAgICAjdXNwLXN0cmlwIC5waWxse1xyXG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAxMjtcclxuICAgICAgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gICAgICBcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzJhMmEyYSwgIzI0MjQyNCk7XHJcbiAgIFxyXG4gICAgICBcclxuICAgICAgYm9yZGVyLXJhZGl1czo5OTlweDtcclxuICAgICAgcGFkZGluZzoxMHB4IDE0cHg7IGZvbnQtd2VpZ2h0OjcwMDtcclxuICAgICAgYm94LXNoYWRvdzogMCA4cHggMjhweCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLXBhbmVsLTIpIDI1JSwgdHJhbnNwYXJlbnQpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAjdXNwLXN0cmlwIC5ncmlke1xyXG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAxMjtcclxuICAgICAgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEyLDFmcik7IGdhcDpjbGFtcCgxMnB4LDJ2dywxNnB4KTtcclxuICAgIH1cclxuICAgICN1c3Atc3RyaXAgLmNhcmR7XHJcbiAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEyO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMWYxZjFmLCAjMWExYTFhKTtcclxuICAgICAgYm9yZGVyOjFweCBzb2xpZCAjMmEyYTJhOyBib3JkZXItcmFkaXVzOjE0cHg7IHBhZGRpbmc6MTJweCAxNHB4O1xyXG4gICAgICBkaXNwbGF5OmZsZXg7IGdhcDoxMHB4OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0O1xyXG4gICAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDAsMCwwLC4zNSk7XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIC4ycyBlYXNlLCBib3gtc2hhZG93IC4ycyBlYXNlO1xyXG4gICAgfVxyXG4gICAgI3VzcC1zdHJpcCAuY2FyZDpob3ZlcntcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYWNjZW50KSAzNSUsICMyYTJhMmEpO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDE2cHggMzZweCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWFjY2VudCkgMTglLCB0cmFuc3BhcmVudCk7XHJcbiAgICB9XHJcbiAgICAjdXNwLXN0cmlwIC5pY29ue1xyXG4gICAgICB3aWR0aDoyOHB4OyBoZWlnaHQ6MjhweDsgYm9yZGVyLXJhZGl1czo4cHg7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tYWNjZW50KSAzNSUsICMyYTJhMmEpLCAjMmEyYTJhKTtcclxuICAgICAgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmMzA7IGRpc3BsYXk6Z3JpZDsgcGxhY2UtaXRlbXM6Y2VudGVyOyBmbGV4OjAgMCAyOHB4O1xyXG4gICAgfVxyXG4gICAgI3VzcC1zdHJpcCBweyBtYXJnaW46MDsgY29sb3I6dmFyKC0tbXV0ZWQpIH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjg2MHB4KXsgI3VzcC1zdHJpcCAuY2FyZHsgZ3JpZC1jb2x1bW46IHNwYW4gNCB9IH1cclxuXHJcbiAgICAvKiBTdWJ0aWVsZSBhbmltYXRlZCBnbG93ICovXHJcbiAgICAvKiAjdXNwLXN0cmlwOjpiZWZvcmV7XHJcbiAgICAgIGNvbnRlbnQ6XCJcIjsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OmF1dG8gLTIwJSAtNjAlIC0yMCU7IGhlaWdodDoyMDBweDtcclxuICAgICAgYmFja2dyb3VuZDogI2ZmNGQ0ZDtcclxuICAgICAgZmlsdGVyOiBibHVyKDMwcHgpOyBvcGFjaXR5Oi43OyBwb2ludGVyLWV2ZW50czpub25lOyBhbmltYXRpb246IHVzcEdsb3cgMTBzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgIH1cclxuICAgIEBrZXlmcmFtZXMgdXNwR2xvd3tcclxuICAgICAgMCV7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSB9XHJcbiAgICAgIDUwJXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIH1cclxuICAgICAgMTAwJXsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIH1cclxuICAgIH0gKi9cclxuXHJcbiAgICAvKiBSZXNwZWN0ZWVyIHJlZHVjZWQgbW90aW9uICovXHJcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7XHJcbiAgICAgICN1c3Atc3RyaXA6OmJlZm9yZXsgYW5pbWF0aW9uOiBub25lOyB9XHJcbiAgICB9XHJcblxyXG4gICAgICNvdmVyICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcbiAgICAjb3ZlciBoMiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgNHZ3LCA0NHB4KTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XHJcbiAgICB9XHJcbiAgICAjb3ZlciBwLmxlYWQge1xyXG4gICAgICBjb2xvcjogdmFyKC0tbXV0ZWQpO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgICBtYXgtd2lkdGg6IDcwY2g7XHJcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMTZweCwgMS4zdncsIDE4cHgpO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgfVxyXG5cclxuICAgICNvdmVyIC5ncmlkIHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XHJcbiAgICAgIGdhcDogY2xhbXAoMTZweCwgMnZ3LCAyNHB4KTtcclxuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICB9XHJcblxyXG4gICAgI292ZXIgLmNhcmQge1xyXG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAxMjtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tY2FyZCksICMyNDI0MjQpO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIC4zNSk7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2UsIGJveC1zaGFkb3cgLjI1cyBlYXNlLCBib3JkZXItY29sb3IgLjI1cyBlYXNlO1xyXG4gICAgfVxyXG4gICAgI292ZXIgLmNhcmQ6aG92ZXIge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogIzNhM2EzYTtcclxuICAgICAgYm94LXNoYWRvdzogMCAxNnB4IDQwcHggcmdiYSgwLCAwLCAwLCAuNDUpO1xyXG4gICAgfVxyXG5cclxuICAgICNvdmVyIC5pbWFnZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJmMmYyZiwgIzI2MjYyNik7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAjb3ZlciAuaW1hZ2UgaW1nIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgIG9wYWNpdHk6IC45O1xyXG4gICAgfVxyXG4gICAgI292ZXIgLmltYWdlOjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgaW5zZXQ6IDA7XHJcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNzAlIDMwJSwgcmdiYSgyNTUsIDc3LCA3NywgLjI1KSwgdHJhbnNwYXJlbnQgNjAlKTtcclxuICAgIH1cclxuXHJcbiAgICAjb3ZlciAuYm9keSB7XHJcbiAgICAgIHBhZGRpbmc6IDI0cHggMjRweCAyOHB4O1xyXG4gICAgfVxyXG4gICAgI292ZXIgLmJvZHkgaDMge1xyXG4gICAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgICBmb250LXNpemU6IGNsYW1wKDE4cHgsIDJ2dywgMjJweCk7XHJcbiAgICB9XHJcbiAgICAjb3ZlciAuYm9keSBwIHtcclxuICAgICAgY29sb3I6IHZhcigtLW11dGVkKTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS42O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFJlc3BvbnNpdmUgY29sdW1ucyAqL1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XHJcbiAgICAgICNvdmVyIC5jYXJkIHsgZ3JpZC1jb2x1bW46IHNwYW4gNjsgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwODBweCkge1xyXG4gICAgICAjb3ZlciAuY2FyZCB7IGdyaWQtY29sdW1uOiBzcGFuIDQ7IH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgICNjb250YWN0ICp7IGJveC1zaXppbmc6Ym9yZGVyLWJveCB9XHJcbiAgICAjY29udGFjdCBoMXsgZm9udC1zaXplOmNsYW1wKDI4cHgsNHZ3LDQ0cHgpOyBtYXJnaW46MCAwIDFyZW0gfVxyXG4gICAgI2NvbnRhY3QgcC5sZWFkeyBjb2xvcjp2YXIoLS1tdXRlZCk7IG1hcmdpbjowIDAgMnJlbTsgbWF4LXdpZHRoOjcwY2ggfVxyXG4gICAgI2NvbnRhY3QgLndyYXB7XHJcbiAgICAgIGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxMiwxZnIpOyBnYXA6Y2xhbXAoMTZweCwydncsMjRweCk7XHJcbiAgICAgIHdpZHRoOm1pbigxMjAwcHgsMTAwJSk7IG1hcmdpbi1pbmxpbmU6YXV0bztcclxuICAgIH1cclxuICAgICNjb250YWN0IC5jYXJke1xyXG4gICAgICBncmlkLWNvbHVtbjpzcGFuIDEyOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tY2FyZCksIzI0MjQyNCk7XHJcbiAgICAgIGJvcmRlcjoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTsgYm9yZGVyLXJhZGl1czoxOHB4OyBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICAgIGJveC1zaGFkb3c6MCAxMnB4IDMycHggcmdiYSgwLDAsMCwuMzUpO1xyXG4gICAgfVxyXG4gICAgI2NvbnRhY3QgLmxlZnQsICNjb250YWN0IC5yaWdodHsgcGFkZGluZzpjbGFtcCgxNnB4LDIuMnZ3LDI4cHgpIH1cclxuICAgIC8qIDIga29sb21tZW4gb3AgZ3JvdGVyIHNjaGVybSAqL1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6OTgwcHgpe1xyXG4gICAgICAjY29udGFjdCAuY2FyZHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MS4xZnIgLjlmcjsgcGFkZGluZzowIH1cclxuICAgICAgI2NvbnRhY3QgLmxlZnR7IGJvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tc3Ryb2tlKSB9XHJcbiAgICAgICNjb250YWN0IC5sZWZ0LCAjY29udGFjdCAucmlnaHR7IHBhZGRpbmc6MzJweCB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogTG9nbyArIGhlYWRpbmdsaW50ICovXHJcbiAgICAjY29udGFjdCAuYnJhbmR7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MTJweDsgbWFyZ2luLWJvdHRvbTouNXJlbSB9XHJcbiAgICAjY29udGFjdCAuYnJhbmQgaW1neyBoZWlnaHQ6MjhweDsgd2lkdGg6YXV0bzsgZGlzcGxheTpibG9jayB9XHJcblxyXG4gICAgLyogQ29udGFjdCBpbmZvIGxpanN0ICovXHJcbiAgICAjY29udGFjdCAuaW5mb3sgZGlzcGxheTpncmlkOyBnYXA6MTJweDsgbWFyZ2luLXRvcDoxMnB4OyBjb2xvcjojZTllOWU5IH1cclxuICAgICNjb250YWN0IC5pbmZvIGRpdnsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgYWxpZ24taXRlbXM6Y2VudGVyIH1cclxuICAgICNjb250YWN0IC5pbmZvIHN2Z3sgd2lkdGg6MThweDsgaGVpZ2h0OjE4cHg7IG9wYWNpdHk6LjkgfVxyXG5cclxuICAgIC8qIE1hcC92aXN1YWwgcGxhY2Vob2xkZXIgKHZlcnZhbmcgbWV0IGVjaHRlIGVtYmVkL2FmYmVlbGRpbmcpICovXHJcbiAgICAjY29udGFjdCAudmlzdWFse1xyXG4gICAgICBoZWlnaHQ6MjIwcHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTsgYm9yZGVyLXJhZGl1czoxNHB4OyBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjMmIyYjJiLCMxZjFmMWYpO1xyXG4gICAgICBkaXNwbGF5OmdyaWQ7IHBsYWNlLWl0ZW1zOmNlbnRlcjsgbWFyZ2luLXRvcDoxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEZvcm0gKi9cclxuICAgICNjb250YWN0IGZvcm17IGRpc3BsYXk6Z3JpZDsgZ2FwOjE0cHggfVxyXG4gICAgI2NvbnRhY3QgbGFiZWx7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjojZDlkOWQ5IH1cclxuICAgICNjb250YWN0IGlucHV0LCAjY29udGFjdCB0ZXh0YXJlYXtcclxuICAgICAgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4IDE0cHg7IGJvcmRlci1yYWRpdXM6MTJweDsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1zdHJva2UpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiMxZjFmMWY7IGNvbG9yOiNmZmY7IG91dGxpbmU6bm9uZTtcclxuICAgICAgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzIGVhc2UsIGJveC1zaGFkb3cgLjJzIGVhc2UsIGJhY2tncm91bmQgLjJzIGVhc2U7XHJcbiAgICB9XHJcbiAgICAjY29udGFjdCBpbnB1dDpmb2N1cywgI2NvbnRhY3QgdGV4dGFyZWE6Zm9jdXN7XHJcbiAgICAgIGJvcmRlci1jb2xvcjojNGE0YTRhOyBib3gtc2hhZG93OjAgMCAwIDNweCAjZmZmZmZmMTI7XHJcbiAgICB9XHJcbiAgICAjY29udGFjdCAucm93eyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7IGdhcDoxNHB4IH1cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsgI2NvbnRhY3QgLnJvd3sgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgfSB9XHJcblxyXG4gICAgI2NvbnRhY3QgLmNvbnNlbnR7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjojZWFlYWVhIH1cclxuICAgICNjb250YWN0IC5jb25zZW50IGlucHV0eyB3aWR0aDphdXRvOyBtYXJnaW4tdG9wOjNweCB9XHJcblxyXG4gICAgI2NvbnRhY3QgYnV0dG9ue1xyXG4gICAgICBhcHBlYXJhbmNlOm5vbmU7IGJvcmRlcjowOyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzoxMnB4IDE4cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6MTJweDsgZm9udC13ZWlnaHQ6NzAwOyBiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7IGNvbG9yOiNmZmY7XHJcbiAgICAgIGJveC1zaGFkb3c6MCAxMnB4IDI0cHggcmdiYSgyNTUsNzcsNzcsLjI1KTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTtcclxuICAgIH1cclxuICAgICNjb250YWN0IGJ1dHRvbjpob3ZlcnsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6MCAxNnB4IDM0cHggcmdiYSgyNTUsNzcsNzcsLjM1KSB9XHJcbiAgICAjY29udGFjdCAuaGludHsgZm9udC1zaXplOjEycHg7IGNvbG9yOnZhcigtLW11dGVkKSB9XHJcblxyXG4gICAgLyogQWxlcnRzICovXHJcbiAgICAjY29udGFjdCAuYWxlcnR7XHJcbiAgICAgIGRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxMnB4OyBwYWRkaW5nOjEwcHggMTJweDsgYm9yZGVyLXJhZGl1czoxMnB4OyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IzFmMWYxZjsgY29sb3I6I2ZmZjtcclxuICAgIH1cclxuICAgICNjb250YWN0IC5hbGVydC5zaG93eyBkaXNwbGF5OmJsb2NrIH1cclxuICAgICNjb250YWN0IC5hbGVydC5zdWNjZXNzeyBib3JkZXItY29sb3I6IzJlN2QzMjsgYmFja2dyb3VuZDojMTMzMDE2IH1cclxuICAgICNjb250YWN0IC5hbGVydC5lcnJvcnsgYm9yZGVyLWNvbG9yOiNhMzMzMzM7IGJhY2tncm91bmQ6IzJhMTQxNCB9XHJcbiAgICAjY29udGFjdCBzdHJvbmd7Y29sb3I6d2hpdGV9XHJcbiAgXHJcbiAgICAjZmFxe1xyXG4gICAgICAgIC0tYmc6IzIxMjEyMTsgLS1mZzojZmZmOyAtLW11dGVkOiNiZGJkYmQ7IHBhZGRpbmc6NnZ3IDZ2dzsgY29sb3I6dmFyKC0tZmcpOyBiYWNrZ3JvdW5kOlxyXG5yYWRpYWwtZ3JhZGllbnQoOTAwcHggNDAwcHggYXQgMTUlIC0xMCUsICMyYTJhMmEsICMyMTIxMjEpOyBib3JkZXItdG9wOjFweCBzb2xpZCAjMmEyYTJhXHJcbiAgICB9XHJcblxyXG4gICAgICNmYXEgLndyYXB7IHdpZHRoOm1pbigxMDAwcHgsMTAwJSk7IG1hcmdpbi1pbmxpbmU6YXV0byB9XHJcbiAgICAjZmFxIGgyeyBmb250LXNpemU6Y2xhbXAoMjhweCw0dncsNDBweCk7IG1hcmdpbjowIDAgMTRweCB9XHJcbiAgICAjZmFxIGRldGFpbHN7IGJhY2tncm91bmQ6IzFmMWYxZjsgYm9yZGVyOjFweCBzb2xpZCAjMmEyYTJhOyBib3JkZXItcmFkaXVzOjE0cHg7IHBhZGRpbmc6MTJweCAxNnB4OyBtYXJnaW46MTBweCAwIH1cclxuICAgICNmYXEgc3VtbWFyeXsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OjcwMCB9XHJcbiAgICAjZmFxIHB7IGNvbG9yOnZhcigtLW11dGVkKTsgbWFyZ2luOi42cmVtIDAgMCB9XHJcblxyXG4gICAgI2Zvb3RlcntcclxuICAgICAgICAtLWJnOiMxMjEyMTI7IC0tcGFuZWw6IzFlMWUxZTsgLS1zdHJva2U6IzJhMmEyYTsgLS1mZzojZmZmOyAtLW11dGVkOiNiZGJkYmQ7IC0tYWNjZW50OiNmZjRkNGQ7XHJcbiAgICB9XHJcblxyXG4gICAgI2Zvb3RlcntcclxuICAgICAgY29sb3I6dmFyKC0tZmcpO1xyXG4gICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg5MDBweCA0MDBweCBhdCAxNSUgLTEwJSwgIzIyMiwgdmFyKC0tYmcpKSxcclxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCMxNjE2MTYsdmFyKC0tYmcpKTtcclxuICAgICAgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTtcclxuICAgICAgcGFkZGluZzo0OHB4IDZ2dyAyOHB4O1xyXG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgfVxyXG4gICAgI2Zvb3RlciAud3JhcHtcclxuICAgICAgd2lkdGg6bWluKDEyMDBweCwxMDAlKTtcclxuICAgICAgbWFyZ2luLWlubGluZTphdXRvO1xyXG4gICAgICBkaXNwbGF5OmdyaWQ7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLDFmcik7XHJcbiAgICAgIGdhcDogY2xhbXAoMTZweCwydncsMjRweCk7XHJcbiAgICB9XHJcbiAgICAjZm9vdGVyIC5jb2x7IGdyaWQtY29sdW1uOiBzcGFuIDEyOyB9XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDo4MjBweCl7XHJcbiAgICAgICNmb290ZXIgLmNvbC5icmFuZHsgZ3JpZC1jb2x1bW46IHNwYW4gNTsgfVxyXG4gICAgICAjZm9vdGVyIC5jb2wubmF2eyBncmlkLWNvbHVtbjogc3BhbiAzOyB9XHJcbiAgICAgICNmb290ZXIgLmNvbC5jb250YWN0eyBncmlkLWNvbHVtbjogc3BhbiA0OyB9XHJcbiAgICB9XHJcblxyXG4gICAgI2Zvb3RlciAuYnJhbmQtbGluZXtcclxuICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMnB4OyBtYXJnaW4tYm90dG9tOjEwcHg7XHJcbiAgICB9XHJcbiAgICAjZm9vdGVyIC5icmFuZC1saW5lIGltZ3sgaGVpZ2h0OjI4cHg7IHdpZHRoOmF1dG87IGRpc3BsYXk6YmxvY2sgfVxyXG4gICAgI2Zvb3RlciBweyBtYXJnaW46NnB4IDA7IGNvbG9yOnZhcigtLW11dGVkKTsgfVxyXG4gICAgI2Zvb3RlciBheyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZSB9XHJcbiAgICAjZm9vdGVyIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgfVxyXG5cclxuICAgICNmb290ZXIgLm1pbmktbmF2e1xyXG4gICAgICBkaXNwbGF5OmdyaWQ7IGdhcDo4cHg7XHJcbiAgICB9XHJcbiAgICAjZm9vdGVyIC5taW5pLW5hdiBhe1xyXG4gICAgICBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDo4cHg7XHJcbiAgICAgIHBhZGRpbmc6OHB4IDEwcHg7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tc3Ryb2tlKTsgYm9yZGVyLXJhZGl1czoxMHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiMxZjFmMWY7XHJcbiAgICB9XHJcblxyXG4gICAgI2Zvb3RlciAuY29udGFjdC1saXN0eyBkaXNwbGF5OmdyaWQ7IGdhcDo4cHggfVxyXG4gICAgI2Zvb3RlciAuYmFkZ2V7XHJcbiAgICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjhweDtcclxuICAgICAgcGFkZGluZzo2cHggMTBweDsgYm9yZGVyLXJhZGl1czo5OTlweDtcclxuICAgICAgYmFja2dyb3VuZDojZmZmZmZmMTA7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjIwOyBjb2xvcjojZWFlYWVhO1xyXG4gICAgICBtYXJnaW4tdG9wOjhweDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBib3R0b20gbGluZSAqL1xyXG4gICAgI2Zvb3RlciAuYm90dG9te1xyXG4gICAgICBtYXJnaW4tdG9wOjI2cHg7IHBhZGRpbmctdG9wOjE2cHg7IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXN0cm9rZSk7XHJcbiAgICAgIGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjEycHg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBjb2xvcjp2YXIoLS1tdXRlZCk7XHJcbiAgICAgIGZvbnQtc2l6ZToxM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIGJhY2sgdG8gdG9wICovXHJcbiAgICAjZm9vdGVyIC50by10b3B7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgcmlnaHQ6MThweDsgYm90dG9tOjE4cHg7IHotaW5kZXg6NTA7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IGNvbG9yOiNmZmY7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOjEycHg7XHJcbiAgICAgIHBhZGRpbmc6MTBweCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgYm94LXNoYWRvdzowIDEwcHggMjRweCByZ2JhKDI1NSw3Nyw3NywuMzIpO1xyXG4gICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICB9XHJcbiAgICAjZm9vdGVyIC50by10b3Auc2hvd3sgZGlzcGxheTpibG9jazsgfVxyXG5cclxuXHJcbiAgICAvKiBDb29raWUgYmFubmVyIChkYXJrKSAqL1xyXG4jcmktY29uc2VudC1iYW5uZXIge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IGF1dG8gMCAwIDA7IHotaW5kZXg6IDIwMDA7XHJcbiAgYmFja2dyb3VuZDojMTExOyBjb2xvcjojZWVlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjMmEyYTJhO1xyXG4gIGJveC1zaGFkb3c6IDAgLTEwcHggMzBweCByZ2JhKDAsMCwwLDAuNCk7IGRpc3BsYXk6bm9uZTtcclxuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XHJcbn1cclxuI3JpLWNvbnNlbnQtaW5uZXIgeyBtYXgtd2lkdGg6IDEwMDBweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDE4cHggMTZweDsgfVxyXG4jcmktY29uc2VudC10aXRsZSB7IGZvbnQtc2l6ZTogMThweDsgbWFyZ2luOiAwIDAgNnB4OyBjb2xvcjojODBkOGZmOyB9XHJcbiNyaS1jb25zZW50LXRleHQgeyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IG1hcmdpbjogMCAwIDEycHg7IGNvbG9yOiNjY2M7IH1cclxuI3JpLWNvbnNlbnQtYWN0aW9ucyB7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IGZsZXgtd3JhcDp3cmFwOyB9XHJcbi5yaS1idG4ge1xyXG4gIHBhZGRpbmc6IDEwcHggMTRweDsgYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlcjowOyBjdXJzb3I6cG9pbnRlcjsgZm9udC13ZWlnaHQ6NjAwO1xyXG4gIGJhY2tncm91bmQ6IzJlMmUyZTsgY29sb3I6I2VlZTtcclxufVxyXG4ucmktYnRuOmhvdmVyeyBiYWNrZ3JvdW5kOiMzYTNhM2E7IH1cclxuLnJpLWJ0bi1wcmltYXJ5eyBiYWNrZ3JvdW5kOiMxZjZmZWI7IGNvbG9yOiNmZmY7IH1cclxuLnJpLWJ0bi1wcmltYXJ5OmhvdmVyeyBiYWNrZ3JvdW5kOiMyYTdiZmY7IH1cclxuLnJpLWxpbmsgeyBjb2xvcjojODBkOGZmOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjdXJzb3I6cG9pbnRlcjsgfVxyXG5cclxuI3JpLWNvbnNlbnQtcGFuZWwge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7IHBhZGRpbmc6MTJweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBiYWNrZ3JvdW5kOiMxYTFhMWE7IGRpc3BsYXk6bm9uZTtcclxufVxyXG4ucmktcm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOjhweCAwOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMmEyYTJhOyB9XHJcbi5yaS1yb3c6bGFzdC1jaGlsZHsgYm9yZGVyLWJvdHRvbTowOyB9XHJcbi5yaS1yb3cgbGFiZWx7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojZGRkOyB9XHJcbi5zd2l0Y2ggeyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDQ4cHg7IGhlaWdodDogMjRweDsgfVxyXG4uc3dpdGNoIGlucHV0IHsgZGlzcGxheTpub25lOyB9XHJcbi5zbGlkZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgY3Vyc29yOnBvaW50ZXI7IGluc2V0OjA7IGJhY2tncm91bmQ6IzQ0NDsgdHJhbnNpdGlvbjouMnM7IGJvcmRlci1yYWRpdXM6MjRweDsgfVxyXG4uc2xpZGVyOmJlZm9yZXsgcG9zaXRpb246YWJzb2x1dGU7IGNvbnRlbnQ6XCJcIjsgaGVpZ2h0OjE4cHg7d2lkdGg6MThweDtsZWZ0OjNweDt0b3A6M3B4O2JhY2tncm91bmQ6d2hpdGU7dHJhbnNpdGlvbjouMnM7Ym9yZGVyLXJhZGl1czo1MCU7IH1cclxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXJ7IGJhY2tncm91bmQ6IzJhN2JmZjsgfVxyXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmV7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNHB4KTsgfVxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpe1xyXG4gICNyaS1jb25zZW50LWlubmVyeyBwYWRkaW5nOjE0cHg7IH1cclxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/