/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[3]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[4]!./assets/echo/styles/auth.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
[data-bs-theme=light] {
  --bg: #ffffff;
  --panel: #f8f9fa;
  --panel-rgb: 248, 249, 250;
  --panel-2: #e9ecef;
  --panel-header: #f1f3f5;
  --muted: #f8f9fa;
  --line: #dee2e6;
  --border-primary: #ced4da;
  --text: #212529;
  --text-dim: #6c757d;
  --text-inverse: #ffffff;
  --accent: #0d6efd;
  --accent-rgb: 13, 110, 253;
  --accent-hover: #0b5ed7;
  --accent-2: #fd7e14;
  --danger: #dc3545;
  --info: #0dcaf0;
  --shadow: 0 4px 12px rgba(0, 0, 0, .1);
  --radius: 0px;
  --input-bg: #ffffff;
  --input-bg-hover: #f8f9fa;
  --table-hover: rgba(0, 0, 0, 0.03);
  --badge-success-bg: rgba(25, 135, 84, 0.1);
  --badge-success-text: #198754;
  --badge-warning-bg: rgba(255, 193, 7, 0.1);
  --badge-warning-text: #ffc107;
  --badge-danger-bg: rgba(220, 53, 69, 0.1);
  --badge-danger-text: #dc3545;
  --badge-info-bg: rgba(13, 202, 240, 0.1);
  --badge-info-text: #0dcaf0;
  --code-bg: #f8f9fa;
  --code-border: var(--accent);
  --code-text: #0d6efd;
}

[data-bs-theme=dark] {
  --bg: #090b0b;
  --panel: #0f1212;
  --panel-rgb: 15, 18, 18;
  --panel-2: #151a19;
  --panel-header: #111313;
  --muted: #0c0f0f;
  --line: #1a1f1e;
  --border-primary: #222424;
  --text: #e8f0ee;
  --text-dim: #7b8583;
  --text-inverse: #090b0b;
  --accent: #00ff88;
  --accent-rgb: 0, 255, 136;
  --accent-hover: #33ff99;
  --accent-2: #ffb800;
  --danger: #ff4466;
  --info: #00b8ff;
  --shadow: 0 12px 48px rgba(0, 0, 0, .8);
  --radius: 0px;
  --input-bg: rgba(255, 255, 255, 0.03);
  --input-bg-hover: rgba(255, 255, 255, 0.05);
  --table-hover: rgba(255, 255, 255, 0.02);
  --badge-success-bg: rgba(0, 255, 136, 0.2);
  --badge-success-text: var(--accent);
  --badge-warning-bg: rgba(255, 184, 0, 0.2);
  --badge-warning-text: var(--accent-2);
  --badge-danger-bg: rgba(255, 68, 102, 0.2);
  --badge-danger-text: var(--danger);
  --badge-info-bg: rgba(0, 184, 255, 0.2);
  --badge-info-text: var(--info);
  --code-bg: #000000;
  --code-border: rgba(0, 255, 136, 0.2);
  --code-text: var(--accent);
}

.text-dim {
  color: var(--text-dim) !important;
}

html,
body {
  height: 100%;
}

body {
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 14px;
}

* {
  border-radius: 0 !important;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
}

h1 {
  font-size: 48px;
  line-height: 1.1;
  background: linear-gradient(135deg, var(--text) 0%, var(--text-dim) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  border-left: 4px solid var(--accent);
  padding-left: 20px;
}

h2 {
  font-size: 32px;
  color: var(--text);
  border-bottom: 2px solid var(--border-primary);
  padding-bottom: 12px;
}

h3 {
  font-size: 24px;
  color: var(--text);
}

h4 {
  font-size: 18px;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.section {
  margin-bottom: 72px;
  padding-bottom: 24px;
}

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
}

.auth-wrapper {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 2rem 1rem;
  background: linear-gradient(135deg, var(--bg) 0%, var(--panel) 100%);
}

.auth-container {
  width: 100%;
  max-width: 420px;
  position: relative;
  z-index: 10;
}

.auth-header {
  text-align: center;
  margin-bottom: 2rem;
}
.auth-header .brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.auth-header .brand-logo {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, var(--accent), var(--accent-hover));
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: var(--text-inverse);
  box-shadow: 0 8px 24px rgba(var(--accent-rgb), 0.25);
}
.auth-header .brand-logo-svg {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.auth-header .brand-logo-svg svg {
  width: 200px;
  height: auto;
  max-width: 100%;
  filter: drop-shadow(0 4px 12px rgba(255, 255, 255, 0.1));
  transition: filter 0.3s ease;
}
.auth-header .brand-logo-svg:hover {
  text-decoration: none;
  transform: scale(1.02);
}
.auth-header .brand-logo-svg:hover svg {
  filter: drop-shadow(0 4px 20px rgba(var(--accent-rgb), 0.3));
}
.auth-header .brand-logo-svg:active {
  transform: scale(0.98);
}
.auth-header .brand-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.5px;
}
.auth-header .auth-subtitle {
  color: var(--text-dim);
  font-size: 0.875rem;
  margin-top: 0.5rem;
}

.auth-card {
  background: var(--panel);
  border: 1px solid var(--border-primary);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
}
.auth-card .auth-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--text);
}
.auth-card .auth-description {
  color: var(--text-dim);
  font-size: 0.875rem;
  margin-bottom: 1.5rem;
}

