/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* Global scrollbar styling aligned with the application's dark visual direction */
* {
  scrollbar-width: thin;
  scrollbar-color: #71717a #0a0a0a;
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: #0a0a0a;
}

*::-webkit-scrollbar-thumb {
  background-color: #71717a;
  border-radius: 9999px;
  border: 2px solid #0a0a0a;
}

*::-webkit-scrollbar-thumb:hover {
  background-color: #8b8b95;
}

/* ── Light mode scrollbar (warm palette) ──────────────────────────── */
.light * {
  scrollbar-color: #AB7443 #F5E8DB;
}

.light *::-webkit-scrollbar-track {
  background: #F5E8DB;
}

.light *::-webkit-scrollbar-thumb {
  background-color: #AB7443;
  border: 2px solid #F5E8DB;
}

.light *::-webkit-scrollbar-thumb:hover {
  background-color: #A24A36;
}

/* ── Brand colour palette ─────────────────────────────────────────── */
:root {
  --terracotta:  #A24A36;
  --cannelle:    #AB7443;
  --terre:       #382522;
  --terre-warm:  #523327;
  --muted:       #6B5850;
  --muted-light: #BDA99C;
  --ivoire:      #FFF8F3;
  --paper:       #FAF1E7;
  --card:        #F5E8DB;
  --divider:     #E9DCCF;

  /* Stop button — dark mode */
  --stop-bg: #ffffff;
  --stop-sq: #000000;
}

/* ── Stop button (light override) ────────────────────────────────── */
.light {
  --stop-bg: #171717;
  --stop-sq: #ffffff;
}


/*!***********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app-launcher.css ***!
  \***********************************************************************************************************************/
/* ══════════════════════════════════════════════════════════════════
   App Launcher — morphing 6-dot button → app panel
   Theme: .light on <html> = light mode, default = dark mode
   ══════════════════════════════════════════════════════════════════ */

/* ── Wrapper around header + launcher (positioning context) ────── */
.al-header-wrap {
  position: relative;
  z-index: 40;
  flex-shrink: 0;
}

/* ── Inline anchor inside header ───────────────────────────────── */
.al-bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  z-index: 60;
}

/* ── Morphing container (animates width/height via framer-motion) ─ */
.al-morph {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.al-morph:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.1);
}
.al-morph.is-open {
  cursor: default;
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(23, 23, 23, 0.95);
  box-shadow: 0 8px 40px -8px rgba(0, 0, 0, 0.45),
              0 2px 12px -2px rgba(0, 0, 0, 0.25);
}

.light .al-morph {
  border-color: #d4d4d4;
  background: #f0f0f0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.light .al-morph:hover {
  border-color: #c4c4c4;
  background: #e8e8e8;
}
.light .al-morph.is-open {
  border-color: rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 8px 40px -8px rgba(0, 0, 0, 0.1),
              0 2px 12px -2px rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
}

/* ── Dots layer (visible when closed) ──────────────────────────── */
.al-dots-layer {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.al-dots {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4.5px;
}

.al-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d4d4d4;
}

/* Colored dots matching app icons */
.al-dot:nth-child(1) {
  background: linear-gradient(135deg, #0ea5e9, #06b6d4);
  box-shadow: 0 2px 8px -2px rgba(14, 165, 233, 0.5);
}
.al-dot:nth-child(2) {
  background: linear-gradient(135deg, #10b981, #14b8a6);
  box-shadow: 0 2px 8px -2px rgba(16, 185, 129, 0.5);
}
.al-dot:nth-child(3) {
  background: linear-gradient(135deg, #a855f7, #8b5cf6);
  box-shadow: 0 2px 8px -2px rgba(168, 85, 247, 0.5);
}
.al-dot:nth-child(4) {
  background: linear-gradient(135deg, #f97316, #ea580c);
  box-shadow: 0 2px 8px -2px rgba(249, 115, 22, 0.5);
}
.al-dot:nth-child(5) {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  box-shadow: 0 2px 8px -2px rgba(239, 68, 68, 0.5);
}
.al-dot:nth-child(6) {
  background: linear-gradient(135deg, #8b5cf6, #7c3aed);
  box-shadow: 0 2px 8px -2px rgba(139, 92, 246, 0.5);
}

.light .al-dot {
  background: #525252;
}

/* ── Panel content (visible when open) ─────────────────────────── */
.al-content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
}

/* ── Close button ──────────────────────────────────────────────── */
.al-close {
  align-self: flex-end;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin-bottom: 6px;
  transition: background 0.15s, border-color 0.15s;
}
.al-close:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.2);
}
.al-close svg {
  width: 14px;
  height: 14px;
  color: #a3a3a3;
}
.al-close:hover svg {
  color: #fff;
}

.light .al-close {
  border-color: #d4d4d4;
  background: rgba(0, 0, 0, 0.04);
}
.light .al-close:hover {
  background: rgba(0, 0, 0, 0.08);
  border-color: #bbb;
}
.light .al-close svg {
  color: #737373;
}
.light .al-close:hover svg {
  color: #171717;
}

/* ── Row of 4 app icons ────────────────────────────────────────── */
.al-grid {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ── Individual app button ─────────────────────────────────────── */
.al-app {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  border-radius: 10px;
  border: none;
  background: transparent;
  cursor: pointer;
  transition: background 0.15s;
}
.al-app:hover {
  background: rgba(255, 255, 255, 0.06);
}
.al-app.is-active {
  background: rgba(255, 255, 255, 0.08);
}

.light .al-app:hover {
  background: rgba(0, 0, 0, 0.04);
}
.light .al-app.is-active {
  background: rgba(0, 0, 0, 0.06);
}

/* ── Icon box (gradient square) ────────────────────────────────── */
.al-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: box-shadow 0.2s, transform 0.15s;
}
.al-app:hover .al-icon {
  transform: scale(1.06);
}
.al-icon.is-active {
  outline: 2px solid rgba(255, 255, 255, 0.3);
  outline-offset: 2px;
}
.light .al-icon.is-active {
  outline-color: rgba(0, 0, 0, 0.15);
}

.al-icon svg {
  width: 18px;
  height: 18px;
  color: #fff;
}

/* Icon color variants */
.al-icon--translation {
  background: linear-gradient(135deg, #0ea5e9, #06b6d4);
  box-shadow: 0 6px 20px -4px rgba(14, 165, 233, 0.4);
}
.al-icon--summary {
  background: linear-gradient(135deg, #10b981, #14b8a6);
  box-shadow: 0 6px 20px -4px rgba(16, 185, 129, 0.4);
}
.al-icon--question {
  background: linear-gradient(135deg, #a855f7, #8b5cf6);
  box-shadow: 0 6px 20px -4px rgba(168, 85, 247, 0.4);
}
.al-icon--ocr {
  background: linear-gradient(135deg, #f97316, #ea580c);
  box-shadow: 0 6px 20px -4px rgba(249, 115, 22, 0.4);
}
.al-icon--chat {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  box-shadow: 0 6px 20px -4px rgba(239, 68, 68, 0.4);
}
.al-icon--rag {
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  box-shadow: 0 6px 20px -4px rgba(124, 58, 237, 0.4);
}

/* ── Label under icon ──────────────────────────────────────────── */
.al-label {
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  color: #a3a3a3;
  transition: color 0.15s;
}
.al-app:hover .al-label {
  color: #e5e5e5;
}
.al-app.is-active .al-label {
  color: #fff;
}

.light .al-label {
  color: #737373;
}
.light .al-app:hover .al-label {
  color: #404040;
}
.light .al-app.is-active .al-label {
  color: #171717;
}

/*!*********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/components.css ***!
  \*********************************************************************************************************************/
/* ══════════════════════════════════════════════════════════════════
   Component styles extracted from inline style={{}} in React files
   Theme: .light on <html> = light mode, default = dark mode
   ══════════════════════════════════════════════════════════════════ */

/* ── Global: ensure all native interactive elements show pointer ── */
button,
select,
[role="button"] {
  cursor: pointer;
}

/* ── Import Modal (SummaryChat, RAGService) ────────────────────── */

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.modal-panel-layout {
  width: 100%;
  max-width: 400px;
  padding: 24px;
  border-radius: 16px;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
}

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.modal-title-text {
  font-size: 16px;
  font-weight: 700;
  margin: 0;
}

.modal-close-reset {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

.modal-subtitle-text {
  font-size: 13px;
  margin-bottom: 16px;
  margin-top: 0;
}

.modal-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.modal-btn-layout {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.2s;
}

.modal-icon-box {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.modal-icon-box--orange {
  background-color: rgba(249, 115, 22, 0.15);
}

.modal-icon-box--blue {
  background-color: rgba(59, 130, 246, 0.15);
}

.modal-icon-box--amber {
  background-color: rgba(249, 115, 22, 0.15);
}

.modal-icon-box svg {
  width: 18px;
  height: 18px;
}

.modal-icon-box--orange svg {
  color: #f97316;
}

.modal-icon-box--blue svg {
  color: #60a5fa;
}

.modal-icon-box--amber svg {
  color: #f97316;
}

.modal-label-bold {
  font-weight: 600;
}

.modal-hint-sm {
  font-size: 12px;
  margin-top: 2px;
}

/* ── Clear document button (SummaryChat) ───────────────────────── */

.doc-clear-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: rgba(38, 38, 38, 0.9);
  border: 1px solid rgba(115, 115, 115, 0.4);
  color: #a3a3a3;
  cursor: pointer;
  z-index: 10;
}

.doc-clear-btn svg {
  width: 14px;
  height: 14px;
}

/* ── Translation action buttons ────────────────────────────────── */

.tl-panel-input {
  border-color: #f97316;
}

.tl-panel-output {
  border-color: #f97316;
  min-height: 280px;
  max-height: 600px;
}

.tl-action-btn {
  cursor: pointer;
  transition: all 0.15s ease;
  font-size: 9px;
}

.tl-action-btn svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

/* ── Translation "View" button ────────────────────────────────── */

.tl-view-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  padding: 12px 40px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  border-radius: 9999px;
  border: 1px solid rgba(249, 115, 22, 0.5);
  background: linear-gradient(to right, #f97316, #ea580c);
  box-shadow: 0 8px 24px rgba(234, 88, 12, 0.25);
  cursor: pointer;
  transition: all 0.2s ease;
}
.tl-view-btn:hover {
  box-shadow: 0 8px 28px rgba(234, 88, 12, 0.4);
  transform: scale(1.04);
}
.tl-view-btn svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* ── Chat Input ────────────────────────────────────────────────── */

.chat-textarea-min {
  min-height: 48px;
}

.chat-stop-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--stop-bg, #ffffff);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.chat-stop-square {
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  background-color: var(--stop-sq, #000000);
}

/* ── Code Block ────────────────────────────────────────────────── */

.code-block-wrapper {
  position: relative;
}

.code-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 8px 6px 12px;
  border-radius: 10px 10px 0 0;
  background-color: rgba(38, 38, 38, 0.6);
}
.light .code-block-header {
  background-color: rgba(245, 245, 245, 0.8);
}

.code-block-lang {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #a3a3a3;
}
.light .code-block-lang {
  color: #737373;
}

.code-block-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.code-block-copy,
.code-block-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid rgba(115, 115, 115, 0.3);
  background-color: rgba(38, 38, 38, 0.8);
  color: #a3a3a3;
  cursor: pointer;
  transition: all 0.15s ease;
  backdrop-filter: blur(4px);
}

.code-block-copy:hover {
  background-color: rgba(16, 185, 129, 0.15);
  border-color: rgba(16, 185, 129, 0.4);
  color: #6ee7b7;
}

.code-block-preview:hover {
  background-color: rgba(56, 189, 248, 0.15);
  border-color: rgba(56, 189, 248, 0.4);
  color: #7dd3fc;
}

.light .code-block-copy,
.light .code-block-preview {
  background-color: rgba(245, 245, 245, 0.9);
  border-color: rgba(0, 0, 0, 0.12);
  color: #737373;
}

.light .code-block-copy:hover {
  background-color: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.35);
  color: #047857;
}

.light .code-block-preview:hover {
  background-color: rgba(56, 189, 248, 0.1);
  border-color: rgba(56, 189, 248, 0.35);
  color: #0284c7;
}

/* ── Code Preview Panel ──────────────────────────────────────────── */

.code-preview-panel {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  border-left: 1px solid rgba(56, 189, 248, 0.25);
  background-color: rgba(10, 10, 10, 0.95);
  overflow: hidden;
}
.light .code-preview-panel {
  background-color: rgba(255, 255, 255, 0.98);
  border-left-color: rgba(56, 189, 248, 0.3);
}

.code-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(56, 189, 248, 0.15);
  background-color: rgba(23, 23, 23, 0.8);
  flex-shrink: 0;
}
.light .code-preview-header {
  background-color: rgba(250, 250, 250, 0.95);
  border-bottom-color: rgba(56, 189, 248, 0.2);
}

.code-preview-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.code-preview-title {
  font-size: 13px;
  font-weight: 600;
  color: #e5e5e5;
  letter-spacing: 0.02em;
}
.light .code-preview-title {
  color: #171717;
}

.code-preview-lang-badge {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 2px 8px;
  border-radius: 6px;
  background-color: rgba(56, 189, 248, 0.12);
  color: #7dd3fc;
  border: 1px solid rgba(56, 189, 248, 0.2);
}
.light .code-preview-lang-badge {
  background-color: rgba(56, 189, 248, 0.08);
  color: #0284c7;
  border-color: rgba(56, 189, 248, 0.2);
}

.code-preview-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid rgba(115, 115, 115, 0.3);
  background-color: transparent;
  color: #a3a3a3;
  cursor: pointer;
  transition: all 0.15s ease;
}
.code-preview-close:hover {
  background-color: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.4);
  color: #fca5a5;
}
.light .code-preview-close {
  color: #737373;
  border-color: rgba(0, 0, 0, 0.1);
}
.light .code-preview-close:hover {
  background-color: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
  color: #dc2626;
}

.code-preview-body {
  flex: 1;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.code-preview-iframe {
  width: 100%;
  height: 100%;
  border: none;
  background-color: #ffffff;
  border-radius: 0;
}

/* ── Chat message appear animation (replaces framer-motion) ───── */

.chat-msg-appear {
  animation: chat-fade-in 0.3s ease-out both;
}

@keyframes chat-fade-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Chat streaming dots (CSS-only, replaces framer-motion) ───── */

.chat-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #a3a3a3;
  animation: chat-dot-pulse 0.9s ease-in-out infinite;
}
.light .chat-dot {
  background-color: #737373;
}

.chat-dot-1 { animation-delay: 0s; }
.chat-dot-2 { animation-delay: 0.2s; }
.chat-dot-3 { animation-delay: 0.4s; }

@keyframes chat-dot-pulse {
  0%, 100% { transform: scale(1); opacity: 0.6; }
  50%      { transform: scale(1.3); opacity: 1; }
}

/* ── Chat Search Popup ─────────────────────────────────────────── */

.search-popup-backdrop {
  z-index: 999999;
}

.search-popup-container {
  z-index: 1000000;
}

.search-popup-panel {
  position: relative;
  z-index: 1000001;
  max-width: 640px;
  width: 640px;
  height: 50vh;
}

.search-result-item {
  background-color: transparent;
}

/* ── Library / Summary drawer ──────────────────────────────────── */

.library-drawer {
  width: 400px;
  min-width: 400px;
  max-width: 400px;
}

/* ── Library open button positioning ───────────────────────────── */

.library-open-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 30;
}

/* ── Monitoring Page ───────────────────────────────────────────── */

.monitor-3d {
  transform-style: preserve-3d;
  perspective: 1000px;
}

.monitor-center {
  left: 50%;
  top: 50%;
}

.monitor-canvas {
  width: 100%;
  height: 100%;
}

.monitor-card-3d {
  transform-style: preserve-3d;
}

