/*!***************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/app.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Chakra+Petch:ital,wght@0,300;0,400;0,600;0,700;1,300&family=Caveat:wght@400;700&display=swap);
/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/styles/app.scss (1) ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ── Google Fonts ────────────────────────────────────────── */
/* ── Reset & Variables ──────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --primary: #103B66;
  --primary-dk: #0A2640;
  --primary-lt: #1a5090;
  --secondary: #EB9F54;
  --secondary-dk: #C87D35;
  --white: #FFFFFF;
  --light-bg: #F0F4F8;
  --mid-bg: #E2EAF2;
  --text-dark: #0d0d0d;
  --text-mid: #3d4f63;
  --text-light: #7a90a8;
  --code-blue: #5B9FD4;
  --chakra: "Chakra Petch", monospace;
  --caveat: "Caveat", cursive;
  --radius: 6px;
  --transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--chakra);
  font-weight: 300;
  color: var(--text-dark);
  background: var(--white);
  overflow-x: hidden;
  line-height: 1.6;
}

/* ── SVG Logo sizing ─────────────────────────────────────── */
.logo-svg {
  display: block;
}

.logo-nav {
  height: 22px;
  width: auto;
}

.logo-hero {
  height: 140px;
  width: auto;
}

.logo-about {
  height: 46px;
  width: auto;
}

.logo-footer {
  height: 28px;
  width: auto;
}

/* ── Navigation ─────────────────────────────────────────── */
nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  height: 60px;
  background: var(--primary);
  transition: box-shadow var(--transition);
}

nav.scrolled {
  box-shadow: 0 2px 24px rgba(0, 0, 0, 0.25);
}

.nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.nav-links {
  display: flex;
  gap: 36px;
  list-style: none;
}

.nav-links a {
  font-family: var(--chakra);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color var(--transition);
  position: relative;
  padding-bottom: 4px;
}

.nav-links a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--secondary);
  transition: width var(--transition);
}

.nav-links a:hover {
  color: var(--white);
}

.nav-links a:hover::after {
  width: 100%;
}

.nav-cta {
  font-family: var(--chakra);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--primary);
  background: var(--secondary);
  padding: 9px 20px;
  border-radius: var(--radius);
  text-decoration: none;
  transition: background var(--transition), transform var(--transition);
}

.nav-cta:hover {
  background: var(--secondary-dk);
  transform: translateY(-1px);
}

/* ── Flash messages ──────────────────────────────────────── */
.flash-container {
  position: fixed;
  top: 76px;
  right: 24px;
  z-index: 200;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 360px;
}

