/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* ═══════════════════════════════════════════════════════════════════
   DESIGN TOKENS
   Palette: Deep slate base · Ivory text · Electric indigo accent
            Warm gold secondary · Layered card surfaces
   ═══════════════════════════════════════════════════════════════════ */

:root {
  /* Colour */
  --col-bg:          #0A0F1E;
  --col-surface:     #111827;
  --col-surface-2:   #1a2235;
  --col-border:      rgba(255, 255, 255, 0.08);
  --col-border-hover:rgba(255, 255, 255, 0.18);
  --col-text:        #F7F3ED;
  --col-text-muted:  #8892A4;
  --col-text-faint:  #4B5563;
  --col-accent:      #6366F1;
  --col-accent-light:#818CF8;
  --col-accent-glow: rgba(99, 102, 241, 0.15);
  --col-gold:        #D4A843;
  --col-gold-light:  #F0C96A;
  --col-green:       #10B981;
  --col-green-glow:  rgba(16, 185, 129, 0.2);

  /* Book cover palette */
  --col-book-default:#1E2640;
  --col-book-indigo: #3730A3;
  --col-book-gold:   #78400A;
  --col-book-teal:   #0F5E5A;
  --col-book-rose:   #6B1F3A;
  --col-book-slate:  #1E293B;
  --col-book-amber:  #7C3305;

  /* Typography */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  /* Spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;

  /* Border radius */
  --radius-sm:  6px;
  --radius-md:  12px;
  --radius-lg:  20px;
  --radius-xl:  28px;
  --radius-full:9999px;

  /* Transitions */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast: 150ms;
  --dur-base: 280ms;
  --dur-slow: 480ms;

  /* Layout */
  --content-max: 1200px;
  --content-pad: clamp(1rem, 5vw, 3rem);
  --nav-height: 68px;
}

/* ═══════════════════════════════════════════════════════════════════
   RESET & BASE
   ═══════════════════════════════════════════════════════════════════ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

body {
  background-color: var(--col-bg);
  color: var(--col-text);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, video { max-width: 100%; display: block; }

a {
  color: inherit;
  text-decoration: none;
}

ul, ol { list-style: none; }

/* Skip link */
.skip-link {
  position: fixed;
  top: -100%;
  left: var(--space-4);
  z-index: 9999;
  background: var(--col-accent);
  color: #fff;
  padding: var(--space-3) var(--space-6);
  border-radius: var(--radius-md);
  font-weight: 600;
  transition: top var(--dur-fast);
}
.skip-link:focus { top: var(--space-4); }

/* ═══════════════════════════════════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════════════════════════════════ */

.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--nav-height);
  background: rgba(10, 15, 30, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--col-border);
  transition: background var(--dur-base);
}

.nav-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--content-pad);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
}

/* Logo */
.nav-logo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
  text-decoration: none;
}

.nav-logo-mark {
  width: 36px;
  height: 36px;
  background: linear-gradient(135deg, var(--col-accent), var(--col-gold));
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff;
  flex-shrink: 0;
}

.nav-logo-text {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1rem;
  color: var(--col-text);
  display: none;
}
.nav-logo-text em {
  font-style: italic;
  color: var(--col-accent-light);
}

@media (min-width: 640px) {
  .nav-logo-text { display: block; }
}

/* Links */
.nav-links {
  display: none;
  align-items: center;
  gap: var(--space-6);
}

@media (min-width: 768px) {
  .nav-links {
    display: flex;
  }
}

.nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--col-text-muted);
  transition: color var(--dur-fast);
  position: relative;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--col-accent);
  transition: width var(--dur-base) var(--ease-out);
}
.nav-link:hover {
  color: var(--col-text);
}
.nav-link:hover::after {
  width: 100%;
}

.nav-cta {
  display: inline-flex;
  align-items: center;
  padding: var(--space-2) var(--space-5);
  background: var(--col-accent);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: var(--radius-full);
  transition: background var(--dur-fast), transform var(--dur-fast), box-shadow var(--dur-fast);
}
.nav-cta:hover {
  background: var(--col-accent-light);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.4);
}

