/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* assets/styles/app.css */

/* Import Font Awesome */

/* CSS Variables */
:root {
    --primary: #5D40A6;
    --secondary: #56CFE1;
    --positive: #128370;
    --negative: #FF9E6D;
    --background: #FAFAFC;
    --headers: #F9F6FD;
    --text: #4A5568;
    --text-light: #718096;
    --white: #FFFFFF;
    --card-bg: #FFFFFF;
    --sidebar-bg: #FFFFFF;
    --border: #E2E8F0;

    /* RGB equivalents for rgba() usage */
    --primary-rgb: 93, 64, 166;     /* #5D40A6 */
    --positive-rgb: 18, 131, 112;   /* #128370 */
    --negative-rgb: 255, 158, 109;  /* #FF9E6D */
    --text-rgb: 74, 85, 104;        /* #4A5568 */
}

/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

body {
    background-color: var(--background);
    color: var(--text);
    display: flex;
    min-height: 100vh;
}

/* Sidebar Styles */
.sidebar {
    width: 300px;
    background-color: var(--sidebar-bg);
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    z-index: 100;
    position: fixed;
    height: 100vh;
    overflow-y: auto;
}

.logo {
    display: flex;
    align-items: center;
    padding: 0 20px 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--border);
}

.logo i {
    font-size: 24px;
    color: var(--primary);
    margin-right: 10px;
}

.logo span {
    font-weight: 700;
    font-size: 20px;
    color: var(--primary);
}

.menu {
    list-style: none;
    flex-grow: 1;
}

.menu li {
    margin-bottom: 5px;
}

.menu li a {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    text-decoration: none;
    color: var(--text);
    transition: all 0.3s;
    position: relative;
    z-index: 10;
    pointer-events: auto;
}

.menu li a:hover, .menu li a.active {
    background-color: rgba(94, 96, 206, 0.1);
    color: var(--primary);
    border-right: 3px solid var(--primary);
}

.menu li a i {
    margin-right: 10px;
    width: 20px;
    text-align: center;
}

.user-section {
    padding: 20px;
    border-top: 1px solid var(--border);
}

.user-info {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.user-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 600;
    margin-right: 10px;
}

.user-details {
    flex-grow: 1;
}

.user-name {
    font-weight: 600;
}

.user-role {
    font-size: 0.8rem;
    color: var(--text-light);
}

.logout-btn {
    width: 100%;
    padding: 10px;
    background: none;
    border: 1px solid var(--border);
    border-radius: 5px;
    color: var(--text);
    cursor: pointer;
    transition: all 0.3s;
}

.logout-btn:hover {
    background-color: rgba(255, 158, 109, 0.1);
    color: var(--negative);
}

/* Sidebar Group Styles */
.menu-group {
    margin-bottom: 5px;
}

.group-header {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    cursor: pointer;
    color: var(--text);
    transition: all 0.3s;
    position: relative;
    font-size: 1.05rem; /* Make font and icon larger */
}

.group-header:hover {
    background-color: rgba(94, 96, 206, 0.1);
    color: var(--primary);
}

.group-header i:first-child {
    margin-right: 10px;
    width: 20px;
    text-align: center;
}

.group-indicator {
    margin-left: auto;
    font-size: 12px;
    transition: transform 0.3s;
}

.menu-group.active .group-indicator {
    transform: rotate(180deg);
}

.submenu {
    list-style: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.menu-group.active .submenu {
    max-height: 200px;
}

.submenu li {
    margin-bottom: 0;
}

.submenu li a {
    padding-left: 55px; /* Increased from 50px for more indentation */
    padding-top: 8px;
    padding-bottom: 8px;
    font-size: 0.9rem;
}

.submenu li a i {
    font-size: 0.8rem;
}

/* Color differentiation for income/expense groups */
.menu-group:nth-child(5) .group-header { /* Income Transactions */
    color: var(--positive);
}

.menu-group:nth-child(5) .group-header:hover {
    background-color: rgba(114, 239, 221, 0.1);
}

.menu-group:nth-child(6) .group-header { /* Expense Transactions */
    color: var(--negative);
}

.menu-group:nth-child(6) .group-header:hover {
    background-color: rgba(255, 158, 109, 0.1);
}

/* Color coding for income and expense items */
.income-color {
    color: var(--positive) !important;
}

.expense-color {
    color: var(--negative) !important;
}

/* Style for active state with color coding */
.menu li a.income-color.active,
.menu-group.income-color .group-header.active {
    background-color: rgba(114, 239, 221, 0.1) !important;
    border-right: 3px solid var(--positive) !important;
}

.menu li a.expense-color.active,
.menu-group.expense-color .group-header.active {
    background-color: rgba(255, 158, 109, 0.1) !important;
    border-right: 3px solid var(--negative) !important;
}

/* Hover effects for color-coded items */
.menu li a.income-color:hover,
.menu-group .group-header.income-color:hover {
    background-color: rgba(114, 239, 221, 0.1) !important;
    color: var(--positive) !important;
}

.menu li a.expense-color:hover,
.menu-group .group-header.expense-color:hover {
    background-color: rgba(255, 158, 109, 0.1) !important;
    color: var(--negative) !important;
}

/* Ensure submenu items maintain color */
.submenu li a.income-color,
.submenu li a.expense-color {
    border-right: none !important;
}

.submenu li a.income-color:hover {
    background-color: rgba(114, 239, 221, 0.05) !important;
}

.submenu li a.expense-color:hover {
    background-color: rgba(255, 158, 109, 0.05) !important;
}

/* Main Content */
.main-content {
    flex-grow: 1;
    padding: 20px;
    overflow-y: auto;
    margin-left: 300px;
    width: calc(100% - 250px);
}

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

.page-title h1 {
    font-size: 1.8rem;
    color: var(--primary);
}

.page-title p {
    color: var(--text-light);
    margin-top: 5px;
}

/* Common Form Styles */
.form-section, .accounts-list, .groups-list {
    margin-bottom: 20px;
    background-color: var(--card-bg);
    border-radius: 10px;
    padding: 25px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border);
}