.flash-message {
  font-family: var(--chakra);
  font-size: 13px;
  font-weight: 400;
  padding: 14px 20px;
  border-radius: var(--radius);
  border-left: 4px solid;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

.flash-success {
  background: #f0faf4;
  border-color: #38a169;
  color: #276749;
}

.flash-error {
  background: #fff5f5;
  border-color: #e53e3e;
  color: #c53030;
}

.flash-info {
  background: #ebf8ff;
  border-color: var(--primary);
  color: var(--primary);
}

/* ── Hero ───────────────────────────────────────────────── */
.hero {
  min-height: 100vh;
  background: var(--primary);
  display: grid;
  grid-template-columns: 3fr 2fr;
  align-items: center;
  padding: 120px 48px 80px;
  position: relative;
  overflow: hidden;
}

.hero::before {
  content: "";
  position: absolute;
  right: -80px;
  top: -80px;
  width: 600px;
  height: 600px;
  border: 1.5px solid rgba(255, 255, 255, 0.04);
  border-radius: 50%;
}

.hero::after {
  content: "";
  position: absolute;
  right: 40px;
  top: 40px;
  width: 400px;
  height: 400px;
  border: 1px solid rgba(255, 255, 255, 0.03);
  border-radius: 50%;
}

.hero-bg-code {
  position: absolute;
  right: -20px;
  bottom: -40px;
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 280px;
  color: rgba(255, 255, 255, 0.03);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.hero-content {
  position: relative;
  z-index: 2;
}

.hero-eyebrow {
  font-family: var(--chakra);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--secondary);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.hero-eyebrow::before {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  background: var(--secondary);
}

.hero-name {
  font-family: var(--caveat);
  font-weight: 700;
  font-size: 72px;
  color: var(--white);
  line-height: 1;
  margin-bottom: 8px;
  animation: fadeUp 0.8s ease both;
}

.hero-title-row {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 32px;
  animation: fadeUp 0.8s 0.1s ease both;
}

.hero-title {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

.hero-title-accent {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--code-blue);
}

.hero-desc {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.8;
  max-width: 800px;
  margin-bottom: 48px;
  animation: fadeUp 0.8s 0.2s ease both;
}

.hero-actions {
  display: flex;
  gap: 16px;
  align-items: center;
  animation: fadeUp 0.8s 0.3s ease both;
}

.btn-primary {
  font-family: var(--chakra);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--primary);
  background: var(--secondary);
  padding: 14px 28px;
  border-radius: var(--radius);
  text-decoration: none;
  transition: all var(--transition);
  border: 2px solid var(--secondary);
}

.btn-primary:hover {
  background: var(--secondary-dk);
  border-color: var(--secondary-dk);
  transform: translateY(-2px);
}

.btn-ghost {
  font-family: var(--chakra);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 14px 28px;
  border-radius: var(--radius);
  text-decoration: none;
  transition: all var(--transition);
}

.btn-ghost:hover {
  border-color: rgba(255, 255, 255, 0.5);
  color: var(--white);
}

.hero-mark {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

.hero-monogram {
  display: flex;
  align-items: center;
  animation: fadeIn 1s 0.4s ease both;
}

.hero-monogram-label {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.25);
  text-align: center;
  animation: fadeIn 1s 0.6s ease both;
}

.hero-stats {
  display: flex;
  gap: 40px;
  margin-top: 20px;
  animation: fadeIn 1s 0.7s ease both;
}

.stat {
  text-align: center;
}

.stat-num {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 32px;
  color: var(--white);
  line-height: 1;
}

.stat-num span {
  color: var(--secondary);
}

.stat-label {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 4px;
}

/* ── Section base ───────────────────────────────────────── */
section {
  padding: 100px 48px;
}

.section-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--chakra);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--secondary);
  margin-bottom: 16px;
}

.section-eyebrow::before {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background: var(--secondary);
}

.section-title {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 36px;
  color: var(--primary);
  line-height: 1.2;
  margin-bottom: 16px;
}

.section-title em {
  font-style: normal;
  color: var(--secondary);
}

/* ── About section ──────────────────────────────────────── */
.about {
  background: var(--white);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.about-text {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 15px;
  color: var(--text-mid);
  line-height: 1.9;
  margin-bottom: 24px;
}

.about-quote {
  font-family: var(--caveat);
  font-weight: 700;
  font-size: 28px;
  color: var(--primary);
  line-height: 1.35;
  border-left: 4px solid var(--secondary);
  padding-left: 24px;
  margin: 32px 0;
}

.about-right {
  position: relative;
}

.about-card {
  background: var(--primary);
  border-radius: 12px;
  padding: 40px;
  position: relative;
  overflow: hidden;
}

.about-card::before {
  content: "";
  position: absolute;
  bottom: -30px;
  right: -30px;
  width: 160px;
  height: 160px;
  border: 2px solid rgba(255, 255, 255, 0.06);
  border-radius: 50%;
}

.about-card::after {
  content: "";
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 90px;
  height: 90px;
  border: 1.5px solid rgba(255, 255, 255, 0.04);
  border-radius: 50%;
}

.about-card-logo {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}

.about-card-name {
  font-family: var(--caveat);
  font-weight: 700;
  font-size: 30px;
  color: var(--white);
  margin-bottom: 6px;
}

.about-card-role {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 28px;
}

.about-card-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
  margin-bottom: 24px;
}