/* Mobile toggle */
.nav-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  background: none;
  border: 1px solid var(--col-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  padding: 8px;
  transition: border-color var(--dur-fast);
}
.nav-toggle:hover { border-color: var(--col-border-hover); }

.nav-toggle-bar {
  display: block;
  height: 1.5px;
  background: var(--col-text-muted);
  border-radius: 1px;
  transition: transform var(--dur-base), opacity var(--dur-fast), background var(--dur-fast);
}
.nav-toggle.is-active .nav-toggle-bar:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}
.nav-toggle.is-active .nav-toggle-bar:nth-child(2) {
  opacity: 0;
}
.nav-toggle.is-active .nav-toggle-bar:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

@media (min-width: 768px) {
  .nav-toggle { display: none; }
}

/* Mobile menu */
@media (max-width: 767px) {
  .nav-links {
    position: fixed;
    inset: var(--nav-height) 0 0 0;
    background: rgba(10, 15, 30, 0.97);
    backdrop-filter: blur(20px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    display: flex;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dur-base);
  }
  .nav-links.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  .nav-link {
    font-size: 1.5rem;
    font-family: var(--font-display);
    color: var(--col-text);
  }
  .nav-cta {
    font-size: 1rem;
    padding: var(--space-3) var(--space-8);
  }
}

/* ═══════════════════════════════════════════════════════════════════
   SHARED SECTION UTILITIES
   ═══════════════════════════════════════════════════════════════════ */

.section {
  padding: var(--space-24) 0;
}

.section-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--content-pad);
}

.section-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--col-accent);
  margin-bottom: var(--space-4);
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.section-label::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: var(--col-accent);
}

.section-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--col-text);
  margin-bottom: var(--space-12);
}
.section-title em {
  font-style: italic;
  color: var(--col-accent-light);
}

.section-intro {
  max-width: 600px;
  color: var(--col-text-muted);
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: var(--space-12);
  margin-top: calc(-1 * var(--space-6));
}

/* Utility: status dot */
.status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  background: var(--col-green);
  box-shadow: 0 0 0 3px var(--col-green-glow);
  animation: pulse-dot 2.5s ease-in-out infinite;
  flex-shrink: 0;
}

@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 3px var(--col-green-glow); }
  50%       { box-shadow: 0 0 0 7px transparent; }
}

/* Shared tag/badge */
.skill-tag {
  display: inline-flex;
  align-items: center;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--col-border);
  color: var(--col-text-muted);
  transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
  white-space: nowrap;
}
.skill-tag--accent {
  background: var(--col-accent-glow);
  border-color: rgba(99, 102, 241, 0.3);
  color: var(--col-accent-light);
}

/* Shared buttons */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-8);
  background: var(--col-accent);
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  border-radius: var(--radius-full);
  transition: background var(--dur-fast), transform var(--dur-fast), box-shadow var(--dur-fast);
  text-decoration: none;
}
.btn-primary:hover {
  background: var(--col-accent-light);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(99, 102, 241, 0.4);
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-8);
  background: transparent;
  color: var(--col-text);
  font-weight: 600;
  font-size: 0.95rem;
  border-radius: var(--radius-full);
  border: 1px solid var(--col-border-hover);
  transition: background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);
  text-decoration: none;
}
.btn-outline:hover {
  background: rgba(255,255,255,0.06);
  border-color: var(--col-text-muted);
  transform: translateY(-2px);
}

/* ═══════════════════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════════════════ */

.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: var(--nav-height);
  overflow: hidden;
}

/* Ambient canvas */
.hero-canvas {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.hero-orb {
  position: absolute;
  border-radius: var(--radius-full);
  filter: blur(80px);
  opacity: 0.25;
}
.hero-orb--1 {
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, var(--col-accent) 0%, transparent 70%);
  top: -200px;
  right: -100px;
  animation: orb-drift 12s ease-in-out infinite alternate;
}
.hero-orb--2 {
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, var(--col-gold) 0%, transparent 70%);
  bottom: -150px;
  left: 5%;
  animation: orb-drift 16s ease-in-out infinite alternate-reverse;
}