.auth-form .form-group {
  margin-bottom: 1.25rem;
}
.auth-form .form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
}
.auth-form .form-control {
  width: 100%;
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text);
  background-color: var(--input-bg);
  border: 1px solid var(--border-primary);
  border-radius: 8px;
  transition: all 0.15s ease-in-out;
}
.auth-form .form-control:hover {
  background-color: var(--input-bg-hover);
  border-color: var(--text-dim);
}
.auth-form .form-control:focus {
  outline: none;
  background-color: var(--input-bg);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.auth-form .form-control::-moz-placeholder {
  color: var(--text-dim);
  opacity: 0.7;
}
.auth-form .form-control::placeholder {
  color: var(--text-dim);
  opacity: 0.7;
}
.auth-form .form-check {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
}
.auth-form .form-check .form-check-input {
  width: 18px;
  height: 18px;
  margin-right: 0.5rem;
  background-color: var(--input-bg);
  border: 1px solid var(--border-primary);
  border-radius: 4px;
  cursor: pointer;
}
.auth-form .form-check .form-check-input:checked {
  background-color: var(--accent);
  border-color: var(--accent);
}
.auth-form .form-check .form-check-input:focus {
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.auth-form .form-check .form-check-label {
  font-size: 0.875rem;
  color: var(--text);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.auth-form .btn-auth-primary {
  width: 100%;
  padding: 0.75rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-inverse);
  background: linear-gradient(135deg, var(--accent), var(--accent-hover));
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(var(--accent-rgb), 0.25);
}
.auth-form .btn-auth-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(var(--accent-rgb), 0.35);
}
.auth-form .btn-auth-primary:active {
  transform: translateY(0);
}
.auth-form .btn-auth-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}
.auth-form .password-field {
  position: relative;
}
.auth-form .password-field .password-toggle {
  position: absolute;
  right: 0.875rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  padding: 0.25rem;
}
.auth-form .password-field .password-toggle:hover {
  color: var(--text);
}

.auth-links {
  text-align: center;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  font-size: 0.875rem;
}
.auth-links a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 500;
  transition: opacity 0.2s;
}
.auth-links a:hover {
  opacity: 0.8;
  text-decoration: underline;
}
.auth-links .text-secondary {
  color: var(--text-dim);
}

.forgot-password-link {
  font-size: 0.875rem;
  color: var(--accent);
  text-decoration: none;
}
.forgot-password-link:hover {
  text-decoration: underline;
}

.form-text {
  color: var(--text-dim);
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}

.org-highlight {
  color: var(--accent);
  font-weight: 600;
}

.auth-container-wide {
  max-width: 640px;
}

.auth-form-wide .row {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}
.auth-form-wide .row [class^=col],
.auth-form-wide .row [class*=" col"] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.auth-footer {
  margin-top: 2rem;
  text-align: center;
}
.auth-footer .footer-links {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
}
.auth-footer .footer-links a {
  color: var(--text-dim);
  text-decoration: none;
  transition: color 0.2s;
}
.auth-footer .footer-links a:hover {
  color: var(--text);
}
.auth-footer .footer-links .separator {
  color: var(--text-dim);
  opacity: 0.5;
}
.auth-footer .copyright {
  font-size: 0.75rem;
  color: var(--text-dim);
  opacity: 0.7;
}

.alert {
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  border-radius: 8px;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.alert.alert-danger {
  background-color: rgba(var(--danger), 0.1);
  color: var(--danger);
  border: 1px solid rgba(var(--danger), 0.2);
}
.alert.alert-success {
  background-color: var(--badge-success-bg);
  color: var(--badge-success-text);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
}
.alert.alert-warning {
  background-color: var(--badge-warning-bg);
  color: var(--badge-warning-text);
  border: 1px solid rgba(255, 184, 0, 0.2);
}
.alert.alert-info {
  background-color: var(--badge-info-bg);
  color: var(--badge-info-text);
  border: 1px solid rgba(0, 184, 255, 0.2);
}
.alert .btn-close {
  margin-left: auto;
  background: none;
  border: none;
  opacity: 0.7;
  cursor: pointer;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
  color: inherit;
}
.alert .btn-close:hover {
  opacity: 1;
}

.toast-container {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 1070;
}

.toast {
  min-width: 280px;
  background: var(--panel);
  border: 1px solid var(--border-primary);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.toast .toast-body {
  padding: 0.75rem 1rem;
  color: var(--text);
  font-size: 0.875rem;
}
.toast.bg-success {
  background: var(--badge-success-bg) !important;
  border-color: rgba(var(--accent-rgb), 0.3);
  color: var(--badge-success-text) !important;
}
.toast.bg-danger {
  background: var(--badge-danger-bg) !important;
  border-color: rgba(255, 68, 102, 0.3);
  color: var(--badge-danger-text) !important;
}
.toast.bg-warning {
  background: var(--badge-warning-bg) !important;
  border-color: rgba(255, 184, 0, 0.3);
  color: var(--badge-warning-text) !important;
}
.toast.bg-info {
  background: var(--badge-info-bg) !important;
  border-color: rgba(0, 184, 255, 0.3);
  color: var(--badge-info-text) !important;
}

.auth-background {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
.auth-background::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at center, rgba(var(--accent-rgb), 0.05) 0%, transparent 70%);
  animation: rotate 60s linear infinite;
}
.auth-background::after {
  content: "";
  position: absolute;
  bottom: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at center, rgba(var(--accent-rgb), 0.03) 0%, transparent 70%);
  animation: rotate-reverse 90s linear infinite;
}

@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes rotate-reverse {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}
@media (max-width: 480px) {
  .auth-container {
    max-width: 100%;
  }
  .auth-card {
    padding: 1.5rem;
  }
  .auth-header .brand {
    flex-direction: column;
    gap: 0.75rem;
  }
  .auth-header .brand-logo-svg svg {
    width: 160px;
  }
}

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