.about-skills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.skill-tag {
  font-family: var(--chakra);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--code-blue);
  border: 1px solid rgba(91, 159, 212, 0.3);
  padding: 5px 12px;
  border-radius: 3px;
  background: rgba(91, 159, 212, 0.06);
}

/* ── About page (/o-mne) ────────────────────────────────── */
.about-page {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
  align-items: start;
}

.about-page-intro {
  position: sticky;
  top: 140px;
}

.about-page-photo {
  display: block;
  width: 100%;
  border-radius: var(--radius);
  margin-top: 32px;
}

.about-timeline {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.timeline-label {
  font-family: var(--chakra);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--secondary);
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--mid-bg);
}

.timeline-items {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.timeline-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 24px;
}

.timeline-date {
  font-family: var(--chakra);
  font-size: 11px;
  font-weight: 400;
  color: var(--text-light);
  padding-top: 3px;
  white-space: nowrap;
}

.timeline-title {
  font-family: var(--chakra);
  font-size: 15px;
  font-weight: 600;
  color: var(--primary);
  margin-bottom: 8px;
}

.timeline-desc {
  font-family: var(--chakra);
  font-size: 14px;
  font-weight: 300;
  color: var(--text-mid);
  line-height: 1.8;
  margin: 0;
}

@media (max-width: 980px) {
  .about-page {
    grid-template-columns: 1fr;
  }
  .about-page-intro {
    position: static;
  }
  .timeline-item {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}
/* ── Services section ───────────────────────────────────── */
.services {
  background: var(--light-bg);
}

.services-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 60px;
}

.services-desc {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.8;
  max-width: 340px;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.service-card {
  background: var(--white);
  border-radius: 8px;
  padding: 36px 28px;
  border: 1px solid rgba(16, 59, 102, 0.08);
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}

.service-card::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--secondary);
  transform: scaleX(0);
  transition: transform var(--transition);
  transform-origin: left;
}

.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(16, 59, 102, 0.12);
}

.service-card:hover::before {
  transform: scaleX(1);
}

.service-icon {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 28px;
  color: var(--code-blue);
  margin-bottom: 20px;
  line-height: 1;
}

.service-title {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 16px;
  color: var(--primary);
  margin-bottom: 12px;
}

.service-desc {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.8;
}

/* ── Portfolio section ──────────────────────────────────── */
.portfolio {
  background: var(--white);
}

.portfolio-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 56px;
}

.portfolio-link {
  font-family: var(--chakra);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--secondary);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-bottom: 2px solid var(--secondary);
  padding-bottom: 3px;
  transition: gap var(--transition), color var(--transition), border-color var(--transition);
}

.portfolio-link:hover {
  gap: 14px;
  color: var(--secondary-dk);
  border-color: var(--secondary-dk);
}

.portfolio-link::after {
  content: "→";
}

.projects-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px 36px;
}

.project-card {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #eef2f7;
  transition: all var(--transition);
  background: var(--white);
  box-shadow: 0 2px 12px rgba(16, 59, 102, 0.05);
}

.project-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(16, 59, 102, 0.1);
}