@keyframes orb-drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(30px, 20px) scale(1.05); }
}

.hero-noise {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 256 256%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27noise%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%274%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23noise%29%27 opacity=%270.03%27/%3E%3C/svg%3E");
  background-repeat: repeat;
  opacity: 0.4;
}

.hero-inner {
  position: relative;
  z-index: 1;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: var(--space-20) var(--content-pad) var(--space-12);
  width: 100%;
}

.hero-availability {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-4);
  background: var(--col-green-glow);
  border: 1px solid rgba(16, 185, 129, 0.25);
  border-radius: var(--radius-full);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--col-green);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: var(--space-8);
}

.hero-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(3.5rem, 10vw, 8rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
  color: var(--col-text);
  margin-bottom: var(--space-8);
}

.hero-name-first {
  display: block;
  color: var(--col-text);
}

.hero-name-last {
  display: block;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(247, 243, 237, 0.3);
  background: linear-gradient(135deg, var(--col-accent-light), var(--col-gold-light));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero-role {
  max-width: 600px;
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  line-height: 1.6;
  color: var(--col-text-muted);
  margin-bottom: var(--space-8);
}
.hero-role em {
  font-style: normal;
  color: var(--col-text);
  font-weight: 500;
}
.hero-role-divider {
  margin: 0 var(--space-2);
  color: var(--col-accent);
}

.hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5);
  margin-bottom: var(--space-10);
}
.hero-meta-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--col-text-faint);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

/* Stats bar pinned to bottom of hero */
.hero-stats {
  position: relative;
  z-index: 1;
  max-width: var(--content-max);
  margin: 0 auto var(--space-8);
  padding: 0 var(--content-pad);
  display: flex;
  align-items: center;
  gap: clamp(var(--space-4), 4vw, var(--space-10));
  flex-wrap: wrap;
}

.hero-stat {
  display: flex;
  flex-direction: column;
}
.hero-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  line-height: 1;
  color: var(--col-text);
  letter-spacing: -0.03em;
}
.hero-stat-num sup {
  font-size: 0.5em;
  vertical-align: super;
  color: var(--col-accent-light);
}
.hero-stat-label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--col-text-faint);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: var(--space-1);
}

.hero-stat-divider {
  width: 1px;
  height: 40px;
  background: var(--col-border);
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   ABOUT
   ═══════════════════════════════════════════════════════════════════ */

.section--about {
  background: var(--col-surface);
  clip-path: polygon(0 2.5%, 100% 0, 100% 97.5%, 0 100%);
  padding: calc(var(--space-24) + 2.5vw) 0;
}

.about-grid {
  display: grid;
  gap: var(--space-12);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .about-grid {
    grid-template-columns: 1fr 1.4fr;
    gap: var(--space-16);
    align-items: start;
  }
}

.about-heading-col {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-8));
  align-self: start;
}

.about-signature {
  margin-top: var(--space-8);
}

.about-code {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  line-height: 1.8;
  color: var(--col-text-muted);
  padding: var(--space-4) var(--space-5);
  background: rgba(0,0,0,0.3);
  border: 1px solid var(--col-border);
  border-left: 3px solid var(--col-accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  white-space: pre;
}
.about-code-out { color: var(--col-green); }

.about-lead {
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--col-text);
  line-height: 1.65;
  margin-bottom: var(--space-6);
}

.about-content p {
  color: var(--col-text-muted);
  line-height: 1.75;
  margin-bottom: var(--space-5);
}
.about-content p strong {
  color: var(--col-text);
  font-weight: 600;
}

.about-langs {
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--col-border);
}
.about-lang-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--col-text-faint);
  display: block;
  margin-bottom: var(--space-3);
}
.about-lang-items {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.about-lang {
  font-size: 0.875rem;
  color: var(--col-text-muted);
}
.about-lang em {
  font-style: normal;
  color: var(--col-text-faint);
}

/* ═══════════════════════════════════════════════════════════════════
   SKILLS
   ═══════════════════════════════════════════════════════════════════ */

.section--skills {
  background: var(--col-bg);
}

.skills-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  margin-bottom: var(--space-16);
}

