/* ===================================
   Adam Jeranek 2025 Campaign Website
   CSS Design System & Components
   =================================== */

/* ===================
   CSS CUSTOM PROPERTIES
   =================== */

:root {
  /* Colors */
  --white: #ffffff;
  --red: #db2229;
  --red-hover: #b91c23;
  --red-active: #c41e25;
  --red-dark: #a01820;
  --primary-blue: #2e3e68;
  --flag-blue: #2b73b7;
  --flag-blue-hover: #236ba1;
  --flag-blue-active: #1f5a9a;
  --light-gray: rgb(245, 245, 250);
  
  /* Legacy compatibility */
  --blue: var(--primary-blue);

  /* Typography */
  --font-family-primary: "Arial", sans-serif;
  --font-family-serif: serif;

  /* Layout */
  --content-width: 1170px;

  /* Spacing */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 32px;
  --spacing-xl: 64px;

  /* Breakpoints */
  --width-xs: 320px;
  --width-sm: 480px;
  --width-md: 768px;
  --width-lg: 1024px;
  --width-xl: 1280px;

  /* Border Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 20px;
  --radius-pill: 25px;

  /* Shadows */
  --shadow-sm: 0 2px 4px rgba(0,0,0,0.1);
  --shadow-md: 0 4px 8px rgba(0,0,0,0.1);
  --shadow-lg: 0 4px 12px rgba(0,0,0,0.15);
  --shadow-xl: 0 8px 24px rgba(0,0,0,0.3);
  --shadow-button: 0 4px 12px rgba(0,0,0,0.2);
  --shadow-button-hover: 0 6px 16px rgba(0,0,0,0.3);

  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;

  /* Gradients */
  --gradient-red: linear-gradient(135deg, var(--red) 0%, var(--red-hover) 100%);
  --gradient-red-hover: linear-gradient(135deg, var(--red-hover) 0%, var(--red-dark) 100%);
  --gradient-blue: linear-gradient(135deg, var(--primary-blue) 0%, var(--flag-blue) 100%);
  --gradient-flag-blue: linear-gradient(135deg, var(--flag-blue) 0%, var(--flag-blue-hover) 100%);
  --gradient-flag-blue-hover: linear-gradient(135deg, var(--flag-blue-hover) 0%, var(--flag-blue-active) 100%);
}

/* ===================
   BASE & RESET STYLES
   =================== */

body {
  background-color: var(--white);
  color: var(--primary-blue);
  font-family: var(--font-family-primary);
  height: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
}

main {
  padding: 0;
  margin: 0;
}

a {
  color: var(--white);
  text-decoration: none;
}

h2 {
  font-size: 2rem; /* Mobile-first: smaller size */
  margin: 0 auto;
  padding: var(--spacing-lg) 0;
}

p {
  font: 1.4rem/1.4 var(--font-family-serif);
  padding: var(--spacing-sm) 0;
}

p:last-child {
  margin-bottom: 0;
}

section {
  margin: 0 auto;
  padding: var(--spacing-md);
}

ul {
  padding: 0;
}

ul li {
  list-style-type: none;
}

/* ===================
   BUTTON COMPONENTS
   =================== */

button {
  background-color: var(--white);
  border: 2px solid var(--primary-blue);
  border-radius: var(--radius-sm);
  color: var(--primary-blue);
  cursor: pointer;
  font-size: 1rem;
  margin: 10px;
  padding: 8px 64px;
  transition: var(--transition-normal);
  width: 256px;
}

button:hover {
  background-color: var(--flag-blue);
  color: var(--white);
}

/* ===================
   NAVIGATION COMPONENT
   =================== */

/* Skip Link for Accessibility */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: var(--primary-blue);
  color: var(--white);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-sm);
  text-decoration: none;
  z-index: 2000;
  font-weight: 600;
  transition: top var(--transition-fast);
}

.skip-link:focus {
  top: 6px;
}

.main-nav {
  background-color: var(--primary-blue);
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: var(--shadow-sm);
}

.nav-container {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 var(--spacing-md);
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-height: 60px;
  min-height: 60px;
}

.nav-brand .brand-link {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  color: var(--white);
  font-family: var(--font-family-primary);
  text-decoration: none;
  text-transform: uppercase;
}