.project-thumb {
  aspect-ratio: 16/9;
  background: var(--primary);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.project-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project-thumb-1 {
  background: linear-gradient(135deg, #0A2640 0%, #1a5090 100%);
}

.project-thumb-2 {
  background: linear-gradient(135deg, #103B66 0%, #0d5c3a 100%);
}

.project-thumb-3 {
  background: linear-gradient(135deg, #1a3a5c 0%, #4a1f6a 100%);
}

.project-thumb-label {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 42px;
  color: rgba(255, 255, 255, 0.08);
  letter-spacing: -2px;
}

.project-body {
  padding: 24px;
}

.project-title {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 16px;
  color: var(--primary);
  margin-bottom: 8px;
  display: block;
  text-decoration: none;
}

a.project-title:hover {
  color: var(--secondary);
}

.project-desc {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 12.5px;
  color: var(--text-mid);
  line-height: 1.8;
}

/* ── Stack section ──────────────────────────────────────── */
.stack {
  background: var(--primary);
  position: relative;
  overflow: hidden;
}

.stack::before {
  content: "";
  position: absolute;
  left: -100px;
  top: -100px;
  width: 500px;
  height: 500px;
  border: 1px solid rgba(255, 255, 255, 0.03);
  border-radius: 50%;
}

.stack-inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1;
}

.stack-title {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 36px;
  color: var(--white);
  line-height: 1.2;
}

.stack-title span {
  color: var(--secondary);
}

.stack-subtitle {
  font-family: var(--caveat);
  font-weight: 400;
  font-size: 20px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 12px;
}

.stack-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.stack-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 20px 16px;
  text-align: center;
  transition: all var(--transition);
  cursor: default;
}

.stack-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(91, 159, 212, 0.4);
  transform: translateY(-2px);
}

.stack-item-icon {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 22px;
  color: var(--code-blue);
  margin-bottom: 8px;
}

.stack-item-name {
  font-family: var(--chakra);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 4px;
}

.stack-item-type {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.3);
}

/* ── Process section ────────────────────────────────────── */
.process {
  background: var(--light-bg);
}

.process-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 60px;
  position: relative;
}

.process-steps::before {
  content: "";
  position: absolute;
  top: 28px;
  left: 10%;
  right: 10%;
  height: 1px;
  background: var(--mid-bg);
}

.process-step {
  text-align: center;
  padding: 0 20px;
  position: relative;
}

.step-num {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--white);
  border: 2px solid var(--mid-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 16px;
  color: var(--primary);
  margin: 0 auto 20px;
  position: relative;
  z-index: 1;
  transition: all var(--transition);
}

.process-step:hover .step-num {
  background: var(--secondary);
  border-color: var(--secondary);
  color: var(--white);
}

.step-title {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 14px;
  color: var(--primary);
  margin-bottom: 8px;
}

.step-desc {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 12px;
  color: var(--text-mid);
  line-height: 1.7;
}

/* ── Contact section ────────────────────────────────────── */
.contact {
  background: var(--white);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.contact-info {
  padding-top: 20px;
}

.contact-intro {
  font-family: var(--caveat);
  font-weight: 700;
  font-size: 32px;
  color: var(--primary);
  line-height: 1.3;
  margin-bottom: 32px;
}

.contact-items {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.contact-item {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  padding: 16px 20px;
  border-radius: 6px;
  border: 1px solid var(--mid-bg);
  transition: all var(--transition);
}

.contact-item:hover {
  border-color: var(--primary);
  background: var(--light-bg);
  transform: translateX(4px);
}

.contact-icon {
  width: 40px;
  height: 40px;
  background: var(--primary);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 14px;
  color: var(--white);
  flex-shrink: 0;
}

.contact-item-label {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-light);
  display: block;
}

.contact-item-value {
  font-family: var(--chakra);
  font-weight: 600;
  font-size: 14px;
  color: var(--primary);
  display: block;
}

/* ── Contact Form ───────────────────────────────────────── */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-label {
  font-family: var(--chakra);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-mid);
}

.form-input,
.form-textarea,
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form textarea {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 13px;
  color: var(--text-dark);
  background: var(--light-bg);
  border: 1.5px solid var(--mid-bg);
  border-radius: var(--radius);
  padding: 12px 16px;
  outline: none;
  transition: border-color var(--transition), background var(--transition);
  resize: none;
  width: 100%;
}

.form-input:focus,
.form-textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus {
  border-color: var(--primary);
  background: var(--white);
}

.form-textarea,
.contact-form textarea {
  min-height: 120px;
}

