@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

/* Custom CSS for Compare Funeral Cover */

@layer base {
  body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    line-height: 1.6;
    color: #1f2937;
    background-color: #f9fafb;
  }
  
  h1, h2, h3, h4, h5, h6 {
    font-family: 'Poppins', system-ui, sans-serif;
    font-weight: 600;
    line-height: 1.3;
    color: #111827;
  }
  
  a {
    color: #003057;
    text-decoration: none;
    transition: color 0.2s ease;
  }
  
  a:hover {
    color: #1a4d73;
  }
  
  /* Focus styles for accessibility */
  *:focus {
    outline: 2px solid #003057;
    outline-offset: 2px;
  }
  
  /* Skip link styles */
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  
  .sr-only:focus {
    position: absolute;
    width: auto;
    height: auto;
    padding: 0.5rem 1rem;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }
}

@layer components {
  /* Custom button styles */
  .btn-primary {
    @apply bg-brand-green hover:bg-brand-dark-green text-white font-medium py-2 px-4 rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-brand-green focus:ring-offset-2;
  }
  
  .btn-secondary {
    @apply bg-brand-navy hover:bg-brand-dark-navy text-white font-medium py-2 px-4 rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-brand-navy focus:ring-offset-2;
  }
  
  .btn-outline {
    @apply border-2 border-brand-navy text-brand-navy hover:bg-brand-navy hover:text-white font-medium py-2 px-4 rounded-md transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-brand-navy focus:ring-offset-2;
  }
  
  /* Card styles */
  .card {
    @apply bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow duration-300;
  }
  
  .card-feature {
    @apply bg-white p-8 rounded-lg shadow-md hover:shadow-lg transition-shadow duration-300;
  }
  
  /* Form styles */
  .form-input {
    @apply w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-brand-navy focus:border-transparent;
  }
  
  .form-select {
    @apply w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-brand-navy focus:border-transparent;
  }
  
  .form-label {
    @apply block text-sm font-medium text-gray-700 mb-1;
  }
  
  .form-error {
    @apply text-red-600 text-sm mt-1;
  }
  
  /* Navigation styles */
  .nav-link {
    @apply text-gray-700 hover:text-brand-navy px-3 py-2 rounded-md text-sm font-medium transition-colors duration-200;
  }
  
  .nav-link.active {
    @apply text-brand-navy font-semibold;
  }
  
  /* Content styles */
  .content {
    @apply max-w-none prose prose-lg prose-gray;
  }
  
  .content h1 {
    @apply text-3xl md:text-4xl font-bold text-gray-900 mb-6;
  }
  
  .content h2 {
    @apply text-2xl md:text-3xl font-semibold text-gray-900 mt-8 mb-4;
  }
  
  .content h3 {
    @apply text-xl md:text-2xl font-semibold text-gray-900 mt-6 mb-3;
  }
  
  .content h4 {
    @apply text-lg md:text-xl font-semibold text-gray-900 mt-4 mb-2;
  }
  
  .content p {
    @apply text-gray-700 mb-4;
  }
  
  .content ul {
    @apply list-disc list-inside text-gray-700 mb-4;
  }
  
  .content ol {
    @apply list-decimal list-inside text-gray-700 mb-4;
  }
  
  .content li {
    @apply mb-2;
  }
  
  .content blockquote {
    @apply border-l-4 border-brand-green pl-4 italic text-gray-600 my-4;
  }
  
  .content table {
    @apply w-full border-collapse border border-gray-300 mb-4;
  }
  
  .content th {
    @apply border border-gray-300 bg-gray-50 px-4 py-2 text-left font-semibold;
  }
  
  .content td {
    @apply border border-gray-300 px-4 py-2;
  }
  
  /* Utility classes */
  .gradient-bg {
    @apply bg-gradient-to-br from-brand-navy to-brand-dark-navy;
  }
  
  .text-gradient {
    @apply bg-gradient-to-r from-brand-navy to-brand-green bg-clip-text text-transparent;
  }
  
  .shadow-brand {
    box-shadow: 0 4px 6px -1px rgba(0, 48, 87, 0.1), 0 2px 4px -1px rgba(0, 48, 87, 0.06);
  }
  
  .shadow-brand-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 48, 87, 0.1), 0 4px 6px -2px rgba(0, 48, 87, 0.05);
  }
  
  /* Animation classes */
  .animate-fade-in {
    animation: fadeIn 0.5s ease-in-out;
  }
  
  .animate-slide-up {
    animation: slideUp 0.5s ease-out;
  }
  
  .animate-bounce-light {
    animation: bounce 2s infinite;
  }
  
  /* Loading states */
  .loading {
    @apply opacity-50 cursor-wait;
  }
  
  .loading::after {
    content: '';
    @apply absolute inset-0 bg-gray-100 bg-opacity-50 flex items-center justify-center;
  }
  
  .spinner {
    @apply animate-spin rounded-full h-8 w-8 border-b-2 border-brand-navy;
  }
  
  /* Responsive utilities */
  .container-responsive {
    @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
  }
  
  /* Print styles */
  @media print {
    .no-print {
      display: none !important;
    }
    
    .print-block {
      display: block !important;
    }
    
    body {
      background: white !important;
      color: black !important;
    }
    
    .card {
      box-shadow: none !important;
      border: 1px solid #ccc !important;
    }
  }
}