@media (min-width: 640px) {
  .skills-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .skills-grid { grid-template-columns: repeat(3, 1fr); }
}

.skill-card {
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  transition: border-color var(--dur-base), transform var(--dur-base), box-shadow var(--dur-base);
  position: relative;
  overflow: hidden;
}
.skill-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--col-accent-glow) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--dur-base);
  pointer-events: none;
}
.skill-card:hover {
  border-color: rgba(99,102,241,0.35);
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.3);
}
.skill-card:hover::after { opacity: 1; }

.skill-card-header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.skill-card-icon {
  width: 38px;
  height: 38px;
  background: var(--col-accent-glow);
  border: 1px solid rgba(99,102,241,0.25);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--col-accent-light);
  flex-shrink: 0;
}

.skill-card-category {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--col-text-faint);
}

.skill-card-title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--col-text);
  margin-bottom: var(--space-4);
}

.skill-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

/* Certifications */
.certs-section {
  padding-top: var(--space-12);
  border-top: 1px solid var(--col-border);
}

.certs-heading {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--col-text);
  margin-bottom: var(--space-6);
}

.certs-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
}

@media (min-width: 640px) {
  .certs-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .certs-grid { grid-template-columns: repeat(3, 1fr); }
}

.cert-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-md);
  transition: border-color var(--dur-fast);
}
.cert-card:hover { border-color: var(--col-border-hover); }

.cert-card--degree {
  border-color: rgba(212,168,67,0.25);
  background: rgba(212,168,67,0.05);
}

.cert-badge {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--col-green);
  flex-shrink: 0;
  padding-top: 2px;
}
.cert-badge--degree { color: var(--col-gold); }

.cert-name {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--col-text);
  line-height: 1.4;
}
.cert-issuer {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--col-text-faint);
  margin-top: var(--space-1);
}

/* ═══════════════════════════════════════════════════════════════════
   PROJECTS
   ═══════════════════════════════════════════════════════════════════ */

.section--projects {
  background: var(--col-surface);
  clip-path: polygon(0 2%, 100% 0, 100% 98%, 0 100%);
  padding: calc(var(--space-24) + 2vw) 0;
}

.projects-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}

@media (min-width: 768px) {
  .projects-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

.project-card {
  position: relative;
  background: var(--col-bg);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color var(--dur-base), transform var(--dur-base), box-shadow var(--dur-base);
}
.project-card:hover {
  border-color: rgba(99,102,241,0.4);
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(0,0,0,0.4);
}

.project-card--wide {
  grid-column: 1 / -1;
}
@media (min-width: 768px) {
  .project-card--wide { grid-column: 1 / -1; }
}

.project-card-inner {
  padding: clamp(var(--space-6), 3vw, var(--space-10));
  flex: 1;
  display: flex;
  flex-direction: column;
}

.project-card-visual {
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.04;
  pointer-events: none;
  transition: opacity var(--dur-slow);
}
.project-card:hover .project-card-visual { opacity: 0.06; }

.project-visual-glyph {
  font-family: var(--font-display);
  font-size: 5rem;
  font-weight: 900;
  color: var(--col-text);
  line-height: 1;
}

.project-meta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.project-category {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--col-accent);
}

.project-year {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--col-text-faint);
}
.project-year::before {
  content: '·';
  margin-right: var(--space-3);
  color: var(--col-border);
}

.project-title {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--col-text);
  margin-bottom: var(--space-4);
  letter-spacing: -0.02em;
}

.project-desc {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--col-text-muted);
  margin-bottom: var(--space-6);
  flex: 1;
}

.project-metrics {
  display: flex;
  gap: var(--space-6);
  flex-wrap: wrap;
  padding: var(--space-4) 0;
  border-top: 1px solid var(--col-border);
  border-bottom: 1px solid var(--col-border);
  margin-bottom: var(--space-5);
}

.metric {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.metric-val {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--col-text);
  letter-spacing: -0.02em;
}
.metric-label {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--col-text-faint);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.project-stack {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: auto;
}