.section-title {
    font-weight: 600;
    color: var(--primary);
    font-size: 1.2rem;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: var(--text);
}

.form-control {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid var(--border);
    border-radius: 5px;
    background-color: var(--background);
    color: var(--text);
    font-size: 1rem;
    transition: border-color 0.3s;
}

.form-control:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(94, 96, 206, 0.1);
}

.input-with-icon {
    position: relative;
}

.input-with-icon i {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-light);
}

.input-with-icon .form-control {
    padding-left: 45px;
}

.form-hint {
    font-size: 0.8rem;
    color: var(--text-light);
    margin-top: 5px;
}

.btn {
    padding: 12px 20px;
    border: none;
    border-radius: 5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}

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

.btn-primary:hover {
    background-color: #4d4fbb;
}

.btn-secondary {
    background-color: var(--background);
    color: var(--text);
    border: 1px solid var(--border);
}

.btn-secondary:hover {
    background-color: #eef2f6;
}

.form-actions {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

/* Common Table Styles */
.accounts-table, .groups-table {
    width: 100%;
    border-collapse: collapse;
}

.accounts-table th, .accounts-table td,
.groups-table th, .groups-table td {
    padding: 12px 15px;
    text-align: left;
}

.accounts-table thead, .groups-table thead {
    background-color: var(--background);
}

.accounts-table th, .groups-table th {
    font-weight: 600;
    color: var(--text);
    border-bottom: 2px solid var(--border);
}

.accounts-table tbody tr, .groups-table tbody tr {
    border-bottom: 1px solid var(--border);
}

.accounts-table tbody tr:last-child,
.groups-table tbody tr:last-child {
    border-bottom: none;
}

.accounts-table tbody tr:hover,
.groups-table tbody tr:hover {
    background-color: rgba(94, 96, 206, 0.03);
}

/* Type Indicators */
.account-type, .group-type {
    display: flex;
    align-items: center;
}

.account-type-icon, .group-type-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    font-size: 14px;
}

.checking .account-type-icon {
    background-color: rgba(86, 207, 225, 0.2);
    color: var(--secondary);
}

.savings .account-type-icon {
    background-color: rgba(114, 239, 221, 0.2);
    color: var(--positive);
}

.credit .account-type-icon {
    background-color: rgba(255, 158, 109, 0.2);
    color: var(--negative);
}

.investment .account-type-icon {
    background-color: rgba(94, 96, 206, 0.2);
    color: var(--primary);
}

.income .group-type-icon {
    background-color: rgba(114, 239, 221, 0.2);
    color: var(--positive);
}

.income-type {
    color: var(--positive);
}

.expense .group-type-icon {
    background-color: rgba(255, 158, 109, 0.2);
    color: var(--negative);
}

.expense-type {
    color: var(--negative);
}

.account-balance {
    font-weight: 600;
}

.positive-balance {
    color: var(--positive);
}

.negative-balance {
    color: var(--negative);
}

/* Action Buttons */
.action-buttons {
    display: flex;
    gap: 8px;
}

.action-btn {
    width: 30px;
    height: 30px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid var(--border);
    color: var(--text);
    cursor: pointer;
    transition: all 0.3s;
}

.action-btn:hover {
    background-color: var(--background);
}

.edit-btn:hover {
    color: var(--secondary);
    border-color: var(--secondary);
}

.delete-btn:hover {
    color: var(--negative);
    border-color: var(--negative);
}

.action-btn.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.action-btn.disabled:hover {
    background-color: transparent;
    border-color: var(--border);
    color: var(--text);
}