@layer utilities {
  /* Custom utilities */
  .text-balance {
    text-wrap: balance;
  }
  
  .text-pretty {
    text-wrap: pretty;
  }
  
  /* Accessibility utilities */
  .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  
  .focus-visible:focus {
    outline: 2px solid #003057 !important;
    outline-offset: 2px !important;
  }
  
  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .text-gray-600 {
      color: #000 !important;
    }
    
    .text-gray-700 {
      color: #000 !important;
    }
    
    .border-gray-300 {
      border-color: #000 !important;
    }
  }
  
  /* Reduced motion support */
  @media (prefers-reduced-motion: reduce) {
    * {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
    }
  }
  
  /* Dark mode support (future enhancement) */
  @media (prefers-color-scheme: dark) {
    .dark\:bg-gray-900 {
      background-color: #111827;
    }
    
    .dark\:text-white {
      color: white;
    }
  }
}

/* Custom animations */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    transform: translateY(0);
  }
  40%, 43% {
    transform: translateY(-10px);
  }
  70% {
    transform: translateY(-5px);
  }
  90% {
    transform: translateY(-2px);
  }
}

/* Custom scrollbar styling */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background: #003057;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #1a4d73;
}

/* Selection styling */
::selection {
  background: #003057;
  color: white;
}

::-moz-selection {
  background: #003057;
  color: white;
}