.project-tag {
  display: inline-flex;
  align-items: center;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--col-border);
  color: var(--col-text-muted);
  white-space: nowrap;
}
.project-tag--accent {
  background: var(--col-accent-glow);
  border-color: rgba(99,102,241,0.3);
  color: var(--col-accent-light);
}

/* ═══════════════════════════════════════════════════════════════════
   EXPERIENCE / TIMELINE
   ═══════════════════════════════════════════════════════════════════ */

.section--experience {
  background: var(--col-bg);
}

.timeline {
  position: relative;
  padding-left: clamp(var(--space-8), 5vw, var(--space-16));
}

/* Vertical line */
.timeline::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, var(--col-accent) 0%, var(--col-border) 60%, transparent 100%);
}

.timeline-item {
  position: relative;
  padding-bottom: var(--space-12);
}
.timeline-item:last-child { padding-bottom: 0; }

.timeline-dot {
  position: absolute;
  left: calc(-1 * clamp(var(--space-8), 5vw, var(--space-16)) + 6px);
  top: 6px;
  width: 13px;
  height: 13px;
  border-radius: var(--radius-full);
  background: var(--col-surface-2);
  border: 2px solid var(--col-text-faint);
  transition: border-color var(--dur-base), background var(--dur-base);
}
.timeline-item--current .timeline-dot {
  background: var(--col-accent);
  border-color: var(--col-accent);
  box-shadow: 0 0 0 4px var(--col-accent-glow);
}
.timeline-item:hover .timeline-dot {
  border-color: var(--col-accent-light);
}

.timeline-content {
  padding-left: var(--space-4);
}

.timeline-period {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--col-text-faint);
  margin-bottom: var(--space-2);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.timeline-duration {
  display: inline-block;
  padding: 2px var(--space-2);
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-full);
  font-size: 0.65rem;
  color: var(--col-text-faint);
}

.timeline-title {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 2.5vw, 1.4rem);
  font-weight: 700;
  color: var(--col-text);
  letter-spacing: -0.01em;
  margin-bottom: var(--space-1);
}

.timeline-company {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--col-accent-light);
  margin-bottom: var(--space-4);
}
.timeline-location {
  font-weight: 400;
  color: var(--col-text-faint);
}

.timeline-bullets {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.timeline-bullets li {
  font-size: 0.9rem;
  color: var(--col-text-muted);
  line-height: 1.6;
  padding-left: var(--space-5);
  position: relative;
}
.timeline-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 12px;
  height: 1px;
  background: var(--col-text-faint);
}

/* ═══════════════════════════════════════════════════════════════════
   BOOK REVIEWS
   ═══════════════════════════════════════════════════════════════════ */

.section--books {
  background: var(--col-surface);
  clip-path: polygon(0 2%, 100% 0, 100% 98%, 0 100%);
  padding: calc(var(--space-24) + 2vw) 0;
}

.books-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

@media (min-width: 640px) {
  .books-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .books-grid { grid-template-columns: repeat(3, 1fr); }
}

.book-card {
  display: flex;
  flex-direction: column;
  background: var(--col-bg);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: border-color var(--dur-base), transform var(--dur-base), box-shadow var(--dur-base);
}
.book-card:hover {
  border-color: rgba(99,102,241,0.3);
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.4);
}

/* Coloured header "cover" for each card */
.book-cover {
  height: 130px;
  background: var(--col-book-default);
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: var(--space-4) var(--space-5);
  overflow: hidden;
  flex-shrink: 0;
}
.book-cover--indigo { background: var(--col-book-indigo); }
.book-cover--gold   { background: var(--col-book-gold); }
.book-cover--teal   { background: var(--col-book-teal); }
.book-cover--rose   { background: var(--col-book-rose); }
.book-cover--slate  { background: var(--col-book-slate); }
.book-cover--amber  { background: var(--col-book-amber); }

.book-cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.07) 0%, transparent 60%);
}
.book-cover::after {
  content: '';
  position: absolute;
  top: -20px;
  right: -20px;
  width: 100px;
  height: 100px;
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.05);
}