/* Empty State */
.empty-state {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-light);
}

.empty-state i {
    font-size: 48px;
    margin-bottom: 15px;
    color: var(--border);
}

.empty-state p {
    margin-bottom: 20px;
}

/* Flash Messages */
.flash-messages {
    margin-bottom: 20px;
}

.alert {
    padding: 12px 15px;
    border-radius: 5px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
}

.alert-success {
    background-color: rgba(114, 239, 221, 0.2);
    color: var(--positive);
    border: 1px solid var(--positive);
}

.alert-error {
    background-color: rgba(255, 158, 109, 0.2);
    color: var(--negative);
    border: 1px solid var(--negative);
}

.alert i {
    margin-right: 10px;
}

/* Badges */
.in-use-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    padding: 2px 6px;
    background-color: rgba(86, 207, 225, 0.1);
    color: var(--secondary);
    border-radius: 4px;
    margin-left: 8px;
}

.groups-count {
    font-size: 0.9rem;
    color: var(--text-light);
}

/* Grid Containers */
.accounts-container, .groups-container, .debt-management-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

/* Specific Table Row Highlighting */
tr.asset {
    background-color: rgba(var(--primary-rgb), 0.05);
    border-left: 4px solid var(--primary);
}

.asset .group-type-icon {
    background-color: rgba(var(--primary-rgb), 0.2);
    color: var(--primary);
}

.asset-type {
    color: var(--primary);
    font-weight: 500;
}

tr.income {
    background-color: rgba(var(--positive-rgb), 0.05);
    border-left: 4px solid var(--positive);
}

tr.expense {
    background-color: rgba(var(--negative-rgb), 0.05);
    border-left: 4px solid var(--negative);
}

/* Responsive Adjustments */
@media (max-width: 992px) {
    .accounts-container, .groups-container, .debt-management-container {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .sidebar {
        width: 70px;
    }

    .logo span, .menu li a span, .user-details, .logout-btn span {
        display: none;
    }

    .menu li a {
        justify-content: center;
        padding: 15px;
    }

    .menu li a i {
        margin-right: 0;
        font-size: 20px;
    }

    .user-section {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .main-content {
        margin-left: 70px;
        width: calc(100% - 70px);
    }

    .accounts-table thead, .groups-table thead {
        display: none;
    }

    .accounts-table tbody tr, .groups-table tbody tr {
        display: block;
        margin-bottom: 15px;
        border: 1px solid var(--border);
        border-radius: 5px;
    }

    .accounts-table tbody td, .groups-table tbody td {
        display: block;
        text-align: right;
        padding: 10px 15px;
        position: relative;
    }

    .accounts-table tbody td::before,
    .groups-table tbody td::before {
        content: attr(data-label);
        position: absolute;
        left: 15px;
        top: 10px;
        font-weight: 600;
        color: var(--text);
    }
}

/* Standard Modal Styles */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.4);
}

.modal-content {
    background-color: var(--card-bg);
    margin: 5% auto;
    padding: 0;
    border-radius: 10px;
    width: 80%;
    max-width: 700px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    position: relative;
}