.brand-main {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.brand-logo {
  height: 40px;
  width: auto;
}

.brand-text {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
}

.brand-subtitle {
  font-size: 0.9rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.9);
  margin-left: var(--spacing-xs);
  white-space: nowrap;
  display: none;
}

.nav-toggle {
  display: flex;
  flex-direction: column;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--spacing-sm);
  text-decoration: none;
}

.nav-toggle span {
  width: 25px;
  height: 3px;
  background-color: var(--white);
  margin: 3px 0;
  transition: 0.3s;
  display: block;
}

.nav-close {
  display: block;
  position: absolute;
  top: var(--spacing-sm);
  right: var(--spacing-md);
  color: var(--white);
  font-size: 2rem;
  text-decoration: none;
  line-height: 1;
  padding: var(--spacing-sm);
  width: 25px;
  height: 27px;
}

.nav-menu {
  position: fixed;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100vh;
  background-color: var(--blue);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-lg);
  transition: left 0.3s ease;
  z-index: 1001;
}

.nav-menu:target {
  left: 0;
}

.nav-menu:target .nav-close {
  display: block;
}

.nav-link {
  color: var(--white);
  text-decoration: none;
  font-size: 1.5rem;
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: var(--radius-pill);
  border: 2px solid transparent;
  text-align: center;
  white-space: nowrap;
}

.nav-link:hover {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.1) 100%);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow-lg);
}

.nav-donate-button {
  background: var(--gradient-flag-blue);
  border: 2px solid var(--flag-blue);
  border-radius: var(--radius-pill);
  font-weight: 600;
  margin-left: 0;
  margin-top: var(--spacing-md);
  box-shadow: var(--shadow-button);
}

.nav-donate-button:hover {
  background: var(--gradient-flag-blue-hover);
  box-shadow: var(--shadow-button-hover);
}

/* ===================
   HERO SECTION
   =================== */

.hero {
  background: var(--gradient-blue);
  border-bottom: 1px solid var(--primary-blue);
  padding: var(--spacing-lg) 0; /* Mobile-first: smaller padding */
  position: relative;
  overflow: hidden;
}

.hero-container {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 var(--spacing-lg);
  position: relative;
  height: 100%;
}

.hero-content {
  display: flex;
  flex-direction: column; /* Mobile-first: stacked layout */
  gap: var(--spacing-lg);
  align-items: center;
}

.hero-text {
  color: var(--white);
  font-family: var(--font-family-primary);
  text-align: center;
  order: 2; /* Mobile-first: text below image */
}

.hero-text h1 {
  font-family: var(--font-family-primary);
  margin: 0;
  padding: 0;
  line-height: 0.9;
}

.hero-title {
  display: block;
  font-size: 2rem; /* Mobile-first: larger relative size */
  font-weight: 400;
  font-family: var(--font-family-primary);
  margin: 0 0 var(--spacing-md);
  padding: 0;
  position: relative;
  left: -44px; /* Mobile-first: smaller offset */
}

.hero-name {
  display: block;
  font-size: 3.5rem; /* Mobile-first: smaller size */
  font-weight: 700;
  font-family: var(--font-family-primary);
  letter-spacing: 2px;
  padding: 0;
  margin: 0 0 var(--spacing-md);
  text-transform: uppercase;
}

.hero-subtitle {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.2rem; /* Mobile-first: slightly larger */
  font-weight: 300;
  font-family: var(--font-family-primary);
  padding: 0;
  margin: 0 0 var(--spacing-md);
}

.hero-office {
  font-size: 1.5rem; /* Mobile-first: smaller size */
  font-weight: 700;
  font-family: var(--font-family-primary);
  letter-spacing: 1px;
  margin: 0 0 var(--spacing-md);
  padding: 0;
  white-space: normal; /* Mobile-first: allow wrapping */
}

.hero-cta-button {
  display: none; /* Mobile-first: hidden */
  background: var(--gradient-red);
  color: var(--white);
  text-decoration: none;
  padding: var(--spacing-md) var(--spacing-xl);
  border-radius: var(--radius-pill);
  font-size: 1.2rem;
  font-weight: 600;
  font-family: var(--font-family-primary);
  border: 2px solid var(--red);
  transition: var(--transition-normal);
  box-shadow: var(--shadow-button);
  margin-top: var(--spacing-lg);
}