.book-cover-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.book-cover-title {
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  color: rgba(255,255,255,0.9);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.book-cover-author {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: rgba(255,255,255,0.5);
}

.book-body {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.book-rating {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  color: var(--col-gold);
  font-size: 0.85rem;
  letter-spacing: 1px;
}
.book-rating-text {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--col-gold-light);
}

.book-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--col-text);
  margin-bottom: var(--space-1);
}

.book-author {
  font-size: 0.82rem;
  color: var(--col-text-faint);
  margin-bottom: var(--space-1);
}

.book-date {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--col-text-faint);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-4);
}

.book-review {
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--col-text-muted);
  flex: 1;
  margin-bottom: var(--space-4);
}

.book-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: auto;
}

/* ═══════════════════════════════════════════════════════════════════
   CONTACT
   ═══════════════════════════════════════════════════════════════════ */

.section--contact {
  background: var(--col-bg);
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-16);
}

@media (min-width: 768px) {
  .contact-grid {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

.contact-heading-col .section-title { margin-bottom: var(--space-6); }

.contact-intro {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--col-text-muted);
  margin-bottom: var(--space-6);
}

.contact-availability {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--col-green);
}

.contact-links-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.contact-link {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--col-surface);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);
}
.contact-link:hover {
  background: var(--col-surface-2);
  border-color: var(--col-border-hover);
  transform: translateX(4px);
}

.contact-link-icon {
  width: 38px;
  height: 38px;
  background: var(--col-accent-glow);
  border: 1px solid rgba(99,102,241,0.2);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--col-accent-light);
  flex-shrink: 0;
}

.contact-link-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.contact-link-label {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--col-text-faint);
  margin-bottom: 2px;
}

.contact-link-value {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--col-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.contact-link-arrow {
  color: var(--col-text-faint);
  font-size: 1rem;
  flex-shrink: 0;
  transition: transform var(--dur-fast), color var(--dur-fast);
}
.contact-link:hover .contact-link-arrow {
  transform: translateX(3px);
  color: var(--col-accent-light);
}

/* ═══════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════ */

footer {
  background: var(--col-surface);
  border-top: 1px solid var(--col-border);
}

.footer-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: var(--space-12) var(--content-pad) var(--space-8);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
}

@media (min-width: 768px) {
  .footer-inner {
    grid-template-columns: auto 1fr auto;
    align-items: center;
  }
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.footer-logo-mark {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, var(--col-accent), var(--col-gold));
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.2rem;
  color: #fff;
  flex-shrink: 0;
}

.footer-tagline {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.875rem;
  color: var(--col-text-muted);
  line-height: 1.5;
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-6);
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .footer-nav { justify-content: center; }
}

.footer-nav a {
  font-size: 0.875rem;
  color: var(--col-text-faint);
  transition: color var(--dur-fast);
}
.footer-nav a:hover { color: var(--col-text); }

.footer-contact {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.footer-contact-link {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--col-text-faint);
  transition: color var(--dur-fast);
}
.footer-contact-link:hover { color: var(--col-accent-light); }

.footer-social {
  display: flex;
  gap: var(--space-3);
  grid-column: 1 / -1;
}
@media (min-width: 768px) {
  .footer-social { grid-column: auto; }
}

.footer-social-link {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--col-border);
  border-radius: var(--radius-sm);
  color: var(--col-text-faint);
  transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
}
.footer-social-link:hover {
  background: var(--col-accent-glow);
  border-color: rgba(99,102,241,0.3);
  color: var(--col-accent-light);
}

.footer-bottom {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-top: var(--space-6);
  border-top: 1px solid var(--col-border);
}

.footer-status {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--col-green);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.footer-copy {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--col-text-faint);
}

/* ═══════════════════════════════════════════════════════════════════
   FOCUS STYLES (Accessibility)
   ═══════════════════════════════════════════════════════════════════ */

:focus-visible {
  outline: 2px solid var(--col-accent);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* ═══════════════════════════════════════════════════════════════════
   PRINT
   ═══════════════════════════════════════════════════════════════════ */

@media print {
  .nav, footer, .hero-canvas, .hero-orb { display: none !important; }
  body { background: #fff; color: #000; }
  .section { padding: 2rem 0; }
  .section--about,
  .section--projects,
  .section--books { clip-path: none; }
}



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