.modal-header {
    padding: 20px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-header h2 {
    margin: 0;
    font-size: 1.5rem;
}

.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.close:hover {
    color: var(--text);
}

.modal-body {
    padding: 20px;
    max-height: 70vh;
    overflow-y: auto;
}

/* Responsive adjustments for modals */
@media (max-width: 768px) {
    .modal-content {
        width: 95%;
        margin: 10% auto;
    }
}

/* Loading Modal Styles */
.loading-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.loading-modal .modal-content {
    background: white;
    border-radius: 8px;
    padding: 2rem;
    max-width: 500px;
    width: 90%;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.loading-modal .modal-header h3 {
    margin: 0 0 1rem 0;
    color: #2c3e50;
    font-size: 1.25rem;
}

.loading-modal .loading-text {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    font-weight: 500;
}

.loading-modal .fa-spin {
    animation: fa-spin 2s infinite linear;
}

.loading-modal .progress-container {
    margin-bottom: 1rem;
}

.loading-modal .progress-bar {
    width: 100%;
    height: 8px;
    background: #e9ecef;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.loading-modal .progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #3498db, #2ecc71);
    width: 0%;
    transition: width 0.3s ease;
    border-radius: 4px;
}

.loading-modal .progress-text {
    font-size: 0.875rem;
    color: #6c757d;
    display: block;
    text-align: center;
}

.loading-modal .estimated-time {
    font-size: 0.875rem;
    color: #6c757d;
    text-align: center;
    font-style: italic;
}

@keyframes fa-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Transaction History Modal Styles */
.month-selector {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 20px;
}

.nav-btn {
    padding: 8px 12px;
    border: 1px solid var(--border);
    background: var(--background);
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s;
}

.nav-btn:hover:not(:disabled) {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

.nav-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.month-display {
    display: flex;
    gap: 10px;
}

.transactions-container {
    position: relative;
}

.transactions-list {
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: 5px;
    padding: 10px;
}

.transaction-item {
    display: flex;
    justify-content: between;
    align-items: center;
    padding: 10px;
    border-bottom: 1px solid var(--border);
    transition: background-color 0.3s;
}

.transaction-item:hover {
    background-color: rgba(94, 96, 206, 0.05);
}

.transaction-item:last-child {
    border-bottom: none;
}

.transaction-details {
    flex-grow: 1;
}

.transaction-name {
    font-weight: 600;
    margin-bottom: 4px;
}

.transaction-description {
    font-size: 0.9rem;
    color: var(--text-light);
    margin-bottom: 4px;
}

.transaction-date {
    font-size: 0.8rem;
    color: var(--text-light);
}

.transaction-amount {
    font-weight: 600;
    font-size: 1.1rem;
}

.transaction-income {
    color: var(--positive);
}

.transaction-expense {
    color: var(--negative);
}

.transaction-summary {
    display: flex;
    justify-content: space-around;
    margin-top: 20px;
    padding: 15px;
    background: var(--background);
    border-radius: 5px;
}

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

.loading-transactions,
.empty-transactions {
    text-align: center;
    padding: 40px;
    color: var(--text-light);
}

.loading-transactions i,
.empty-transactions i {
    font-size: 2rem;
    margin-bottom: 10px;
    display: block;
}

.scroll-btn {
    position: absolute;
    right: 10px;
    padding: 5px 8px;
    border: 1px solid var(--border);
    background: var(--white);
    border-radius: 3px;
    cursor: pointer;
    z-index: 10;
}

.scroll-up {
    top: 10px;
}

.scroll-down {
    bottom: 10px;
}

/* Ensure modals are properly styled */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.4);
}

.modal-content {
    background-color: var(--card-bg);
    margin: 5% auto;
    padding: 0;
    border-radius: 10px;
    width: 80%;
    max-width: 600px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    position: relative;
}

.modal-header {
    padding: 20px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-header h2 {
    margin: 0;
    font-size: 1.5rem;
}

.modal-body {
    padding: 20px;
    max-height: 70vh;
    overflow-y: auto;
}

.close {
    color: #aaa;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}

.close:hover {
    color: var(--text);
}

/* Prospect Main Index Page Styles */
.prospect-centered-hero-section {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background-color: var(--background);
    padding: 20px;
    margin: 0;
}

.prospect-hero-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    text-align: center;
    max-width: 1200px;
    width: 100%;
}

.prospect-hero-image-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.prospect-hero-image {
    max-width: 500px;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.prospect-hero-links-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.prospect-hero-links {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
}

.prospect-hero-link {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 1.2rem;
    transition: all 0.3s ease;
    padding: 12px 24px;
    border-radius: 8px;
    border: 2px solid transparent;
}

.prospect-hero-link:hover {
    color: var(--white);
    background-color: var(--primary);
    text-decoration: none;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(94, 96, 206, 0.4);
    border-color: var(--primary);
}

.prospect-link-separator {
    color: var(--text-light);
    font-weight: 300;
    font-size: 1.5rem;
}

.prospect-hero-footer {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    width: 100%;
    max-width: 400px;
}

.prospect-copyright {
    font-size: 0.9rem;
    color: var(--text-light);
    margin: 0;
}

/* Responsive adjustments for prospect page */
@media (max-width: 768px) {
    .prospect-hero-image {
        max-width: 300px;
    }

    .prospect-hero-links {
        flex-direction: column;
        gap: 15px;
    }

    .prospect-link-separator {
        display: none;
    }

    .prospect-hero-link {
        font-size: 1.1rem;
        padding: 15px 30px;
        width: 200px;
        text-align: center;
    }

    .prospect-hero-container {
        gap: 30px;
    }
}

@media (max-width: 480px) {
    .prospect-centered-hero-section {
        padding: 15px;
    }

    .prospect-hero-image {
        max-width: 250px;
    }

    .prospect-hero-link {
        font-size: 1rem;
        padding: 12px 20px;
        width: 180px;
    }
}

/* Fix for prospect pages - override body flex behavior */
body.prospect-body {
    display: block;
    min-height: 100vh;
}

/* Ensure prospect hero section takes full viewport height */
body.prospect-body .prospect-centered-hero-section {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    width: 100%;
    background-color: var(--background);
    padding: 20px;
    margin: 0;
}

/* Make sure the container is properly centered */
body.prospect-body .prospect-hero-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    text-align: center;
    max-width: 1200px;
    width: 100%;
}

/* Center the image container */
body.prospect-body .prospect-hero-image-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

/* Center the links container */
body.prospect-body .prospect-hero-links-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

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