.monitor-gradient-bar {
  background: linear-gradient(to right, #06b6d4, #3b82f6);
}

/* ── Logs Panel ────────────────────────────────────────────────── */

.logs-pre {
  font-size: 0.75rem;
  line-height: 1rem;
  font-family: ui-monospace, monospace;
  border-radius: 0.5rem;
  padding: 0.75rem;
  overflow: auto;
  max-height: 12rem;
  white-space: pre-wrap;
  word-break: break-all;
  color: #a3a3a3;
  background-color: rgba(23, 23, 23, 0.5);
}
.light .logs-pre {
  color: #525252;
  background-color: #f5f5f5;
}

.logs-copy-btn {
  padding: 4px;
  border-radius: 6px;
  transition: all 0.2s ease;
  background-color: transparent;
  color: #71717a;
}

.logs-icon-box {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, #8b5cf6, #9333ea);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.logs-icon-box svg {
  width: 20px;
  height: 20px;
  color: #ffffff;
}

/* ── Admin modals ──────────────────────────────────────────────── */

.admin-modal-sm {
  width: 360px;
}

.admin-modal-md {
  width: 400px;
}

/* ── RAG progress bar ──────────────────────────────────────────── */

.rag-progress-track {
  width: 100%;
  height: 12px;
  background-color: #262626;
  border-radius: 9999px;
  overflow: hidden;
  margin-bottom: 12px;
}

.rag-progress-fill {
  height: 100%;
  border-radius: 9999px;
}

/* ── RAG upload button ─────────────────────────────────────────── */

.rag-upload-btn {
  background-color: #3b82f6;
}
.rag-upload-btn:hover {
  background-color: #2563eb;
}

/* ── Import modal (dark default + light override) ────────────────── */
.import-modal-panel {
  background-color: #171717;
  border: 1px solid #404040;
  color: #fff;
}
.light .import-modal-panel {
  background-color: #ffffff;
  border-color: #d4d4d4;
  color: #171717;
}

.import-modal-title { color: #fff; }
.light .import-modal-title { color: #171717; }

.import-modal-close { color: #737373; }
.light .import-modal-close { color: #a3a3a3; }
.light .import-modal-close:hover { color: #525252; }

.import-modal-subtitle { color: #a3a3a3; }
.light .import-modal-subtitle { color: #525252; }

.import-modal-btn {
  background-color: #262626;
  border: 1px solid #404040;
  color: #fff;
  cursor: pointer;
}
.light .import-modal-btn {
  background-color: #f5f5f5;
  border-color: #d4d4d4;
  color: #171717;
}
.import-modal-btn-orange:hover { border-color: #f97316 !important; }
.import-modal-btn-blue:hover { border-color: #3b82f6 !important; }
.import-modal-btn-amber:hover { border-color: #f97316 !important; }

.import-modal-hint { color: #737373; }
.light .import-modal-hint { color: #737373; }

/* ── Page Range Modal ────────────────────────────────────────────── */
.page-range-filename {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.light .page-range-filename { color: #171717; }

.page-range-pagecount { font-size: 12px; color: #a3a3a3; }
.light .page-range-pagecount { color: #737373; }

.page-range-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #a3a3a3;
  margin-bottom: 6px;
}
.light .page-range-label { color: #525252; }

.page-range-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(64, 64, 64, 0.8);
  background-color: rgba(10, 10, 10, 0.8);
  color: #fff;
  font-size: 14px;
  outline: none;
}
.page-range-input:focus { border-color: #f97316; }
.page-range-input:disabled { opacity: 0.5; cursor: not-allowed; }
.page-range-input::-webkit-outer-spin-button,
.page-range-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.page-range-input[type="number"] {
  -moz-appearance: textfield;
}
.light .page-range-input {
  background-color: #f5f5f5;
  border-color: #d4d4d4;
  color: #171717;
}
.light .page-range-input:focus { border-color: #f97316; }

.page-range-btn-cancel {
  padding: 10px 20px;
  border-radius: 10px;
  border: 1px solid rgba(64, 64, 64, 0.8);
  background-color: transparent;
  color: #a3a3a3;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
.page-range-btn-cancel:hover:not(:disabled) { border-color: rgba(163,163,163,0.6); color: #e5e5e5; }
.light .page-range-btn-cancel:hover:not(:disabled) { border-color: #a3a3a3; color: #171717; }
.page-range-btn-cancel:disabled { opacity: 0.5; cursor: not-allowed; }
.light .page-range-btn-cancel {
  border-color: #d4d4d4;
  color: #525252;
}

.page-range-btn-confirm {
  padding: 10px 20px;
  border-radius: 10px;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.page-range-btn-confirm:hover:not(:disabled) { opacity: 0.9; }
.page-range-btn-confirm:disabled { cursor: not-allowed; }

/* ── OCR HTML content rendering ──────────────────────────────────── */
.ocr-html-content {
  line-height: 1.7;
  word-break: break-word;
}

.ocr-html-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75rem 0;
  font-size: 0.8125rem;
}

.ocr-html-content table td,
.ocr-html-content table th {
  border: 1px solid rgba(115, 115, 115, 0.3);
  padding: 0.4rem 0.6rem;
  vertical-align: top;
}

.light .ocr-html-content table td,
.light .ocr-html-content table th {
  border-color: rgba(0, 0, 0, 0.2);
}

.ocr-html-content table tr:first-child td,
.ocr-html-content table tr:first-child th {
  background-color: rgba(249, 115, 22, 0.08);
  font-weight: 600;
}

.light .ocr-html-content table tr:first-child td,
.light .ocr-html-content table tr:first-child th {
  background-color: rgba(249, 115, 22, 0.12);
}

.ocr-html-content p {
  margin: 0.3rem 0;
}

.ocr-html-content h1,
.ocr-html-content h2,
.ocr-html-content h3 {
  margin: 0.75rem 0 0.35rem;
  font-weight: 700;
}

.ocr-html-content h1 { font-size: 1.25rem; }
.ocr-html-content h2 { font-size: 1.1rem; }
.ocr-html-content h3 { font-size: 1rem; }

.ocr-html-content br {
  display: block;
  content: "";
  margin-top: 0.15rem;
}

.ocr-html-content ul,
.ocr-html-content ol {
  padding-left: 1.25rem;
  margin: 0.35rem 0;
}

.ocr-html-content li {
  margin: 0.15rem 0;
}

.ocr-html-content strong,
.ocr-html-content b {
  font-weight: 700;
  color: #fb923c;
}

/* ── OCR table export button ─────────────────────────────────────── */
.ocr-table-wrap {
  position: relative;
}

.ocr-table-export-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}

.ocr-table-export-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 8px;
  border: 1px solid rgba(249, 115, 22, 0.3);
  background: rgba(249, 115, 22, 0.08);
  color: #fb923c;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.ocr-table-export-btn:hover {
  background: rgba(249, 115, 22, 0.18);
  border-color: rgba(249, 115, 22, 0.5);
  color: #fcd34d;
}

.light .ocr-table-export-btn {
  border-color: rgba(249, 115, 22, 0.35);
  background: rgba(249, 115, 22, 0.06);
  color: #b45309;
}
.light .ocr-table-export-btn:hover {
  background: rgba(249, 115, 22, 0.14);
  border-color: rgba(249, 115, 22, 0.5);
  color: #92400e;
}

/* ── OCR drop-zone "Nouveau" flash feedback ────────────────────── */
.ocr-dropzone-flash > div {
  animation: ocr-dz-pulse 0.7s ease-out;
}
@keyframes ocr-dz-pulse {
  0%   { border-color: rgba(249, 115, 22, 0.7); box-shadow: 0 0 0 0 rgba(249, 115, 22, 0.4); }
  50%  { border-color: rgba(249, 115, 22, 0.5); box-shadow: 0 0 20px 4px rgba(249, 115, 22, 0.15); }
  100% { border-color: rgba(64, 64, 64, 1);     box-shadow: 0 0 0 0 rgba(249, 115, 22, 0); }
}

/* ── User-Groups Tab (inline toggle chips) ─────────────────────── */

.ug-toast {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 500;
  animation: ug-slide-in 0.25s ease-out;
}
.ug-toast--ok {
  background-color: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
  color: #6ee7b7;
}
.ug-toast--err {
  background-color: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #fca5a5;
}
.light .ug-toast--ok {
  background-color: rgba(16, 185, 129, 0.08);
  color: #047857;
}
.light .ug-toast--err {
  background-color: rgba(239, 68, 68, 0.08);
  color: #b91c1c;
}

.ug-card {
  border-radius: 14px;
  border: 1px solid #262626;
  background-color: #171717;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ug-card:hover {
  border-color: #404040;
}
.ug-card--active {
  border-color: rgba(249, 115, 22, 0.35);
  box-shadow: 0 0 0 1px rgba(249, 115, 22, 0.1);
}
.light .ug-card {
  background-color: #ffffff;
  border-color: #e5e5e5;
}
.light .ug-card:hover {
  border-color: #d4d4d4;
}
.light .ug-card--active {
  border-color: rgba(249, 115, 22, 0.45);
  box-shadow: 0 0 0 1px rgba(249, 115, 22, 0.15);
}

.ug-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 16px;
  background: none;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s;
}
.ug-card-header:hover {
  background-color: rgba(255, 255, 255, 0.03);
}
.light .ug-card-header:hover {
  background-color: rgba(0, 0, 0, 0.02);
}

.ug-avatar {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, #f97316, #ea580c);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}

.ug-chip-tray {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 4px 16px 16px;
  animation: ug-slide-in 0.2s ease-out;
}

.ug-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 9999px;
  font-size: 12.5px;
  font-weight: 600;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: all 0.18s ease;
  user-select: none;
}
.ug-chip:disabled {
  opacity: 0.55;
  cursor: wait;
}

/* Active = user IS in this group */
.ug-chip--on {
  background-color: rgba(16, 185, 129, 0.15);
  border-color: rgba(16, 185, 129, 0.4);
  color: #6ee7b7;
}
.ug-chip--on:hover:not(:disabled) {
  background-color: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.4);
  color: #fca5a5;
}

/* Inactive = user is NOT in this group */
.ug-chip--off {
  background-color: rgba(115, 115, 115, 0.08);
  border-color: rgba(115, 115, 115, 0.25);
  color: #737373;
  border-style: dashed;
}
.ug-chip--off:hover:not(:disabled) {
  background-color: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.4);
  border-style: solid;
  color: #6ee7b7;
}

/* Admin group accent */
.ug-chip--admin.ug-chip--on {
  background-color: rgba(249, 115, 22, 0.15);
  border-color: rgba(249, 115, 22, 0.4);
  color: #fb923c;
}
.ug-chip--admin.ug-chip--on:hover:not(:disabled) {
  background-color: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.4);
  color: #fca5a5;
}
.ug-chip--admin.ug-chip--off:hover:not(:disabled) {
  background-color: rgba(249, 115, 22, 0.1);
  border-color: rgba(249, 115, 22, 0.4);
  border-style: solid;
  color: #fb923c;
}

/* Light mode overrides */
.light .ug-chip--on {
  background-color: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.35);
  color: #047857;
}
.light .ug-chip--on:hover:not(:disabled) {
  background-color: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.35);
  color: #b91c1c;
}
.light .ug-chip--off {
  background-color: rgba(115, 115, 115, 0.06);
  border-color: rgba(115, 115, 115, 0.2);
  color: #a3a3a3;
}
.light .ug-chip--off:hover:not(:disabled) {
  background-color: rgba(16, 185, 129, 0.08);
  border-color: rgba(16, 185, 129, 0.35);
  color: #047857;
}
.light .ug-chip--admin.ug-chip--on {
  background-color: rgba(249, 115, 22, 0.1);
  border-color: rgba(249, 115, 22, 0.35);
  color: #b45309;
}
.light .ug-chip--admin.ug-chip--on:hover:not(:disabled) {
  background-color: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.35);
  color: #b91c1c;
}
.light .ug-chip--admin.ug-chip--off:hover:not(:disabled) {
  background-color: rgba(249, 115, 22, 0.08);
  border-color: rgba(249, 115, 22, 0.35);
  color: #b45309;
}

.ug-search {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid #262626;
  background-color: #171717;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ug-search:focus-within {
  border-color: rgba(249, 115, 22, 0.5);
  box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.12);
}
.light .ug-search {
  background-color: #fafafa;
  border-color: #e5e5e5;
}
.light .ug-search:focus-within {
  border-color: rgba(249, 115, 22, 0.5);
  box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.1);
}

.ug-search-icon {
  width: 16px;
  height: 16px;
  color: #737373;
  flex-shrink: 0;
}

.ug-search-input {
  flex: 1;
  padding: 10px 0;
  background: transparent;
  border: none;
  outline: none;
  font-size: 13px;
  color: #fff;
}
.ug-search-input::placeholder {
  color: #737373;
}
.light .ug-search-input {
  color: #171717;
}
.light .ug-search-input::placeholder {
  color: #a3a3a3;
}

@keyframes ug-slide-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Document Preview Modal scrollbar ──────────────────────────── */
.doc-preview-scroll {
  scrollbar-width: thin;
  scrollbar-color: #f97316 #1a1a1a;
}
.doc-preview-scroll::-webkit-scrollbar {
  width: 10px;
}
.doc-preview-scroll::-webkit-scrollbar-track {
  background: #1a1a1a;
  border-radius: 5px;
}
.doc-preview-scroll::-webkit-scrollbar-thumb {
  background-color: #f97316;
  border-radius: 9999px;
  border: 2px solid #1a1a1a;
}
.doc-preview-scroll::-webkit-scrollbar-thumb:hover {
  background-color: #fb923c;
}

/* ── Document Preview Chat — compact markdown ────────────────── */
.doc-chat-markdown {
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: break-word;
  word-break: break-word;
}
.doc-chat-markdown p {
  margin: 0.25em 0;
}
.doc-chat-markdown ul,
.doc-chat-markdown ol {
  margin: 0.25em 0;
  padding-left: 1.2em;
}
.doc-chat-markdown pre {
  font-size: 12px;
  margin: 0.5em 0;
  border-radius: 8px;
  overflow-x: auto;
}
.doc-chat-markdown code {
  font-size: 12px;
}
.doc-chat-markdown blockquote {
  border-left: 3px solid #a855f7;
  padding-left: 0.75em;
  margin: 0.5em 0;
  color: #c084fc;
  font-style: italic;
}
.light .doc-chat-markdown blockquote {
  color: #7c3aed;
}

/* ── Thinking Block ────────────────────────────────────────────── */

@keyframes thinking-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.5; transform: scale(0.95); }
}

.thinking-block {
  animation: chat-fade-in 0.3s ease-out both;
}

.thinking-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(249, 115, 22, 0.4) transparent;
}
.thinking-scroll::-webkit-scrollbar {
  width: 6px;
}
.thinking-scroll::-webkit-scrollbar-track {
  background: transparent;
}
.thinking-scroll::-webkit-scrollbar-thumb {
  background-color: rgba(249, 115, 22, 0.35);
  border-radius: 9999px;
}
.thinking-scroll::-webkit-scrollbar-thumb:hover {
  background-color: rgba(249, 115, 22, 0.55);
}
.light .thinking-scroll {
  scrollbar-color: rgba(180, 83, 9, 0.3) transparent;
}
.light .thinking-scroll::-webkit-scrollbar-thumb {
  background-color: rgba(180, 83, 9, 0.25);
}
.light .thinking-scroll::-webkit-scrollbar-thumb:hover {
  background-color: rgba(180, 83, 9, 0.4);
}

.thinking-md {
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: break-word;
  word-break: break-word;
}
.thinking-md p {
  margin: 0.2em 0;
}
.thinking-md ul,
.thinking-md ol {
  margin: 0.2em 0;
  padding-left: 1.2em;
}
.thinking-md code {
  font-size: 12px;
  background: rgba(115, 115, 115, 0.15);
  padding: 1px 4px;
  border-radius: 4px;
}
.light .thinking-md code {
  background: rgba(0, 0, 0, 0.06);
}

/* ── AI Load Badge pulse + ripple ───────────────────────────────── */
@keyframes ai-load-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.15); opacity: 0.7; }
}
@keyframes ai-ripple {
  0%   { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(3); opacity: 0; }
}

/* ── Spin animation (Tailwind-compatible utility) ──────────────── */
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.animate-spin {
  animation: spin 1s linear infinite;
}

/* ── AI Load Warning Banner fade-in ────────────────────────────── */
@keyframes ai-warning-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Thinking button light mode styles ──────────────────────────── */
.light .thinking-btn {
  border-color: rgba(249, 115, 22, 0.5) !important;
  background: rgba(249, 115, 22, 0.08) !important;
  color: rgb(92, 51, 23) !important;
}

.light .thinking-btn:disabled {
  border-color: rgba(107, 114, 128, 0.3) !important;
  background: rgba(229, 231, 235, 0.6) !important;
  color: rgb(107, 114, 128) !important;
}

.light .thinking-dot {
  background: rgb(249, 115, 22) !important;
}

.light .thinking-badge {
  background: rgba(249, 115, 22, 0.15) !important;
  color: rgb(92, 51, 23) !important;
}

/*!***************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/react/index.css ***!
  \***************************************************************************************************************/
/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *, :before, :after, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: rotateX(0);
      --tw-rotate-y: rotateY(0);
      --tw-rotate-z: rotateZ(0);
      --tw-skew-x: skewX(0);
      --tw-skew-y: skewY(0);
      --tw-space-y-reverse: 0;
      --tw-divide-y-reverse: 0;
      --tw-border-style: solid;
      --tw-gradient-position: initial;
      --tw-gradient-from: #0000;
      --tw-gradient-via: #0000;
      --tw-gradient-to: #0000;
      --tw-gradient-stops: initial;
      --tw-gradient-via-stops: initial;
      --tw-gradient-from-position: 0%;
      --tw-gradient-via-position: 50%;
      --tw-gradient-to-position: 100%;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-red-400: oklch(.704 .191 22.216);
    --color-red-500: oklch(.637 .237 25.331);
    --color-red-600: oklch(.577 .245 27.325);
    --color-orange-100: oklch(.954 .038 75.164);
    --color-orange-300: oklch(.837 .128 66.29);
    --color-orange-400: oklch(.75 .183 55.934);
    --color-orange-500: oklch(.705 .213 47.604);
    --color-orange-600: oklch(.646 .222 41.116);
    --color-orange-700: oklch(.553 .195 38.402);
    --color-amber-100: oklch(.962 .059 95.617);
    --color-amber-300: oklch(.879 .169 91.605);
    --color-amber-400: oklch(.828 .189 84.429);
    --color-amber-500: oklch(.769 .188 70.08);
    --color-amber-600: oklch(.666 .179 58.318);
    --color-amber-700: oklch(.555 .163 48.998);
    --color-emerald-400: oklch(.765 .177 163.223);
    --color-emerald-500: oklch(.696 .17 162.48);
    --color-emerald-600: oklch(.596 .145 163.225);
    --color-emerald-700: oklch(.508 .118 165.612);
    --color-teal-500: oklch(.704 .14 182.503);
    --color-cyan-400: oklch(.789 .154 211.53);
    --color-cyan-500: oklch(.715 .143 215.221);
    --color-blue-400: oklch(.707 .165 254.624);
    --color-blue-500: oklch(.623 .214 259.815);
    --color-blue-600: oklch(.546 .245 262.881);
    --color-blue-700: oklch(.488 .243 264.376);
    --color-purple-400: oklch(.714 .203 305.504);
    --color-purple-500: oklch(.627 .265 303.9);
    --color-purple-600: oklch(.558 .288 302.321);
    --color-purple-700: oklch(.496 .265 301.924);
    --color-pink-500: oklch(.656 .241 354.308);
    --color-neutral-50: oklch(.985 0 0);
    --color-neutral-100: oklch(.97 0 0);
    --color-neutral-200: oklch(.922 0 0);
    --color-neutral-300: oklch(.87 0 0);
    --color-neutral-400: oklch(.708 0 0);
    --color-neutral-500: oklch(.556 0 0);
    --color-neutral-600: oklch(.439 0 0);
    --color-neutral-700: oklch(.371 0 0);
    --color-neutral-800: oklch(.269 0 0);
    --color-neutral-900: oklch(.205 0 0);
    --color-neutral-950: oklch(.145 0 0);
    --color-white: #fff;
    --spacing: .25rem;
    --container-md: 28rem;
    --container-3xl: 48rem;
    --container-4xl: 56rem;
    --container-6xl: 72rem;
    --container-7xl: 80rem;
    --text-xs: .75rem;
    --text-xs--line-height: calc(1 / .75);
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --text-5xl: 3rem;
    --text-5xl--line-height: 1;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-black: 900;
    --tracking-wider: .05em;
    --leading-relaxed: 1.625;
    --radius-2xl: 1rem;
    --radius-3xl: 1.5rem;
    --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
    --blur-sm: 8px;
    --blur-xl: 24px;
    --blur-2xl: 40px;
    --blur-3xl: 64px;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-font-feature-settings: var(--font-sans--font-feature-settings);
    --default-font-variation-settings: var(--font-sans--font-variation-settings);
    --default-mono-font-family: var(--font-mono);
    --default-mono-font-feature-settings: var(--font-mono--font-feature-settings);
    --default-mono-font-variation-settings: var(--font-mono--font-variation-settings);
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  body {
    line-height: inherit;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

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

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
    color: currentColor;
  }

  @supports (color: color-mix(in lab, red, red)) {
    ::placeholder {
      color: color-mix(in oklab, currentColor 50%, transparent);
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }

  * {
    border-color: var(--border);
    outline-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    * {
      outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  body {
    background-color: var(--background);
    color: var(--foreground);
  }

  * {
    border-color: var(--border);
    outline-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    * {
      outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  body {
    background-color: var(--background);
    color: var(--foreground);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h1 {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h2 {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h3 {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h4, :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) label, :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) button {
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) input {
    font-size: var(--text-base);
    font-weight: var(--font-weight-normal);
    line-height: 1.5;
  }
}

@layer utilities {
  .pointer-events-none {
    pointer-events: none;
  }

  .visible {
    visibility: visible;
  }

  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }

  .inset-x-0 {
    inset-inline: calc(var(--spacing) * 0);
  }

  .inset-y-0 {
    inset-block: calc(var(--spacing) * 0);
  }

  .top-0 {
    top: calc(var(--spacing) * 0);
  }

  .top-0\.5 {
    top: calc(var(--spacing) * .5);
  }

  .top-1 {
    top: calc(var(--spacing) * 1);
  }

  .top-1\/2 {
    top: 50%;
  }

  .right-0 {
    right: calc(var(--spacing) * 0);
  }

  .right-0\.5 {
    right: calc(var(--spacing) * .5);
  }

  .right-1 {
    right: calc(var(--spacing) * 1);
  }

  .left-0 {
    left: calc(var(--spacing) * 0);
  }

  .left-0\.5 {
    left: calc(var(--spacing) * .5);
  }

  .left-4 {
    left: calc(var(--spacing) * 4);
  }

  .z-10 {
    z-index: 10;
  }

  .z-20 {
    z-index: 20;
  }

  .mx-auto {
    margin-inline: auto;
  }

  .mt-0\.5 {
    margin-top: calc(var(--spacing) * .5);
  }

  .mt-1 {
    margin-top: calc(var(--spacing) * 1);
  }

  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }

  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }

  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }

  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }

  .mt-8 {
    margin-top: calc(var(--spacing) * 8);
  }

  .mb-0\.5 {
    margin-bottom: calc(var(--spacing) * .5);
  }

  .mb-1 {
    margin-bottom: calc(var(--spacing) * 1);
  }

  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }

  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }

  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }

  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }

  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }

  .mb-12 {
    margin-bottom: calc(var(--spacing) * 12);
  }

  .block {
    display: block;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .hidden {
    display: none;
  }

  .inline-flex {
    display: inline-flex;
  }

  .table {
    display: table;
  }

  .h-1 {
    height: calc(var(--spacing) * 1);
  }

  .h-1\.5 {
    height: calc(var(--spacing) * 1.5);
  }

  .h-2 {
    height: calc(var(--spacing) * 2);
  }

  .h-3 {
    height: calc(var(--spacing) * 3);
  }

  .h-3\.5 {
    height: calc(var(--spacing) * 3.5);
  }

  .h-4 {
    height: calc(var(--spacing) * 4);
  }

  .h-5 {
    height: calc(var(--spacing) * 5);
  }

  .h-6 {
    height: calc(var(--spacing) * 6);
  }

  .h-7 {
    height: calc(var(--spacing) * 7);
  }

  .h-8 {
    height: calc(var(--spacing) * 8);
  }

  .h-10 {
    height: calc(var(--spacing) * 10);
  }

  .h-12 {
    height: calc(var(--spacing) * 12);
  }

  .h-14 {
    height: calc(var(--spacing) * 14);
  }

  .h-16 {
    height: calc(var(--spacing) * 16);
  }

  .h-20 {
    height: calc(var(--spacing) * 20);
  }

  .h-24 {
    height: calc(var(--spacing) * 24);
  }

  .h-32 {
    height: calc(var(--spacing) * 32);
  }

  .h-\[2px\] {
    height: 2px;
  }

  .h-full {
    height: 100%;
  }

  .h-screen {
    height: 100vh;
  }

  .max-h-\[200px\] {
    max-height: 200px;
  }

  .min-h-screen {
    min-height: 100vh;
  }

  .w-1\.5 {
    width: calc(var(--spacing) * 1.5);
  }

  .w-2 {
    width: calc(var(--spacing) * 2);
  }

  .w-3 {
    width: calc(var(--spacing) * 3);
  }

  .w-3\.5 {
    width: calc(var(--spacing) * 3.5);
  }

  .w-4 {
    width: calc(var(--spacing) * 4);
  }

  .w-5 {
    width: calc(var(--spacing) * 5);
  }

  .w-6 {
    width: calc(var(--spacing) * 6);
  }

  .w-7 {
    width: calc(var(--spacing) * 7);
  }

  .w-8 {
    width: calc(var(--spacing) * 8);
  }

  .w-10 {
    width: calc(var(--spacing) * 10);
  }

  .w-12 {
    width: calc(var(--spacing) * 12);
  }

  .w-14 {
    width: calc(var(--spacing) * 14);
  }

  .w-16 {
    width: calc(var(--spacing) * 16);
  }

  .w-20 {
    width: calc(var(--spacing) * 20);
  }

  .w-24 {
    width: calc(var(--spacing) * 24);
  }

  .w-32 {
    width: calc(var(--spacing) * 32);
  }

  .w-full {
    width: 100%;
  }

  .max-w-3xl {
    max-width: var(--container-3xl);
  }

  .max-w-4xl {
    max-width: var(--container-4xl);
  }

  .max-w-6xl {
    max-width: var(--container-6xl);
  }

  .max-w-7xl {
    max-width: var(--container-7xl);
  }

  .max-w-\[80\%\] {
    max-width: 80%;
  }

  .max-w-md {
    max-width: var(--container-md);
  }

  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }

  .flex-1 {
    flex: 1;
  }

  .flex-shrink-0 {
    flex-shrink: 0;
  }

  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .-rotate-90 {
    rotate: -90deg;
  }

  .transform {
    transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
  }

  .animate-pulse {
    animation: var(--animate-pulse);
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .resize-none {
    resize: none;
  }

  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .flex-col {
    flex-direction: column;
  }

  .flex-wrap {
    flex-wrap: wrap;
  }

  .items-center {
    align-items: center;
  }

  .items-end {
    align-items: flex-end;
  }

  .items-start {
    align-items: flex-start;
  }

  .justify-between {
    justify-content: space-between;
  }

  .justify-center {
    justify-content: center;
  }

  .justify-end {
    justify-content: flex-end;
  }

  .justify-start {
    justify-content: flex-start;
  }

  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }

  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }

  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }

  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }

  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }

  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }

  .gap-8 {
    gap: calc(var(--spacing) * 8);
  }

  :where(.space-y-1 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-2 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-6 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-8 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-12 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 12) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)));
  }

  .gap-x-6 {
    column-gap: calc(var(--spacing) * 6);
  }

  .gap-y-2 {
    row-gap: calc(var(--spacing) * 2);
  }

  :where(.divide-y > :not(:last-child)) {
    --tw-divide-y-reverse: 0;
    border-bottom-style: var(--tw-border-style);
    border-top-style: var(--tw-border-style);
    border-top-width: calc(1px * var(--tw-divide-y-reverse));
    border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  }

  :where(.divide-neutral-800 > :not(:last-child)) {
    border-color: var(--color-neutral-800);
  }

  .truncate {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .overflow-auto {
    overflow: auto;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .overflow-x-auto {
    overflow-x: auto;
  }

  .overflow-y-auto {
    overflow-y: auto;
  }

  .rounded {
    border-radius: .25rem;
  }

  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }

  .rounded-3xl {
    border-radius: var(--radius-3xl);
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-lg {
    border-radius: var(--radius);
  }

  .rounded-sm {
    border-radius: calc(var(--radius)  - 4px);
  }

  .rounded-xl {
    border-radius: calc(var(--radius)  + 4px);
  }

  .rounded-t-sm {
    border-top-left-radius: calc(var(--radius)  - 4px);
    border-top-right-radius: calc(var(--radius)  - 4px);
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
  }

  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .border-l-4 {
    border-left-style: var(--tw-border-style);
    border-left-width: 4px;
  }

  .border-dashed {
    --tw-border-style: dashed;
    border-style: dashed;
  }

  .border-amber-400 {
    border-color: var(--color-amber-400);
  }

  .border-amber-500 {
    border-color: var(--color-amber-500);
  }

  .border-amber-500\/20 {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-amber-500\/20 {
      border-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }

  .border-amber-500\/30 {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 30%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-amber-500\/30 {
      border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
    }
  }

  .border-amber-500\/50 {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-amber-500\/50 {
      border-color: color-mix(in oklab, var(--color-amber-500) 50%, transparent);
    }
  }

  .border-blue-500\/50 {
    border-color: color-mix(in srgb, oklch(.623 .214 259.815) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-blue-500\/50 {
      border-color: color-mix(in oklab, var(--color-blue-500) 50%, transparent);
    }
  }

  .border-emerald-500\/50 {
    border-color: color-mix(in srgb, oklch(.696 .17 162.48) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-emerald-500\/50 {
      border-color: color-mix(in oklab, var(--color-emerald-500) 50%, transparent);
    }
  }

  .border-neutral-800 {
    border-color: var(--color-neutral-800);
  }

  .border-orange-500 {
    border-color: var(--color-orange-500);
  }

  .border-orange-500\/20 {
    border-color: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/20 {
      border-color: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .border-orange-500\/50 {
    border-color: color-mix(in srgb, oklch(.705 .213 47.604) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/50 {
      border-color: color-mix(in oklab, var(--color-orange-500) 50%, transparent);
    }
  }

  .border-orange-600 {
    border-color: var(--color-orange-600);
  }

  .border-purple-500\/50 {
    border-color: color-mix(in srgb, oklch(.627 .265 303.9) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-purple-500\/50 {
      border-color: color-mix(in oklab, var(--color-purple-500) 50%, transparent);
    }
  }

  .border-t-transparent {
    border-top-color: #0000;
  }

  .bg-amber-400 {
    background-color: var(--color-amber-400);
  }

  .bg-amber-500 {
    background-color: var(--color-amber-500);
  }

  .bg-amber-500\/10 {
    background-color: color-mix(in srgb, oklch(.769 .188 70.08) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-amber-500\/10 {
      background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
    }
  }

  .bg-amber-500\/20 {
    background-color: color-mix(in srgb, oklch(.769 .188 70.08) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-amber-500\/20 {
      background-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }

  .bg-blue-400 {
    background-color: var(--color-blue-400);
  }

  .bg-blue-500\/20 {
    background-color: color-mix(in srgb, oklch(.623 .214 259.815) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-blue-500\/20 {
      background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
    }
  }

  .bg-emerald-400 {
    background-color: var(--color-emerald-400);
  }

  .bg-emerald-500\/20 {
    background-color: color-mix(in srgb, oklch(.696 .17 162.48) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-emerald-500\/20 {
      background-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent);
    }
  }

  .bg-neutral-400 {
    background-color: var(--color-neutral-400);
  }

  .bg-neutral-700 {
    background-color: var(--color-neutral-700);
  }

  .bg-neutral-800 {
    background-color: var(--color-neutral-800);
  }

  .bg-neutral-900 {
    background-color: var(--color-neutral-900);
  }

  .bg-neutral-900\/30 {
    background-color: color-mix(in srgb, oklch(.205 0 0) 30%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-neutral-900\/30 {
      background-color: color-mix(in oklab, var(--color-neutral-900) 30%, transparent);
    }
  }

  .bg-neutral-900\/50 {
    background-color: color-mix(in srgb, oklch(.205 0 0) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-neutral-900\/50 {
      background-color: color-mix(in oklab, var(--color-neutral-900) 50%, transparent);
    }
  }

  .bg-neutral-900\/60 {
    background-color: color-mix(in srgb, oklch(.205 0 0) 60%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-neutral-900\/60 {
      background-color: color-mix(in oklab, var(--color-neutral-900) 60%, transparent);
    }
  }

  .bg-neutral-900\/80 {
    background-color: color-mix(in srgb, oklch(.205 0 0) 80%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-neutral-900\/80 {
      background-color: color-mix(in oklab, var(--color-neutral-900) 80%, transparent);
    }
  }

  .bg-neutral-900\/90 {
    background-color: color-mix(in srgb, oklch(.205 0 0) 90%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-neutral-900\/90 {
      background-color: color-mix(in oklab, var(--color-neutral-900) 90%, transparent);
    }
  }

  .bg-neutral-950 {
    background-color: var(--color-neutral-950);
  }

  .bg-orange-400 {
    background-color: var(--color-orange-400);
  }

  .bg-orange-500 {
    background-color: var(--color-orange-500);
  }

  .bg-orange-500\/10 {
    background-color: color-mix(in srgb, oklch(.705 .213 47.604) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-orange-500\/10 {
      background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .bg-orange-500\/20 {
    background-color: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-orange-500\/20 {
      background-color: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .bg-purple-400 {
    background-color: var(--color-purple-400);
  }

  .bg-purple-500\/20 {
    background-color: color-mix(in srgb, oklch(.627 .265 303.9) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-purple-500\/20 {
      background-color: color-mix(in oklab, var(--color-purple-500) 20%, transparent);
    }
  }

  .bg-red-400 {
    background-color: var(--color-red-400);
  }

  .bg-red-500\/20 {
    background-color: color-mix(in srgb, oklch(.637 .237 25.331) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-red-500\/20 {
      background-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
    }
  }

  .bg-transparent {
    background-color: #0000;
  }

  .bg-white {
    background-color: var(--color-white);
  }

  .bg-gradient-to-br {
    --tw-gradient-position: to bottom right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-t {
    --tw-gradient-position: to top in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .from-amber-400 {
    --tw-gradient-from: var(--color-amber-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-amber-500 {
    --tw-gradient-from: var(--color-amber-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-amber-500\/5 {
    --tw-gradient-from: color-mix(in srgb, oklch(.769 .188 70.08) 5%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-amber-500\/5 {
      --tw-gradient-from: color-mix(in oklab, var(--color-amber-500) 5%, transparent);
    }
  }

  .from-amber-500\/10 {
    --tw-gradient-from: color-mix(in srgb, oklch(.769 .188 70.08) 10%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-amber-500\/10 {
      --tw-gradient-from: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
    }
  }

  .from-amber-500\/20 {
    --tw-gradient-from: color-mix(in srgb, oklch(.769 .188 70.08) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-amber-500\/20 {
      --tw-gradient-from: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }

  .from-amber-600 {
    --tw-gradient-from: var(--color-amber-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-blue-500 {
    --tw-gradient-from: var(--color-blue-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-blue-500\/20 {
    --tw-gradient-from: color-mix(in srgb, oklch(.623 .214 259.815) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-blue-500\/20 {
      --tw-gradient-from: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
    }
  }

  .from-emerald-500 {
    --tw-gradient-from: var(--color-emerald-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-neutral-900 {
    --tw-gradient-from: var(--color-neutral-900);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-neutral-950 {
    --tw-gradient-from: var(--color-neutral-950);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-orange-500 {
    --tw-gradient-from: var(--color-orange-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-orange-500\/10 {
    --tw-gradient-from: color-mix(in srgb, oklch(.705 .213 47.604) 10%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-orange-500\/10 {
      --tw-gradient-from: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .from-purple-500 {
    --tw-gradient-from: var(--color-purple-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-red-500\/20 {
    --tw-gradient-from: color-mix(in srgb, oklch(.637 .237 25.331) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-red-500\/20 {
      --tw-gradient-from: color-mix(in oklab, var(--color-red-500) 20%, transparent);
    }
  }

  .via-neutral-900 {
    --tw-gradient-via: var(--color-neutral-900);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .via-neutral-900\/95 {
    --tw-gradient-via: color-mix(in srgb, oklch(.205 0 0) 95%, transparent);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .via-neutral-900\/95 {
      --tw-gradient-via: color-mix(in oklab, var(--color-neutral-900) 95%, transparent);
    }
  }

  .via-orange-500 {
    --tw-gradient-via: var(--color-orange-500);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .via-orange-500\/20 {
    --tw-gradient-via: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .via-orange-500\/20 {
      --tw-gradient-via: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .to-amber-400 {
    --tw-gradient-to: var(--color-amber-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-amber-500 {
    --tw-gradient-to: var(--color-amber-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-amber-500\/10 {
    --tw-gradient-to: color-mix(in srgb, oklch(.769 .188 70.08) 10%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-amber-500\/10 {
      --tw-gradient-to: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
    }
  }

  .to-amber-500\/20 {
    --tw-gradient-to: color-mix(in srgb, oklch(.769 .188 70.08) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-amber-500\/20 {
      --tw-gradient-to: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }

  .to-amber-600 {
    --tw-gradient-to: var(--color-amber-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-cyan-400 {
    --tw-gradient-to: var(--color-cyan-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-cyan-500 {
    --tw-gradient-to: var(--color-cyan-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-cyan-500\/20 {
    --tw-gradient-to: color-mix(in srgb, oklch(.715 .143 215.221) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-cyan-500\/20 {
      --tw-gradient-to: color-mix(in oklab, var(--color-cyan-500) 20%, transparent);
    }
  }

  .to-neutral-950 {
    --tw-gradient-to: var(--color-neutral-950);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-orange-400 {
    --tw-gradient-to: var(--color-orange-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-orange-500 {
    --tw-gradient-to: var(--color-orange-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-orange-500\/5 {
    --tw-gradient-to: color-mix(in srgb, oklch(.705 .213 47.604) 5%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-orange-500\/5 {
      --tw-gradient-to: color-mix(in oklab, var(--color-orange-500) 5%, transparent);
    }
  }

  .to-orange-500\/10 {
    --tw-gradient-to: color-mix(in srgb, oklch(.705 .213 47.604) 10%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-orange-500\/10 {
      --tw-gradient-to: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .to-orange-500\/20 {
    --tw-gradient-to: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-orange-500\/20 {
      --tw-gradient-to: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .to-orange-600 {
    --tw-gradient-to: var(--color-orange-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-orange-600\/20 {
    --tw-gradient-to: color-mix(in srgb, oklch(.646 .222 41.116) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-orange-600\/20 {
      --tw-gradient-to: color-mix(in oklab, var(--color-orange-600) 20%, transparent);
    }
  }

  .to-pink-500 {
    --tw-gradient-to: var(--color-pink-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-teal-500 {
    --tw-gradient-to: var(--color-teal-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-transparent {
    --tw-gradient-to: transparent;
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .bg-clip-text {
    background-clip: text;
  }

  .object-contain {
    object-fit: contain;
  }

  .p-1\.5 {
    padding: calc(var(--spacing) * 1.5);
  }

  .p-2 {
    padding: calc(var(--spacing) * 2);
  }

  .p-3 {
    padding: calc(var(--spacing) * 3);
  }

  .p-4 {
    padding: calc(var(--spacing) * 4);
  }

  .p-5 {
    padding: calc(var(--spacing) * 5);
  }

  .p-6 {
    padding: calc(var(--spacing) * 6);
  }

  .p-8 {
    padding: calc(var(--spacing) * 8);
  }

  .p-16 {
    padding: calc(var(--spacing) * 16);
  }

  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }

  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }

  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }

  .px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }

  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }

  .px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }

  .py-1 {
    padding-block: calc(var(--spacing) * 1);
  }

  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }

  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }

  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }

  .py-6 {
    padding-block: calc(var(--spacing) * 6);
  }

  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }

  .py-12 {
    padding-block: calc(var(--spacing) * 12);
  }

  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }

  .pt-6 {
    padding-top: calc(var(--spacing) * 6);
  }

  .pr-4 {
    padding-right: calc(var(--spacing) * 4);
  }

  .pl-12 {
    padding-left: calc(var(--spacing) * 12);
  }

  .text-center {
    text-align: center;
  }

  .text-left {
    text-align: left;
  }

  .font-mono {
    font-family: var(--font-mono);
  }

  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }

  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }

  .text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }

  .text-5xl {
    font-size: var(--text-5xl);
    line-height: var(--tw-leading, var(--text-5xl--line-height));
  }

  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }

  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }

  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }

  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }

  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }

  .text-\[15px\] {
    font-size: 15px;
  }

  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }

  .font-black {
    --tw-font-weight: var(--font-weight-black);
    font-weight: var(--font-weight-black);
  }

  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }

  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }

  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }

  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }

  .whitespace-nowrap {
    white-space: nowrap;
  }

  .whitespace-pre-wrap {
    white-space: pre-wrap;
  }

  .text-amber-400 {
    color: var(--color-amber-400);
  }

  .text-amber-500 {
    color: var(--color-amber-500);
  }

  .text-blue-400 {
    color: var(--color-blue-400);
  }

  .text-emerald-400 {
    color: var(--color-emerald-400);
  }

  .text-neutral-100 {
    color: var(--color-neutral-100);
  }

  .text-neutral-300 {
    color: var(--color-neutral-300);
  }

  .text-neutral-400 {
    color: var(--color-neutral-400);
  }

  .text-neutral-500 {
    color: var(--color-neutral-500);
  }

  .text-neutral-600 {
    color: var(--color-neutral-600);
  }

  .text-orange-300 {
    color: var(--color-orange-300);
  }

  .text-orange-400 {
    color: var(--color-orange-400);
  }

  .text-purple-400 {
    color: var(--color-purple-400);
  }

  .text-red-400 {
    color: var(--color-red-400);
  }

  .text-transparent {
    color: #0000;
  }

  .text-white {
    color: var(--color-white);
  }

  .uppercase {
    text-transform: uppercase;
  }

  .placeholder-neutral-500::placeholder {
    color: var(--color-neutral-500);
  }

  .opacity-0 {
    opacity: 0;
  }

  .opacity-5 {
    opacity: .05;
  }

  .opacity-20 {
    opacity: .2;
  }

  .opacity-30 {
    opacity: .3;
  }

  .opacity-50 {
    opacity: .5;
  }

  .opacity-\[0\.02\] {
    opacity: .02;
  }

  .shadow-2xl {
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-orange-500\/10 {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-orange-500\/10 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 10%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-orange-500\/20 {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-orange-500\/20 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-orange-500\/30 {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 30%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-orange-500\/30 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 30%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-orange-500\/50 {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-orange-500\/50 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 50%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .blur-2xl {
    --tw-blur: blur(var(--blur-2xl));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .blur-3xl {
    --tw-blur: blur(var(--blur-3xl));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .blur-sm {
    --tw-blur: blur(var(--blur-sm));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .blur-xl {
    --tw-blur: blur(var(--blur-xl));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .backdrop-blur-sm {
    --tw-backdrop-blur: blur(var(--blur-sm));
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .backdrop-blur-xl {
    --tw-backdrop-blur: blur(var(--blur-xl));
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .duration-500 {
    --tw-duration: .5s;
    transition-duration: .5s;
  }

  .group-focus-within\:text-orange-500:is(:where(.group):focus-within *) {
    color: var(--color-orange-500);
  }

  @media (hover: hover) {
    .group-hover\:scale-110:is(:where(.group):hover *) {
      --tw-scale-x: 110%;
      --tw-scale-y: 110%;
      --tw-scale-z: 110%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
  }

  @media (hover: hover) {
    .group-hover\:text-amber-400:is(:where(.group):hover *) {
      color: var(--color-amber-400);
    }
  }

  @media (hover: hover) {
    .group-hover\:opacity-30:is(:where(.group):hover *) {
      opacity: .3;
    }
  }

  @media (hover: hover) {
    .group-hover\:opacity-40:is(:where(.group):hover *) {
      opacity: .4;
    }
  }

  @media (hover: hover) {
    .group-hover\:opacity-75:is(:where(.group):hover *) {
      opacity: .75;
    }
  }

  @media (hover: hover) {
    .group-hover\:opacity-100:is(:where(.group):hover *) {
      opacity: 1;
    }
  }

  @media (hover: hover) {
    .group-hover\:blur-2xl:is(:where(.group):hover *) {
      --tw-blur: blur(var(--blur-2xl));
      filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
    }
  }

  @media (hover: hover) {
    .hover\:border-amber-500\/30:hover {
      border-color: color-mix(in srgb, oklch(.769 .188 70.08) 30%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-amber-500\/30:hover {
        border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:border-amber-500\/50:hover {
      border-color: color-mix(in srgb, oklch(.769 .188 70.08) 50%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-amber-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-amber-500) 50%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:border-blue-500\/70:hover {
      border-color: color-mix(in srgb, oklch(.623 .214 259.815) 70%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-blue-500\/70:hover {
        border-color: color-mix(in oklab, var(--color-blue-500) 70%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:border-emerald-500\/70:hover {
      border-color: color-mix(in srgb, oklch(.696 .17 162.48) 70%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-emerald-500\/70:hover {
        border-color: color-mix(in oklab, var(--color-emerald-500) 70%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:border-orange-500\/30:hover {
      border-color: color-mix(in srgb, oklch(.705 .213 47.604) 30%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-orange-500\/30:hover {
        border-color: color-mix(in oklab, var(--color-orange-500) 30%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:border-purple-500\/70:hover {
      border-color: color-mix(in srgb, oklch(.627 .265 303.9) 70%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-purple-500\/70:hover {
        border-color: color-mix(in oklab, var(--color-purple-500) 70%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:bg-blue-500\/30:hover {
      background-color: color-mix(in srgb, oklch(.623 .214 259.815) 30%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-blue-500\/30:hover {
        background-color: color-mix(in oklab, var(--color-blue-500) 30%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:bg-emerald-500\/30:hover {
      background-color: color-mix(in srgb, oklch(.696 .17 162.48) 30%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-emerald-500\/30:hover {
        background-color: color-mix(in oklab, var(--color-emerald-500) 30%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:bg-neutral-600:hover {
      background-color: var(--color-neutral-600);
    }
  }

  @media (hover: hover) {
    .hover\:bg-neutral-700:hover {
      background-color: var(--color-neutral-700);
    }
  }

  @media (hover: hover) {
    .hover\:bg-neutral-800:hover {
      background-color: var(--color-neutral-800);
    }
  }

  @media (hover: hover) {
    .hover\:bg-neutral-900:hover {
      background-color: var(--color-neutral-900);
    }
  }

  @media (hover: hover) {
    .hover\:bg-neutral-950:hover {
      background-color: var(--color-neutral-950);
    }
  }

  @media (hover: hover) {
    .hover\:bg-purple-500\/30:hover {
      background-color: color-mix(in srgb, oklch(.627 .265 303.9) 30%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-purple-500\/30:hover {
        background-color: color-mix(in oklab, var(--color-purple-500) 30%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .hover\:from-amber-600:hover {
      --tw-gradient-from: var(--color-amber-600);
      --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
    }
  }

  @media (hover: hover) {
    .hover\:from-orange-600:hover {
      --tw-gradient-from: var(--color-orange-600);
      --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
    }
  }

  @media (hover: hover) {
    .hover\:to-amber-700:hover {
      --tw-gradient-to: var(--color-amber-700);
      --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
    }
  }

  @media (hover: hover) {
    .hover\:to-orange-700:hover {
      --tw-gradient-to: var(--color-orange-700);
      --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
    }
  }

  @media (hover: hover) {
    .hover\:text-red-400:hover {
      color: var(--color-red-400);
    }
  }

  @media (hover: hover) {
    .hover\:text-white:hover {
      color: var(--color-white);
    }
  }

  .focus\:border-amber-500\/50:focus {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:border-amber-500\/50:focus {
      border-color: color-mix(in oklab, var(--color-amber-500) 50%, transparent);
    }
  }

  .focus\:border-orange-500:focus {
    border-color: var(--color-orange-500);
  }

  .focus\:border-transparent:focus {
    border-color: #0000;
  }

  .focus\:shadow-lg:focus {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus\:ring-2:focus {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus\:shadow-orange-500\/10:focus {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:shadow-orange-500\/10:focus {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 10%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .focus\:shadow-orange-500\/20:focus {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:shadow-orange-500\/20:focus {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .focus\:ring-amber-500:focus {
    --tw-ring-color: var(--color-amber-500);
  }

  .focus\:outline-none:focus {
    --tw-outline-style: none;
    outline-style: none;
  }

  .disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
  }

  .disabled\:from-neutral-800:disabled {
    --tw-gradient-from: var(--color-neutral-800);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .disabled\:to-neutral-800:disabled {
    --tw-gradient-to: var(--color-neutral-800);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .disabled\:shadow-none:disabled {
    --tw-shadow: 0 0 #0000;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  @media (width >= 48rem) {
    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (width >= 48rem) {
    .md\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (width >= 48rem) {
    .md\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }

  :where(.dark\:divide-neutral-800:is(.dark *) > :not(:last-child)) {
    border-color: var(--color-neutral-800);
  }

  .dark\:border-amber-500\/30:is(.dark *) {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 30%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:border-amber-500\/30:is(.dark *) {
      border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
    }
  }

  .dark\:border-amber-500\/50:is(.dark *) {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:border-amber-500\/50:is(.dark *) {
      border-color: color-mix(in oklab, var(--color-amber-500) 50%, transparent);
    }
  }

  .dark\:border-blue-500\/50:is(.dark *) {
    border-color: color-mix(in srgb, oklch(.623 .214 259.815) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:border-blue-500\/50:is(.dark *) {
      border-color: color-mix(in oklab, var(--color-blue-500) 50%, transparent);
    }
  }

  .dark\:border-emerald-500\/50:is(.dark *) {
    border-color: color-mix(in srgb, oklch(.696 .17 162.48) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:border-emerald-500\/50:is(.dark *) {
      border-color: color-mix(in oklab, var(--color-emerald-500) 50%, transparent);
    }
  }

  .dark\:border-neutral-800:is(.dark *) {
    border-color: var(--color-neutral-800);
  }

  .dark\:border-orange-500\/50:is(.dark *) {
    border-color: color-mix(in srgb, oklch(.705 .213 47.604) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:border-orange-500\/50:is(.dark *) {
      border-color: color-mix(in oklab, var(--color-orange-500) 50%, transparent);
    }
  }

  .dark\:border-purple-500\/50:is(.dark *) {
    border-color: color-mix(in srgb, oklch(.627 .265 303.9) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:border-purple-500\/50:is(.dark *) {
      border-color: color-mix(in oklab, var(--color-purple-500) 50%, transparent);
    }
  }

  .dark\:bg-blue-500\/20:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.623 .214 259.815) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-blue-500\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
    }
  }

  .dark\:bg-emerald-500\/20:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.696 .17 162.48) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-emerald-500\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent);
    }
  }

  .dark\:bg-neutral-400:is(.dark *) {
    background-color: var(--color-neutral-400);
  }

  .dark\:bg-neutral-700:is(.dark *) {
    background-color: var(--color-neutral-700);
  }

  .dark\:bg-neutral-800:is(.dark *) {
    background-color: var(--color-neutral-800);
  }

  .dark\:bg-neutral-900:is(.dark *) {
    background-color: var(--color-neutral-900);
  }

  .dark\:bg-neutral-900\/30:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.205 0 0) 30%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-neutral-900\/30:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-neutral-900) 30%, transparent);
    }
  }

  .dark\:bg-neutral-900\/50:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.205 0 0) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-neutral-900\/50:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-neutral-900) 50%, transparent);
    }
  }

  .dark\:bg-neutral-900\/60:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.205 0 0) 60%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-neutral-900\/60:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-neutral-900) 60%, transparent);
    }
  }

  .dark\:bg-neutral-900\/80:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.205 0 0) 80%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-neutral-900\/80:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-neutral-900) 80%, transparent);
    }
  }

  .dark\:bg-neutral-900\/90:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.205 0 0) 90%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-neutral-900\/90:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-neutral-900) 90%, transparent);
    }
  }

  .dark\:bg-neutral-950:is(.dark *) {
    background-color: var(--color-neutral-950);
  }

  .dark\:bg-orange-500\/20:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-orange-500\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .dark\:bg-purple-500\/20:is(.dark *) {
    background-color: color-mix(in srgb, oklch(.627 .265 303.9) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-purple-500\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-purple-500) 20%, transparent);
    }
  }

  .dark\:from-amber-500\/20:is(.dark *) {
    --tw-gradient-from: color-mix(in srgb, oklch(.769 .188 70.08) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:from-amber-500\/20:is(.dark *) {
      --tw-gradient-from: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }

  .dark\:from-neutral-900:is(.dark *) {
    --tw-gradient-from: var(--color-neutral-900);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .dark\:via-neutral-900\/95:is(.dark *) {
    --tw-gradient-via: color-mix(in srgb, oklch(.205 0 0) 95%, transparent);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:via-neutral-900\/95:is(.dark *) {
      --tw-gradient-via: color-mix(in oklab, var(--color-neutral-900) 95%, transparent);
    }
  }

  .dark\:to-neutral-950:is(.dark *) {
    --tw-gradient-to: var(--color-neutral-950);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .dark\:to-orange-600\/20:is(.dark *) {
    --tw-gradient-to: color-mix(in srgb, oklch(.646 .222 41.116) 20%, transparent);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:to-orange-600\/20:is(.dark *) {
      --tw-gradient-to: color-mix(in oklab, var(--color-orange-600) 20%, transparent);
    }
  }

  .dark\:stroke-neutral-800:is(.dark *) {
    stroke: var(--color-neutral-800);
  }

  .dark\:text-amber-400:is(.dark *) {
    color: var(--color-amber-400);
  }

  .dark\:text-amber-500:is(.dark *) {
    color: var(--color-amber-500);
  }

  .dark\:text-blue-400:is(.dark *) {
    color: var(--color-blue-400);
  }

  .dark\:text-emerald-400:is(.dark *) {
    color: var(--color-emerald-400);
  }

  .dark\:text-neutral-100:is(.dark *) {
    color: var(--color-neutral-100);
  }

  .dark\:text-neutral-300:is(.dark *) {
    color: var(--color-neutral-300);
  }

  .dark\:text-neutral-400:is(.dark *) {
    color: var(--color-neutral-400);
  }

  .dark\:text-neutral-500:is(.dark *) {
    color: var(--color-neutral-500);
  }

  .dark\:text-orange-300:is(.dark *) {
    color: var(--color-orange-300);
  }

  .dark\:text-orange-400:is(.dark *) {
    color: var(--color-orange-400);
  }

  .dark\:text-purple-400:is(.dark *) {
    color: var(--color-purple-400);
  }

  .dark\:text-white:is(.dark *) {
    color: var(--color-white);
  }

  .dark\:placeholder-neutral-500:is(.dark *)::placeholder {
    color: var(--color-neutral-500);
  }

  .dark\:shadow-orange-500\/50:is(.dark *) {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:shadow-orange-500\/50:is(.dark *) {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 50%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  @media (hover: hover) {
    .dark\:group-hover\:text-amber-400:is(.dark *):is(:where(.group):hover *) {
      color: var(--color-amber-400);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:border-amber-500\/30:is(.dark *):hover {
      border-color: color-mix(in srgb, oklch(.769 .188 70.08) 30%, transparent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:border-amber-500\/30:is(.dark *):hover {
        border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
      }
    }
  }

  @media (hover: hover) {
    .dark\:hover\:bg-neutral-600:is(.dark *):hover {
      background-color: var(--color-neutral-600);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:bg-neutral-700:is(.dark *):hover {
      background-color: var(--color-neutral-700);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:bg-neutral-800:is(.dark *):hover {
      background-color: var(--color-neutral-800);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:bg-neutral-900:is(.dark *):hover {
      background-color: var(--color-neutral-900);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:bg-neutral-950:is(.dark *):hover {
      background-color: var(--color-neutral-950);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:text-red-400:is(.dark *):hover {
      color: var(--color-red-400);
    }
  }

  @media (hover: hover) {
    .dark\:hover\:text-white:is(.dark *):hover {
      color: var(--color-white);
    }
  }

  .dark\:focus\:border-amber-500\/50:is(.dark *):focus {
    border-color: color-mix(in srgb, oklch(.769 .188 70.08) 50%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:focus\:border-amber-500\/50:is(.dark *):focus {
      border-color: color-mix(in oklab, var(--color-amber-500) 50%, transparent);
    }
  }

  .dark\:disabled\:from-neutral-800:is(.dark *):disabled {
    --tw-gradient-from: var(--color-neutral-800);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .dark\:disabled\:to-neutral-800:is(.dark *):disabled {
    --tw-gradient-to: var(--color-neutral-800);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  :where(.light\:divide-neutral-200:is(.light *) > :not(:last-child)) {
    border-color: var(--color-neutral-200);
  }

  .light\:border-amber-300:is(.light *) {
    border-color: var(--color-amber-300);
  }

  .light\:border-amber-500:is(.light *) {
    border-color: var(--color-amber-500);
  }

  .light\:border-blue-600:is(.light *) {
    border-color: var(--color-blue-600);
  }

  .light\:border-emerald-600:is(.light *) {
    border-color: var(--color-emerald-600);
  }

  .light\:border-neutral-200:is(.light *) {
    border-color: var(--color-neutral-200);
  }

  .light\:border-neutral-300:is(.light *) {
    border-color: var(--color-neutral-300);
  }

  .light\:border-orange-600:is(.light *) {
    border-color: var(--color-orange-600);
  }

  .light\:border-purple-600:is(.light *) {
    border-color: var(--color-purple-600);
  }

  .light\:bg-blue-500\/10:is(.light *) {
    background-color: color-mix(in srgb, oklch(.623 .214 259.815) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-blue-500\/10:is(.light *) {
      background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);
    }
  }

  .light\:bg-emerald-500\/10:is(.light *) {
    background-color: color-mix(in srgb, oklch(.696 .17 162.48) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-emerald-500\/10:is(.light *) {
      background-color: color-mix(in oklab, var(--color-emerald-500) 10%, transparent);
    }
  }

  .light\:bg-neutral-50:is(.light *) {
    background-color: var(--color-neutral-50);
  }

  .light\:bg-neutral-100:is(.light *) {
    background-color: var(--color-neutral-100);
  }

  .light\:bg-neutral-100\/80:is(.light *) {
    background-color: color-mix(in srgb, oklch(.97 0 0) 80%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-neutral-100\/80:is(.light *) {
      background-color: color-mix(in oklab, var(--color-neutral-100) 80%, transparent);
    }
  }

  .light\:bg-neutral-200:is(.light *) {
    background-color: var(--color-neutral-200);
  }

  .light\:bg-neutral-300:is(.light *) {
    background-color: var(--color-neutral-300);
  }

  .light\:bg-neutral-600:is(.light *) {
    background-color: var(--color-neutral-600);
  }

  .light\:bg-orange-500\/10:is(.light *) {
    background-color: color-mix(in srgb, oklch(.705 .213 47.604) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-orange-500\/10:is(.light *) {
      background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .light\:bg-purple-500\/10:is(.light *) {
    background-color: color-mix(in srgb, oklch(.627 .265 303.9) 10%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-purple-500\/10:is(.light *) {
      background-color: color-mix(in oklab, var(--color-purple-500) 10%, transparent);
    }
  }

  .light\:bg-white:is(.light *) {
    background-color: var(--color-white);
  }

  .light\:bg-white\/50:is(.light *) {
    background-color: #ffffff80;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-white\/50:is(.light *) {
      background-color: color-mix(in oklab, var(--color-white) 50%, transparent);
    }
  }

  .light\:bg-white\/60:is(.light *) {
    background-color: #fff9;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-white\/60:is(.light *) {
      background-color: color-mix(in oklab, var(--color-white) 60%, transparent);
    }
  }

  .light\:bg-white\/80:is(.light *) {
    background-color: #fffc;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-white\/80:is(.light *) {
      background-color: color-mix(in oklab, var(--color-white) 80%, transparent);
    }
  }

  .light\:bg-white\/90:is(.light *) {
    background-color: #ffffffe6;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:bg-white\/90:is(.light *) {
      background-color: color-mix(in oklab, var(--color-white) 90%, transparent);
    }
  }

  .light\:from-amber-100:is(.light *) {
    --tw-gradient-from: var(--color-amber-100);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .light\:from-neutral-100:is(.light *) {
    --tw-gradient-from: var(--color-neutral-100);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .light\:via-white:is(.light *) {
    --tw-gradient-via: var(--color-white);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .light\:to-neutral-50:is(.light *) {
    --tw-gradient-to: var(--color-neutral-50);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .light\:to-orange-100:is(.light *) {
    --tw-gradient-to: var(--color-orange-100);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .light\:stroke-neutral-200:is(.light *) {
    stroke: var(--color-neutral-200);
  }

  .light\:text-amber-600:is(.light *) {
    color: var(--color-amber-600);
  }

  .light\:text-blue-600:is(.light *) {
    color: var(--color-blue-600);
  }

  .light\:text-blue-700:is(.light *) {
    color: var(--color-blue-700);
  }

  .light\:text-emerald-600:is(.light *) {
    color: var(--color-emerald-600);
  }

  .light\:text-emerald-700:is(.light *) {
    color: var(--color-emerald-700);
  }

  .light\:text-neutral-400:is(.light *) {
    color: var(--color-neutral-400);
  }

  .light\:text-neutral-500:is(.light *) {
    color: var(--color-neutral-500);
  }

  .light\:text-neutral-600:is(.light *) {
    color: var(--color-neutral-600);
  }

  .light\:text-neutral-700:is(.light *) {
    color: var(--color-neutral-700);
  }

  .light\:text-neutral-800:is(.light *) {
    color: var(--color-neutral-800);
  }

  .light\:text-neutral-900:is(.light *) {
    color: var(--color-neutral-900);
  }

  .light\:text-orange-600:is(.light *) {
    color: var(--color-orange-600);
  }

  .light\:text-orange-700:is(.light *) {
    color: var(--color-orange-700);
  }

  .light\:text-purple-600:is(.light *) {
    color: var(--color-purple-600);
  }

  .light\:text-purple-700:is(.light *) {
    color: var(--color-purple-700);
  }

  .light\:placeholder-neutral-400:is(.light *)::placeholder {
    color: var(--color-neutral-400);
  }

  .light\:shadow-orange-500\/20:is(.light *) {
    --tw-shadow-color: color-mix(in srgb, oklch(.705 .213 47.604) 20%, transparent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .light\:shadow-orange-500\/20:is(.light *) {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  @media (hover: hover) {
    .light\:group-hover\:text-amber-600:is(.light *):is(:where(.group):hover *) {
      color: var(--color-amber-600);
    }
  }

  @media (hover: hover) {
    .light\:hover\:border-amber-400:is(.light *):hover {
      border-color: var(--color-amber-400);
    }
  }

  @media (hover: hover) {
    .light\:hover\:bg-neutral-100:is(.light *):hover {
      background-color: var(--color-neutral-100);
    }
  }

  @media (hover: hover) {
    .light\:hover\:bg-neutral-200:is(.light *):hover {
      background-color: var(--color-neutral-200);
    }
  }

  @media (hover: hover) {
    .light\:hover\:bg-neutral-300:is(.light *):hover {
      background-color: var(--color-neutral-300);
    }
  }

  @media (hover: hover) {
    .light\:hover\:bg-neutral-400:is(.light *):hover {
      background-color: var(--color-neutral-400);
    }
  }

  @media (hover: hover) {
    .light\:hover\:text-neutral-900:is(.light *):hover {
      color: var(--color-neutral-900);
    }
  }

  @media (hover: hover) {
    .light\:hover\:text-red-600:is(.light *):hover {
      color: var(--color-red-600);
    }
  }

  .light\:focus\:border-amber-500:is(.light *):focus {
    border-color: var(--color-amber-500);
  }

  .light\:disabled\:from-neutral-300:is(.light *):disabled {
    --tw-gradient-from: var(--color-neutral-300);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .light\:disabled\:to-neutral-300:is(.light *):disabled {
    --tw-gradient-to: var(--color-neutral-300);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
}

:root {
  --font-size: 16px;
  --background: #fff;
  --foreground: oklch(.145 0 0);
  --card: #fff;
  --card-foreground: oklch(.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(.145 0 0);
  --primary: #030213;
  --primary-foreground: oklch(1 0 0);
  --secondary: oklch(.95 .0058 264.53);
  --secondary-foreground: #030213;
  --muted: #ececf0;
  --muted-foreground: #717182;
  --accent: #e9ebef;
  --accent-foreground: #030213;
  --destructive: #d4183d;
  --destructive-foreground: #fff;
  --border: #0000001a;
  --input: transparent;
  --input-background: #f3f3f5;
  --switch-background: #cbced4;
  --font-weight-medium: 500;
  --font-weight-normal: 400;
  --ring: oklch(.708 0 0);
  --chart-1: oklch(.646 .222 41.116);
  --chart-2: oklch(.6 .118 184.704);
  --chart-3: oklch(.398 .07 227.392);
  --chart-4: oklch(.828 .189 84.429);
  --chart-5: oklch(.769 .188 70.08);
  --radius: .625rem;
  --sidebar: oklch(.985 0 0);
  --sidebar-foreground: oklch(.145 0 0);
  --sidebar-primary: #030213;
  --sidebar-primary-foreground: oklch(.985 0 0);
  --sidebar-accent: oklch(.97 0 0);
  --sidebar-accent-foreground: oklch(.205 0 0);
  --sidebar-border: oklch(.922 0 0);
  --sidebar-ring: oklch(.708 0 0);
}

.dark {
  --background: oklch(.145 0 0);
  --foreground: oklch(.985 0 0);
  --card: oklch(.145 0 0);
  --card-foreground: oklch(.985 0 0);
  --popover: oklch(.145 0 0);
  --popover-foreground: oklch(.985 0 0);
  --primary: oklch(.985 0 0);
  --primary-foreground: oklch(.205 0 0);
  --secondary: oklch(.269 0 0);
  --secondary-foreground: oklch(.985 0 0);
  --muted: oklch(.269 0 0);
  --muted-foreground: oklch(.708 0 0);
  --accent: oklch(.269 0 0);
  --accent-foreground: oklch(.985 0 0);
  --destructive: oklch(.396 .141 25.723);
  --destructive-foreground: oklch(.637 .237 25.331);
  --border: oklch(.269 0 0);
  --input: oklch(.269 0 0);
  --ring: oklch(.439 0 0);
  --font-weight-medium: 500;
  --font-weight-normal: 400;
  --chart-1: oklch(.488 .243 264.376);
  --chart-2: oklch(.696 .17 162.48);
  --chart-3: oklch(.769 .188 70.08);
  --chart-4: oklch(.627 .265 303.9);
  --chart-5: oklch(.645 .246 16.439);
  --sidebar: oklch(.205 0 0);
  --sidebar-foreground: oklch(.985 0 0);
  --sidebar-primary: oklch(.488 .243 264.376);
  --sidebar-primary-foreground: oklch(.985 0 0);
  --sidebar-accent: oklch(.269 0 0);
  --sidebar-accent-foreground: oklch(.985 0 0);
  --sidebar-border: oklch(.269 0 0);
  --sidebar-ring: oklch(.439 0 0);
}

html {
  font-size: var(--font-size);
}

@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
  initial-value: rotateX(0);
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
  initial-value: rotateY(0);
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
  initial-value: rotateZ(0);
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false;
  initial-value: skewX(0);
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false;
  initial-value: skewY(0);
}

@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-divide-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-gradient-position {
  syntax: "*";
  inherits: false
}

@property --tw-gradient-from {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-gradient-via {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-gradient-to {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-gradient-stops {
  syntax: "*";
  inherits: false
}

@property --tw-gradient-via-stops {
  syntax: "*";
  inherits: false
}

@property --tw-gradient-from-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0%;
}

@property --tw-gradient-via-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 50%;
}

@property --tw-gradient-to-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-leading {
  syntax: "*";
  inherits: false
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-tracking {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

/* ── Markdown rendering for LLM responses ────────────────────── */
/* !important needed to override Tailwind preflight reset (*, ol, ul { margin:0; padding:0; list-style:none }) */
.markdown-body {
  font-size: 15px !important;
  line-height: 1.7 !important;
  word-wrap: break-word !important;
}

.markdown-body h1 {
  display: block !important;
  font-size: 1.5em !important;
  font-weight: 700 !important;
  margin: 1em 0 0.5em !important;
  line-height: 1.3 !important;
}

.markdown-body h2 {
  display: block !important;
  font-size: 1.3em !important;
  font-weight: 700 !important;
  margin: 0.9em 0 0.4em !important;
  line-height: 1.3 !important;
}

.markdown-body h3 {
  display: block !important;
  font-size: 1.15em !important;
  font-weight: 600 !important;
  margin: 0.8em 0 0.3em !important;
  line-height: 1.4 !important;
}

.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  display: block !important;
  font-size: 1em !important;
  font-weight: 600 !important;
  margin: 0.7em 0 0.25em !important;
}

.markdown-body p {
  display: block !important;
  margin-top: 0.8em !important;
  margin-bottom: 0.8em !important;
}

.markdown-body p + p {
  margin-top: 1.2em !important;
}

.markdown-body ul,
.markdown-body ol {
  display: block !important;
  margin: 0.75em 0 !important;
  padding-left: 1.5em !important;
}

.markdown-body ul {
  list-style-type: disc !important;
}

.markdown-body ol {
  list-style-type: decimal !important;
}

.markdown-body li {
  display: list-item !important;
  margin: 0.25em 0 !important;
}

.markdown-body li > ul,
.markdown-body li > ol {
  margin: 0.15em 0 !important;
}

.markdown-body strong {
  font-weight: 700 !important;
}

.markdown-body em {
  font-style: italic !important;
}

.markdown-body blockquote {
  display: block !important;
  border-left: 3px solid rgba(249, 115, 22, 0.5) !important;
  padding: 0.3em 0.8em !important;
  margin: 0.5em 0 !important;
  opacity: 0.9 !important;
}

.markdown-body code {
  font-family: 'Fira Code', 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 0.875em !important;
  padding: 0.15em 0.4em !important;
  border-radius: 4px !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

.markdown-body pre {
  display: block !important;
  margin: 1em 0 !important;
  border-radius: 10px !important;
  padding: 1em 1.2em !important;
  overflow-x: auto !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  background: rgba(0, 0, 0, 0.5) !important;
}

.markdown-body pre code {
  background: none !important;
  padding: 0 !important;
  font-size: 0.85em !important;
  line-height: 1.5 !important;
  border: none !important;
}

.markdown-body table {
  display: table !important;
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 0.6em 0 !important;
  font-size: 0.9em !important;
}

.markdown-body thead { display: table-header-group !important; }
.markdown-body tbody { display: table-row-group !important; }
.markdown-body tr { display: table-row !important; }

.markdown-body th,
.markdown-body td {
  display: table-cell !important;
  padding: 0.4em 0.7em !important;
  text-align: left !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.markdown-body th {
  font-weight: 600 !important;
  background: rgba(255, 255, 255, 0.05) !important;
}

.light .markdown-body th,
.light .markdown-body td {
  border-color: rgba(0, 0, 0, 0.2) !important;
}

.light .markdown-body th {
  background: rgba(0, 0, 0, 0.04) !important;
}

.markdown-body hr {
  display: block !important;
  margin: 1em 0 !important;
  border: none !important;
  border-top: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.markdown-body a {
  color: #f97316 !important;
  text-decoration: underline !important;
}

.markdown-body img {
  max-width: 100% !important;
  border-radius: 6px !important;
}

.markdown-body > *:first-child {
  margin-top: 0 !important;
}

.markdown-body > *:last-child {
  margin-bottom: 0 !important;
}

/* ── Code block with syntax highlighting (CodeBlock component) ─── */
.code-block-wrapper {
  margin: 1em 0;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  max-width: 100%;
  overflow: hidden;
  position: relative;
}

.light .code-block-wrapper {
  border: 1px solid #dbe3ec;
}

.code-block-wrapper > div:last-child {
  overflow-x: auto;
}

/* Reset code/pre backgrounds inside code-block-wrapper — !important beats SyntaxHighlighter inline styles */
.code-block-wrapper code,
.code-block-wrapper code[class*="language-"],
.code-block-wrapper pre,
.code-block-wrapper pre[class*="language-"] {
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* Dark mode: force the SyntaxHighlighter container background */
.dark .code-block-wrapper > div:last-child {
  background: rgba(0, 0, 0, 0.5) !important;
  background-color: rgba(0, 0, 0, 0.5) !important;
}

/* Light mode: force white bg on the SyntaxHighlighter container */
.light .code-block-wrapper > div:last-child {
  background: #ffffff !important;
  background-color: #ffffff !important;
}

.code-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.7em 1em;
  background: rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.light .code-block-header {
  background: #ffffff;
  border-bottom: 1px solid #e6eaf0;
}

.code-block-lang {
  font-size: 0.75em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.5);
  font-family: 'Fira Code', 'JetBrains Mono', monospace;
}

.light .code-block-lang {
  color: rgba(0, 0, 0, 0.45);
}

.code-block-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.code-block-copy,
.code-block-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  flex-shrink: 0;
  border: none;
}

.code-block-copy:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
}

.code-block-preview:hover {
  background: rgba(56, 189, 248, 0.15);
  color: #7dd3fc;
}

.light .code-block-copy,
.light .code-block-preview {
  color: rgba(0, 0, 0, 0.45);
  background: rgba(255, 255, 255, 0.9);
}

.light .code-block-copy:hover {
  background: rgba(0, 0, 0, 0.08);
  color: rgba(0, 0, 0, 0.8);
}

.light .code-block-preview:hover {
  background: rgba(56, 189, 248, 0.1);
  color: #0284c7;
}

/* ── Terracotta palette — override Tailwind orange variables ────────
   @layer theme has lower specificity than unlayered :root, so these
   take precedence everywhere orange-* Tailwind classes are used.
   ─────────────────────────────────────────────────────────────────── */
:root {
  --color-orange-50:  #FFFAF6;
  --color-orange-100: #FFF8F3;
  --color-orange-200: #FAF1E7;
  --color-orange-300: #E9DCCF;
  --color-orange-400: #C29476;
  --color-orange-500: #AB7443;
  --color-orange-600: #A24A36;
  --color-orange-700: #7A3226;
  --color-orange-800: #523327;
  --color-orange-900: #382522;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0VBQ2QsWUFBWTtBQUNkOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLG9DQUFvQztFQUNwQyxjQUFjO0FBQ2hCOztBQUVBOztFQUVFLDBCQUEwQjtFQUMxQixvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSwrQkFBK0I7RUFDL0IseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsbUNBQW1DO0VBQ25DLGNBQWM7QUFDaEI7O0FBRUE7Ozt3RUFHd0U7QUFDeEU7RUFDRSwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQiwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQiwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQiwyQkFBMkI7QUFDN0IsQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC1sYXVuY2hlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvcmVhY3QvaW5kZXguY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIEdsb2JhbCBzY3JvbGxiYXIgc3R5bGluZyBhbGlnbmVkIHdpdGggdGhlIGFwcGxpY2F0aW9uJ3MgZGFyayB2aXN1YWwgZGlyZWN0aW9uICovXG4qIHtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICBzY3JvbGxiYXItY29sb3I6ICM3MTcxN2EgIzBhMGEwYTtcbn1cblxuKjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG4qOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICMwYTBhMGE7XG59XG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcxNzE3YTtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjMGEwYTBhO1xufVxuXG4qOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YjhiOTU7XG59XG5cbi8qIOKUgOKUgCBMaWdodCBtb2RlIHNjcm9sbGJhciAod2FybSBwYWxldHRlKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5saWdodCAqIHtcbiAgc2Nyb2xsYmFyLWNvbG9yOiAjQUI3NDQzICNGNUU4REI7XG59XG5cbi5saWdodCAqOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNGNUU4REI7XG59XG5cbi5saWdodCAqOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBQjc0NDM7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNGNUU4REI7XG59XG5cbi5saWdodCAqOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMjRBMzY7XG59XG5cbi8qIOKUgOKUgCBCcmFuZCBjb2xvdXIgcGFsZXR0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbjpyb290IHtcbiAgLS10ZXJyYWNvdHRhOiAgI0EyNEEzNjtcbiAgLS1jYW5uZWxsZTogICAgI0FCNzQ0MztcbiAgLS10ZXJyZTogICAgICAgIzM4MjUyMjtcbiAgLS10ZXJyZS13YXJtOiAgIzUyMzMyNztcbiAgLS1tdXRlZDogICAgICAgIzZCNTg1MDtcbiAgLS1tdXRlZC1saWdodDogI0JEQTk5QztcbiAgLS1pdm9pcmU6ICAgICAgI0ZGRjhGMztcbiAgLS1wYXBlcjogICAgICAgI0ZBRjFFNztcbiAgLS1jYXJkOiAgICAgICAgI0Y1RThEQjtcbiAgLS1kaXZpZGVyOiAgICAgI0U5RENDRjtcblxuICAvKiBTdG9wIGJ1dHRvbiDigJQgZGFyayBtb2RlICovXG4gIC0tc3RvcC1iZzogI2ZmZmZmZjtcbiAgLS1zdG9wLXNxOiAjMDAwMDAwO1xufVxuXG4vKiDilIDilIAgU3RvcCBidXR0b24gKGxpZ2h0IG92ZXJyaWRlKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5saWdodCB7XG4gIC0tc3RvcC1iZzogIzE3MTcxNztcbiAgLS1zdG9wLXNxOiAjZmZmZmZmO1xufVxuXG4iLCIvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIEFwcCBMYXVuY2hlciDigJQgbW9ycGhpbmcgNi1kb3QgYnV0dG9uIOKGkiBhcHAgcGFuZWxcbiAgIFRoZW1lOiAubGlnaHQgb24gPGh0bWw+ID0gbGlnaHQgbW9kZSwgZGVmYXVsdCA9IGRhcmsgbW9kZVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG5cbi8qIOKUgOKUgCBXcmFwcGVyIGFyb3VuZCBoZWFkZXIgKyBsYXVuY2hlciAocG9zaXRpb25pbmcgY29udGV4dCkg4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYWwtaGVhZGVyLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDQwO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyog4pSA4pSAIElubGluZSBhbmNob3IgaW5zaWRlIGhlYWRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5hbC1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDQ0cHg7XG4gIHotaW5kZXg6IDYwO1xufVxuXG4vKiDilIDilIAgTW9ycGhpbmcgY29udGFpbmVyIChhbmltYXRlcyB3aWR0aC9oZWlnaHQgdmlhIGZyYW1lci1tb3Rpb24pIOKUgCAqL1xuLmFsLW1vcnBoIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig0MHB4KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmFsLW1vcnBoOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5hbC1tb3JwaC5pcy1vcGVuIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMsIDIzLCAyMywgMC45NSk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDQwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuNDUpLFxuICAgICAgICAgICAgICAwIDJweCAxMnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLmxpZ2h0IC5hbC1tb3JwaCB7XG4gIGJvcmRlci1jb2xvcjogI2Q0ZDRkNDtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbn1cbi5saWdodCAuYWwtbW9ycGg6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNjNGM0YzQ7XG4gIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG59XG4ubGlnaHQgLmFsLW1vcnBoLmlzLW9wZW4ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nyk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDQwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuMSksXG4gICAgICAgICAgICAgIDAgMnB4IDEycHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNDBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQwcHgpO1xufVxuXG4vKiDilIDilIAgRG90cyBsYXllciAodmlzaWJsZSB3aGVuIGNsb3NlZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYWwtZG90cy1sYXllciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmFsLWRvdHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICBnYXA6IDQuNXB4O1xufVxuXG4uYWwtZG90IHtcbiAgd2lkdGg6IDdweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogI2Q0ZDRkNDtcbn1cblxuLyogQ29sb3JlZCBkb3RzIG1hdGNoaW5nIGFwcCBpY29ucyAqL1xuLmFsLWRvdDpudGgtY2hpbGQoMSkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGVhNWU5LCAjMDZiNmQ0KTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IC0ycHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuNSk7XG59XG4uYWwtZG90Om50aC1jaGlsZCgyKSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEsICMxNGI4YTYpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggLTJweCByZ2JhKDE2LCAxODUsIDEyOSwgMC41KTtcbn1cbi5hbC1kb3Q6bnRoLWNoaWxkKDMpIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2E4NTVmNywgIzhiNWNmNik7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCAtMnB4IHJnYmEoMTY4LCA4NSwgMjQ3LCAwLjUpO1xufVxuLmFsLWRvdDpudGgtY2hpbGQoNCkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjk3MzE2LCAjZWE1ODBjKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IC0ycHggcmdiYSgyNDksIDExNSwgMjIsIDAuNSk7XG59XG4uYWwtZG90Om50aC1jaGlsZCg1KSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZjQ0NDQsICNkYzI2MjYpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggLTJweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjUpO1xufVxuLmFsLWRvdDpudGgtY2hpbGQoNikge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOGI1Y2Y2LCAjN2MzYWVkKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IC0ycHggcmdiYSgxMzksIDkyLCAyNDYsIDAuNSk7XG59XG5cbi5saWdodCAuYWwtZG90IHtcbiAgYmFja2dyb3VuZDogIzUyNTI1Mjtcbn1cblxuLyog4pSA4pSAIFBhbmVsIGNvbnRlbnQgKHZpc2libGUgd2hlbiBvcGVuKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5hbC1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgOHB4O1xufVxuXG4vKiDilIDilIAgQ2xvc2UgYnV0dG9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmFsLWNsb3NlIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMsIGJvcmRlci1jb2xvciAwLjE1cztcbn1cbi5hbC1jbG9zZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLmFsLWNsb3NlIHN2ZyB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAjYTNhM2EzO1xufVxuLmFsLWNsb3NlOmhvdmVyIHN2ZyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ubGlnaHQgLmFsLWNsb3NlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDRkNGQ0O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmxpZ2h0IC5hbC1jbG9zZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1jb2xvcjogI2JiYjtcbn1cbi5saWdodCAuYWwtY2xvc2Ugc3ZnIHtcbiAgY29sb3I6ICM3MzczNzM7XG59XG4ubGlnaHQgLmFsLWNsb3NlOmhvdmVyIHN2ZyB7XG4gIGNvbG9yOiAjMTcxNzE3O1xufVxuXG4vKiDilIDilIAgUm93IG9mIDQgYXBwIGljb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmFsLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuLyog4pSA4pSAIEluZGl2aWR1YWwgYXBwIGJ1dHRvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5hbC1hcHAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7XG59XG4uYWwtYXBwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbn1cbi5hbC1hcHAuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cblxuLmxpZ2h0IC5hbC1hcHA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmxpZ2h0IC5hbC1hcHAuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cblxuLyog4pSA4pSAIEljb24gYm94IChncmFkaWVudCBzcXVhcmUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmFsLWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzLCB0cmFuc2Zvcm0gMC4xNXM7XG59XG4uYWwtYXBwOmhvdmVyIC5hbC1pY29uIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbn1cbi5hbC1pY29uLmlzLWFjdGl2ZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG4ubGlnaHQgLmFsLWljb24uaXMtYWN0aXZlIHtcbiAgb3V0bGluZS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cblxuLmFsLWljb24gc3ZnIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi8qIEljb24gY29sb3IgdmFyaWFudHMgKi9cbi5hbC1pY29uLS10cmFuc2xhdGlvbiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwZWE1ZTksICMwNmI2ZDQpO1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC00cHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuNCk7XG59XG4uYWwtaWNvbi0tc3VtbWFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEsICMxNGI4YTYpO1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC00cHggcmdiYSgxNiwgMTg1LCAxMjksIDAuNCk7XG59XG4uYWwtaWNvbi0tcXVlc3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjYTg1NWY3LCAjOGI1Y2Y2KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCAtNHB4IHJnYmEoMTY4LCA4NSwgMjQ3LCAwLjQpO1xufVxuLmFsLWljb24tLW9jciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOTczMTYsICNlYTU4MGMpO1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC00cHggcmdiYSgyNDksIDExNSwgMjIsIDAuNCk7XG59XG4uYWwtaWNvbi0tY2hhdCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZjQ0NDQsICNkYzI2MjYpO1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC00cHggcmdiYSgyMzksIDY4LCA2OCwgMC40KTtcbn1cbi5hbC1pY29uLS1yYWcge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjN2MzYWVkLCAjNmQyOGQ5KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCAtNHB4IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjQpO1xufVxuXG4vKiDilIDilIAgTGFiZWwgdW5kZXIgaWNvbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5hbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogI2EzYTNhMztcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXM7XG59XG4uYWwtYXBwOmhvdmVyIC5hbC1sYWJlbCB7XG4gIGNvbG9yOiAjZTVlNWU1O1xufVxuLmFsLWFwcC5pcy1hY3RpdmUgLmFsLWxhYmVsIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5saWdodCAuYWwtbGFiZWwge1xuICBjb2xvcjogIzczNzM3Mztcbn1cbi5saWdodCAuYWwtYXBwOmhvdmVyIC5hbC1sYWJlbCB7XG4gIGNvbG9yOiAjNDA0MDQwO1xufVxuLmxpZ2h0IC5hbC1hcHAuaXMtYWN0aXZlIC5hbC1sYWJlbCB7XG4gIGNvbG9yOiAjMTcxNzE3O1xufVxuIiwiLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBDb21wb25lbnQgc3R5bGVzIGV4dHJhY3RlZCBmcm9tIGlubGluZSBzdHlsZT17e319IGluIFJlYWN0IGZpbGVzXG4gICBUaGVtZTogLmxpZ2h0IG9uIDxodG1sPiA9IGxpZ2h0IG1vZGUsIGRlZmF1bHQgPSBkYXJrIG1vZGVcbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuXG4vKiDilIDilIAgR2xvYmFsOiBlbnN1cmUgYWxsIG5hdGl2ZSBpbnRlcmFjdGl2ZSBlbGVtZW50cyBzaG93IHBvaW50ZXIg4pSA4pSAICovXG5idXR0b24sXG5zZWxlY3QsXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyog4pSA4pSAIEltcG9ydCBNb2RhbCAoU3VtbWFyeUNoYXQsIFJBR1NlcnZpY2UpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4ubW9kYWwtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDUwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbn1cblxuLm1vZGFsLXBhbmVsLWxheW91dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiAwIDI1cHggNTBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5tb2RhbC10aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5tb2RhbC1jbG9zZS1yZXNldCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHg7XG59XG5cbi5tb2RhbC1zdWJ0aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubW9kYWwtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xufVxuXG4ubW9kYWwtYnRuLWxheW91dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7XG59XG5cbi5tb2RhbC1pY29uLWJveCB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm1vZGFsLWljb24tYm94LS1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xNSk7XG59XG5cbi5tb2RhbC1pY29uLWJveC0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KTtcbn1cblxuLm1vZGFsLWljb24tYm94LS1hbWJlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjE1KTtcbn1cblxuLm1vZGFsLWljb24tYm94IHN2ZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG59XG5cbi5tb2RhbC1pY29uLWJveC0tb3JhbmdlIHN2ZyB7XG4gIGNvbG9yOiAjZjk3MzE2O1xufVxuXG4ubW9kYWwtaWNvbi1ib3gtLWJsdWUgc3ZnIHtcbiAgY29sb3I6ICM2MGE1ZmE7XG59XG5cbi5tb2RhbC1pY29uLWJveC0tYW1iZXIgc3ZnIHtcbiAgY29sb3I6ICNmOTczMTY7XG59XG5cbi5tb2RhbC1sYWJlbC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1vZGFsLWhpbnQtc20ge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLyog4pSA4pSAIENsZWFyIGRvY3VtZW50IGJ1dHRvbiAoU3VtbWFyeUNoYXQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4uZG9jLWNsZWFyLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM4LCAzOCwgMzgsIDAuOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE1LCAxMTUsIDExNSwgMC40KTtcbiAgY29sb3I6ICNhM2EzYTM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTA7XG59XG5cbi5kb2MtY2xlYXItYnRuIHN2ZyB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG5cbi8qIOKUgOKUgCBUcmFuc2xhdGlvbiBhY3Rpb24gYnV0dG9ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLnRsLXBhbmVsLWlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZjk3MzE2O1xufVxuXG4udGwtcGFuZWwtb3V0cHV0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZjk3MzE2O1xuICBtaW4taGVpZ2h0OiAyODBweDtcbiAgbWF4LWhlaWdodDogNjAwcHg7XG59XG5cbi50bC1hY3Rpb24tYnRuIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgZm9udC1zaXplOiA5cHg7XG59XG5cbi50bC1hY3Rpb24tYnRuIHN2ZyB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiDilIDilIAgVHJhbnNsYXRpb24gXCJWaWV3XCIgYnV0dG9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4udGwtdmlldy1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxMnB4IDQwcHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDksIDExNSwgMjIsIDAuNSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2Y5NzMxNiwgI2VhNTgwYyk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgyMzQsIDg4LCAxMiwgMC4yNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi50bC12aWV3LWJ0bjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI4cHggcmdiYSgyMzQsIDg4LCAxMiwgMC40KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbn1cbi50bC12aWV3LWJ0biBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyog4pSA4pSAIENoYXQgSW5wdXQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi5jaGF0LXRleHRhcmVhLW1pbiB7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG59XG5cbi5jaGF0LXN0b3AtYnRuIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdG9wLWJnLCAjZmZmZmZmKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLmNoYXQtc3RvcC1zcXVhcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdG9wLXNxLCAjMDAwMDAwKTtcbn1cblxuLyog4pSA4pSAIENvZGUgQmxvY2sg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi5jb2RlLWJsb2NrLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jb2RlLWJsb2NrLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogNnB4IDhweCA2cHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweCAxMHB4IDAgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMzgsIDM4LCAwLjYpO1xufVxuLmxpZ2h0IC5jb2RlLWJsb2NrLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC44KTtcbn1cblxuLmNvZGUtYmxvY2stbGFuZyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY29sb3I6ICNhM2EzYTM7XG59XG4ubGlnaHQgLmNvZGUtYmxvY2stbGFuZyB7XG4gIGNvbG9yOiAjNzM3MzczO1xufVxuXG4uY29kZS1ibG9jay1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG59XG5cbi5jb2RlLWJsb2NrLWNvcHksXG4uY29kZS1ibG9jay1wcmV2aWV3IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE1LCAxMTUsIDExNSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMzgsIDM4LCAwLjgpO1xuICBjb2xvcjogI2EzYTNhMztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi5jb2RlLWJsb2NrLWNvcHk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuNCk7XG4gIGNvbG9yOiAjNmVlN2I3O1xufVxuXG4uY29kZS1ibG9jay1wcmV2aWV3OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1NiwgMTg5LCAyNDgsIDAuMTUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjQpO1xuICBjb2xvcjogIzdkZDNmYztcbn1cblxuLmxpZ2h0IC5jb2RlLWJsb2NrLWNvcHksXG4ubGlnaHQgLmNvZGUtYmxvY2stcHJldmlldyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC45KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBjb2xvcjogIzczNzM3Mztcbn1cblxuLmxpZ2h0IC5jb2RlLWJsb2NrLWNvcHk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4zNSk7XG4gIGNvbG9yOiAjMDQ3ODU3O1xufVxuXG4ubGlnaHQgLmNvZGUtYmxvY2stcHJldmlldzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEpO1xuICBib3JkZXItY29sb3I6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjM1KTtcbiAgY29sb3I6ICMwMjg0Yzc7XG59XG5cbi8qIOKUgOKUgCBDb2RlIFByZXZpZXcgUGFuZWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi5jb2RlLXByZXZpZXctcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDU2LCAxODksIDI0OCwgMC4yNSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC45NSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubGlnaHQgLmNvZGUtcHJldmlldy1wYW5lbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDU2LCAxODksIDI0OCwgMC4zKTtcbn1cblxuLmNvZGUtcHJldmlldy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjE1KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMjMsIDIzLCAwLjgpO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5saWdodCAuY29kZS1wcmV2aWV3LWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC45NSk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjIpO1xufVxuXG4uY29kZS1wcmV2aWV3LXRpdGxlLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuXG4uY29kZS1wcmV2aWV3LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogI2U1ZTVlNTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cbi5saWdodCAuY29kZS1wcmV2aWV3LXRpdGxlIHtcbiAgY29sb3I6ICMxNzE3MTc7XG59XG5cbi5jb2RlLXByZXZpZXctbGFuZy1iYWRnZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEyKTtcbiAgY29sb3I6ICM3ZGQzZmM7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjIpO1xufVxuLmxpZ2h0IC5jb2RlLXByZXZpZXctbGFuZy1iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjA4KTtcbiAgY29sb3I6ICMwMjg0Yzc7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg1NiwgMTg5LCAyNDgsIDAuMik7XG59XG5cbi5jb2RlLXByZXZpZXctY2xvc2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMTUsIDExNSwgMTE1LCAwLjMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNhM2EzYTM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG59XG4uY29kZS1wcmV2aWV3LWNsb3NlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC40KTtcbiAgY29sb3I6ICNmY2E1YTU7XG59XG4ubGlnaHQgLmNvZGUtcHJldmlldy1jbG9zZSB7XG4gIGNvbG9yOiAjNzM3MzczO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5saWdodCAuY29kZS1wcmV2aWV3LWNsb3NlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpO1xuICBjb2xvcjogI2RjMjYyNjtcbn1cblxuLmNvZGUtcHJldmlldy1ib2R5IHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNvZGUtcHJldmlldy1pZnJhbWUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8qIOKUgOKUgCBDaGF0IG1lc3NhZ2UgYXBwZWFyIGFuaW1hdGlvbiAocmVwbGFjZXMgZnJhbWVyLW1vdGlvbikg4pSA4pSA4pSA4pSA4pSAICovXG5cbi5jaGF0LW1zZy1hcHBlYXIge1xuICBhbmltYXRpb246IGNoYXQtZmFkZS1pbiAwLjNzIGVhc2Utb3V0IGJvdGg7XG59XG5cbkBrZXlmcmFtZXMgY2hhdC1mYWRlLWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi8qIOKUgOKUgCBDaGF0IHN0cmVhbWluZyBkb3RzIChDU1Mtb25seSwgcmVwbGFjZXMgZnJhbWVyLW1vdGlvbikg4pSA4pSA4pSA4pSA4pSAICovXG5cbi5jaGF0LWRvdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EzYTNhMztcbiAgYW5pbWF0aW9uOiBjaGF0LWRvdC1wdWxzZSAwLjlzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLmxpZ2h0IC5jaGF0LWRvdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzczNzM7XG59XG5cbi5jaGF0LWRvdC0xIHsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfVxuLmNoYXQtZG90LTIgeyBhbmltYXRpb24tZGVsYXk6IDAuMnM7IH1cbi5jaGF0LWRvdC0zIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjRzOyB9XG5cbkBrZXlmcmFtZXMgY2hhdC1kb3QtcHVsc2Uge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDAuNjsgfVxuICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMS4zKTsgb3BhY2l0eTogMTsgfVxufVxuXG4vKiDilIDilIAgQ2hhdCBTZWFyY2ggUG9wdXAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi5zZWFyY2gtcG9wdXAtYmFja2Ryb3Age1xuICB6LWluZGV4OiA5OTk5OTk7XG59XG5cbi5zZWFyY2gtcG9wdXAtY29udGFpbmVyIHtcbiAgei1pbmRleDogMTAwMDAwMDtcbn1cblxuLnNlYXJjaC1wb3B1cC1wYW5lbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAwMDAwMTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgd2lkdGg6IDY0MHB4O1xuICBoZWlnaHQ6IDUwdmg7XG59XG5cbi5zZWFyY2gtcmVzdWx0LWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyog4pSA4pSAIExpYnJhcnkgLyBTdW1tYXJ5IGRyYXdlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLmxpYnJhcnktZHJhd2VyIHtcbiAgd2lkdGg6IDQwMHB4O1xuICBtaW4td2lkdGg6IDQwMHB4O1xuICBtYXgtd2lkdGg6IDQwMHB4O1xufVxuXG4vKiDilIDilIAgTGlicmFyeSBvcGVuIGJ1dHRvbiBwb3NpdGlvbmluZyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLmxpYnJhcnktb3Blbi1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDMwO1xufVxuXG4vKiDilIDilIAgTW9uaXRvcmluZyBQYWdlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4ubW9uaXRvci0zZCB7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHBlcnNwZWN0aXZlOiAxMDAwcHg7XG59XG5cbi5tb25pdG9yLWNlbnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG59XG5cbi5tb25pdG9yLWNhbnZhcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5tb25pdG9yLWNhcmQtM2Qge1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xufVxuXG4ubW9uaXRvci1ncmFkaWVudC1iYXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwNmI2ZDQsICMzYjgyZjYpO1xufVxuXG4vKiDilIDilIAgTG9ncyBQYW5lbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLmxvZ3MtcHJlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMnJlbTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIGNvbG9yOiAjYTNhM2EzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzLCAyMywgMjMsIDAuNSk7XG59XG4ubGlnaHQgLmxvZ3MtcHJlIHtcbiAgY29sb3I6ICM1MjUyNTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbi5sb2dzLWNvcHktYnRuIHtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzcxNzE3YTtcbn1cblxuLmxvZ3MtaWNvbi1ib3gge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOGI1Y2Y2LCAjOTMzM2VhKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5sb2dzLWljb24tYm94IHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4vKiDilIDilIAgQWRtaW4gbW9kYWxzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuXG4uYWRtaW4tbW9kYWwtc20ge1xuICB3aWR0aDogMzYwcHg7XG59XG5cbi5hZG1pbi1tb2RhbC1tZCB7XG4gIHdpZHRoOiA0MDBweDtcbn1cblxuLyog4pSA4pSAIFJBRyBwcm9ncmVzcyBiYXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi5yYWctcHJvZ3Jlc3MtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjYyNjI2O1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5yYWctcHJvZ3Jlc3MtZmlsbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xufVxuXG4vKiDilIDilIAgUkFHIHVwbG9hZCBidXR0b24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi5yYWctdXBsb2FkLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjgyZjY7XG59XG4ucmFnLXVwbG9hZC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjU2M2ViO1xufVxuXG4vKiDilIDilIAgSW1wb3J0IG1vZGFsIChkYXJrIGRlZmF1bHQgKyBsaWdodCBvdmVycmlkZSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uaW1wb3J0LW1vZGFsLXBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MTcxNztcbiAgYm9yZGVyOiAxcHggc29saWQgIzQwNDA0MDtcbiAgY29sb3I6ICNmZmY7XG59XG4ubGlnaHQgLmltcG9ydC1tb2RhbC1wYW5lbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1jb2xvcjogI2Q0ZDRkNDtcbiAgY29sb3I6ICMxNzE3MTc7XG59XG5cbi5pbXBvcnQtbW9kYWwtdGl0bGUgeyBjb2xvcjogI2ZmZjsgfVxuLmxpZ2h0IC5pbXBvcnQtbW9kYWwtdGl0bGUgeyBjb2xvcjogIzE3MTcxNzsgfVxuXG4uaW1wb3J0LW1vZGFsLWNsb3NlIHsgY29sb3I6ICM3MzczNzM7IH1cbi5saWdodCAuaW1wb3J0LW1vZGFsLWNsb3NlIHsgY29sb3I6ICNhM2EzYTM7IH1cbi5saWdodCAuaW1wb3J0LW1vZGFsLWNsb3NlOmhvdmVyIHsgY29sb3I6ICM1MjUyNTI7IH1cblxuLmltcG9ydC1tb2RhbC1zdWJ0aXRsZSB7IGNvbG9yOiAjYTNhM2EzOyB9XG4ubGlnaHQgLmltcG9ydC1tb2RhbC1zdWJ0aXRsZSB7IGNvbG9yOiAjNTI1MjUyOyB9XG5cbi5pbXBvcnQtbW9kYWwtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjYyNjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzQwNDA0MDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5saWdodCAuaW1wb3J0LW1vZGFsLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2Q0ZDRkNDtcbiAgY29sb3I6ICMxNzE3MTc7XG59XG4uaW1wb3J0LW1vZGFsLWJ0bi1vcmFuZ2U6aG92ZXIgeyBib3JkZXItY29sb3I6ICNmOTczMTYgIWltcG9ydGFudDsgfVxuLmltcG9ydC1tb2RhbC1idG4tYmx1ZTpob3ZlciB7IGJvcmRlci1jb2xvcjogIzNiODJmNiAhaW1wb3J0YW50OyB9XG4uaW1wb3J0LW1vZGFsLWJ0bi1hbWJlcjpob3ZlciB7IGJvcmRlci1jb2xvcjogI2Y5NzMxNiAhaW1wb3J0YW50OyB9XG5cbi5pbXBvcnQtbW9kYWwtaGludCB7IGNvbG9yOiAjNzM3MzczOyB9XG4ubGlnaHQgLmltcG9ydC1tb2RhbC1oaW50IHsgY29sb3I6ICM3MzczNzM7IH1cblxuLyog4pSA4pSAIFBhZ2UgUmFuZ2UgTW9kYWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ucGFnZS1yYW5nZS1maWxlbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmZmY7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmxpZ2h0IC5wYWdlLXJhbmdlLWZpbGVuYW1lIHsgY29sb3I6ICMxNzE3MTc7IH1cblxuLnBhZ2UtcmFuZ2UtcGFnZWNvdW50IHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogI2EzYTNhMzsgfVxuLmxpZ2h0IC5wYWdlLXJhbmdlLXBhZ2Vjb3VudCB7IGNvbG9yOiAjNzM3MzczOyB9XG5cbi5wYWdlLXJhbmdlLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNhM2EzYTM7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5saWdodCAucGFnZS1yYW5nZS1sYWJlbCB7IGNvbG9yOiAjNTI1MjUyOyB9XG5cbi5wYWdlLXJhbmdlLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNjQsIDY0LCAwLjgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuOCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucGFnZS1yYW5nZS1pbnB1dDpmb2N1cyB7IGJvcmRlci1jb2xvcjogI2Y5NzMxNjsgfVxuLnBhZ2UtcmFuZ2UtaW5wdXQ6ZGlzYWJsZWQgeyBvcGFjaXR5OiAwLjU7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbi5wYWdlLXJhbmdlLWlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLnBhZ2UtcmFuZ2UtaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cbi5wYWdlLXJhbmdlLWlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbi5saWdodCAucGFnZS1yYW5nZS1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2Q0ZDRkNDtcbiAgY29sb3I6ICMxNzE3MTc7XG59XG4ubGlnaHQgLnBhZ2UtcmFuZ2UtaW5wdXQ6Zm9jdXMgeyBib3JkZXItY29sb3I6ICNmOTczMTY7IH1cblxuLnBhZ2UtcmFuZ2UtYnRuLWNhbmNlbCB7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg2NCwgNjQsIDY0LCAwLjgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNhM2EzYTM7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMsIGNvbG9yIDAuMTVzO1xufVxuLnBhZ2UtcmFuZ2UtYnRuLWNhbmNlbDpob3Zlcjpub3QoOmRpc2FibGVkKSB7IGJvcmRlci1jb2xvcjogcmdiYSgxNjMsMTYzLDE2MywwLjYpOyBjb2xvcjogI2U1ZTVlNTsgfVxuLmxpZ2h0IC5wYWdlLXJhbmdlLWJ0bi1jYW5jZWw6aG92ZXI6bm90KDpkaXNhYmxlZCkgeyBib3JkZXItY29sb3I6ICNhM2EzYTM7IGNvbG9yOiAjMTcxNzE3OyB9XG4ucGFnZS1yYW5nZS1idG4tY2FuY2VsOmRpc2FibGVkIHsgb3BhY2l0eTogMC41OyBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4ubGlnaHQgLnBhZ2UtcmFuZ2UtYnRuLWNhbmNlbCB7XG4gIGJvcmRlci1jb2xvcjogI2Q0ZDRkNDtcbiAgY29sb3I6ICM1MjUyNTI7XG59XG5cbi5wYWdlLXJhbmdlLWJ0bi1jb25maXJtIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzO1xufVxuLnBhZ2UtcmFuZ2UtYnRuLWNvbmZpcm06aG92ZXI6bm90KDpkaXNhYmxlZCkgeyBvcGFjaXR5OiAwLjk7IH1cbi5wYWdlLXJhbmdlLWJ0bi1jb25maXJtOmRpc2FibGVkIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4vKiDilIDilIAgT0NSIEhUTUwgY29udGVudCByZW5kZXJpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ub2NyLWh0bWwtY29udGVudCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5vY3ItaHRtbC1jb250ZW50IHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbjogMC43NXJlbSAwO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbn1cblxuLm9jci1odG1sLWNvbnRlbnQgdGFibGUgdGQsXG4ub2NyLWh0bWwtY29udGVudCB0YWJsZSB0aCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTE1LCAxMTUsIDExNSwgMC4zKTtcbiAgcGFkZGluZzogMC40cmVtIDAuNnJlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmxpZ2h0IC5vY3ItaHRtbC1jb250ZW50IHRhYmxlIHRkLFxuLmxpZ2h0IC5vY3ItaHRtbC1jb250ZW50IHRhYmxlIHRoIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5vY3ItaHRtbC1jb250ZW50IHRhYmxlIHRyOmZpcnN0LWNoaWxkIHRkLFxuLm9jci1odG1sLWNvbnRlbnQgdGFibGUgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4wOCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5saWdodCAub2NyLWh0bWwtY29udGVudCB0YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZCxcbi5saWdodCAub2NyLWh0bWwtY29udGVudCB0YWJsZSB0cjpmaXJzdC1jaGlsZCB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjEyKTtcbn1cblxuLm9jci1odG1sLWNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMC4zcmVtIDA7XG59XG5cbi5vY3ItaHRtbC1jb250ZW50IGgxLFxuLm9jci1odG1sLWNvbnRlbnQgaDIsXG4ub2NyLWh0bWwtY29udGVudCBoMyB7XG4gIG1hcmdpbjogMC43NXJlbSAwIDAuMzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5vY3ItaHRtbC1jb250ZW50IGgxIHsgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4ub2NyLWh0bWwtY29udGVudCBoMiB7IGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4ub2NyLWh0bWwtY29udGVudCBoMyB7IGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ub2NyLWh0bWwtY29udGVudCBiciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICBtYXJnaW4tdG9wOiAwLjE1cmVtO1xufVxuXG4ub2NyLWh0bWwtY29udGVudCB1bCxcbi5vY3ItaHRtbC1jb250ZW50IG9sIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW46IDAuMzVyZW0gMDtcbn1cblxuLm9jci1odG1sLWNvbnRlbnQgbGkge1xuICBtYXJnaW46IDAuMTVyZW0gMDtcbn1cblxuLm9jci1odG1sLWNvbnRlbnQgc3Ryb25nLFxuLm9jci1odG1sLWNvbnRlbnQgYiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjZmI5MjNjO1xufVxuXG4vKiDilIDilIAgT0NSIHRhYmxlIGV4cG9ydCBidXR0b24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ub2NyLXRhYmxlLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vY3ItdGFibGUtZXhwb3J0LWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ub2NyLXRhYmxlLWV4cG9ydC1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDVweCAxMnB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDksIDExNSwgMjIsIDAuMyk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjA4KTtcbiAgY29sb3I6ICNmYjkyM2M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzLCBjb2xvciAwLjE1cztcbn1cbi5vY3ItdGFibGUtZXhwb3J0LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjE4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC41KTtcbiAgY29sb3I6ICNmY2QzNGQ7XG59XG5cbi5saWdodCAub2NyLXRhYmxlLWV4cG9ydC1idG4ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjM1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDksIDExNSwgMjIsIDAuMDYpO1xuICBjb2xvcjogI2I0NTMwOTtcbn1cbi5saWdodCAub2NyLXRhYmxlLWV4cG9ydC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xNCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuNSk7XG4gIGNvbG9yOiAjOTI0MDBlO1xufVxuXG4vKiDilIDilIAgT0NSIGRyb3Atem9uZSBcIk5vdXZlYXVcIiBmbGFzaCBmZWVkYmFjayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5vY3ItZHJvcHpvbmUtZmxhc2ggPiBkaXYge1xuICBhbmltYXRpb246IG9jci1kei1wdWxzZSAwLjdzIGVhc2Utb3V0O1xufVxuQGtleWZyYW1lcyBvY3ItZHotcHVsc2Uge1xuICAwJSAgIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC43KTsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI0OSwgMTE1LCAyMiwgMC40KTsgfVxuICA1MCUgIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC41KTsgYm94LXNoYWRvdzogMCAwIDIwcHggNHB4IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjE1KTsgfVxuICAxMDAlIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDY0LCA2NCwgNjQsIDEpOyAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI0OSwgMTE1LCAyMiwgMCk7IH1cbn1cblxuLyog4pSA4pSAIFVzZXItR3JvdXBzIFRhYiAoaW5saW5lIHRvZ2dsZSBjaGlwcykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi51Zy10b2FzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYW5pbWF0aW9uOiB1Zy1zbGlkZS1pbiAwLjI1cyBlYXNlLW91dDtcbn1cbi51Zy10b2FzdC0tb2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpO1xuICBjb2xvcjogIzZlZTdiNztcbn1cbi51Zy10b2FzdC0tZXJyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4xMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7XG4gIGNvbG9yOiAjZmNhNWE1O1xufVxuLmxpZ2h0IC51Zy10b2FzdC0tb2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4wOCk7XG4gIGNvbG9yOiAjMDQ3ODU3O1xufVxuLmxpZ2h0IC51Zy10b2FzdC0tZXJyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4wOCk7XG4gIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4udWctY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyNjI2MjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzE3MTc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG4udWctY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzQwNDA0MDtcbn1cbi51Zy1jYXJkLS1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjM1KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjEpO1xufVxuLmxpZ2h0IC51Zy1jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xufVxuLmxpZ2h0IC51Zy1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDRkNGQ0O1xufVxuLmxpZ2h0IC51Zy1jYXJkLS1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjQ1KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjE1KTtcbn1cblxuLnVnLWNhcmQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cztcbn1cbi51Zy1jYXJkLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG59XG4ubGlnaHQgLnVnLWNhcmQtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbn1cblxuLnVnLWF2YXRhciB7XG4gIHdpZHRoOiAzOHB4O1xuICBoZWlnaHQ6IDM4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOTczMTYsICNlYTU4MGMpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnVnLWNoaXAtdHJheSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCAxNnB4IDE2cHg7XG4gIGFuaW1hdGlvbjogdWctc2xpZGUtaW4gMC4ycyBlYXNlLW91dDtcbn1cblxuLnVnLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDdweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gIGZvbnQtc2l6ZTogMTIuNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE4cyBlYXNlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi51Zy1jaGlwOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41NTtcbiAgY3Vyc29yOiB3YWl0O1xufVxuXG4vKiBBY3RpdmUgPSB1c2VyIElTIGluIHRoaXMgZ3JvdXAgKi9cbi51Zy1jaGlwLS1vbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjE1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC40KTtcbiAgY29sb3I6ICM2ZWU3Yjc7XG59XG4udWctY2hpcC0tb246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjQpO1xuICBjb2xvcjogI2ZjYTVhNTtcbn1cblxuLyogSW5hY3RpdmUgPSB1c2VyIGlzIE5PVCBpbiB0aGlzIGdyb3VwICovXG4udWctY2hpcC0tb2ZmIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuMjUpO1xuICBjb2xvcjogIzczNzM3MztcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG59XG4udWctY2hpcC0tb2ZmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuNCk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGNvbG9yOiAjNmVlN2I3O1xufVxuXG4vKiBBZG1pbiBncm91cCBhY2NlbnQgKi9cbi51Zy1jaGlwLS1hZG1pbi51Zy1jaGlwLS1vbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjE1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC40KTtcbiAgY29sb3I6ICNmYjkyM2M7XG59XG4udWctY2hpcC0tYWRtaW4udWctY2hpcC0tb246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjQpO1xuICBjb2xvcjogI2ZjYTVhNTtcbn1cbi51Zy1jaGlwLS1hZG1pbi51Zy1jaGlwLS1vZmY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC40KTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgY29sb3I6ICNmYjkyM2M7XG59XG5cbi8qIExpZ2h0IG1vZGUgb3ZlcnJpZGVzICovXG4ubGlnaHQgLnVnLWNoaXAtLW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMzUpO1xuICBjb2xvcjogIzA0Nzg1Nztcbn1cbi5saWdodCAudWctY2hpcC0tb246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjM1KTtcbiAgY29sb3I6ICNiOTFjMWM7XG59XG4ubGlnaHQgLnVnLWNoaXAtLW9mZiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC4wNik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjIpO1xuICBjb2xvcjogI2EzYTNhMztcbn1cbi5saWdodCAudWctY2hpcC0tb2ZmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMDgpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjM1KTtcbiAgY29sb3I6ICMwNDc4NTc7XG59XG4ubGlnaHQgLnVnLWNoaXAtLWFkbWluLnVnLWNoaXAtLW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuMzUpO1xuICBjb2xvcjogI2I0NTMwOTtcbn1cbi5saWdodCAudWctY2hpcC0tYWRtaW4udWctY2hpcC0tb246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjM1KTtcbiAgY29sb3I6ICNiOTFjMWM7XG59XG4ubGlnaHQgLnVnLWNoaXAtLWFkbWluLnVnLWNoaXAtLW9mZjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4zNSk7XG4gIGNvbG9yOiAjYjQ1MzA5O1xufVxuXG4udWctc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAwIDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyNjI2MjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzE3MTc7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG4udWctc2VhcmNoOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuNSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xMik7XG59XG4ubGlnaHQgLnVnLXNlYXJjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTtcbn1cbi5saWdodCAudWctc2VhcmNoOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuNSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xKTtcbn1cblxuLnVnLXNlYXJjaC1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6ICM3MzczNzM7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udWctc2VhcmNoLWlucHV0IHtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogMTBweCAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnVnLXNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzczNzM3Mztcbn1cbi5saWdodCAudWctc2VhcmNoLWlucHV0IHtcbiAgY29sb3I6ICMxNzE3MTc7XG59XG4ubGlnaHQgLnVnLXNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2EzYTNhMztcbn1cblxuQGtleWZyYW1lcyB1Zy1zbGlkZS1pbiB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4vKiDilIDilIAgRG9jdW1lbnQgUHJldmlldyBNb2RhbCBzY3JvbGxiYXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uZG9jLXByZXZpZXctc2Nyb2xsIHtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICBzY3JvbGxiYXItY29sb3I6ICNmOTczMTYgIzFhMWExYTtcbn1cbi5kb2MtcHJldmlldy1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEwcHg7XG59XG4uZG9jLXByZXZpZXctc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbi5kb2MtcHJldmlldy1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5NzMxNjtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjMWExYTFhO1xufVxuLmRvYy1wcmV2aWV3LXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmI5MjNjO1xufVxuXG4vKiDilIDilIAgRG9jdW1lbnQgUHJldmlldyBDaGF0IOKAlCBjb21wYWN0IG1hcmtkb3duIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmRvYy1jaGF0LW1hcmtkb3duIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLmRvYy1jaGF0LW1hcmtkb3duIHAge1xuICBtYXJnaW46IDAuMjVlbSAwO1xufVxuLmRvYy1jaGF0LW1hcmtkb3duIHVsLFxuLmRvYy1jaGF0LW1hcmtkb3duIG9sIHtcbiAgbWFyZ2luOiAwLjI1ZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcbn1cbi5kb2MtY2hhdC1tYXJrZG93biBwcmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbjogMC41ZW0gMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuLmRvYy1jaGF0LW1hcmtkb3duIGNvZGUge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZG9jLWNoYXQtbWFya2Rvd24gYmxvY2txdW90ZSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2E4NTVmNztcbiAgcGFkZGluZy1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbjogMC41ZW0gMDtcbiAgY29sb3I6ICNjMDg0ZmM7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5saWdodCAuZG9jLWNoYXQtbWFya2Rvd24gYmxvY2txdW90ZSB7XG4gIGNvbG9yOiAjN2MzYWVkO1xufVxuXG4vKiDilIDilIAgVGhpbmtpbmcgQmxvY2sg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbkBrZXlmcmFtZXMgdGhpbmtpbmctcHVsc2Uge1xuICAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlICAgICAgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMC45NSk7IH1cbn1cblxuLnRoaW5raW5nLWJsb2NrIHtcbiAgYW5pbWF0aW9uOiBjaGF0LWZhZGUtaW4gMC4zcyBlYXNlLW91dCBib3RoO1xufVxuXG4udGhpbmtpbmctc2Nyb2xsIHtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjQpIHRyYW5zcGFyZW50O1xufVxuLnRoaW5raW5nLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLnRoaW5raW5nLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi50aGlua2luZy1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuMzUpO1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG59XG4udGhpbmtpbmctc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjU1KTtcbn1cbi5saWdodCAudGhpbmtpbmctc2Nyb2xsIHtcbiAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDE4MCwgODMsIDksIDAuMykgdHJhbnNwYXJlbnQ7XG59XG4ubGlnaHQgLnRoaW5raW5nLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4MCwgODMsIDksIDAuMjUpO1xufVxuLmxpZ2h0IC50aGlua2luZy1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODAsIDgzLCA5LCAwLjQpO1xufVxuXG4udGhpbmtpbmctbWQge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4udGhpbmtpbmctbWQgcCB7XG4gIG1hcmdpbjogMC4yZW0gMDtcbn1cbi50aGlua2luZy1tZCB1bCxcbi50aGlua2luZy1tZCBvbCB7XG4gIG1hcmdpbjogMC4yZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcbn1cbi50aGlua2luZy1tZCBjb2RlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuMTUpO1xuICBwYWRkaW5nOiAxcHggNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubGlnaHQgLnRoaW5raW5nLW1kIGNvZGUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xufVxuXG4vKiDilIDilIAgQUkgTG9hZCBCYWRnZSBwdWxzZSArIHJpcHBsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbkBrZXlmcmFtZXMgYWktbG9hZC1wdWxzZSB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfVxuICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7IG9wYWNpdHk6IDAuNzsgfVxufVxuQGtleWZyYW1lcyBhaS1yaXBwbGUge1xuICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC42OyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDMpOyBvcGFjaXR5OiAwOyB9XG59XG5cbi8qIOKUgOKUgCBTcGluIGFuaW1hdGlvbiAoVGFpbHdpbmQtY29tcGF0aWJsZSB1dGlsaXR5KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB0byAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuLmFuaW1hdGUtc3BpbiB7XG4gIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi8qIOKUgOKUgCBBSSBMb2FkIFdhcm5pbmcgQmFubmVyIGZhZGUtaW4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5Aa2V5ZnJhbWVzIGFpLXdhcm5pbmctZmFkZS1pbiB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi8qIOKUgOKUgCBUaGlua2luZyBidXR0b24gbGlnaHQgbW9kZSBzdHlsZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ubGlnaHQgLnRoaW5raW5nLWJ0biB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuNSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDksIDExNSwgMjIsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2IoOTIsIDUxLCAyMykgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0IC50aGlua2luZy1idG46ZGlzYWJsZWQge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTA3LCAxMTQsIDEyOCwgMC4zKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyOSwgMjMxLCAyMzUsIDAuNikgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYigxMDcsIDExNCwgMTI4KSAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQgLnRoaW5raW5nLWRvdCB7XG4gIGJhY2tncm91bmQ6IHJnYigyNDksIDExNSwgMjIpICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodCAudGhpbmtpbmctYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xNSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYig5MiwgNTEsIDIzKSAhaW1wb3J0YW50O1xufVxuIiwiLyohIHRhaWx3aW5kY3NzIHY0LjEuMyB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20gKi9cbkBsYXllciBwcm9wZXJ0aWVzIHtcbiAgQHN1cHBvcnRzICgoKC13ZWJraXQtaHlwaGVuczogbm9uZSkpIGFuZCAobm90IChtYXJnaW4tdHJpbTogaW5saW5lKSkpIG9yICgoLW1vei1vcmllbnQ6IGlubGluZSkgYW5kIChub3QgKGNvbG9yOiByZ2IoZnJvbSByZWQgciBnIGIpKSkpIHtcbiAgICAqLCA6YmVmb3JlLCA6YWZ0ZXIsIDo6YmFja2Ryb3Age1xuICAgICAgLS10dy10cmFuc2xhdGUteDogMDtcbiAgICAgIC0tdHctdHJhbnNsYXRlLXk6IDA7XG4gICAgICAtLXR3LXRyYW5zbGF0ZS16OiAwO1xuICAgICAgLS10dy1yb3RhdGUteDogcm90YXRlWCgwKTtcbiAgICAgIC0tdHctcm90YXRlLXk6IHJvdGF0ZVkoMCk7XG4gICAgICAtLXR3LXJvdGF0ZS16OiByb3RhdGVaKDApO1xuICAgICAgLS10dy1za2V3LXg6IHNrZXdYKDApO1xuICAgICAgLS10dy1za2V3LXk6IHNrZXdZKDApO1xuICAgICAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XG4gICAgICAtLXR3LWRpdmlkZS15LXJldmVyc2U6IDA7XG4gICAgICAtLXR3LWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAtLXR3LWdyYWRpZW50LXBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgLS10dy1ncmFkaWVudC1mcm9tOiAjMDAwMDtcbiAgICAgIC0tdHctZ3JhZGllbnQtdmlhOiAjMDAwMDtcbiAgICAgIC0tdHctZ3JhZGllbnQtdG86ICMwMDAwO1xuICAgICAgLS10dy1ncmFkaWVudC1zdG9wczogaW5pdGlhbDtcbiAgICAgIC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzOiBpbml0aWFsO1xuICAgICAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiAwJTtcbiAgICAgIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA1MCU7XG4gICAgICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAxMDAlO1xuICAgICAgLS10dy1sZWFkaW5nOiBpbml0aWFsO1xuICAgICAgLS10dy1mb250LXdlaWdodDogaW5pdGlhbDtcbiAgICAgIC0tdHctdHJhY2tpbmc6IGluaXRpYWw7XG4gICAgICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xuICAgICAgLS10dy1zaGFkb3ctY29sb3I6IGluaXRpYWw7XG4gICAgICAtLXR3LXNoYWRvdy1hbHBoYTogMTAwJTtcbiAgICAgIC0tdHctaW5zZXQtc2hhZG93OiAwIDAgIzAwMDA7XG4gICAgICAtLXR3LWluc2V0LXNoYWRvdy1jb2xvcjogaW5pdGlhbDtcbiAgICAgIC0tdHctaW5zZXQtc2hhZG93LWFscGhhOiAxMDAlO1xuICAgICAgLS10dy1yaW5nLWNvbG9yOiBpbml0aWFsO1xuICAgICAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xuICAgICAgLS10dy1pbnNldC1yaW5nLWNvbG9yOiBpbml0aWFsO1xuICAgICAgLS10dy1pbnNldC1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xuICAgICAgLS10dy1yaW5nLWluc2V0OiBpbml0aWFsO1xuICAgICAgLS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4O1xuICAgICAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjtcbiAgICAgIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7XG4gICAgICAtLXR3LWJsdXI6IGluaXRpYWw7XG4gICAgICAtLXR3LWJyaWdodG5lc3M6IGluaXRpYWw7XG4gICAgICAtLXR3LWNvbnRyYXN0OiBpbml0aWFsO1xuICAgICAgLS10dy1ncmF5c2NhbGU6IGluaXRpYWw7XG4gICAgICAtLXR3LWh1ZS1yb3RhdGU6IGluaXRpYWw7XG4gICAgICAtLXR3LWludmVydDogaW5pdGlhbDtcbiAgICAgIC0tdHctb3BhY2l0eTogaW5pdGlhbDtcbiAgICAgIC0tdHctc2F0dXJhdGU6IGluaXRpYWw7XG4gICAgICAtLXR3LXNlcGlhOiBpbml0aWFsO1xuICAgICAgLS10dy1kcm9wLXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIC0tdHctZHJvcC1zaGFkb3ctY29sb3I6IGluaXRpYWw7XG4gICAgICAtLXR3LWRyb3Atc2hhZG93LWFscGhhOiAxMDAlO1xuICAgICAgLS10dy1kcm9wLXNoYWRvdy1zaXplOiBpbml0aWFsO1xuICAgICAgLS10dy1iYWNrZHJvcC1ibHVyOiBpbml0aWFsO1xuICAgICAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiBpbml0aWFsO1xuICAgICAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogaW5pdGlhbDtcbiAgICAgIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiBpbml0aWFsO1xuICAgICAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiBpbml0aWFsO1xuICAgICAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6IGluaXRpYWw7XG4gICAgICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6IGluaXRpYWw7XG4gICAgICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiBpbml0aWFsO1xuICAgICAgLS10dy1iYWNrZHJvcC1zZXBpYTogaW5pdGlhbDtcbiAgICAgIC0tdHctZHVyYXRpb246IGluaXRpYWw7XG4gICAgICAtLXR3LXNjYWxlLXg6IDE7XG4gICAgICAtLXR3LXNjYWxlLXk6IDE7XG4gICAgICAtLXR3LXNjYWxlLXo6IDE7XG4gICAgfVxuICB9XG59XG5cbkBsYXllciB0aGVtZSB7XG4gIDpyb290LCA6aG9zdCB7XG4gICAgLS1mb250LXNhbnM6IHVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgIC0tZm9udC1tb25vOiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgLS1jb2xvci1yZWQtNDAwOiBva2xjaCguNzA0IC4xOTEgMjIuMjE2KTtcbiAgICAtLWNvbG9yLXJlZC01MDA6IG9rbGNoKC42MzcgLjIzNyAyNS4zMzEpO1xuICAgIC0tY29sb3ItcmVkLTYwMDogb2tsY2goLjU3NyAuMjQ1IDI3LjMyNSk7XG4gICAgLS1jb2xvci1vcmFuZ2UtMTAwOiBva2xjaCguOTU0IC4wMzggNzUuMTY0KTtcbiAgICAtLWNvbG9yLW9yYW5nZS0zMDA6IG9rbGNoKC44MzcgLjEyOCA2Ni4yOSk7XG4gICAgLS1jb2xvci1vcmFuZ2UtNDAwOiBva2xjaCguNzUgLjE4MyA1NS45MzQpO1xuICAgIC0tY29sb3Itb3JhbmdlLTUwMDogb2tsY2goLjcwNSAuMjEzIDQ3LjYwNCk7XG4gICAgLS1jb2xvci1vcmFuZ2UtNjAwOiBva2xjaCguNjQ2IC4yMjIgNDEuMTE2KTtcbiAgICAtLWNvbG9yLW9yYW5nZS03MDA6IG9rbGNoKC41NTMgLjE5NSAzOC40MDIpO1xuICAgIC0tY29sb3ItYW1iZXItMTAwOiBva2xjaCguOTYyIC4wNTkgOTUuNjE3KTtcbiAgICAtLWNvbG9yLWFtYmVyLTMwMDogb2tsY2goLjg3OSAuMTY5IDkxLjYwNSk7XG4gICAgLS1jb2xvci1hbWJlci00MDA6IG9rbGNoKC44MjggLjE4OSA4NC40MjkpO1xuICAgIC0tY29sb3ItYW1iZXItNTAwOiBva2xjaCguNzY5IC4xODggNzAuMDgpO1xuICAgIC0tY29sb3ItYW1iZXItNjAwOiBva2xjaCguNjY2IC4xNzkgNTguMzE4KTtcbiAgICAtLWNvbG9yLWFtYmVyLTcwMDogb2tsY2goLjU1NSAuMTYzIDQ4Ljk5OCk7XG4gICAgLS1jb2xvci1lbWVyYWxkLTQwMDogb2tsY2goLjc2NSAuMTc3IDE2My4yMjMpO1xuICAgIC0tY29sb3ItZW1lcmFsZC01MDA6IG9rbGNoKC42OTYgLjE3IDE2Mi40OCk7XG4gICAgLS1jb2xvci1lbWVyYWxkLTYwMDogb2tsY2goLjU5NiAuMTQ1IDE2My4yMjUpO1xuICAgIC0tY29sb3ItZW1lcmFsZC03MDA6IG9rbGNoKC41MDggLjExOCAxNjUuNjEyKTtcbiAgICAtLWNvbG9yLXRlYWwtNTAwOiBva2xjaCguNzA0IC4xNCAxODIuNTAzKTtcbiAgICAtLWNvbG9yLWN5YW4tNDAwOiBva2xjaCguNzg5IC4xNTQgMjExLjUzKTtcbiAgICAtLWNvbG9yLWN5YW4tNTAwOiBva2xjaCguNzE1IC4xNDMgMjE1LjIyMSk7XG4gICAgLS1jb2xvci1ibHVlLTQwMDogb2tsY2goLjcwNyAuMTY1IDI1NC42MjQpO1xuICAgIC0tY29sb3ItYmx1ZS01MDA6IG9rbGNoKC42MjMgLjIxNCAyNTkuODE1KTtcbiAgICAtLWNvbG9yLWJsdWUtNjAwOiBva2xjaCguNTQ2IC4yNDUgMjYyLjg4MSk7XG4gICAgLS1jb2xvci1ibHVlLTcwMDogb2tsY2goLjQ4OCAuMjQzIDI2NC4zNzYpO1xuICAgIC0tY29sb3ItcHVycGxlLTQwMDogb2tsY2goLjcxNCAuMjAzIDMwNS41MDQpO1xuICAgIC0tY29sb3ItcHVycGxlLTUwMDogb2tsY2goLjYyNyAuMjY1IDMwMy45KTtcbiAgICAtLWNvbG9yLXB1cnBsZS02MDA6IG9rbGNoKC41NTggLjI4OCAzMDIuMzIxKTtcbiAgICAtLWNvbG9yLXB1cnBsZS03MDA6IG9rbGNoKC40OTYgLjI2NSAzMDEuOTI0KTtcbiAgICAtLWNvbG9yLXBpbmstNTAwOiBva2xjaCguNjU2IC4yNDEgMzU0LjMwOCk7XG4gICAgLS1jb2xvci1uZXV0cmFsLTUwOiBva2xjaCguOTg1IDAgMCk7XG4gICAgLS1jb2xvci1uZXV0cmFsLTEwMDogb2tsY2goLjk3IDAgMCk7XG4gICAgLS1jb2xvci1uZXV0cmFsLTIwMDogb2tsY2goLjkyMiAwIDApO1xuICAgIC0tY29sb3ItbmV1dHJhbC0zMDA6IG9rbGNoKC44NyAwIDApO1xuICAgIC0tY29sb3ItbmV1dHJhbC00MDA6IG9rbGNoKC43MDggMCAwKTtcbiAgICAtLWNvbG9yLW5ldXRyYWwtNTAwOiBva2xjaCguNTU2IDAgMCk7XG4gICAgLS1jb2xvci1uZXV0cmFsLTYwMDogb2tsY2goLjQzOSAwIDApO1xuICAgIC0tY29sb3ItbmV1dHJhbC03MDA6IG9rbGNoKC4zNzEgMCAwKTtcbiAgICAtLWNvbG9yLW5ldXRyYWwtODAwOiBva2xjaCguMjY5IDAgMCk7XG4gICAgLS1jb2xvci1uZXV0cmFsLTkwMDogb2tsY2goLjIwNSAwIDApO1xuICAgIC0tY29sb3ItbmV1dHJhbC05NTA6IG9rbGNoKC4xNDUgMCAwKTtcbiAgICAtLWNvbG9yLXdoaXRlOiAjZmZmO1xuICAgIC0tc3BhY2luZzogLjI1cmVtO1xuICAgIC0tY29udGFpbmVyLW1kOiAyOHJlbTtcbiAgICAtLWNvbnRhaW5lci0zeGw6IDQ4cmVtO1xuICAgIC0tY29udGFpbmVyLTR4bDogNTZyZW07XG4gICAgLS1jb250YWluZXItNnhsOiA3MnJlbTtcbiAgICAtLWNvbnRhaW5lci03eGw6IDgwcmVtO1xuICAgIC0tdGV4dC14czogLjc1cmVtO1xuICAgIC0tdGV4dC14cy0tbGluZS1oZWlnaHQ6IGNhbGMoMSAvIC43NSk7XG4gICAgLS10ZXh0LXNtOiAuODc1cmVtO1xuICAgIC0tdGV4dC1zbS0tbGluZS1oZWlnaHQ6IGNhbGMoMS4yNSAvIC44NzUpO1xuICAgIC0tdGV4dC1iYXNlOiAxcmVtO1xuICAgIC0tdGV4dC1iYXNlLS1saW5lLWhlaWdodDogY2FsYygxLjUgLyAxKTtcbiAgICAtLXRleHQtbGc6IDEuMTI1cmVtO1xuICAgIC0tdGV4dC1sZy0tbGluZS1oZWlnaHQ6IGNhbGMoMS43NSAvIDEuMTI1KTtcbiAgICAtLXRleHQteGw6IDEuMjVyZW07XG4gICAgLS10ZXh0LXhsLS1saW5lLWhlaWdodDogY2FsYygxLjc1IC8gMS4yNSk7XG4gICAgLS10ZXh0LTJ4bDogMS41cmVtO1xuICAgIC0tdGV4dC0yeGwtLWxpbmUtaGVpZ2h0OiBjYWxjKDIgLyAxLjUpO1xuICAgIC0tdGV4dC0zeGw6IDEuODc1cmVtO1xuICAgIC0tdGV4dC0zeGwtLWxpbmUtaGVpZ2h0OiBjYWxjKDIuMjUgLyAxLjg3NSk7XG4gICAgLS10ZXh0LTR4bDogMi4yNXJlbTtcbiAgICAtLXRleHQtNHhsLS1saW5lLWhlaWdodDogY2FsYygyLjUgLyAyLjI1KTtcbiAgICAtLXRleHQtNXhsOiAzcmVtO1xuICAgIC0tdGV4dC01eGwtLWxpbmUtaGVpZ2h0OiAxO1xuICAgIC0tZm9udC13ZWlnaHQtbm9ybWFsOiA0MDA7XG4gICAgLS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcbiAgICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XG4gICAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gICAgLS1mb250LXdlaWdodC1ibGFjazogOTAwO1xuICAgIC0tdHJhY2tpbmctd2lkZXI6IC4wNWVtO1xuICAgIC0tbGVhZGluZy1yZWxheGVkOiAxLjYyNTtcbiAgICAtLXJhZGl1cy0yeGw6IDFyZW07XG4gICAgLS1yYWRpdXMtM3hsOiAxLjVyZW07XG4gICAgLS1hbmltYXRlLXB1bHNlOiBwdWxzZSAycyBjdWJpYy1iZXppZXIoLjQsIDAsIC42LCAxKSBpbmZpbml0ZTtcbiAgICAtLWJsdXItc206IDhweDtcbiAgICAtLWJsdXIteGw6IDI0cHg7XG4gICAgLS1ibHVyLTJ4bDogNDBweDtcbiAgICAtLWJsdXItM3hsOiA2NHB4O1xuICAgIC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAuMTVzO1xuICAgIC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XG4gICAgLS1kZWZhdWx0LWZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMpO1xuICAgIC0tZGVmYXVsdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IHZhcigtLWZvbnQtc2Fucy0tZm9udC1mZWF0dXJlLXNldHRpbmdzKTtcbiAgICAtLWRlZmF1bHQtZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IHZhcigtLWZvbnQtc2Fucy0tZm9udC12YXJpYXRpb24tc2V0dGluZ3MpO1xuICAgIC0tZGVmYXVsdC1tb25vLWZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICAgIC0tZGVmYXVsdC1tb25vLWZvbnQtZmVhdHVyZS1zZXR0aW5nczogdmFyKC0tZm9udC1tb25vLS1mb250LWZlYXR1cmUtc2V0dGluZ3MpO1xuICAgIC0tZGVmYXVsdC1tb25vLWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiB2YXIoLS1mb250LW1vbm8tLWZvbnQtdmFyaWF0aW9uLXNldHRpbmdzKTtcbiAgfVxufVxuXG5AbGF5ZXIgYmFzZSB7XG4gICosIDphZnRlciwgOmJlZm9yZSwgOjpiYWNrZHJvcCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IDAgc29saWQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICA6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogMCBzb2xpZDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGh0bWwsIDpob3N0IHtcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgdGFiLXNpemU6IDQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZGVmYXVsdC1mb250LWZhbWlseSwgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIpO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogdmFyKC0tZGVmYXVsdC1mb250LWZlYXR1cmUtc2V0dGluZ3MsIG5vcm1hbCk7XG4gICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IHZhcigtLWRlZmF1bHQtZm9udC12YXJpYXRpb24tc2V0dGluZ3MsIG5vcm1hbCk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIGJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgaHIge1xuICAgIGhlaWdodDogMDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG4gIH1cblxuICBhYmJyOndoZXJlKFt0aXRsZV0pIHtcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIH1cblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIH1cblxuICBiLCBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICBjb2RlLCBrYmQsIHNhbXAsIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWRlZmF1bHQtbW9uby1mb250LWZhbWlseSwgdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlKTtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IHZhcigtLWRlZmF1bHQtbW9uby1mb250LWZlYXR1cmUtc2V0dGluZ3MsIG5vcm1hbCk7XG4gICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IHZhcigtLWRlZmF1bHQtbW9uby1mb250LXZhcmlhdGlvbi1zZXR0aW5ncywgbm9ybWFsKTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIHN1Yiwgc3VwIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0uMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtLjVlbTtcbiAgfVxuXG4gIHRhYmxlIHtcbiAgICB0ZXh0LWluZGVudDogMDtcbiAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIDotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogYXV0bztcbiAgfVxuXG4gIHByb2dyZXNzIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICBvbCwgdWwsIG1lbnUge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICBpbWcsIHN2ZywgdmlkZW8sIGNhbnZhcywgYXVkaW8sIGlmcmFtZSwgZW1iZWQsIG9iamVjdCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZywgdmlkZW8ge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICBidXR0b24sIGlucHV0LCBzZWxlY3QsIG9wdGdyb3VwLCB0ZXh0YXJlYSB7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7XG4gICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaGVyaXQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7XG4gICAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaGVyaXQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgOndoZXJlKHNlbGVjdDppcyhbbXVsdGlwbGVdLCBbc2l6ZV0pKSBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gIDp3aGVyZShzZWxlY3Q6aXMoW211bHRpcGxlXSwgW3NpemVdKSkgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjBweDtcbiAgfVxuXG4gIDo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0cHg7XG4gIH1cblxuICA6OnBsYWNlaG9sZGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGN1cnJlbnRDb2xvciA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgfVxuXG4gIDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgOjotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUge1xuICAgIG1pbi1oZWlnaHQ6IDFsaDtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB9XG5cbiAgOjotd2Via2l0LWRhdGV0aW1lLWVkaXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG5cbiAgOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdCB7XG4gICAgcGFkZGluZy1ibG9jazogMDtcbiAgfVxuXG4gIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LXllYXItZmllbGQge1xuICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gIH1cblxuICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCB7XG4gICAgcGFkZGluZy1ibG9jazogMDtcbiAgfVxuXG4gIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZCB7XG4gICAgcGFkZGluZy1ibG9jazogMDtcbiAgfVxuXG4gIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWhvdXItZmllbGQge1xuICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gIH1cblxuICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taW51dGUtZmllbGQge1xuICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gIH1cblxuICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1zZWNvbmQtZmllbGQge1xuICAgIHBhZGRpbmctYmxvY2s6IDA7XG4gIH1cblxuICA6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taWxsaXNlY29uZC1maWVsZCB7XG4gICAgcGFkZGluZy1ibG9jazogMDtcbiAgfVxuXG4gIDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1lcmlkaWVtLWZpZWxkIHtcbiAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICB9XG5cbiAgOi1tb3otdWktaW52YWxpZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIGJ1dHRvbiwgaW5wdXQ6d2hlcmUoW3R5cGU9XCJidXR0b25cIl0sIFt0eXBlPVwicmVzZXRcIl0sIFt0eXBlPVwic3VibWl0XCJdKSB7XG4gICAgYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gICAgYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICA6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIFtoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj1cInVudGlsLWZvdW5kXCJdKSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICoge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyKTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1yaW5nKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICoge1xuICAgICAgb3V0bGluZS1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1yaW5nKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tZm9yZWdyb3VuZCk7XG4gIH1cblxuICAqIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlcik7XG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tcmluZyk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAqIHtcbiAgICAgIG91dGxpbmUtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tcmluZykgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWZvcmVncm91bmQpO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIH1cblxuICA6d2hlcmUoOm5vdCg6aGFzKFtjbGFzcyo9XCIgdGV4dC1cIl0pLCA6bm90KDpoYXMoW2NsYXNzXj1cInRleHQtXCJdKSkpKSBoMSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTJ4bCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxuXG4gIDp3aGVyZSg6bm90KDpoYXMoW2NsYXNzKj1cIiB0ZXh0LVwiXSksIDpub3QoOmhhcyhbY2xhc3NePVwidGV4dC1cIl0pKSkpIGgyIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cblxuICA6d2hlcmUoOm5vdCg6aGFzKFtjbGFzcyo9XCIgdGV4dC1cIl0pLCA6bm90KDpoYXMoW2NsYXNzXj1cInRleHQtXCJdKSkpKSBoMyB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG5cbiAgOndoZXJlKDpub3QoOmhhcyhbY2xhc3MqPVwiIHRleHQtXCJdKSwgOm5vdCg6aGFzKFtjbGFzc149XCJ0ZXh0LVwiXSkpKSkgaDQsIDp3aGVyZSg6bm90KDpoYXMoW2NsYXNzKj1cIiB0ZXh0LVwiXSksIDpub3QoOmhhcyhbY2xhc3NePVwidGV4dC1cIl0pKSkpIGxhYmVsLCA6d2hlcmUoOm5vdCg6aGFzKFtjbGFzcyo9XCIgdGV4dC1cIl0pLCA6bm90KDpoYXMoW2NsYXNzXj1cInRleHQtXCJdKSkpKSBidXR0b24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG5cbiAgOndoZXJlKDpub3QoOmhhcyhbY2xhc3MqPVwiIHRleHQtXCJdKSwgOm5vdCg6aGFzKFtjbGFzc149XCJ0ZXh0LVwiXSkpKSkgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG5cbkBsYXllciB1dGlsaXRpZXMge1xuICAucG9pbnRlci1ldmVudHMtbm9uZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAudmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIC5hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICAucmVsYXRpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGF0aWMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gIH1cblxuICAuaW5zZXQtMCB7XG4gICAgaW5zZXQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgfVxuXG4gIC5pbnNldC14LTAge1xuICAgIGluc2V0LWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDApO1xuICB9XG5cbiAgLmluc2V0LXktMCB7XG4gICAgaW5zZXQtYmxvY2s6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgfVxuXG4gIC50b3AtMCB7XG4gICAgdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gIH1cblxuICAudG9wLTBcXC41IHtcbiAgICB0b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAuNSk7XG4gIH1cblxuICAudG9wLTEge1xuICAgIHRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICB9XG5cbiAgLnRvcC0xXFwvMiB7XG4gICAgdG9wOiA1MCU7XG4gIH1cblxuICAucmlnaHQtMCB7XG4gICAgcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgfVxuXG4gIC5yaWdodC0wXFwuNSB7XG4gICAgcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAuNSk7XG4gIH1cblxuICAucmlnaHQtMSB7XG4gICAgcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAxKTtcbiAgfVxuXG4gIC5sZWZ0LTAge1xuICAgIGxlZnQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAwKTtcbiAgfVxuXG4gIC5sZWZ0LTBcXC41IHtcbiAgICBsZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogLjUpO1xuICB9XG5cbiAgLmxlZnQtNCB7XG4gICAgbGVmdDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICB9XG5cbiAgLnotMTAge1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG5cbiAgLnotMjAge1xuICAgIHotaW5kZXg6IDIwO1xuICB9XG5cbiAgLm14LWF1dG8ge1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIH1cblxuICAubXQtMFxcLjUge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAuNSk7XG4gIH1cblxuICAubXQtMSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICB9XG5cbiAgLm10LTIge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIC5tdC0zIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMyk7XG4gIH1cblxuICAubXQtNCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICB9XG5cbiAgLm10LTYge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgfVxuXG4gIC5tdC04IHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCk7XG4gIH1cblxuICAubWItMFxcLjUge1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgKiAuNSk7XG4gIH1cblxuICAubWItMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICB9XG5cbiAgLm1iLTIge1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIC5tYi0zIHtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMyk7XG4gIH1cblxuICAubWItNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICB9XG5cbiAgLm1iLTYge1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgfVxuXG4gIC5tYi04IHtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCk7XG4gIH1cblxuICAubWItMTIge1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgKiAxMik7XG4gIH1cblxuICAuYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAuZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxuXG4gIC5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG5cbiAgLnRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gIC5oLTEge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpO1xuICB9XG5cbiAgLmgtMVxcLjUge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEuNSk7XG4gIH1cblxuICAuaC0yIHtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIC5oLTMge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDMpO1xuICB9XG5cbiAgLmgtM1xcLjUge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDMuNSk7XG4gIH1cblxuICAuaC00IHtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgfVxuXG4gIC5oLTUge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDUpO1xuICB9XG5cbiAgLmgtNiB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogNik7XG4gIH1cblxuICAuaC03IHtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA3KTtcbiAgfVxuXG4gIC5oLTgge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpO1xuICB9XG5cbiAgLmgtMTAge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEwKTtcbiAgfVxuXG4gIC5oLTEyIHtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAxMik7XG4gIH1cblxuICAuaC0xNCB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMTQpO1xuICB9XG5cbiAgLmgtMTYge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDE2KTtcbiAgfVxuXG4gIC5oLTIwIHtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiAyMCk7XG4gIH1cblxuICAuaC0yNCB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMjQpO1xuICB9XG5cbiAgLmgtMzIge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDMyKTtcbiAgfVxuXG4gIC5oLVxcWzJweFxcXSB7XG4gICAgaGVpZ2h0OiAycHg7XG4gIH1cblxuICAuaC1mdWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuaC1zY3JlZW4ge1xuICAgIGhlaWdodDogMTAwdmg7XG4gIH1cblxuICAubWF4LWgtXFxbMjAwcHhcXF0ge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB9XG5cbiAgLm1pbi1oLXNjcmVlbiB7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gIH1cblxuICAudy0xXFwuNSB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAxLjUpO1xuICB9XG5cbiAgLnctMiB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIC53LTMge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMyk7XG4gIH1cblxuICAudy0zXFwuNSB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAzLjUpO1xuICB9XG5cbiAgLnctNCB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgfVxuXG4gIC53LTUge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNSk7XG4gIH1cblxuICAudy02IHtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDYpO1xuICB9XG5cbiAgLnctNyB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiA3KTtcbiAgfVxuXG4gIC53LTgge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCk7XG4gIH1cblxuICAudy0xMCB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAxMCk7XG4gIH1cblxuICAudy0xMiB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAxMik7XG4gIH1cblxuICAudy0xNCB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAxNCk7XG4gIH1cblxuICAudy0xNiB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAxNik7XG4gIH1cblxuICAudy0yMCB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAyMCk7XG4gIH1cblxuICAudy0yNCB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAyNCk7XG4gIH1cblxuICAudy0zMiB7XG4gICAgd2lkdGg6IGNhbGModmFyKC0tc3BhY2luZykgKiAzMik7XG4gIH1cblxuICAudy1mdWxsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5tYXgtdy0zeGwge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLTN4bCk7XG4gIH1cblxuICAubWF4LXctNHhsIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci00eGwpO1xuICB9XG5cbiAgLm1heC13LTZ4bCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItNnhsKTtcbiAgfVxuXG4gIC5tYXgtdy03eGwge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLTd4bCk7XG4gIH1cblxuICAubWF4LXctXFxbODBcXCVcXF0ge1xuICAgIG1heC13aWR0aDogODAlO1xuICB9XG5cbiAgLm1heC13LW1kIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1tZCk7XG4gIH1cblxuICAubWluLXctMCB7XG4gICAgbWluLXdpZHRoOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMCk7XG4gIH1cblxuICAuZmxleC0xIHtcbiAgICBmbGV4OiAxO1xuICB9XG5cbiAgLmZsZXgtc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgLi10cmFuc2xhdGUteS0xXFwvMiB7XG4gICAgLS10dy10cmFuc2xhdGUteTogY2FsYyhjYWxjKDEgLyAyICogMTAwJSkgKiAtMSk7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS10dy10cmFuc2xhdGUteCkgdmFyKC0tdHctdHJhbnNsYXRlLXkpO1xuICB9XG5cbiAgLi1yb3RhdGUtOTAge1xuICAgIHJvdGF0ZTogLTkwZGVnO1xuICB9XG5cbiAgLnRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtOiB2YXIoLS10dy1yb3RhdGUteCkgdmFyKC0tdHctcm90YXRlLXkpIHZhcigtLXR3LXJvdGF0ZS16KSB2YXIoLS10dy1za2V3LXgpIHZhcigtLXR3LXNrZXcteSk7XG4gIH1cblxuICAuYW5pbWF0ZS1wdWxzZSB7XG4gICAgYW5pbWF0aW9uOiB2YXIoLS1hbmltYXRlLXB1bHNlKTtcbiAgfVxuXG4gIC5jdXJzb3ItcG9pbnRlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLnJlc2l6ZS1ub25lIHtcbiAgICByZXNpemU6IG5vbmU7XG4gIH1cblxuICAuZ3JpZC1jb2xzLTEge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gIC5ncmlkLWNvbHMtMiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG5cbiAgLmdyaWQtY29scy0zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cblxuICAuZmxleC1jb2wge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuZmxleC13cmFwIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAuaXRlbXMtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLml0ZW1zLWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG5cbiAgLml0ZW1zLXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuXG4gIC5qdXN0aWZ5LWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuXG4gIC5qdXN0aWZ5LWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAuanVzdGlmeS1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cblxuICAuanVzdGlmeS1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgLmdhcC0xIHtcbiAgICBnYXA6IGNhbGModmFyKC0tc3BhY2luZykgKiAxKTtcbiAgfVxuXG4gIC5nYXAtMVxcLjUge1xuICAgIGdhcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEuNSk7XG4gIH1cblxuICAuZ2FwLTIge1xuICAgIGdhcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpO1xuICB9XG5cbiAgLmdhcC0zIHtcbiAgICBnYXA6IGNhbGModmFyKC0tc3BhY2luZykgKiAzKTtcbiAgfVxuXG4gIC5nYXAtNCB7XG4gICAgZ2FwOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gIH1cblxuICAuZ2FwLTYge1xuICAgIGdhcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDYpO1xuICB9XG5cbiAgLmdhcC04IHtcbiAgICBnYXA6IGNhbGModmFyKC0tc3BhY2luZykgKiA4KTtcbiAgfVxuXG4gIDp3aGVyZSguc3BhY2UteS0xID4gOm5vdCg6bGFzdC1jaGlsZCkpIHtcbiAgICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEpICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG4gICAgbWFyZ2luLWJsb2NrLWVuZDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogMSkgKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIH1cblxuICA6d2hlcmUoLnNwYWNlLXktMiA+IDpub3QoOmxhc3QtY2hpbGQpKSB7XG4gICAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiAyKSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IGNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xuICB9XG5cbiAgOndoZXJlKC5zcGFjZS15LTMgPiA6bm90KDpsYXN0LWNoaWxkKSkge1xuICAgIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogMykgKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiAzKSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcbiAgfVxuXG4gIDp3aGVyZSguc3BhY2UteS00ID4gOm5vdCg6bGFzdC1jaGlsZCkpIHtcbiAgICAtLXR3LXNwYWNlLXktcmV2ZXJzZTogMDtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7XG4gICAgbWFyZ2luLWJsb2NrLWVuZDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogNCkgKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIH1cblxuICA6d2hlcmUoLnNwYWNlLXktNiA+IDpub3QoOmxhc3QtY2hpbGQpKSB7XG4gICAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiA2KSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO1xuICAgIG1hcmdpbi1ibG9jay1lbmQ6IGNhbGMoY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDYpICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO1xuICB9XG5cbiAgOndoZXJlKC5zcGFjZS15LTggPiA6bm90KDpsYXN0LWNoaWxkKSkge1xuICAgIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYyhjYWxjKHZhcigtLXNwYWNpbmcpICogOCkgKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiA4KSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcbiAgfVxuXG4gIDp3aGVyZSguc3BhY2UteS0xMiA+IDpub3QoOmxhc3QtY2hpbGQpKSB7XG4gICAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiAxMikgKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcbiAgICBtYXJnaW4tYmxvY2stZW5kOiBjYWxjKGNhbGModmFyKC0tc3BhY2luZykgKiAxMikgKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XG4gIH1cblxuICAuZ2FwLXgtNiB7XG4gICAgY29sdW1uLWdhcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDYpO1xuICB9XG5cbiAgLmdhcC15LTIge1xuICAgIHJvdy1nYXA6IGNhbGModmFyKC0tc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIDp3aGVyZSguZGl2aWRlLXkgPiA6bm90KDpsYXN0LWNoaWxkKSkge1xuICAgIC0tdHctZGl2aWRlLXktcmV2ZXJzZTogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHZhcigtLXR3LWJvcmRlci1zdHlsZSk7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogY2FsYygxcHggKiB2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSk7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogY2FsYygxcHggKiBjYWxjKDEgLSB2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSkpO1xuICB9XG5cbiAgOndoZXJlKC5kaXZpZGUtbmV1dHJhbC04MDAgPiA6bm90KDpsYXN0LWNoaWxkKSkge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC04MDApO1xuICB9XG5cbiAgLnRydW5jYXRlIHtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAub3ZlcmZsb3ctYXV0byB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAub3ZlcmZsb3ctaGlkZGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLm92ZXJmbG93LXgtYXV0byB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC5vdmVyZmxvdy15LWF1dG8ge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAucm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICB9XG5cbiAgLnJvdW5kZWQtMnhsIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMnhsKTtcbiAgfVxuXG4gIC5yb3VuZGVkLTN4bCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLTN4bCk7XG4gIH1cblxuICAucm91bmRlZC1mdWxsIHtcbiAgICBib3JkZXItcmFkaXVzOiAzLjQwMjgyZTM4cHg7XG4gIH1cblxuICAucm91bmRlZC1sZyB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgfVxuXG4gIC5yb3VuZGVkLXNtIHtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgIC0gNHB4KTtcbiAgfVxuXG4gIC5yb3VuZGVkLXhsIHtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgICsgNHB4KTtcbiAgfVxuXG4gIC5yb3VuZGVkLXQtc20ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAgLSA0cHgpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigtLXJhZGl1cykgIC0gNHB4KTtcbiAgfVxuXG4gIC5ib3JkZXIge1xuICAgIGJvcmRlci1zdHlsZTogdmFyKC0tdHctYm9yZGVyLXN0eWxlKTtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgfVxuXG4gIC5ib3JkZXItMiB7XG4gICAgYm9yZGVyLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICB9XG5cbiAgLmJvcmRlci10IHtcbiAgICBib3JkZXItdG9wLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbiAgfVxuXG4gIC5ib3JkZXItciB7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICB9XG5cbiAgLmJvcmRlci1iIHtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiB2YXIoLS10dy1ib3JkZXItc3R5bGUpO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgfVxuXG4gIC5ib3JkZXItbC00IHtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogdmFyKC0tdHctYm9yZGVyLXN0eWxlKTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogNHB4O1xuICB9XG5cbiAgLmJvcmRlci1kYXNoZWQge1xuICAgIC0tdHctYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gIH1cblxuICAuYm9yZGVyLWFtYmVyLTQwMCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci00MDApO1xuICB9XG5cbiAgLmJvcmRlci1hbWJlci01MDAge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW1iZXItNTAwKTtcbiAgfVxuXG4gIC5ib3JkZXItYW1iZXItNTAwXFwvMjAge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYm9yZGVyLWFtYmVyLTUwMFxcLzIwIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5ib3JkZXItYW1iZXItNTAwXFwvMzAge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMzAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYm9yZGVyLWFtYmVyLTUwMFxcLzMwIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5ib3JkZXItYW1iZXItNTAwXFwvNTAge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYm9yZGVyLWFtYmVyLTUwMFxcLzUwIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5ib3JkZXItYmx1ZS01MDBcXC81MCB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjYyMyAuMjE0IDI1OS44MTUpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmJvcmRlci1ibHVlLTUwMFxcLzUwIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1ibHVlLTUwMCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmJvcmRlci1lbWVyYWxkLTUwMFxcLzUwIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjk2IC4xNyAxNjIuNDgpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmJvcmRlci1lbWVyYWxkLTUwMFxcLzUwIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1lbWVyYWxkLTUwMCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmJvcmRlci1uZXV0cmFsLTgwMCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIH1cblxuICAuYm9yZGVyLW9yYW5nZS01MDAge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itb3JhbmdlLTUwMCk7XG4gIH1cblxuICAuYm9yZGVyLW9yYW5nZS01MDBcXC8yMCB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjcwNSAuMjEzIDQ3LjYwNCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYm9yZGVyLW9yYW5nZS01MDBcXC8yMCB7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmJvcmRlci1vcmFuZ2UtNTAwXFwvNTAge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmJvcmRlci1vcmFuZ2UtNTAwXFwvNTAge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW9yYW5nZS01MDApIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5ib3JkZXItb3JhbmdlLTYwMCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1vcmFuZ2UtNjAwKTtcbiAgfVxuXG4gIC5ib3JkZXItcHVycGxlLTUwMFxcLzUwIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjI3IC4yNjUgMzAzLjkpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmJvcmRlci1wdXJwbGUtNTAwXFwvNTAge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLXB1cnBsZS01MDApIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5ib3JkZXItdC10cmFuc3BhcmVudCB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDA7XG4gIH1cblxuICAuYmctYW1iZXItNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci00MDApO1xuICB9XG5cbiAgLmJnLWFtYmVyLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW1iZXItNTAwKTtcbiAgfVxuXG4gIC5iZy1hbWJlci01MDBcXC8xMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYmctYW1iZXItNTAwXFwvMTAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5iZy1hbWJlci01MDBcXC8yMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYmctYW1iZXItNTAwXFwvMjAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5iZy1ibHVlLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZS00MDApO1xuICB9XG5cbiAgLmJnLWJsdWUtNTAwXFwvMjAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjIzIC4yMTQgMjU5LjgxNSkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYmctYmx1ZS01MDBcXC8yMCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWJsdWUtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuYmctZW1lcmFsZC00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWVtZXJhbGQtNDAwKTtcbiAgfVxuXG4gIC5iZy1lbWVyYWxkLTUwMFxcLzIwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjY5NiAuMTcgMTYyLjQ4KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5iZy1lbWVyYWxkLTUwMFxcLzIwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItZW1lcmFsZC01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5iZy1uZXV0cmFsLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC00MDApO1xuICB9XG5cbiAgLmJnLW5ldXRyYWwtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcwMCk7XG4gIH1cblxuICAuYmctbmV1dHJhbC04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtODAwKTtcbiAgfVxuXG4gIC5iZy1uZXV0cmFsLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC05MDApO1xuICB9XG5cbiAgLmJnLW5ldXRyYWwtOTAwXFwvMzAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguMjA1IDAgMCkgMzAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYmctbmV1dHJhbC05MDBcXC8zMCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuYmctbmV1dHJhbC05MDBcXC81MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC4yMDUgMCAwKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5iZy1uZXV0cmFsLTkwMFxcLzUwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItbmV1dHJhbC05MDApIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5iZy1uZXV0cmFsLTkwMFxcLzYwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjIwNSAwIDApIDYwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmJnLW5ldXRyYWwtOTAwXFwvNjAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1uZXV0cmFsLTkwMCkgNjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmJnLW5ldXRyYWwtOTAwXFwvODAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguMjA1IDAgMCkgODAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYmctbmV1dHJhbC05MDBcXC84MCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKSA4MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuYmctbmV1dHJhbC05MDBcXC85MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC4yMDUgMCAwKSA5MCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5iZy1uZXV0cmFsLTkwMFxcLzkwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItbmV1dHJhbC05MDApIDkwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5iZy1uZXV0cmFsLTk1MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC05NTApO1xuICB9XG5cbiAgLmJnLW9yYW5nZS00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW9yYW5nZS00MDApO1xuICB9XG5cbiAgLmJnLW9yYW5nZS01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW9yYW5nZS01MDApO1xuICB9XG5cbiAgLmJnLW9yYW5nZS01MDBcXC8xMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmJnLW9yYW5nZS01MDBcXC8xMCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW9yYW5nZS01MDApIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5iZy1vcmFuZ2UtNTAwXFwvMjAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5iZy1vcmFuZ2UtNTAwXFwvMjAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuYmctcHVycGxlLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHVycGxlLTQwMCk7XG4gIH1cblxuICAuYmctcHVycGxlLTUwMFxcLzIwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjYyNyAuMjY1IDMwMy45KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5iZy1wdXJwbGUtNTAwXFwvMjAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1wdXJwbGUtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuYmctcmVkLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcmVkLTQwMCk7XG4gIH1cblxuICAuYmctcmVkLTUwMFxcLzIwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjYzNyAuMjM3IDI1LjMzMSkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuYmctcmVkLTUwMFxcLzIwIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItcmVkLTUwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmJnLXRyYW5zcGFyZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDtcbiAgfVxuXG4gIC5iZy13aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB9XG5cbiAgLmJnLWdyYWRpZW50LXRvLWJyIHtcbiAgICAtLXR3LWdyYWRpZW50LXBvc2l0aW9uOiB0byBib3R0b20gcmlnaHQgaW4gb2tsYWI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSk7XG4gIH1cblxuICAuYmctZ3JhZGllbnQtdG8tciB7XG4gICAgLS10dy1ncmFkaWVudC1wb3NpdGlvbjogdG8gcmlnaHQgaW4gb2tsYWI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSk7XG4gIH1cblxuICAuYmctZ3JhZGllbnQtdG8tdCB7XG4gICAgLS10dy1ncmFkaWVudC1wb3NpdGlvbjogdG8gdG9wIGluIG9rbGFiO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpO1xuICB9XG5cbiAgLmZyb20tYW1iZXItNDAwIHtcbiAgICAtLXR3LWdyYWRpZW50LWZyb206IHZhcigtLWNvbG9yLWFtYmVyLTQwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5mcm9tLWFtYmVyLTUwMCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1hbWJlci01MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAuZnJvbS1hbWJlci01MDBcXC81IHtcbiAgICAtLXR3LWdyYWRpZW50LWZyb206IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzY5IC4xODggNzAuMDgpIDUlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5mcm9tLWFtYmVyLTUwMFxcLzUge1xuICAgICAgLS10dy1ncmFkaWVudC1mcm9tOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWFtYmVyLTUwMCkgNSUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZnJvbS1hbWJlci01MDBcXC8xMCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjc2OSAuMTg4IDcwLjA4KSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmZyb20tYW1iZXItNTAwXFwvMTAge1xuICAgICAgLS10dy1ncmFkaWVudC1mcm9tOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWFtYmVyLTUwMCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmZyb20tYW1iZXItNTAwXFwvMjAge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5mcm9tLWFtYmVyLTUwMFxcLzIwIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtZnJvbTogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5mcm9tLWFtYmVyLTYwMCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1hbWJlci02MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAuZnJvbS1ibHVlLTUwMCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1ibHVlLTUwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5mcm9tLWJsdWUtNTAwXFwvMjAge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC42MjMgLjIxNCAyNTkuODE1KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmZyb20tYmx1ZS01MDBcXC8yMCB7XG4gICAgICAtLXR3LWdyYWRpZW50LWZyb206IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItYmx1ZS01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5mcm9tLWVtZXJhbGQtNTAwIHtcbiAgICAtLXR3LWdyYWRpZW50LWZyb206IHZhcigtLWNvbG9yLWVtZXJhbGQtNTAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLmZyb20tbmV1dHJhbC05MDAge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3ItbmV1dHJhbC05MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAuZnJvbS1uZXV0cmFsLTk1MCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1uZXV0cmFsLTk1MCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5mcm9tLW9yYW5nZS01MDAge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3Itb3JhbmdlLTUwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5mcm9tLW9yYW5nZS01MDBcXC8xMCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjcwNSAuMjEzIDQ3LjYwNCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5mcm9tLW9yYW5nZS01MDBcXC8xMCB7XG4gICAgICAtLXR3LWdyYWRpZW50LWZyb206IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmZyb20tcHVycGxlLTUwMCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1wdXJwbGUtNTAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLmZyb20tcmVkLTUwMFxcLzIwIHtcbiAgICAtLXR3LWdyYWRpZW50LWZyb206IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjM3IC4yMzcgMjUuMzMxKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmZyb20tcmVkLTUwMFxcLzIwIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtZnJvbTogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1yZWQtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAudmlhLW5ldXRyYWwtOTAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXZpYTogdmFyKC0tY29sb3ItbmV1dHJhbC05MDApO1xuICAgIC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC12aWEpIHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzKTtcbiAgfVxuXG4gIC52aWEtbmV1dHJhbC05MDBcXC85NSB7XG4gICAgLS10dy1ncmFkaWVudC12aWE6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguMjA1IDAgMCkgOTUlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC12aWEtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXZpYSkgdmFyKC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLnZpYS1uZXV0cmFsLTkwMFxcLzk1IHtcbiAgICAgIC0tdHctZ3JhZGllbnQtdmlhOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKSA5NSUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAudmlhLW9yYW5nZS01MDAge1xuICAgIC0tdHctZ3JhZGllbnQtdmlhOiB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXZpYS1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdmlhKSB2YXIoLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcyk7XG4gIH1cblxuICAudmlhLW9yYW5nZS01MDBcXC8yMCB7XG4gICAgLS10dy1ncmFkaWVudC12aWE6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXZpYS1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdmlhKSB2YXIoLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcyk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAudmlhLW9yYW5nZS01MDBcXC8yMCB7XG4gICAgICAtLXR3LWdyYWRpZW50LXZpYTogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAudG8tYW1iZXItNDAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1hbWJlci00MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAudG8tYW1iZXItNTAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1hbWJlci01MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAudG8tYW1iZXItNTAwXFwvMTAge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzY5IC4xODggNzAuMDgpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAudG8tYW1iZXItNTAwXFwvMTAge1xuICAgICAgLS10dy1ncmFkaWVudC10bzogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC50by1hbWJlci01MDBcXC8yMCB7XG4gICAgLS10dy1ncmFkaWVudC10bzogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC50by1hbWJlci01MDBcXC8yMCB7XG4gICAgICAtLXR3LWdyYWRpZW50LXRvOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWFtYmVyLTUwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLnRvLWFtYmVyLTYwMCB7XG4gICAgLS10dy1ncmFkaWVudC10bzogdmFyKC0tY29sb3ItYW1iZXItNjAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLnRvLWN5YW4tNDAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1jeWFuLTQwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC50by1jeWFuLTUwMCB7XG4gICAgLS10dy1ncmFkaWVudC10bzogdmFyKC0tY29sb3ItY3lhbi01MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAudG8tY3lhbi01MDBcXC8yMCB7XG4gICAgLS10dy1ncmFkaWVudC10bzogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MTUgLjE0MyAyMTUuMjIxKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLnRvLWN5YW4tNTAwXFwvMjAge1xuICAgICAgLS10dy1ncmFkaWVudC10bzogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1jeWFuLTUwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLnRvLW5ldXRyYWwtOTUwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1uZXV0cmFsLTk1MCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC50by1vcmFuZ2UtNDAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1vcmFuZ2UtNDAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLnRvLW9yYW5nZS01MDAge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IHZhcigtLWNvbG9yLW9yYW5nZS01MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAudG8tb3JhbmdlLTUwMFxcLzUge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSA1JSwgdHJhbnNwYXJlbnQpO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAudG8tb3JhbmdlLTUwMFxcLzUge1xuICAgICAgLS10dy1ncmFkaWVudC10bzogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKSA1JSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC50by1vcmFuZ2UtNTAwXFwvMTAge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLnRvLW9yYW5nZS01MDBcXC8xMCB7XG4gICAgICAtLXR3LWdyYWRpZW50LXRvOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW9yYW5nZS01MDApIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC50by1vcmFuZ2UtNTAwXFwvMjAge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLnRvLW9yYW5nZS01MDBcXC8yMCB7XG4gICAgICAtLXR3LWdyYWRpZW50LXRvOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW9yYW5nZS01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC50by1vcmFuZ2UtNjAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1vcmFuZ2UtNjAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLnRvLW9yYW5nZS02MDBcXC8yMCB7XG4gICAgLS10dy1ncmFkaWVudC10bzogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC42NDYgLjIyMiA0MS4xMTYpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAudG8tb3JhbmdlLTYwMFxcLzIwIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtdG86IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTYwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLnRvLXBpbmstNTAwIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1waW5rLTUwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC50by10ZWFsLTUwMCB7XG4gICAgLS10dy1ncmFkaWVudC10bzogdmFyKC0tY29sb3ItdGVhbC01MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAudG8tdHJhbnNwYXJlbnQge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IHRyYW5zcGFyZW50O1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAuYmctY2xpcC10ZXh0IHtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIH1cblxuICAub2JqZWN0LWNvbnRhaW4ge1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAucC0xXFwuNSB7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEuNSk7XG4gIH1cblxuICAucC0yIHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMik7XG4gIH1cblxuICAucC0zIHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogMyk7XG4gIH1cblxuICAucC00IHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gIH1cblxuICAucC01IHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNSk7XG4gIH1cblxuICAucC02IHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNik7XG4gIH1cblxuICAucC04IHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNpbmcpICogOCk7XG4gIH1cblxuICAucC0xNiB7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDE2KTtcbiAgfVxuXG4gIC5weC0yIHtcbiAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpO1xuICB9XG5cbiAgLnB4LTJcXC41IHtcbiAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIuNSk7XG4gIH1cblxuICAucHgtMyB7XG4gICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tc3BhY2luZykgKiAzKTtcbiAgfVxuXG4gIC5weC00IHtcbiAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDQpO1xuICB9XG5cbiAgLnB4LTUge1xuICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNSk7XG4gIH1cblxuICAucHgtNiB7XG4gICAgcGFkZGluZy1pbmxpbmU6IGNhbGModmFyKC0tc3BhY2luZykgKiA2KTtcbiAgfVxuXG4gIC5weC04IHtcbiAgICBwYWRkaW5nLWlubGluZTogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDgpO1xuICB9XG5cbiAgLnB5LTEge1xuICAgIHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tc3BhY2luZykgKiAxKTtcbiAgfVxuXG4gIC5weS0xXFwuNSB7XG4gICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEuNSk7XG4gIH1cblxuICAucHktMiB7XG4gICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDIpO1xuICB9XG5cbiAgLnB5LTMge1xuICAgIHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tc3BhY2luZykgKiAzKTtcbiAgfVxuXG4gIC5weS00IHtcbiAgICBwYWRkaW5nLWJsb2NrOiBjYWxjKHZhcigtLXNwYWNpbmcpICogNCk7XG4gIH1cblxuICAucHktNiB7XG4gICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDYpO1xuICB9XG5cbiAgLnB5LTgge1xuICAgIHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tc3BhY2luZykgKiA4KTtcbiAgfVxuXG4gIC5weS0xMiB7XG4gICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDEyKTtcbiAgfVxuXG4gIC5weS0xNiB7XG4gICAgcGFkZGluZy1ibG9jazogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDE2KTtcbiAgfVxuXG4gIC5wdC02IHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAqIDYpO1xuICB9XG5cbiAgLnByLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZykgKiA0KTtcbiAgfVxuXG4gIC5wbC0xMiB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmcpICogMTIpO1xuICB9XG5cbiAgLnRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAudGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgLmZvbnQtbW9ubyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIH1cblxuICAudGV4dC0yeGwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS10dy1sZWFkaW5nLCB2YXIoLS10ZXh0LTJ4bC0tbGluZS1oZWlnaHQpKTtcbiAgfVxuXG4gIC50ZXh0LTN4bCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQtM3hsLS1saW5lLWhlaWdodCkpO1xuICB9XG5cbiAgLnRleHQtNHhsIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdHctbGVhZGluZywgdmFyKC0tdGV4dC00eGwtLWxpbmUtaGVpZ2h0KSk7XG4gIH1cblxuICAudGV4dC01eGwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC01eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS10dy1sZWFkaW5nLCB2YXIoLS10ZXh0LTV4bC0tbGluZS1oZWlnaHQpKTtcbiAgfVxuXG4gIC50ZXh0LWJhc2Uge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdHctbGVhZGluZywgdmFyKC0tdGV4dC1iYXNlLS1saW5lLWhlaWdodCkpO1xuICB9XG5cbiAgLnRleHQtbGcge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQtbGctLWxpbmUtaGVpZ2h0KSk7XG4gIH1cblxuICAudGV4dC1zbSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdHctbGVhZGluZywgdmFyKC0tdGV4dC1zbS0tbGluZS1oZWlnaHQpKTtcbiAgfVxuXG4gIC50ZXh0LXhsIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS10dy1sZWFkaW5nLCB2YXIoLS10ZXh0LXhsLS1saW5lLWhlaWdodCkpO1xuICB9XG5cbiAgLnRleHQteHMge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14cyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXR3LWxlYWRpbmcsIHZhcigtLXRleHQteHMtLWxpbmUtaGVpZ2h0KSk7XG4gIH1cblxuICAudGV4dC1cXFsxNXB4XFxdIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICAubGVhZGluZy1yZWxheGVkIHtcbiAgICAtLXR3LWxlYWRpbmc6IHZhcigtLWxlYWRpbmctcmVsYXhlZCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxlYWRpbmctcmVsYXhlZCk7XG4gIH1cblxuICAuZm9udC1ibGFjayB7XG4gICAgLS10dy1mb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYmxhY2spO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ibGFjayk7XG4gIH1cblxuICAuZm9udC1ib2xkIHtcbiAgICAtLXR3LWZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAuZm9udC1tZWRpdW0ge1xuICAgIC0tdHctZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIH1cblxuICAuZm9udC1zZW1pYm9sZCB7XG4gICAgLS10dy1mb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAudHJhY2tpbmctd2lkZXIge1xuICAgIC0tdHctdHJhY2tpbmc6IHZhcigtLXRyYWNraW5nLXdpZGVyKTtcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXIpO1xuICB9XG5cbiAgLndoaXRlc3BhY2Utbm93cmFwIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLndoaXRlc3BhY2UtcHJlLXdyYXAge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgfVxuXG4gIC50ZXh0LWFtYmVyLTQwMCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTQwMCk7XG4gIH1cblxuICAudGV4dC1hbWJlci01MDAge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci01MDApO1xuICB9XG5cbiAgLnRleHQtYmx1ZS00MDAge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTQwMCk7XG4gIH1cblxuICAudGV4dC1lbWVyYWxkLTQwMCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWVtZXJhbGQtNDAwKTtcbiAgfVxuXG4gIC50ZXh0LW5ldXRyYWwtMTAwIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0xMDApO1xuICB9XG5cbiAgLnRleHQtbmV1dHJhbC0zMDAge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMwMCk7XG4gIH1cblxuICAudGV4dC1uZXV0cmFsLTQwMCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNDAwKTtcbiAgfVxuXG4gIC50ZXh0LW5ldXRyYWwtNTAwIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01MDApO1xuICB9XG5cbiAgLnRleHQtbmV1dHJhbC02MDAge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTYwMCk7XG4gIH1cblxuICAudGV4dC1vcmFuZ2UtMzAwIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itb3JhbmdlLTMwMCk7XG4gIH1cblxuICAudGV4dC1vcmFuZ2UtNDAwIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itb3JhbmdlLTQwMCk7XG4gIH1cblxuICAudGV4dC1wdXJwbGUtNDAwIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHVycGxlLTQwMCk7XG4gIH1cblxuICAudGV4dC1yZWQtNDAwIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTQwMCk7XG4gIH1cblxuICAudGV4dC10cmFuc3BhcmVudCB7XG4gICAgY29sb3I6ICMwMDAwO1xuICB9XG5cbiAgLnRleHQtd2hpdGUge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIH1cblxuICAudXBwZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnBsYWNlaG9sZGVyLW5ldXRyYWwtNTAwOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNTAwKTtcbiAgfVxuXG4gIC5vcGFjaXR5LTAge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAub3BhY2l0eS01IHtcbiAgICBvcGFjaXR5OiAuMDU7XG4gIH1cblxuICAub3BhY2l0eS0yMCB7XG4gICAgb3BhY2l0eTogLjI7XG4gIH1cblxuICAub3BhY2l0eS0zMCB7XG4gICAgb3BhY2l0eTogLjM7XG4gIH1cblxuICAub3BhY2l0eS01MCB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICAub3BhY2l0eS1cXFswXFwuMDJcXF0ge1xuICAgIG9wYWNpdHk6IC4wMjtcbiAgfVxuXG4gIC5zaGFkb3ctMnhsIHtcbiAgICAtLXR3LXNoYWRvdzogMCAyNXB4IDUwcHggLTEycHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCAjMDAwMDAwNDApO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LWluc2V0LXNoYWRvdyksIHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSwgdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3cpO1xuICB9XG5cbiAgLnNoYWRvdy1sZyB7XG4gICAgLS10dy1zaGFkb3c6IDAgMTBweCAxNXB4IC0zcHggdmFyKC0tdHctc2hhZG93LWNvbG9yLCAjMDAwMDAwMWEpLCAwIDRweCA2cHggLTRweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsICMwMDAwMDAxYSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tdHctaW5zZXQtc2hhZG93KSwgdmFyKC0tdHctaW5zZXQtcmluZy1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLCB2YXIoLS10dy1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXNoYWRvdyk7XG4gIH1cblxuICAuc2hhZG93LW9yYW5nZS01MDBcXC8xMCB7XG4gICAgLS10dy1zaGFkb3ctY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5zaGFkb3ctb3JhbmdlLTUwMFxcLzEwIHtcbiAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMTAlLCB0cmFuc3BhcmVudCkgdmFyKC0tdHctc2hhZG93LWFscGhhKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5zaGFkb3ctb3JhbmdlLTUwMFxcLzIwIHtcbiAgICAtLXR3LXNoYWRvdy1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLnNoYWRvdy1vcmFuZ2UtNTAwXFwvMjAge1xuICAgICAgLS10dy1zaGFkb3ctY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKSAyMCUsIHRyYW5zcGFyZW50KSB2YXIoLS10dy1zaGFkb3ctYWxwaGEpLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLnNoYWRvdy1vcmFuZ2UtNTAwXFwvMzAge1xuICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjcwNSAuMjEzIDQ3LjYwNCkgMzAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuc2hhZG93LW9yYW5nZS01MDBcXC8zMCB7XG4gICAgICAtLXR3LXNoYWRvdy1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW9yYW5nZS01MDApIDMwJSwgdHJhbnNwYXJlbnQpIHZhcigtLXR3LXNoYWRvdy1hbHBoYSksIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuc2hhZG93LW9yYW5nZS01MDBcXC81MCB7XG4gICAgLS10dy1zaGFkb3ctY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5zaGFkb3ctb3JhbmdlLTUwMFxcLzUwIHtcbiAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgNTAlLCB0cmFuc3BhcmVudCkgdmFyKC0tdHctc2hhZG93LWFscGhhKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5ibHVyLTJ4bCB7XG4gICAgLS10dy1ibHVyOiBibHVyKHZhcigtLWJsdXItMnhsKSk7XG4gICAgZmlsdGVyOiB2YXIoLS10dy1ibHVyLCApIHZhcigtLXR3LWJyaWdodG5lc3MsICkgdmFyKC0tdHctY29udHJhc3QsICkgdmFyKC0tdHctZ3JheXNjYWxlLCApIHZhcigtLXR3LWh1ZS1yb3RhdGUsICkgdmFyKC0tdHctaW52ZXJ0LCApIHZhcigtLXR3LXNhdHVyYXRlLCApIHZhcigtLXR3LXNlcGlhLCApIHZhcigtLXR3LWRyb3Atc2hhZG93LCApO1xuICB9XG5cbiAgLmJsdXItM3hsIHtcbiAgICAtLXR3LWJsdXI6IGJsdXIodmFyKC0tYmx1ci0zeGwpKTtcbiAgICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIsICkgdmFyKC0tdHctYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1jb250cmFzdCwgKSB2YXIoLS10dy1ncmF5c2NhbGUsICkgdmFyKC0tdHctaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1pbnZlcnQsICkgdmFyKC0tdHctc2F0dXJhdGUsICkgdmFyKC0tdHctc2VwaWEsICkgdmFyKC0tdHctZHJvcC1zaGFkb3csICk7XG4gIH1cblxuICAuYmx1ci1zbSB7XG4gICAgLS10dy1ibHVyOiBibHVyKHZhcigtLWJsdXItc20pKTtcbiAgICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIsICkgdmFyKC0tdHctYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1jb250cmFzdCwgKSB2YXIoLS10dy1ncmF5c2NhbGUsICkgdmFyKC0tdHctaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1pbnZlcnQsICkgdmFyKC0tdHctc2F0dXJhdGUsICkgdmFyKC0tdHctc2VwaWEsICkgdmFyKC0tdHctZHJvcC1zaGFkb3csICk7XG4gIH1cblxuICAuYmx1ci14bCB7XG4gICAgLS10dy1ibHVyOiBibHVyKHZhcigtLWJsdXIteGwpKTtcbiAgICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIsICkgdmFyKC0tdHctYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1jb250cmFzdCwgKSB2YXIoLS10dy1ncmF5c2NhbGUsICkgdmFyKC0tdHctaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1pbnZlcnQsICkgdmFyKC0tdHctc2F0dXJhdGUsICkgdmFyKC0tdHctc2VwaWEsICkgdmFyKC0tdHctZHJvcC1zaGFkb3csICk7XG4gIH1cblxuICAuZmlsdGVyIHtcbiAgICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIsICkgdmFyKC0tdHctYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1jb250cmFzdCwgKSB2YXIoLS10dy1ncmF5c2NhbGUsICkgdmFyKC0tdHctaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1pbnZlcnQsICkgdmFyKC0tdHctc2F0dXJhdGUsICkgdmFyKC0tdHctc2VwaWEsICkgdmFyKC0tdHctZHJvcC1zaGFkb3csICk7XG4gIH1cblxuICAuYmFja2Ryb3AtYmx1ci1zbSB7XG4gICAgLS10dy1iYWNrZHJvcC1ibHVyOiBibHVyKHZhcigtLWJsdXItc20pKTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogdmFyKC0tdHctYmFja2Ryb3AtYmx1ciwgKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzLCApIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0LCApIHZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSwgKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlLCApIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCwgKSB2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5LCApIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlLCApIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhLCApO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tdHctYmFja2Ryb3AtYmx1ciwgKSB2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzLCApIHZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0LCApIHZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSwgKSB2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlLCApIHZhcigtLXR3LWJhY2tkcm9wLWludmVydCwgKSB2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5LCApIHZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlLCApIHZhcigtLXR3LWJhY2tkcm9wLXNlcGlhLCApO1xuICB9XG5cbiAgLmJhY2tkcm9wLWJsdXIteGwge1xuICAgIC0tdHctYmFja2Ryb3AtYmx1cjogYmx1cih2YXIoLS1ibHVyLXhsKSk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIsICkgdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCwgKSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUsICkgdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQsICkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSwgKSB2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSwgKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSwgKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLXR3LWJhY2tkcm9wLWJsdXIsICkgdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCwgKSB2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUsICkgdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQsICkgdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSwgKSB2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSwgKSB2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSwgKTtcbiAgfVxuXG4gIC50cmFuc2l0aW9uIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZSwgLS10dy1ncmFkaWVudC1mcm9tLCAtLXR3LWdyYWRpZW50LXZpYSwgLS10dy1ncmFkaWVudC10bywgb3BhY2l0eSwgYm94LXNoYWRvdywgdHJhbnNmb3JtLCB0cmFuc2xhdGUsIHNjYWxlLCByb3RhdGUsIGZpbHRlciwgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIsIGJhY2tkcm9wLWZpbHRlcjtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXR3LWR1cmF0aW9uLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKTtcbiAgfVxuXG4gIC50cmFuc2l0aW9uLWFsbCB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10dy1lYXNlLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHctZHVyYXRpb24sIHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpO1xuICB9XG5cbiAgLnRyYW5zaXRpb24tY29sb3JzIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZSwgLS10dy1ncmFkaWVudC1mcm9tLCAtLXR3LWdyYWRpZW50LXZpYSwgLS10dy1ncmFkaWVudC10bztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdHctZWFzZSwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXR3LWR1cmF0aW9uLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24pKTtcbiAgfVxuXG4gIC50cmFuc2l0aW9uLW9wYWNpdHkge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXR3LWVhc2UsIHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pKTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10dy1kdXJhdGlvbiwgdmFyKC0tZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uKSk7XG4gIH1cblxuICAudHJhbnNpdGlvbi10cmFuc2Zvcm0ge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgdHJhbnNsYXRlLCBzY2FsZSwgcm90YXRlO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS10dy1lYXNlLCB2YXIoLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tdHctZHVyYXRpb24sIHZhcigtLWRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbikpO1xuICB9XG5cbiAgLmR1cmF0aW9uLTUwMCB7XG4gICAgLS10dy1kdXJhdGlvbjogLjVzO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC41cztcbiAgfVxuXG4gIC5ncm91cC1mb2N1cy13aXRoaW5cXDp0ZXh0LW9yYW5nZS01MDA6aXMoOndoZXJlKC5ncm91cCk6Zm9jdXMtd2l0aGluICopIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itb3JhbmdlLTUwMCk7XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ncm91cC1ob3ZlclxcOnNjYWxlLTExMDppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKSB7XG4gICAgICAtLXR3LXNjYWxlLXg6IDExMCU7XG4gICAgICAtLXR3LXNjYWxlLXk6IDExMCU7XG4gICAgICAtLXR3LXNjYWxlLXo6IDExMCU7XG4gICAgICBzY2FsZTogdmFyKC0tdHctc2NhbGUteCkgdmFyKC0tdHctc2NhbGUteSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuZ3JvdXAtaG92ZXJcXDp0ZXh0LWFtYmVyLTQwMDppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItNDAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ncm91cC1ob3ZlclxcOm9wYWNpdHktMzA6aXMoOndoZXJlKC5ncm91cCk6aG92ZXIgKikge1xuICAgICAgb3BhY2l0eTogLjM7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuZ3JvdXAtaG92ZXJcXDpvcGFjaXR5LTQwOmlzKDp3aGVyZSguZ3JvdXApOmhvdmVyICopIHtcbiAgICAgIG9wYWNpdHk6IC40O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmdyb3VwLWhvdmVyXFw6b3BhY2l0eS03NTppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKSB7XG4gICAgICBvcGFjaXR5OiAuNzU7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuZ3JvdXAtaG92ZXJcXDpvcGFjaXR5LTEwMDppcyg6d2hlcmUoLmdyb3VwKTpob3ZlciAqKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmdyb3VwLWhvdmVyXFw6Ymx1ci0yeGw6aXMoOndoZXJlKC5ncm91cCk6aG92ZXIgKikge1xuICAgICAgLS10dy1ibHVyOiBibHVyKHZhcigtLWJsdXItMnhsKSk7XG4gICAgICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIsICkgdmFyKC0tdHctYnJpZ2h0bmVzcywgKSB2YXIoLS10dy1jb250cmFzdCwgKSB2YXIoLS10dy1ncmF5c2NhbGUsICkgdmFyKC0tdHctaHVlLXJvdGF0ZSwgKSB2YXIoLS10dy1pbnZlcnQsICkgdmFyKC0tdHctc2F0dXJhdGUsICkgdmFyKC0tdHctc2VwaWEsICkgdmFyKC0tdHctZHJvcC1zaGFkb3csICk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDpib3JkZXItYW1iZXItNTAwXFwvMzA6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjc2OSAuMTg4IDcwLjA4KSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgIC5ob3ZlclxcOmJvcmRlci1hbWJlci01MDBcXC8zMDpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6Ym9yZGVyLWFtYmVyLTUwMFxcLzUwOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuXG4gICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAuaG92ZXJcXDpib3JkZXItYW1iZXItNTAwXFwvNTA6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItYW1iZXItNTAwKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ob3ZlclxcOmJvcmRlci1ibHVlLTUwMFxcLzcwOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC42MjMgLjIxNCAyNTkuODE1KSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgIC5ob3ZlclxcOmJvcmRlci1ibHVlLTUwMFxcLzcwOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWJsdWUtNTAwKSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ob3ZlclxcOmJvcmRlci1lbWVyYWxkLTUwMFxcLzcwOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC42OTYgLjE3IDE2Mi40OCkgNzAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuXG4gICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAuaG92ZXJcXDpib3JkZXItZW1lcmFsZC01MDBcXC83MDpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1lbWVyYWxkLTUwMCkgNzAlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDpib3JkZXItb3JhbmdlLTUwMFxcLzMwOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgLmhvdmVyXFw6Ym9yZGVyLW9yYW5nZS01MDBcXC8zMDpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ob3ZlclxcOmJvcmRlci1wdXJwbGUtNTAwXFwvNzA6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjYyNyAuMjY1IDMwMy45KSA3MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAgIC5ob3ZlclxcOmJvcmRlci1wdXJwbGUtNTAwXFwvNzA6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItcHVycGxlLTUwMCkgNzAlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDpiZy1ibHVlLTUwMFxcLzMwOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjIzIC4yMTQgMjU5LjgxNSkgMzAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuXG4gICAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgICAuaG92ZXJcXDpiZy1ibHVlLTUwMFxcLzMwOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1ibHVlLTUwMCkgMzAlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDpiZy1lbWVyYWxkLTUwMFxcLzMwOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjk2IC4xNyAxNjIuNDgpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgLmhvdmVyXFw6YmctZW1lcmFsZC01MDBcXC8zMDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItZW1lcmFsZC01MDApIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6YmctbmV1dHJhbC02MDA6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02MDApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6YmctbmV1dHJhbC03MDA6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03MDApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6YmctbmV1dHJhbC04MDA6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC04MDApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6YmctbmV1dHJhbC05MDA6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC05MDApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6YmctbmV1dHJhbC05NTA6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC05NTApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmhvdmVyXFw6YmctcHVycGxlLTUwMFxcLzMwOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjI3IC4yNjUgMzAzLjkpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgLmhvdmVyXFw6YmctcHVycGxlLTUwMFxcLzMwOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1wdXJwbGUtNTAwKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ob3ZlclxcOmZyb20tYW1iZXItNjAwOmhvdmVyIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3ItYW1iZXItNjAwKTtcbiAgICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDpmcm9tLW9yYW5nZS02MDA6aG92ZXIge1xuICAgICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1vcmFuZ2UtNjAwKTtcbiAgICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDp0by1hbWJlci03MDA6aG92ZXIge1xuICAgICAgLS10dy1ncmFkaWVudC10bzogdmFyKC0tY29sb3ItYW1iZXItNzAwKTtcbiAgICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDp0by1vcmFuZ2UtNzAwOmhvdmVyIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtdG86IHZhcigtLWNvbG9yLW9yYW5nZS03MDApO1xuICAgICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5ob3ZlclxcOnRleHQtcmVkLTQwMDpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTQwMCk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuaG92ZXJcXDp0ZXh0LXdoaXRlOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgLmZvY3VzXFw6Ym9yZGVyLWFtYmVyLTUwMFxcLzUwOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzY5IC4xODggNzAuMDgpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmZvY3VzXFw6Ym9yZGVyLWFtYmVyLTUwMFxcLzUwOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5mb2N1c1xcOmJvcmRlci1vcmFuZ2UtNTAwOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW9yYW5nZS01MDApO1xuICB9XG5cbiAgLmZvY3VzXFw6Ym9yZGVyLXRyYW5zcGFyZW50OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDAwO1xuICB9XG5cbiAgLmZvY3VzXFw6c2hhZG93LWxnOmZvY3VzIHtcbiAgICAtLXR3LXNoYWRvdzogMCAxMHB4IDE1cHggLTNweCB2YXIoLS10dy1zaGFkb3ctY29sb3IsICMwMDAwMDAxYSksIDAgNHB4IDZweCAtNHB4IHZhcigtLXR3LXNoYWRvdy1jb2xvciwgIzAwMDAwMDFhKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgfVxuXG4gIC5mb2N1c1xcOnJpbmctMjpmb2N1cyB7XG4gICAgLS10dy1yaW5nLXNoYWRvdzogdmFyKC0tdHctcmluZy1pbnNldCwgKSAwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvciwgY3VycmVudGNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS10dy1pbnNldC1zaGFkb3cpLCB2YXIoLS10dy1pbnNldC1yaW5nLXNoYWRvdyksIHZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXR3LXJpbmctc2hhZG93KSwgdmFyKC0tdHctc2hhZG93KTtcbiAgfVxuXG4gIC5mb2N1c1xcOnNoYWRvdy1vcmFuZ2UtNTAwXFwvMTA6Zm9jdXMge1xuICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjcwNSAuMjEzIDQ3LjYwNCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZm9jdXNcXDpzaGFkb3ctb3JhbmdlLTUwMFxcLzEwOmZvY3VzIHtcbiAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMTAlLCB0cmFuc3BhcmVudCkgdmFyKC0tdHctc2hhZG93LWFscGhhKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5mb2N1c1xcOnNoYWRvdy1vcmFuZ2UtNTAwXFwvMjA6Zm9jdXMge1xuICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjcwNSAuMjEzIDQ3LjYwNCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZm9jdXNcXDpzaGFkb3ctb3JhbmdlLTUwMFxcLzIwOmZvY3VzIHtcbiAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMjAlLCB0cmFuc3BhcmVudCkgdmFyKC0tdHctc2hhZG93LWFscGhhKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5mb2N1c1xcOnJpbmctYW1iZXItNTAwOmZvY3VzIHtcbiAgICAtLXR3LXJpbmctY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTUwMCk7XG4gIH1cblxuICAuZm9jdXNcXDpvdXRsaW5lLW5vbmU6Zm9jdXMge1xuICAgIC0tdHctb3V0bGluZS1zdHlsZTogbm9uZTtcbiAgICBvdXRsaW5lLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLmRpc2FibGVkXFw6Y3Vyc29yLW5vdC1hbGxvd2VkOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgLmRpc2FibGVkXFw6ZnJvbS1uZXV0cmFsLTgwMDpkaXNhYmxlZCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1uZXV0cmFsLTgwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5kaXNhYmxlZFxcOnRvLW5ldXRyYWwtODAwOmRpc2FibGVkIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1uZXV0cmFsLTgwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5kaXNhYmxlZFxcOnNoYWRvdy1ub25lOmRpc2FibGVkIHtcbiAgICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXR3LWluc2V0LXNoYWRvdyksIHZhcigtLXR3LWluc2V0LXJpbmctc2hhZG93KSwgdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdHctcmluZy1zaGFkb3cpLCB2YXIoLS10dy1zaGFkb3cpO1xuICB9XG5cbiAgQG1lZGlhICh3aWR0aCA+PSA0OHJlbSkge1xuICAgIC5tZFxcOmdyaWQtY29scy0yIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKHdpZHRoID49IDQ4cmVtKSB7XG4gICAgLm1kXFw6Z3JpZC1jb2xzLTMge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAod2lkdGggPj0gNDhyZW0pIHtcbiAgICAubWRcXDpncmlkLWNvbHMtNCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxuICB9XG5cbiAgOndoZXJlKC5kYXJrXFw6ZGl2aWRlLW5ldXRyYWwtODAwOmlzKC5kYXJrICopID4gOm5vdCg6bGFzdC1jaGlsZCkpIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtODAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6Ym9yZGVyLWFtYmVyLTUwMFxcLzMwOmlzKC5kYXJrICopIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzY5IC4xODggNzAuMDgpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmRhcmtcXDpib3JkZXItYW1iZXItNTAwXFwvMzA6aXMoLmRhcmsgKikge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWFtYmVyLTUwMCkgMzAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpib3JkZXItYW1iZXItNTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZGFya1xcOmJvcmRlci1hbWJlci01MDBcXC81MDppcyguZGFyayAqKSB7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItYW1iZXItNTAwKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmJvcmRlci1ibHVlLTUwMFxcLzUwOmlzKC5kYXJrICopIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjIzIC4yMTQgMjU5LjgxNSkgNTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZGFya1xcOmJvcmRlci1ibHVlLTUwMFxcLzUwOmlzKC5kYXJrICopIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1ibHVlLTUwMCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpib3JkZXItZW1lcmFsZC01MDBcXC81MDppcyguZGFyayAqKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjY5NiAuMTcgMTYyLjQ4KSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6Ym9yZGVyLWVtZXJhbGQtNTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWVtZXJhbGQtNTAwKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmJvcmRlci1uZXV0cmFsLTgwMDppcyguZGFyayAqKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIH1cblxuICAuZGFya1xcOmJvcmRlci1vcmFuZ2UtNTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmRhcmtcXDpib3JkZXItb3JhbmdlLTUwMFxcLzUwOmlzKC5kYXJrICopIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1vcmFuZ2UtNTAwKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmJvcmRlci1wdXJwbGUtNTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC42MjcgLjI2NSAzMDMuOSkgNTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZGFya1xcOmJvcmRlci1wdXJwbGUtNTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLXB1cnBsZS01MDApIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5kYXJrXFw6YmctYmx1ZS01MDBcXC8yMDppcyguZGFyayAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC42MjMgLjIxNCAyNTkuODE1KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6YmctYmx1ZS01MDBcXC8yMDppcyguZGFyayAqKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWJsdWUtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmJnLWVtZXJhbGQtNTAwXFwvMjA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjk2IC4xNyAxNjIuNDgpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmRhcmtcXDpiZy1lbWVyYWxkLTUwMFxcLzIwOmlzKC5kYXJrICopIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItZW1lcmFsZC01MDApIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5kYXJrXFw6YmctbmV1dHJhbC00MDA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNDAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6YmctbmV1dHJhbC03MDA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNzAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6YmctbmV1dHJhbC04MDA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtODAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6YmctbmV1dHJhbC05MDA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6YmctbmV1dHJhbC05MDBcXC8zMDppcyguZGFyayAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC4yMDUgMCAwKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6YmctbmV1dHJhbC05MDBcXC8zMDppcyguZGFyayAqKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmJnLW5ldXRyYWwtOTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguMjA1IDAgMCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZGFya1xcOmJnLW5ldXRyYWwtOTAwXFwvNTA6aXMoLmRhcmsgKikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1uZXV0cmFsLTkwMCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpiZy1uZXV0cmFsLTkwMFxcLzYwOmlzKC5kYXJrICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjIwNSAwIDApIDYwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmRhcmtcXDpiZy1uZXV0cmFsLTkwMFxcLzYwOmlzKC5kYXJrICopIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItbmV1dHJhbC05MDApIDYwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5kYXJrXFw6YmctbmV1dHJhbC05MDBcXC84MDppcyguZGFyayAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC4yMDUgMCAwKSA4MCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6YmctbmV1dHJhbC05MDBcXC84MDppcyguZGFyayAqKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKSA4MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmJnLW5ldXRyYWwtOTAwXFwvOTA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguMjA1IDAgMCkgOTAlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZGFya1xcOmJnLW5ldXRyYWwtOTAwXFwvOTA6aXMoLmRhcmsgKikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1uZXV0cmFsLTkwMCkgOTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpiZy1uZXV0cmFsLTk1MDppcyguZGFyayAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC05NTApO1xuICB9XG5cbiAgLmRhcmtcXDpiZy1vcmFuZ2UtNTAwXFwvMjA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6Ymctb3JhbmdlLTUwMFxcLzIwOmlzKC5kYXJrICopIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpiZy1wdXJwbGUtNTAwXFwvMjA6aXMoLmRhcmsgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjI3IC4yNjUgMzAzLjkpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmRhcmtcXDpiZy1wdXJwbGUtNTAwXFwvMjA6aXMoLmRhcmsgKikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1wdXJwbGUtNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmZyb20tYW1iZXItNTAwXFwvMjA6aXMoLmRhcmsgKikge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43NjkgLjE4OCA3MC4wOCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6ZnJvbS1hbWJlci01MDBcXC8yMDppcyguZGFyayAqKSB7XG4gICAgICAtLXR3LWdyYWRpZW50LWZyb206IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3ItYW1iZXItNTAwKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOmZyb20tbmV1dHJhbC05MDA6aXMoLmRhcmsgKikge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3ItbmV1dHJhbC05MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAuZGFya1xcOnZpYS1uZXV0cmFsLTkwMFxcLzk1OmlzKC5kYXJrICopIHtcbiAgICAtLXR3LWdyYWRpZW50LXZpYTogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC4yMDUgMCAwKSA5NSUsIHRyYW5zcGFyZW50KTtcbiAgICAtLXR3LWdyYWRpZW50LXZpYS1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdmlhKSB2YXIoLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcyk7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAuZGFya1xcOnZpYS1uZXV0cmFsLTkwMFxcLzk1OmlzKC5kYXJrICopIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtdmlhOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKSA5NSUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAuZGFya1xcOnRvLW5ldXRyYWwtOTUwOmlzKC5kYXJrICopIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1uZXV0cmFsLTk1MCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5kYXJrXFw6dG8tb3JhbmdlLTYwMFxcLzIwOmlzKC5kYXJrICopIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjY0NiAuMjIyIDQxLjExNikgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6dG8tb3JhbmdlLTYwMFxcLzIwOmlzKC5kYXJrICopIHtcbiAgICAgIC0tdHctZ3JhZGllbnQtdG86IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTYwMCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpzdHJva2UtbmV1dHJhbC04MDA6aXMoLmRhcmsgKikge1xuICAgIHN0cm9rZTogdmFyKC0tY29sb3ItbmV1dHJhbC04MDApO1xuICB9XG5cbiAgLmRhcmtcXDp0ZXh0LWFtYmVyLTQwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTQwMCk7XG4gIH1cblxuICAuZGFya1xcOnRleHQtYW1iZXItNTAwOmlzKC5kYXJrICopIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItNTAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1ibHVlLTQwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtNDAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1lbWVyYWxkLTQwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWVtZXJhbGQtNDAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1uZXV0cmFsLTEwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMTAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1uZXV0cmFsLTMwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMzAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1uZXV0cmFsLTQwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNDAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1uZXV0cmFsLTUwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNTAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC1vcmFuZ2UtMzAwOmlzKC5kYXJrICopIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itb3JhbmdlLTMwMCk7XG4gIH1cblxuICAuZGFya1xcOnRleHQtb3JhbmdlLTQwMDppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW9yYW5nZS00MDApO1xuICB9XG5cbiAgLmRhcmtcXDp0ZXh0LXB1cnBsZS00MDA6aXMoLmRhcmsgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wdXJwbGUtNDAwKTtcbiAgfVxuXG4gIC5kYXJrXFw6dGV4dC13aGl0ZTppcyguZGFyayAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgfVxuXG4gIC5kYXJrXFw6cGxhY2Vob2xkZXItbmV1dHJhbC01MDA6aXMoLmRhcmsgKik6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC01MDApO1xuICB9XG5cbiAgLmRhcmtcXDpzaGFkb3ctb3JhbmdlLTUwMFxcLzUwOmlzKC5kYXJrICopIHtcbiAgICAtLXR3LXNoYWRvdy1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmRhcmtcXDpzaGFkb3ctb3JhbmdlLTUwMFxcLzUwOmlzKC5kYXJrICopIHtcbiAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgNTAlLCB0cmFuc3BhcmVudCkgdmFyKC0tdHctc2hhZG93LWFscGhhKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmRhcmtcXDpncm91cC1ob3ZlclxcOnRleHQtYW1iZXItNDAwOmlzKC5kYXJrICopOmlzKDp3aGVyZSguZ3JvdXApOmhvdmVyICopIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci00MDApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmRhcmtcXDpob3ZlclxcOmJvcmRlci1hbWJlci01MDBcXC8zMDppcyguZGFyayAqKTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzY5IC4xODggNzAuMDgpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgICAgLmRhcmtcXDpob3ZlclxcOmJvcmRlci1hbWJlci01MDBcXC8zMDppcyguZGFyayAqKTpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1hbWJlci01MDApIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmRhcmtcXDpob3ZlclxcOmJnLW5ldXRyYWwtNjAwOmlzKC5kYXJrICopOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNjAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5kYXJrXFw6aG92ZXJcXDpiZy1uZXV0cmFsLTcwMDppcyguZGFyayAqKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTcwMCk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuZGFya1xcOmhvdmVyXFw6YmctbmV1dHJhbC04MDA6aXMoLmRhcmsgKik6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC04MDApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmRhcmtcXDpob3ZlclxcOmJnLW5ldXRyYWwtOTAwOmlzKC5kYXJrICopOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5kYXJrXFw6aG92ZXJcXDpiZy1uZXV0cmFsLTk1MDppcyguZGFyayAqKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTk1MCk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuZGFya1xcOmhvdmVyXFw6dGV4dC1yZWQtNDAwOmlzKC5kYXJrICopOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtNDAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5kYXJrXFw6aG92ZXJcXDp0ZXh0LXdoaXRlOmlzKC5kYXJrICopOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpmb2N1c1xcOmJvcmRlci1hbWJlci01MDBcXC81MDppcyguZGFyayAqKTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjc2OSAuMTg4IDcwLjA4KSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5kYXJrXFw6Zm9jdXNcXDpib3JkZXItYW1iZXItNTAwXFwvNTA6aXMoLmRhcmsgKik6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLWFtYmVyLTUwMCkgNTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmRhcmtcXDpkaXNhYmxlZFxcOmZyb20tbmV1dHJhbC04MDA6aXMoLmRhcmsgKik6ZGlzYWJsZWQge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3ItbmV1dHJhbC04MDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAuZGFya1xcOmRpc2FibGVkXFw6dG8tbmV1dHJhbC04MDA6aXMoLmRhcmsgKik6ZGlzYWJsZWQge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IHZhcigtLWNvbG9yLW5ldXRyYWwtODAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgOndoZXJlKC5saWdodFxcOmRpdmlkZS1uZXV0cmFsLTIwMDppcygubGlnaHQgKikgPiA6bm90KDpsYXN0LWNoaWxkKSkge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC0yMDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6Ym9yZGVyLWFtYmVyLTMwMDppcygubGlnaHQgKikge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW1iZXItMzAwKTtcbiAgfVxuXG4gIC5saWdodFxcOmJvcmRlci1hbWJlci01MDA6aXMoLmxpZ2h0ICopIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTUwMCk7XG4gIH1cblxuICAubGlnaHRcXDpib3JkZXItYmx1ZS02MDA6aXMoLmxpZ2h0ICopIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOmJvcmRlci1lbWVyYWxkLTYwMDppcygubGlnaHQgKikge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZW1lcmFsZC02MDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6Ym9yZGVyLW5ldXRyYWwtMjAwOmlzKC5saWdodCAqKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIwMCk7XG4gIH1cblxuICAubGlnaHRcXDpib3JkZXItbmV1dHJhbC0zMDA6aXMoLmxpZ2h0ICopIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMzAwKTtcbiAgfVxuXG4gIC5saWdodFxcOmJvcmRlci1vcmFuZ2UtNjAwOmlzKC5saWdodCAqKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1vcmFuZ2UtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOmJvcmRlci1wdXJwbGUtNjAwOmlzKC5saWdodCAqKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wdXJwbGUtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOmJnLWJsdWUtNTAwXFwvMTA6aXMoLmxpZ2h0ICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgb2tsY2goLjYyMyAuMjE0IDI1OS44MTUpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmxpZ2h0XFw6YmctYmx1ZS01MDBcXC8xMDppcygubGlnaHQgKikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1ibHVlLTUwMCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmxpZ2h0XFw6YmctZW1lcmFsZC01MDBcXC8xMDppcygubGlnaHQgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjk2IC4xNyAxNjIuNDgpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmxpZ2h0XFw6YmctZW1lcmFsZC01MDBcXC8xMDppcygubGlnaHQgKikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1lbWVyYWxkLTUwMCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmxpZ2h0XFw6YmctbmV1dHJhbC01MDppcygubGlnaHQgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNTApO1xuICB9XG5cbiAgLmxpZ2h0XFw6YmctbmV1dHJhbC0xMDA6aXMoLmxpZ2h0ICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIH1cblxuICAubGlnaHRcXDpiZy1uZXV0cmFsLTEwMFxcLzgwOmlzKC5saWdodCAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC45NyAwIDApIDgwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmxpZ2h0XFw6YmctbmV1dHJhbC0xMDBcXC84MDppcygubGlnaHQgKikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIG9rbGFiLCB2YXIoLS1jb2xvci1uZXV0cmFsLTEwMCkgODAlLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuICB9XG5cbiAgLmxpZ2h0XFw6YmctbmV1dHJhbC0yMDA6aXMoLmxpZ2h0ICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTIwMCk7XG4gIH1cblxuICAubGlnaHRcXDpiZy1uZXV0cmFsLTMwMDppcygubGlnaHQgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMzAwKTtcbiAgfVxuXG4gIC5saWdodFxcOmJnLW5ldXRyYWwtNjAwOmlzKC5saWdodCAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC02MDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6Ymctb3JhbmdlLTUwMFxcLzEwOmlzKC5saWdodCAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIG9rbGNoKC43MDUgLjIxMyA0Ny42MDQpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmxpZ2h0XFw6Ymctb3JhbmdlLTUwMFxcLzEwOmlzKC5saWdodCAqKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLW9yYW5nZS01MDApIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5saWdodFxcOmJnLXB1cnBsZS01MDBcXC8xMDppcygubGlnaHQgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNjI3IC4yNjUgMzAzLjkpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIGxhYiwgcmVkLCByZWQpKSB7XG4gICAgLmxpZ2h0XFw6YmctcHVycGxlLTUwMFxcLzEwOmlzKC5saWdodCAqKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLXB1cnBsZS01MDApIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5saWdodFxcOmJnLXdoaXRlOmlzKC5saWdodCAqKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB9XG5cbiAgLmxpZ2h0XFw6Ymctd2hpdGVcXC81MDppcygubGlnaHQgKikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY4MDtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5saWdodFxcOmJnLXdoaXRlXFwvNTA6aXMoLmxpZ2h0ICopIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itd2hpdGUpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5saWdodFxcOmJnLXdoaXRlXFwvNjA6aXMoLmxpZ2h0ICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5saWdodFxcOmJnLXdoaXRlXFwvNjA6aXMoLmxpZ2h0ICopIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itd2hpdGUpIDYwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5saWdodFxcOmJnLXdoaXRlXFwvODA6aXMoLmxpZ2h0ICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmYztcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5saWdodFxcOmJnLXdoaXRlXFwvODA6aXMoLmxpZ2h0ICopIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itd2hpdGUpIDgwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5saWdodFxcOmJnLXdoaXRlXFwvOTA6aXMoLmxpZ2h0ICopIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmZTY7XG4gIH1cblxuICBAc3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gbGFiLCByZWQsIHJlZCkpIHtcbiAgICAubGlnaHRcXDpiZy13aGl0ZVxcLzkwOmlzKC5saWdodCAqKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIHZhcigtLWNvbG9yLXdoaXRlKSA5MCUsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAubGlnaHRcXDpmcm9tLWFtYmVyLTEwMDppcygubGlnaHQgKikge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3ItYW1iZXItMTAwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLmxpZ2h0XFw6ZnJvbS1uZXV0cmFsLTEwMDppcygubGlnaHQgKikge1xuICAgIC0tdHctZ3JhZGllbnQtZnJvbTogdmFyKC0tY29sb3ItbmV1dHJhbC0xMDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAubGlnaHRcXDp2aWEtd2hpdGU6aXMoLmxpZ2h0ICopIHtcbiAgICAtLXR3LWdyYWRpZW50LXZpYTogdmFyKC0tY29sb3Itd2hpdGUpO1xuICAgIC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC12aWEpIHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbik7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzKTtcbiAgfVxuXG4gIC5saWdodFxcOnRvLW5ldXRyYWwtNTA6aXMoLmxpZ2h0ICopIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUwKTtcbiAgICAtLXR3LWdyYWRpZW50LXN0b3BzOiB2YXIoLS10dy1ncmFkaWVudC12aWEtc3RvcHMsIHZhcigtLXR3LWdyYWRpZW50LXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtZnJvbSkgdmFyKC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKSB2YXIoLS10dy1ncmFkaWVudC10by1wb3NpdGlvbikpO1xuICB9XG5cbiAgLmxpZ2h0XFw6dG8tb3JhbmdlLTEwMDppcygubGlnaHQgKikge1xuICAgIC0tdHctZ3JhZGllbnQtdG86IHZhcigtLWNvbG9yLW9yYW5nZS0xMDApO1xuICAgIC0tdHctZ3JhZGllbnQtc3RvcHM6IHZhcigtLXR3LWdyYWRpZW50LXZpYS1zdG9wcywgdmFyKC0tdHctZ3JhZGllbnQtcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC1mcm9tKSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKSk7XG4gIH1cblxuICAubGlnaHRcXDpzdHJva2UtbmV1dHJhbC0yMDA6aXMoLmxpZ2h0ICopIHtcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLW5ldXRyYWwtMjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtYW1iZXItNjAwOmlzKC5saWdodCAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTYwMCk7XG4gIH1cblxuICAubGlnaHRcXDp0ZXh0LWJsdWUtNjAwOmlzKC5saWdodCAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtYmx1ZS03MDA6aXMoLmxpZ2h0ICopIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYmx1ZS03MDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6dGV4dC1lbWVyYWxkLTYwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1lbWVyYWxkLTYwMCk7XG4gIH1cblxuICAubGlnaHRcXDp0ZXh0LWVtZXJhbGQtNzAwOmlzKC5saWdodCAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWVtZXJhbGQtNzAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtbmV1dHJhbC00MDA6aXMoLmxpZ2h0ICopIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC00MDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6dGV4dC1uZXV0cmFsLTUwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTUwMCk7XG4gIH1cblxuICAubGlnaHRcXDp0ZXh0LW5ldXRyYWwtNjAwOmlzKC5saWdodCAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtbmV1dHJhbC03MDA6aXMoLmxpZ2h0ICopIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItbmV1dHJhbC03MDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6dGV4dC1uZXV0cmFsLTgwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIH1cblxuICAubGlnaHRcXDp0ZXh0LW5ldXRyYWwtOTAwOmlzKC5saWdodCAqKSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtb3JhbmdlLTYwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1vcmFuZ2UtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtb3JhbmdlLTcwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1vcmFuZ2UtNzAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtcHVycGxlLTYwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wdXJwbGUtNjAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnRleHQtcHVycGxlLTcwMDppcygubGlnaHQgKikge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wdXJwbGUtNzAwKTtcbiAgfVxuXG4gIC5saWdodFxcOnBsYWNlaG9sZGVyLW5ldXRyYWwtNDAwOmlzKC5saWdodCAqKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1uZXV0cmFsLTQwMCk7XG4gIH1cblxuICAubGlnaHRcXDpzaGFkb3ctb3JhbmdlLTUwMFxcLzIwOmlzKC5saWdodCAqKSB7XG4gICAgLS10dy1zaGFkb3ctY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBva2xjaCguNzA1IC4yMTMgNDcuNjA0KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIEBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBsYWIsIHJlZCwgcmVkKSkge1xuICAgIC5saWdodFxcOnNoYWRvdy1vcmFuZ2UtNTAwXFwvMjA6aXMoLmxpZ2h0ICopIHtcbiAgICAgIC0tdHctc2hhZG93LWNvbG9yOiBjb2xvci1taXgoaW4gb2tsYWIsIGNvbG9yLW1peChpbiBva2xhYiwgdmFyKC0tY29sb3Itb3JhbmdlLTUwMCkgMjAlLCB0cmFuc3BhcmVudCkgdmFyKC0tdHctc2hhZG93LWFscGhhKSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLmxpZ2h0XFw6Z3JvdXAtaG92ZXJcXDp0ZXh0LWFtYmVyLTYwMDppcygubGlnaHQgKik6aXMoOndoZXJlKC5ncm91cCk6aG92ZXIgKikge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTYwMCk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAubGlnaHRcXDpob3ZlclxcOmJvcmRlci1hbWJlci00MDA6aXMoLmxpZ2h0ICopOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW1iZXItNDAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5saWdodFxcOmhvdmVyXFw6YmctbmV1dHJhbC0xMDA6aXMoLmxpZ2h0ICopOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMTAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5saWdodFxcOmhvdmVyXFw6YmctbmV1dHJhbC0yMDA6aXMoLmxpZ2h0ICopOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMjAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5saWdodFxcOmhvdmVyXFw6YmctbmV1dHJhbC0zMDA6aXMoLmxpZ2h0ICopOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtMzAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5saWdodFxcOmhvdmVyXFw6YmctbmV1dHJhbC00MDA6aXMoLmxpZ2h0ICopOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtNDAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5saWdodFxcOmhvdmVyXFw6dGV4dC1uZXV0cmFsLTkwMDppcygubGlnaHQgKik6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLW5ldXRyYWwtOTAwKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5saWdodFxcOmhvdmVyXFw6dGV4dC1yZWQtNjAwOmlzKC5saWdodCAqKTpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTYwMCk7XG4gICAgfVxuICB9XG5cbiAgLmxpZ2h0XFw6Zm9jdXNcXDpib3JkZXItYW1iZXItNTAwOmlzKC5saWdodCAqKTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci01MDApO1xuICB9XG5cbiAgLmxpZ2h0XFw6ZGlzYWJsZWRcXDpmcm9tLW5ldXRyYWwtMzAwOmlzKC5saWdodCAqKTpkaXNhYmxlZCB7XG4gICAgLS10dy1ncmFkaWVudC1mcm9tOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxuXG4gIC5saWdodFxcOmRpc2FibGVkXFw6dG8tbmV1dHJhbC0zMDA6aXMoLmxpZ2h0ICopOmRpc2FibGVkIHtcbiAgICAtLXR3LWdyYWRpZW50LXRvOiB2YXIoLS1jb2xvci1uZXV0cmFsLTMwMCk7XG4gICAgLS10dy1ncmFkaWVudC1zdG9wczogdmFyKC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzLCB2YXIoLS10dy1ncmFkaWVudC1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LWZyb20pIHZhcigtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24pLCB2YXIoLS10dy1ncmFkaWVudC10bykgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pKTtcbiAgfVxufVxuXG46cm9vdCB7XG4gIC0tZm9udC1zaXplOiAxNnB4O1xuICAtLWJhY2tncm91bmQ6ICNmZmY7XG4gIC0tZm9yZWdyb3VuZDogb2tsY2goLjE0NSAwIDApO1xuICAtLWNhcmQ6ICNmZmY7XG4gIC0tY2FyZC1mb3JlZ3JvdW5kOiBva2xjaCguMTQ1IDAgMCk7XG4gIC0tcG9wb3Zlcjogb2tsY2goMSAwIDApO1xuICAtLXBvcG92ZXItZm9yZWdyb3VuZDogb2tsY2goLjE0NSAwIDApO1xuICAtLXByaW1hcnk6ICMwMzAyMTM7XG4gIC0tcHJpbWFyeS1mb3JlZ3JvdW5kOiBva2xjaCgxIDAgMCk7XG4gIC0tc2Vjb25kYXJ5OiBva2xjaCguOTUgLjAwNTggMjY0LjUzKTtcbiAgLS1zZWNvbmRhcnktZm9yZWdyb3VuZDogIzAzMDIxMztcbiAgLS1tdXRlZDogI2VjZWNmMDtcbiAgLS1tdXRlZC1mb3JlZ3JvdW5kOiAjNzE3MTgyO1xuICAtLWFjY2VudDogI2U5ZWJlZjtcbiAgLS1hY2NlbnQtZm9yZWdyb3VuZDogIzAzMDIxMztcbiAgLS1kZXN0cnVjdGl2ZTogI2Q0MTgzZDtcbiAgLS1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kOiAjZmZmO1xuICAtLWJvcmRlcjogIzAwMDAwMDFhO1xuICAtLWlucHV0OiB0cmFuc3BhcmVudDtcbiAgLS1pbnB1dC1iYWNrZ3JvdW5kOiAjZjNmM2Y1O1xuICAtLXN3aXRjaC1iYWNrZ3JvdW5kOiAjY2JjZWQ0O1xuICAtLWZvbnQtd2VpZ2h0LW1lZGl1bTogNTAwO1xuICAtLWZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwO1xuICAtLXJpbmc6IG9rbGNoKC43MDggMCAwKTtcbiAgLS1jaGFydC0xOiBva2xjaCguNjQ2IC4yMjIgNDEuMTE2KTtcbiAgLS1jaGFydC0yOiBva2xjaCguNiAuMTE4IDE4NC43MDQpO1xuICAtLWNoYXJ0LTM6IG9rbGNoKC4zOTggLjA3IDIyNy4zOTIpO1xuICAtLWNoYXJ0LTQ6IG9rbGNoKC44MjggLjE4OSA4NC40MjkpO1xuICAtLWNoYXJ0LTU6IG9rbGNoKC43NjkgLjE4OCA3MC4wOCk7XG4gIC0tcmFkaXVzOiAuNjI1cmVtO1xuICAtLXNpZGViYXI6IG9rbGNoKC45ODUgMCAwKTtcbiAgLS1zaWRlYmFyLWZvcmVncm91bmQ6IG9rbGNoKC4xNDUgMCAwKTtcbiAgLS1zaWRlYmFyLXByaW1hcnk6ICMwMzAyMTM7XG4gIC0tc2lkZWJhci1wcmltYXJ5LWZvcmVncm91bmQ6IG9rbGNoKC45ODUgMCAwKTtcbiAgLS1zaWRlYmFyLWFjY2VudDogb2tsY2goLjk3IDAgMCk7XG4gIC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDogb2tsY2goLjIwNSAwIDApO1xuICAtLXNpZGViYXItYm9yZGVyOiBva2xjaCguOTIyIDAgMCk7XG4gIC0tc2lkZWJhci1yaW5nOiBva2xjaCguNzA4IDAgMCk7XG59XG5cbi5kYXJrIHtcbiAgLS1iYWNrZ3JvdW5kOiBva2xjaCguMTQ1IDAgMCk7XG4gIC0tZm9yZWdyb3VuZDogb2tsY2goLjk4NSAwIDApO1xuICAtLWNhcmQ6IG9rbGNoKC4xNDUgMCAwKTtcbiAgLS1jYXJkLWZvcmVncm91bmQ6IG9rbGNoKC45ODUgMCAwKTtcbiAgLS1wb3BvdmVyOiBva2xjaCguMTQ1IDAgMCk7XG4gIC0tcG9wb3Zlci1mb3JlZ3JvdW5kOiBva2xjaCguOTg1IDAgMCk7XG4gIC0tcHJpbWFyeTogb2tsY2goLjk4NSAwIDApO1xuICAtLXByaW1hcnktZm9yZWdyb3VuZDogb2tsY2goLjIwNSAwIDApO1xuICAtLXNlY29uZGFyeTogb2tsY2goLjI2OSAwIDApO1xuICAtLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiBva2xjaCguOTg1IDAgMCk7XG4gIC0tbXV0ZWQ6IG9rbGNoKC4yNjkgMCAwKTtcbiAgLS1tdXRlZC1mb3JlZ3JvdW5kOiBva2xjaCguNzA4IDAgMCk7XG4gIC0tYWNjZW50OiBva2xjaCguMjY5IDAgMCk7XG4gIC0tYWNjZW50LWZvcmVncm91bmQ6IG9rbGNoKC45ODUgMCAwKTtcbiAgLS1kZXN0cnVjdGl2ZTogb2tsY2goLjM5NiAuMTQxIDI1LjcyMyk7XG4gIC0tZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZDogb2tsY2goLjYzNyAuMjM3IDI1LjMzMSk7XG4gIC0tYm9yZGVyOiBva2xjaCguMjY5IDAgMCk7XG4gIC0taW5wdXQ6IG9rbGNoKC4yNjkgMCAwKTtcbiAgLS1yaW5nOiBva2xjaCguNDM5IDAgMCk7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtbm9ybWFsOiA0MDA7XG4gIC0tY2hhcnQtMTogb2tsY2goLjQ4OCAuMjQzIDI2NC4zNzYpO1xuICAtLWNoYXJ0LTI6IG9rbGNoKC42OTYgLjE3IDE2Mi40OCk7XG4gIC0tY2hhcnQtMzogb2tsY2goLjc2OSAuMTg4IDcwLjA4KTtcbiAgLS1jaGFydC00OiBva2xjaCguNjI3IC4yNjUgMzAzLjkpO1xuICAtLWNoYXJ0LTU6IG9rbGNoKC42NDUgLjI0NiAxNi40MzkpO1xuICAtLXNpZGViYXI6IG9rbGNoKC4yMDUgMCAwKTtcbiAgLS1zaWRlYmFyLWZvcmVncm91bmQ6IG9rbGNoKC45ODUgMCAwKTtcbiAgLS1zaWRlYmFyLXByaW1hcnk6IG9rbGNoKC40ODggLjI0MyAyNjQuMzc2KTtcbiAgLS1zaWRlYmFyLXByaW1hcnktZm9yZWdyb3VuZDogb2tsY2goLjk4NSAwIDApO1xuICAtLXNpZGViYXItYWNjZW50OiBva2xjaCguMjY5IDAgMCk7XG4gIC0tc2lkZWJhci1hY2NlbnQtZm9yZWdyb3VuZDogb2tsY2goLjk4NSAwIDApO1xuICAtLXNpZGViYXItYm9yZGVyOiBva2xjaCguMjY5IDAgMCk7XG4gIC0tc2lkZWJhci1yaW5nOiBva2xjaCguNDM5IDAgMCk7XG59XG5cbmh0bWwge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXRyYW5zbGF0ZS14IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAwO1xufVxuXG5AcHJvcGVydHkgLS10dy10cmFuc2xhdGUteSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogMDtcbn1cblxuQHByb3BlcnR5IC0tdHctdHJhbnNsYXRlLXoge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2U7XG4gIGluaXRpYWwtdmFsdWU6IDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXJvdGF0ZS14IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiByb3RhdGVYKDApO1xufVxuXG5AcHJvcGVydHkgLS10dy1yb3RhdGUteSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogcm90YXRlWSgwKTtcbn1cblxuQHByb3BlcnR5IC0tdHctcm90YXRlLXoge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2U7XG4gIGluaXRpYWwtdmFsdWU6IHJvdGF0ZVooMCk7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXNrZXcteCB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogc2tld1goMCk7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXNrZXcteSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogc2tld1koMCk7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXNwYWNlLXktcmV2ZXJzZSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogMDtcbn1cblxuQHByb3BlcnR5IC0tdHctZGl2aWRlLXktcmV2ZXJzZSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogMDtcbn1cblxuQHByb3BlcnR5IC0tdHctYm9yZGVyLXN0eWxlIHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiBzb2xpZDtcbn1cblxuQHByb3BlcnR5IC0tdHctZ3JhZGllbnQtcG9zaXRpb24ge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctZ3JhZGllbnQtZnJvbSB7XG4gIHN5bnRheDogXCI8Y29sb3I+XCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogIzAwMDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXZpYSB7XG4gIHN5bnRheDogXCI8Y29sb3I+XCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogIzAwMDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LXRvIHtcbiAgc3ludGF4OiBcIjxjb2xvcj5cIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAjMDAwMDtcbn1cblxuQHByb3BlcnR5IC0tdHctZ3JhZGllbnQtc3RvcHMge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdmlhLXN0b3BzIHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlXG59XG5cbkBwcm9wZXJ0eSAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb24ge1xuICBzeW50YXg6IFwiPGxlbmd0aC1wZXJjZW50YWdlPlwiO1xuICBpbmhlcml0czogZmFsc2U7XG4gIGluaXRpYWwtdmFsdWU6IDAlO1xufVxuXG5AcHJvcGVydHkgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb24ge1xuICBzeW50YXg6IFwiPGxlbmd0aC1wZXJjZW50YWdlPlwiO1xuICBpbmhlcml0czogZmFsc2U7XG4gIGluaXRpYWwtdmFsdWU6IDUwJTtcbn1cblxuQHByb3BlcnR5IC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24ge1xuICBzeW50YXg6IFwiPGxlbmd0aC1wZXJjZW50YWdlPlwiO1xuICBpbmhlcml0czogZmFsc2U7XG4gIGluaXRpYWwtdmFsdWU6IDEwMCU7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LWxlYWRpbmcge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctZm9udC13ZWlnaHQge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctdHJhY2tpbmcge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctc2hhZG93IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXNoYWRvdy1jb2xvciB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1zaGFkb3ctYWxwaGEge1xuICBzeW50YXg6IFwiPHBlcmNlbnRhZ2U+XCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogMTAwJTtcbn1cblxuQHByb3BlcnR5IC0tdHctaW5zZXQtc2hhZG93IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LWluc2V0LXNoYWRvdy1jb2xvciB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1pbnNldC1zaGFkb3ctYWxwaGEge1xuICBzeW50YXg6IFwiPHBlcmNlbnRhZ2U+XCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogMTAwJTtcbn1cblxuQHByb3BlcnR5IC0tdHctcmluZy1jb2xvciB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1yaW5nLXNoYWRvdyB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogMCAwICMwMDAwO1xufVxuXG5AcHJvcGVydHkgLS10dy1pbnNldC1yaW5nLWNvbG9yIHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlXG59XG5cbkBwcm9wZXJ0eSAtLXR3LWluc2V0LXJpbmctc2hhZG93IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LXJpbmctaW5zZXQge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctcmluZy1vZmZzZXQtd2lkdGgge1xuICBzeW50YXg6IFwiPGxlbmd0aD5cIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAwO1xufVxuXG5AcHJvcGVydHkgLS10dy1yaW5nLW9mZnNldC1jb2xvciB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZTtcbiAgaW5pdGlhbC12YWx1ZTogI2ZmZjtcbn1cblxuQHByb3BlcnR5IC0tdHctcmluZy1vZmZzZXQtc2hhZG93IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAwIDAgIzAwMDA7XG59XG5cbkBwcm9wZXJ0eSAtLXR3LWJsdXIge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctYnJpZ2h0bmVzcyB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1jb250cmFzdCB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1ncmF5c2NhbGUge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctaHVlLXJvdGF0ZSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1pbnZlcnQge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctb3BhY2l0eSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1zYXR1cmF0ZSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1zZXBpYSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1kcm9wLXNoYWRvdyB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1kcm9wLXNoYWRvdy1jb2xvciB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1kcm9wLXNoYWRvdy1hbHBoYSB7XG4gIHN5bnRheDogXCI8cGVyY2VudGFnZT5cIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAxMDAlO1xufVxuXG5AcHJvcGVydHkgLS10dy1kcm9wLXNoYWRvdy1zaXplIHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlXG59XG5cbkBwcm9wZXJ0eSAtLXR3LWJhY2tkcm9wLWJsdXIge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcyB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1jb250cmFzdCB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1pbnZlcnQge1xuICBzeW50YXg6IFwiKlwiO1xuICBpbmhlcml0czogZmFsc2Vcbn1cblxuQHByb3BlcnR5IC0tdHctYmFja2Ryb3Atb3BhY2l0eSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1iYWNrZHJvcC1zZXBpYSB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1kdXJhdGlvbiB7XG4gIHN5bnRheDogXCIqXCI7XG4gIGluaGVyaXRzOiBmYWxzZVxufVxuXG5AcHJvcGVydHkgLS10dy1zY2FsZS14IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAxO1xufVxuXG5AcHJvcGVydHkgLS10dy1zY2FsZS15IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAxO1xufVxuXG5AcHJvcGVydHkgLS10dy1zY2FsZS16IHtcbiAgc3ludGF4OiBcIipcIjtcbiAgaW5oZXJpdHM6IGZhbHNlO1xuICBpbml0aWFsLXZhbHVlOiAxO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgfVxufVxuXG4vKiDilIDilIAgTWFya2Rvd24gcmVuZGVyaW5nIGZvciBMTE0gcmVzcG9uc2VzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLyogIWltcG9ydGFudCBuZWVkZWQgdG8gb3ZlcnJpZGUgVGFpbHdpbmQgcHJlZmxpZ2h0IHJlc2V0ICgqLCBvbCwgdWwgeyBtYXJnaW46MDsgcGFkZGluZzowOyBsaXN0LXN0eWxlOm5vbmUgfSkgKi9cbi5tYXJrZG93bi1ib2R5IHtcbiAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjcgIWltcG9ydGFudDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjVlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMWVtIDAgMC41ZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBoMiB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4zZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuOWVtIDAgMC40ZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBoMyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4xNWVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwLjhlbSAwIDAuM2VtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDQsXG4ubWFya2Rvd24tYm9keSBoNSxcbi5tYXJrZG93bi1ib2R5IGg2IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuN2VtIDAgMC4yNWVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHAge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjhlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBwICsgcCB7XG4gIG1hcmdpbi10b3A6IDEuMmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsLFxuLm1hcmtkb3duLWJvZHkgb2wge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuNzVlbSAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMS41ZW0gIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgbGkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwLjI1ZW0gMCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBsaSA+IHVsLFxuLm1hcmtkb3duLWJvZHkgbGkgPiBvbCB7XG4gIG1hcmdpbjogMC4xNWVtIDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBibG9ja3F1b3RlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCByZ2JhKDI0OSwgMTE1LCAyMiwgMC41KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjNlbSAwLjhlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuNWVtIDAgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC45ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGNvZGUge1xuICBmb250LWZhbWlseTogJ0ZpcmEgQ29kZScsICdKZXRCcmFpbnMgTW9ubycsIHVpLW1vbm9zcGFjZSwgbW9ub3NwYWNlICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjE1ZW0gMC40ZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW46IDFlbSAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMWVtIDEuMmVtICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlIGNvZGUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjg1ZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuNSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUge1xuICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMC42ZW0gMCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuOWVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbi5tYXJrZG93bi1ib2R5IHRib2R5IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbi5tYXJrZG93bi1ib2R5IHRyIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cblxuLm1hcmtkb3duLWJvZHkgdGgsXG4ubWFya2Rvd24tYm9keSB0ZCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC40ZW0gMC43ZW0gIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRoIHtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodCAubWFya2Rvd24tYm9keSB0aCxcbi5saWdodCAubWFya2Rvd24tYm9keSB0ZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodCAubWFya2Rvd24tYm9keSB0aCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCkgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaHIge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW46IDFlbSAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBhIHtcbiAgY29sb3I6ICNmOTczMTYgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSA+ICo6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5ID4gKjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4vKiDilIDilIAgQ29kZSBibG9jayB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgKENvZGVCbG9jayBjb21wb25lbnQpIOKUgOKUgOKUgCAqL1xuLmNvZGUtYmxvY2std3JhcHBlciB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubGlnaHQgLmNvZGUtYmxvY2std3JhcHBlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYmUzZWM7XG59XG5cbi5jb2RlLWJsb2NrLXdyYXBwZXIgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8qIFJlc2V0IGNvZGUvcHJlIGJhY2tncm91bmRzIGluc2lkZSBjb2RlLWJsb2NrLXdyYXBwZXIg4oCUICFpbXBvcnRhbnQgYmVhdHMgU3ludGF4SGlnaGxpZ2h0ZXIgaW5saW5lIHN0eWxlcyAqL1xuLmNvZGUtYmxvY2std3JhcHBlciBjb2RlLFxuLmNvZGUtYmxvY2std3JhcHBlciBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSxcbi5jb2RlLWJsb2NrLXdyYXBwZXIgcHJlLFxuLmNvZGUtYmxvY2std3JhcHBlciBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cblxuLyogRGFyayBtb2RlOiBmb3JjZSB0aGUgU3ludGF4SGlnaGxpZ2h0ZXIgY29udGFpbmVyIGJhY2tncm91bmQgKi9cbi5kYXJrIC5jb2RlLWJsb2NrLXdyYXBwZXIgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLyogTGlnaHQgbW9kZTogZm9yY2Ugd2hpdGUgYmcgb24gdGhlIFN5bnRheEhpZ2hsaWdodGVyIGNvbnRhaW5lciAqL1xuLmxpZ2h0IC5jb2RlLWJsb2NrLXdyYXBwZXIgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uY29kZS1ibG9jay1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG5cbi5saWdodCAuY29kZS1ibG9jay1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZWFmMDtcbn1cblxuLmNvZGUtYmxvY2stbGFuZyB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBmb250LWZhbWlseTogJ0ZpcmEgQ29kZScsICdKZXRCcmFpbnMgTW9ubycsIG1vbm9zcGFjZTtcbn1cblxuLmxpZ2h0IC5jb2RlLWJsb2NrLWxhbmcge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cblxuLmNvZGUtYmxvY2stYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4uY29kZS1ibG9jay1jb3B5LFxuLmNvZGUtYmxvY2stcHJldmlldyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXM7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb2RlLWJsb2NrLWNvcHk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG5cbi5jb2RlLWJsb2NrLXByZXZpZXc6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDU2LCAxODksIDI0OCwgMC4xNSk7XG4gIGNvbG9yOiAjN2RkM2ZjO1xufVxuXG4ubGlnaHQgLmNvZGUtYmxvY2stY29weSxcbi5saWdodCAuY29kZS1ibG9jay1wcmV2aWV3IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cblxuLmxpZ2h0IC5jb2RlLWJsb2NrLWNvcHk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuXG4ubGlnaHQgLmNvZGUtYmxvY2stcHJldmlldzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEpO1xuICBjb2xvcjogIzAyODRjNztcbn1cblxuLyog4pSA4pSAIFRlcnJhY290dGEgcGFsZXR0ZSDigJQgb3ZlcnJpZGUgVGFpbHdpbmQgb3JhbmdlIHZhcmlhYmxlcyDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEBsYXllciB0aGVtZSBoYXMgbG93ZXIgc3BlY2lmaWNpdHkgdGhhbiB1bmxheWVyZWQgOnJvb3QsIHNvIHRoZXNlXG4gICB0YWtlIHByZWNlZGVuY2UgZXZlcnl3aGVyZSBvcmFuZ2UtKiBUYWlsd2luZCBjbGFzc2VzIGFyZSB1c2VkLlxuICAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG46cm9vdCB7XG4gIC0tY29sb3Itb3JhbmdlLTUwOiAgI0ZGRkFGNjtcbiAgLS1jb2xvci1vcmFuZ2UtMTAwOiAjRkZGOEYzO1xuICAtLWNvbG9yLW9yYW5nZS0yMDA6ICNGQUYxRTc7XG4gIC0tY29sb3Itb3JhbmdlLTMwMDogI0U5RENDRjtcbiAgLS1jb2xvci1vcmFuZ2UtNDAwOiAjQzI5NDc2O1xuICAtLWNvbG9yLW9yYW5nZS01MDA6ICNBQjc0NDM7XG4gIC0tY29sb3Itb3JhbmdlLTYwMDogI0EyNEEzNjtcbiAgLS1jb2xvci1vcmFuZ2UtNzAwOiAjN0EzMjI2O1xuICAtLWNvbG9yLW9yYW5nZS04MDA6ICM1MjMzMjc7XG4gIC0tY29sb3Itb3JhbmdlLTkwMDogIzM4MjUyMjtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9*/