.form-submit {
  font-family: var(--chakra);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--white);
  background: var(--primary);
  border: none;
  border-radius: var(--radius);
  padding: 15px 32px;
  cursor: pointer;
  transition: all var(--transition);
  align-self: flex-start;
  display: flex;
  align-items: center;
  gap: 10px;
}

.form-submit:hover {
  background: var(--primary-lt);
  transform: translateY(-2px);
}

.form-submit::after {
  content: "→";
  font-size: 16px;
}

/* Hide reCAPTCHA badge */
.grecaptcha-badge {
  visibility: hidden !important;
}

/* Contact form accent variant — blue outline, warm yellow background */
.contact-form.contact-form--accent input,
.contact-form.contact-form--accent textarea {
  background: #FFFBF0;
  border: 2px solid var(--primary);
  border-radius: 6px;
  outline: none;
  box-shadow: none;
}

.contact-form.contact-form--accent input:focus,
.contact-form.contact-form--accent textarea:focus {
  background: #FFFBF0;
  outline: none;
  box-shadow: none;
}

/* Symfony form error messages */
.contact-form .form-error,
.contact-form ul.errors {
  list-style: none;
  font-family: var(--chakra);
  font-size: 11px;
  color: #e53e3e;
  margin-top: 4px;
}

/* ── Footer ─────────────────────────────────────────────── */
footer {
  background: var(--primary-dk);
  padding: 48px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px;
  border-top: 3px solid var(--secondary);
}

.footer-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.footer-links {
  display: flex;
  gap: 32px;
  list-style: none;
}

.footer-links a {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
  transition: color var(--transition);
}

.footer-links a:hover {
  color: var(--white);
}

.footer-copy {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.25);
  text-align: right;
}

/* ── Contact legal strip ────────────────────────────────── */
.contact-legal {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  background: var(--light-bg);
  padding: 48px;
  border-top: 1px solid var(--mid-bg);
}

.contact-legal-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  border-radius: 6px;
  border: 1px solid var(--mid-bg);
  background: var(--white);
}

.contact-legal-line {
  font-family: var(--chakra);
  font-weight: 300;
  font-size: 12px;
  color: var(--text-light);
  display: block;
  margin-top: 2px;
}

@media (max-width: 980px) {
  .contact-legal {
    grid-template-columns: 1fr;
    padding: 32px 24px;
  }
}
/* ── Page content (sub-pages) ───────────────────────────── */
.page-content {
  padding: 120px 48px 100px;
  min-height: 60vh;
}

/* ── Animations ─────────────────────────────────────────── */
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 {
  transition-delay: 0.1s;
}

.reveal-delay-2 {
  transition-delay: 0.2s;
}

.reveal-delay-3 {
  transition-delay: 0.3s;
}

/* ── Scrollbar ──────────────────────────────────────────── */
::-webkit-scrollbar {
  width: 5px;
}

::-webkit-scrollbar-track {
  background: var(--light-bg);
}

::-webkit-scrollbar-thumb {
  background: var(--primary);
  border-radius: 3px;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 980px) {
  nav {
    padding: 0 24px;
  }
  .nav-links {
    display: none;
  }
  .hero {
    grid-template-columns: 1fr;
    padding: 100px 24px 60px;
  }
  .hero-mark {
    display: none;
  }
  .hero-name {
    font-size: 52px;
  }
  .about,
  .contact {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .services-header {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .projects-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .stack-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .stack-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .process-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
  .process-steps::before {
    display: none;
  }
  footer {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 24px;
  }
  .footer-logo {
    justify-content: center;
  }
  .footer-links {
    justify-content: center;
  }
  .footer-copy {
    text-align: center;
  }
  section {
    padding: 60px 24px;
  }
  .page-content {
    padding: 100px 24px 60px;
  }
}
@media (max-width: 600px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
  .projects-grid {
    grid-template-columns: 1fr;
  }
  .stack-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .process-steps {
    grid-template-columns: 1fr;
  }
  .form-row {
    grid-template-columns: 1fr;
  }
  .hero-name {
    font-size: 62px;
  }
}

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