.hero-cta-button:hover {
  background: var(--gradient-red-hover);
  box-shadow: var(--shadow-button-hover);
}

.hero-images {
  position: relative;
  margin: 0 auto;
  order: 1; /* Mobile-first: image above text */
  text-align: center;
  flex-shrink: 1; /* Allow shrinking for responsive behavior */
  width: 100%; /* Take full available width */
}

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

.hero-main-image img {
  width: 100%;
  max-width: 300px; /* Mobile-first: smaller size */
  height: auto;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
}

.hero-text .flag-heart-large {
  display: none;
  height: auto;
  margin: 0 auto var(--spacing-md);
  width: 72px;
}

.hero-images .flag-heart-large {
  display: none; /* Mobile-first: hidden */
  height: 25%;
  opacity: 0.1;
  position: absolute;
  right: 0;
  top: 0;
  transform: translateX(50%) translateY(10%);
  z-index: 3;
}

/* ===================
   GOALS SECTION
   =================== */

#goals {
  background-color: var(--white);
}

.goal {
  margin-bottom: var(--spacing-lg);
  text-align: left;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--spacing-sm); /* Mobile-first: add padding */
}

.goal h3 {
  color: var(--flag-blue);
  font-size: 1.6rem;
  margin-bottom: var(--spacing-sm);
  font-weight: 600;
}

.goal p {
  max-width: none;
  text-align: left;
}

/* ===================
   UTILITY COMPONENTS
   =================== */

.section-divider {
  position: relative;
  height: 0;
  transform: translateY(-50%);
}

.section-divider::before {
  content: '';
  position: absolute;
  top: 0;
  left: 20%;
  right: 20%;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(43, 115, 183, 0.3), transparent);
}

/* ===================
   MEET ADAM SECTION
   =================== */

#meet-adam {
  background-color: var(--light-gray);
}

.meet-adam-container {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 var(--spacing-sm); /* Mobile-first: smaller padding */
}

.meet-adam-header {
  text-align: center;
  margin-bottom: var(--spacing-md);
}

.meet-adam-content {
  display: grid;
  grid-template-columns: 1fr; /* Mobile-first: single column */
  gap: var(--spacing-lg); /* Mobile-first: smaller gap */
  align-items: start;
}

.meet-adam-image {
  position: static; /* Mobile-first: static positioning */
  text-align: center;
  order: -1; /* Mobile-first: image first */
}

.meet-adam-image img {
  width: 100%;
  max-width: 250px; /* Mobile-first: smaller size */
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  border: 3px solid var(--light-gray);
}

.meet-adam-text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

#meet-adam ul {
  list-style: none;
  padding: 0;
  margin: var(--spacing-md) 0;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

#meet-adam ul li {
  background: var(--white);
  border-left: 4px solid var(--flag-blue);
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-fast);
  position: relative;
  font-weight: 500;
  color: var(--primary-blue);
  line-height: 1.4;
  font-size: 1.1rem;
}

#meet-adam ul li:nth-child(odd) {
  border-left-color: var(--red);
}

#meet-adam p {
  margin: 0 auto;
  max-width: 800px;
  text-align: left;
}

.adam-signoff {
  border-radius: var(--radius-md);
  margin-top: var(--spacing-md);
  position: relative;
  text-align: center;
}

.signoff-message {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--primary-blue);
  margin-bottom: var(--spacing-md);
  font-style: italic;
}

.signoff-motto {
  font-size: 1.1rem;
  color: var(--primary-blue);
  font-weight: 700;
  margin-bottom: var(--spacing-sm);
  letter-spacing: 0.5px;
}

.signoff-name {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--flag-blue);
  margin-bottom: 0;
}

/* ===================
   ENDORSEMENTS SECTION
   =================== */

#endorsements {
  background-color: var(--light-gray);
}

.endorsement {
  max-width: 800px;
  margin: var(--spacing-lg) var(--spacing-md) 0; /* Mobile-first: side margins */
  background: var(--white);
  padding: var(--spacing-lg); /* Mobile-first: smaller padding */
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  border-left: 4px solid var(--flag-blue);
  position: relative;
}

.endorsement::before {
  content: '"';
  font-size: 3rem; /* Mobile-first: smaller size */
  color: var(--flag-blue);
  opacity: 0.3;
  position: absolute;
  top: var(--spacing-sm); /* Mobile-first: smaller top */
  left: var(--spacing-md); /* Mobile-first: smaller left */
  font-family: serif;
  line-height: 1;
}