/* Focus trap for modals */
.modal-focus-trap {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Smooth scrolling for anchor links */
html {
  scroll-behavior: smooth;
}

/* Ensure proper contrast for form elements */
input:focus,
select:focus,
textarea:focus {
  border-color: #003057;
  box-shadow: 0 0 0 2px rgba(0, 48, 87, 0.2);
}

/* Mobile-first responsive design helpers */
@media (max-width: 640px) {
  .mobile-full-width {
    width: 100% !important;
  }
  
  .mobile-center {
    text-align: center !important;
  }
  
  .mobile-stack {
    flex-direction: column !important;
  }
}

/* Ensure proper spacing for content */
.content-spacing > * + * {
  margin-top: 1rem;
}

.content-spacing > h1 + *,
.content-spacing > h2 + *,
.content-spacing > h3 + *,
.content-spacing > h4 + * {
  margin-top: 0.5rem;
}

/* Performance optimizations */
img {
  max-width: 100%;
  height: auto;
}

/* Lazy loading placeholder */
img[loading="lazy"] {
  background: #f3f4f6;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d1d5db' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z' clip-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 2rem 2rem;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2Fzc2V0cy9jc3MvbWFpbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICd0YWlsd2luZGNzcy9iYXNlJztcbkBpbXBvcnQgJ3RhaWx3aW5kY3NzL2NvbXBvbmVudHMnO1xuQGltcG9ydCAndGFpbHdpbmRjc3MvdXRpbGl0aWVzJztcblxuLyogQ3VzdG9tIENTUyBmb3IgQ29tcGFyZSBGdW5lcmFsIENvdmVyICovXG5cbkBsYXllciBiYXNlIHtcbiAgYm9keSB7XG4gICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjMWYyOTM3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWZhZmI7XG4gIH1cbiAgXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICMxMTE4Mjc7XG4gIH1cbiAgXG4gIGEge1xuICAgIGNvbG9yOiAjMDAzMDU3O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG4gIH1cbiAgXG4gIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjMWE0ZDczO1xuICB9XG4gIFxuICAvKiBGb2N1cyBzdHlsZXMgZm9yIGFjY2Vzc2liaWxpdHkgKi9cbiAgKjpmb2N1cyB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMwMDMwNTc7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgfVxuICBcbiAgLyogU2tpcCBsaW5rIHN0eWxlcyAqL1xuICAuc3Itb25seSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG4gIFxuICAuc3Itb25seTpmb2N1cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG5cbkBsYXllciBjb21wb25lbnRzIHtcbiAgLyogQ3VzdG9tIGJ1dHRvbiBzdHlsZXMgKi9cbiAgLmJ0bi1wcmltYXJ5IHtcbiAgICBAYXBwbHkgYmctYnJhbmQtZ3JlZW4gaG92ZXI6YmctYnJhbmQtZGFyay1ncmVlbiB0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIHB5LTIgcHgtNCByb3VuZGVkLW1kIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTIwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYnJhbmQtZ3JlZW4gZm9jdXM6cmluZy1vZmZzZXQtMjtcbiAgfVxuICBcbiAgLmJ0bi1zZWNvbmRhcnkge1xuICAgIEBhcHBseSBiZy1icmFuZC1uYXZ5IGhvdmVyOmJnLWJyYW5kLWRhcmstbmF2eSB0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIHB5LTIgcHgtNCByb3VuZGVkLW1kIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTIwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYnJhbmQtbmF2eSBmb2N1czpyaW5nLW9mZnNldC0yO1xuICB9XG4gIFxuICAuYnRuLW91dGxpbmUge1xuICAgIEBhcHBseSBib3JkZXItMiBib3JkZXItYnJhbmQtbmF2eSB0ZXh0LWJyYW5kLW5hdnkgaG92ZXI6YmctYnJhbmQtbmF2eSBob3Zlcjp0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIHB5LTIgcHgtNCByb3VuZGVkLW1kIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTIwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYnJhbmQtbmF2eSBmb2N1czpyaW5nLW9mZnNldC0yO1xuICB9XG4gIFxuICAvKiBDYXJkIHN0eWxlcyAqL1xuICAuY2FyZCB7XG4gICAgQGFwcGx5IGJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LW1kIHAtNiBob3ZlcjpzaGFkb3ctbGcgdHJhbnNpdGlvbi1zaGFkb3cgZHVyYXRpb24tMzAwO1xuICB9XG4gIFxuICAuY2FyZC1mZWF0dXJlIHtcbiAgICBAYXBwbHkgYmctd2hpdGUgcC04IHJvdW5kZWQtbGcgc2hhZG93LW1kIGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLXNoYWRvdyBkdXJhdGlvbi0zMDA7XG4gIH1cbiAgXG4gIC8qIEZvcm0gc3R5bGVzICovXG4gIC5mb3JtLWlucHV0IHtcbiAgICBAYXBwbHkgdy1mdWxsIHB4LTMgcHktMiBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWJyYW5kLW5hdnkgZm9jdXM6Ym9yZGVyLXRyYW5zcGFyZW50O1xuICB9XG4gIFxuICAuZm9ybS1zZWxlY3Qge1xuICAgIEBhcHBseSB3LWZ1bGwgcHgtMyBweS0yIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1tZCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYnJhbmQtbmF2eSBmb2N1czpib3JkZXItdHJhbnNwYXJlbnQ7XG4gIH1cbiAgXG4gIC5mb3JtLWxhYmVsIHtcbiAgICBAYXBwbHkgYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTE7XG4gIH1cbiAgXG4gIC5mb3JtLWVycm9yIHtcbiAgICBAYXBwbHkgdGV4dC1yZWQtNjAwIHRleHQtc20gbXQtMTtcbiAgfVxuICBcbiAgLyogTmF2aWdhdGlvbiBzdHlsZXMgKi9cbiAgLm5hdi1saW5rIHtcbiAgICBAYXBwbHkgdGV4dC1ncmF5LTcwMCBob3Zlcjp0ZXh0LWJyYW5kLW5hdnkgcHgtMyBweS0yIHJvdW5kZWQtbWQgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0yMDA7XG4gIH1cbiAgXG4gIC5uYXYtbGluay5hY3RpdmUge1xuICAgIEBhcHBseSB0ZXh0LWJyYW5kLW5hdnkgZm9udC1zZW1pYm9sZDtcbiAgfVxuICBcbiAgLyogQ29udGVudCBzdHlsZXMgKi9cbiAgLmNvbnRlbnQge1xuICAgIEBhcHBseSBtYXgtdy1ub25lIHByb3NlIHByb3NlLWxnIHByb3NlLWdyYXk7XG4gIH1cbiAgXG4gIC5jb250ZW50IGgxIHtcbiAgICBAYXBwbHkgdGV4dC0zeGwgbWQ6dGV4dC00eGwgZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbWItNjtcbiAgfVxuICBcbiAgLmNvbnRlbnQgaDIge1xuICAgIEBhcHBseSB0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgbXQtOCBtYi00O1xuICB9XG4gIFxuICAuY29udGVudCBoMyB7XG4gICAgQGFwcGx5IHRleHQteGwgbWQ6dGV4dC0yeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIG10LTYgbWItMztcbiAgfVxuICBcbiAgLmNvbnRlbnQgaDQge1xuICAgIEBhcHBseSB0ZXh0LWxnIG1kOnRleHQteGwgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIG10LTQgbWItMjtcbiAgfVxuICBcbiAgLmNvbnRlbnQgcCB7XG4gICAgQGFwcGx5IHRleHQtZ3JheS03MDAgbWItNDtcbiAgfVxuICBcbiAgLmNvbnRlbnQgdWwge1xuICAgIEBhcHBseSBsaXN0LWRpc2MgbGlzdC1pbnNpZGUgdGV4dC1ncmF5LTcwMCBtYi00O1xuICB9XG4gIFxuICAuY29udGVudCBvbCB7XG4gICAgQGFwcGx5IGxpc3QtZGVjaW1hbCBsaXN0LWluc2lkZSB0ZXh0LWdyYXktNzAwIG1iLTQ7XG4gIH1cbiAgXG4gIC5jb250ZW50IGxpIHtcbiAgICBAYXBwbHkgbWItMjtcbiAgfVxuICBcbiAgLmNvbnRlbnQgYmxvY2txdW90ZSB7XG4gICAgQGFwcGx5IGJvcmRlci1sLTQgYm9yZGVyLWJyYW5kLWdyZWVuIHBsLTQgaXRhbGljIHRleHQtZ3JheS02MDAgbXktNDtcbiAgfVxuICBcbiAgLmNvbnRlbnQgdGFibGUge1xuICAgIEBhcHBseSB3LWZ1bGwgYm9yZGVyLWNvbGxhcHNlIGJvcmRlciBib3JkZXItZ3JheS0zMDAgbWItNDtcbiAgfVxuICBcbiAgLmNvbnRlbnQgdGgge1xuICAgIEBhcHBseSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgcHgtNCBweS0yIHRleHQtbGVmdCBmb250LXNlbWlib2xkO1xuICB9XG4gIFxuICAuY29udGVudCB0ZCB7XG4gICAgQGFwcGx5IGJvcmRlciBib3JkZXItZ3JheS0zMDAgcHgtNCBweS0yO1xuICB9XG4gIFxuICAvKiBVdGlsaXR5IGNsYXNzZXMgKi9cbiAgLmdyYWRpZW50LWJnIHtcbiAgICBAYXBwbHkgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1icmFuZC1uYXZ5IHRvLWJyYW5kLWRhcmstbmF2eTtcbiAgfVxuICBcbiAgLnRleHQtZ3JhZGllbnQge1xuICAgIEBhcHBseSBiZy1ncmFkaWVudC10by1yIGZyb20tYnJhbmQtbmF2eSB0by1icmFuZC1ncmVlbiBiZy1jbGlwLXRleHQgdGV4dC10cmFuc3BhcmVudDtcbiAgfVxuICBcbiAgLnNoYWRvdy1icmFuZCB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgwLCA0OCwgODcsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgNDgsIDg3LCAwLjA2KTtcbiAgfVxuICBcbiAgLnNoYWRvdy1icmFuZC1sZyB7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDQ4LCA4NywgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCA0OCwgODcsIDAuMDUpO1xuICB9XG4gIFxuICAvKiBBbmltYXRpb24gY2xhc3NlcyAqL1xuICAuYW5pbWF0ZS1mYWRlLWluIHtcbiAgICBhbmltYXRpb246IGZhZGVJbiAwLjVzIGVhc2UtaW4tb3V0O1xuICB9XG4gIFxuICAuYW5pbWF0ZS1zbGlkZS11cCB7XG4gICAgYW5pbWF0aW9uOiBzbGlkZVVwIDAuNXMgZWFzZS1vdXQ7XG4gIH1cbiAgXG4gIC5hbmltYXRlLWJvdW5jZS1saWdodCB7XG4gICAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGU7XG4gIH1cbiAgXG4gIC8qIExvYWRpbmcgc3RhdGVzICovXG4gIC5sb2FkaW5nIHtcbiAgICBAYXBwbHkgb3BhY2l0eS01MCBjdXJzb3Itd2FpdDtcbiAgfVxuICBcbiAgLmxvYWRpbmc6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBAYXBwbHkgYWJzb2x1dGUgaW5zZXQtMCBiZy1ncmF5LTEwMCBiZy1vcGFjaXR5LTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyO1xuICB9XG4gIFxuICAuc3Bpbm5lciB7XG4gICAgQGFwcGx5IGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC04IHctOCBib3JkZXItYi0yIGJvcmRlci1icmFuZC1uYXZ5O1xuICB9XG4gIFxuICAvKiBSZXNwb25zaXZlIHV0aWxpdGllcyAqL1xuICAuY29udGFpbmVyLXJlc3BvbnNpdmUge1xuICAgIEBhcHBseSBtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtODtcbiAgfVxuICBcbiAgLyogUHJpbnQgc3R5bGVzICovXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm5vLXByaW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnByaW50LWJsb2NrIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIGJvZHkge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAuY2FyZCB7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbkBsYXllciB1dGlsaXRpZXMge1xuICAvKiBDdXN0b20gdXRpbGl0aWVzICovXG4gIC50ZXh0LWJhbGFuY2Uge1xuICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgfVxuICBcbiAgLnRleHQtcHJldHR5IHtcbiAgICB0ZXh0LXdyYXA6IHByZXR0eTtcbiAgfVxuICBcbiAgLyogQWNjZXNzaWJpbGl0eSB1dGlsaXRpZXMgKi9cbiAgLnZpc3VhbGx5LWhpZGRlbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAuZm9jdXMtdmlzaWJsZTpmb2N1cyB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMwMDMwNTcgIWltcG9ydGFudDtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIEhpZ2ggY29udHJhc3QgbW9kZSBzdXBwb3J0ICovXG4gIEBtZWRpYSAocHJlZmVycy1jb250cmFzdDogaGlnaCkge1xuICAgIC50ZXh0LWdyYXktNjAwIHtcbiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC50ZXh0LWdyYXktNzAwIHtcbiAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5ib3JkZXItZ3JheS0zMDAge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIFxuICAvKiBSZWR1Y2VkIG1vdGlvbiBzdXBwb3J0ICovXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgKiB7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIFxuICAvKiBEYXJrIG1vZGUgc3VwcG9ydCAoZnV0dXJlIGVuaGFuY2VtZW50KSAqL1xuICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgLmRhcmtcXDpiZy1ncmF5LTkwMCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExODI3O1xuICAgIH1cbiAgICBcbiAgICAuZGFya1xcOnRleHQtd2hpdGUge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG4vKiBDdXN0b20gYW5pbWF0aW9ucyAqL1xuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVVcCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAyMCUsIDUzJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNDAlLCA0MyUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gIH1cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIH1cbn1cblxuLyogQ3VzdG9tIHNjcm9sbGJhciBzdHlsaW5nICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDhweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNmMWYxZjE7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjMDAzMDU3O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMWE0ZDczO1xufVxuXG4vKiBTZWxlY3Rpb24gc3R5bGluZyAqL1xuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMDAzMDU3O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMDAzMDU3O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi8qIEZvY3VzIHRyYXAgZm9yIG1vZGFscyAqL1xuLm1vZGFsLWZvY3VzLXRyYXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogU21vb3RoIHNjcm9sbGluZyBmb3IgYW5jaG9yIGxpbmtzICovXG5odG1sIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi8qIEVuc3VyZSBwcm9wZXIgY29udHJhc3QgZm9yIGZvcm0gZWxlbWVudHMgKi9cbmlucHV0OmZvY3VzLFxuc2VsZWN0OmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMDMwNTc7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDQ4LCA4NywgMC4yKTtcbn1cblxuLyogTW9iaWxlLWZpcnN0IHJlc3BvbnNpdmUgZGVzaWduIGhlbHBlcnMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAubW9iaWxlLWZ1bGwtd2lkdGgge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC5tb2JpbGUtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLm1vYmlsZS1zdGFjayB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIEVuc3VyZSBwcm9wZXIgc3BhY2luZyBmb3IgY29udGVudCAqL1xuLmNvbnRlbnQtc3BhY2luZyA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLmNvbnRlbnQtc3BhY2luZyA+IGgxICsgKixcbi5jb250ZW50LXNwYWNpbmcgPiBoMiArICosXG4uY29udGVudC1zcGFjaW5nID4gaDMgKyAqLFxuLmNvbnRlbnQtc3BhY2luZyA+IGg0ICsgKiB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9ucyAqL1xuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIExhenkgbG9hZGluZyBwbGFjZWhvbGRlciAqL1xuaW1nW2xvYWRpbmc9XCJsYXp5XCJdIHtcbiAgYmFja2dyb3VuZDogI2YzZjRmNjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZDFkNWRiJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J000IDNhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDR6bTEyIDEySDRsNC04IDMgNiAyLTQgMyA2eicgY2xpcC1ydWxlPSdldmVub2RkJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMnJlbSAycmVtO1xufSJdfQ== */