.endorsement-content {
  margin-left: var(--spacing-md); /* Mobile-first: smaller margin */
}

.endorsement-content p {
  font-size: 1.1rem; /* Mobile-first: smaller size */
  line-height: 1.6;
  color: var(--primary-blue);
  margin: 0;
  text-align: left;
  font-style: italic;
}

.endorsement-content p:first-child {
  margin-top: var(--spacing-sm);
}

.endorsement-content p:last-child {
  margin-bottom: 0;
}

.endorsement-attribution {
  text-align: right;
  margin-top: var(--spacing-lg);
  padding-top: var(--spacing-md);
  border-top: 1px solid rgba(46, 62, 104, 0.2);
}

.endorsement-attribution strong {
  font-size: 1.3rem;
  color: var(--primary-blue);
  font-weight: 700;
}

/* ===================
   FOOTER SECTION
   =================== */

.site-footer {
  background: var(--gradient-blue);
  color: var(--white);
  padding: var(--spacing-lg) 0; /* Mobile-first: smaller padding */
  position: relative;
}

.footer-container {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 var(--spacing-sm); /* Mobile-first: smaller padding */
}

.footer-heart {
  text-align: center;
  margin-bottom: var(--spacing-md); /* Mobile-first: smaller margin */
}

.footer-heart-image {
  width: 60px; /* Mobile-first: smaller size */
  height: auto;
  opacity: 0.9;
  filter: drop-shadow(var(--shadow-md));
}

.footer-content {
  display: grid;
  grid-template-columns: 1fr; /* Mobile-first: single column */
  gap: var(--spacing-lg); /* Mobile-first: smaller gap */
  margin-bottom: var(--spacing-xl);
  text-align: center;
}

.footer-section h3 {
  color: var(--white);
  font-size: 1.4rem;
  margin-bottom: var(--spacing-md);
  font-weight: 600;
}

.social-links {
  display: flex;
  justify-content: center;
  gap: var(--spacing-md);
}

.social-link {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  color: var(--white);
  text-decoration: none;
  background: rgba(255, 255, 255, 0.1);
  padding: var(--spacing-sm) var(--spacing-md); /* Mobile-first: smaller padding */
  border-radius: var(--radius-pill);
  border: 2px solid rgba(255, 255, 255, 0.2);
  transition: all var(--transition-normal);
  font-weight: 500;
  font-size: 0.9rem; /* Mobile-first: smaller font */
}

.social-link:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.4);
  box-shadow: var(--shadow-button);
}

.facebook-icon {
  width: 18px; /* Mobile-first: smaller size */
  height: 18px;
  color: var(--white);
}

.footer-donate-button {
  display: inline-block;
  background: var(--gradient-red);
  color: var(--white);
  text-decoration: none;
  padding: var(--spacing-sm) var(--spacing-lg); /* Mobile-first: smaller padding */
  border-radius: var(--radius-pill);
  font-size: 1rem; /* Mobile-first: smaller font */
  font-weight: 600;
  border: 2px solid var(--red);
  transition: all var(--transition-normal);
  box-shadow: var(--shadow-button);
}

.footer-donate-button:hover {
  background: var(--gradient-red-hover);
  box-shadow: var(--shadow-button-hover);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: var(--spacing-lg);
  text-align: center;
}

.footer-tagline {
  margin-bottom: var(--spacing-md);
}

.footer-tagline p {
  margin: var(--spacing-xs) 0;
  color: var(--white);
}

.footer-tagline strong {
  font-size: 1.1rem; /* Mobile-first: smaller size */
  font-weight: 700;
}

.footer-slogan {
  font-size: 0.9rem; /* Mobile-first: smaller size */
  opacity: 0.9;
  font-style: italic;
}

.footer-legal {
  opacity: 0.7;
  font-size: 0.9rem;
}

.footer-legal p {
  margin: 0;
  color: var(--white);
}

/* ===================
   RESPONSIVE BREAKPOINTS
   =================== */

/* Tablet Screens in Portrait */
@media (min-width: 768px) {
  section {
    padding: var(--spacing-lg); /* Intermediate step: 32px */
  }

  h2 {
    font-size: 3rem; /* Desktop size */
  }

  .hero {
    padding: var(--spacing-xl) 0; /* Desktop padding */
  }

  .hero-content {
    flex-direction: row; /* Desktop side-by-side layout */
    gap: var(--spacing-xl);
  }

  .hero-text {
    order: 0; /* Reset order */
    flex: 1; /* Take equal space */
  }

  .hero-title {
    font-size: 1.5rem;
    left: -113px; /* Desktop positioning */
  }

  .hero-name {
    font-size: 5rem; /* Desktop size */
  }

  .hero-subtitle {
    font-size: 1.1rem; /* Desktop size */
  }

  .hero-office {
    font-size: 2rem; /* Desktop size */
    white-space: nowrap;
  }

  .hero-images {
    order: 0; /* Reset order */
    flex: 1; /* Take equal space */
  }

  .hero-main-image img {
    max-width: 400px; /* Desktop size */
  }

  .hero-images .flag-heart-large {
    display: block; /* Show on desktop */
  }

  .hero-cta-button {
    display: inline-block; /* Show on desktop */
  }

  .goal {
    padding: 0; /* Reset mobile padding */
  }

  .meet-adam-content {
    grid-template-columns: 1fr 2fr; /* Desktop layout */
    gap: var(--spacing-xl);
  }
  
  .meet-adam-image {
    position: sticky;
    top: calc(60px + var(--spacing-lg));
    order: 0; /* Reset order */
    text-align: left;
  }
  
  .meet-adam-image img {
    max-width: 350px; /* Desktop size */
  }
  
  .endorsement {
    padding: var(--spacing-xl); /* Desktop padding */
    margin: var(--spacing-xl) auto 0;
  }
  
  .endorsement::before {
    font-size: 4rem; /* Desktop size */
    top: var(--spacing-md);
    left: var(--spacing-lg);
  }
  
  .endorsement-content {
    margin-left: var(--spacing-lg); /* Desktop margin */
  }
  
  .endorsement-content p {
    font-size: 1.2rem; /* Desktop size */
  }

  .site-footer {
    padding: var(--spacing-xl) 0 var(--spacing-lg); /* Desktop padding */
  }
  
  .footer-container {
    padding: 0 var(--spacing-md); /* Desktop padding */
  }
  
  .footer-heart {
    margin-bottom: var(--spacing-xl); /* Desktop margin */
  }

  .footer-heart-image {
    width: 80px; /* Desktop size */
  }
  
  .footer-content {
    grid-template-columns: 1fr 1fr; /* Desktop two-column */
    gap: var(--spacing-xl);
  }
  
  .social-link {
    padding: var(--spacing-md) var(--spacing-lg); /* Desktop padding */
    font-size: 1rem;
  }
  
  .facebook-icon {
    width: 20px; /* Desktop size */
    height: 20px;
  }
  
  .footer-donate-button {
    padding: var(--spacing-md) var(--spacing-xl); /* Desktop padding */
    font-size: 1.1rem;
  }
  
  .footer-tagline strong {
    font-size: 1.2rem; /* Desktop size */
  }
  
  .footer-slogan {
    font-size: 1rem; /* Desktop size */
  }
}

/* Desktop Navigation */
@media (min-width: 982px) {
  /* TODO Or better to set a max width on paragraph tags? */
  section {
    padding: var(--spacing-xl); /* Full desktop: 64px */
  }

  .brand-subtitle {
    display: inline; /* Show subtitle on desktop */
  }

  .nav-toggle {
    display: none; /* Hide hamburger on desktop */
  }

  .nav-menu {
    position: static;
    width: auto;
    height: auto;
    background: none;
    flex-direction: row;
    gap: var(--spacing-md);
    display: flex;
    left: auto; /* Reset left positioning for desktop */
    transition: none; /* Disable transition on desktop to prevent sliding */
  }

  .nav-close {
    display: none;
  }

  .nav-menu:target .nav-close {
    display: none;
  }

  .nav-link {
    font-size: 1rem;
    padding: var(--spacing-sm) var(--spacing-md);
  }

  .nav-donate-button {
    margin-left: var(--spacing-md);
    margin-top: 0;
  }

  .meet-adam-header {
    /* TODO What's the best value here? */
    margin-bottom: var(--spacing-xl);
  }
}


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