/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
:root {
    --primary-navy: #1e3a5f;
    --accent-turquoise: #00d4aa;
    --sidebar-accent: #7c3aed;
    --light-cream: #f8fafc;
    --sidebar-width: 250px;
    --sidebar-collapsed-width: 80px;
        --menu-1-color: #3b82f6; /* Bleu */
    --menu-2-color: #10b981; /* Vert */
    --menu-3-color: #f59e0b; /* Orange */
    --menu-4-color: #ef4444; /* Rouge */
    --menu-5-color: #8b5cf6; /* Violet */
    
    /* Couleurs au survol */
    --menu-1-hover: #2563eb;
    --menu-2-hover: #059669;
    --menu-3-hover: #d97706;
    --menu-4-hover: #dc2626;
    --menu-5-hover: #7c3aed;
}

/* Global box model + reset */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html, body {
    height: 100%;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    background: transparent;
    color: var(--primary-navy);
}

.container-fluid {
    padding: 0;
}

.row.g-0 {
    margin: 0;
    position: relative;
    min-height: 100vh;
}

/* --- STRUCTURE PRINCIPALE --- */
.dashboard-container {
    background: linear-gradient(135deg, var(--light-cream) 0%, #e8ecef 100%);
    min-height: 100vh;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
    width: 100%;
}

/* Ajustement du contenu principal pour qu'il ne passe pas sous la sidebar */
.main-content {
    padding: 40px 20px 40px 40px;
    transition: all 0.3s ease;
    flex: 1;
    overflow-x: hidden;
    width: calc(100% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
}

/* Quand la sidebar est réduite */
body.sidebar-collapsed .main-content {
    width: calc(100% - var(--sidebar-collapsed-width));
    margin-left: var(--sidebar-collapsed-width);
}

/* --- NAVBAR --- */
.top-navbar {
    background-color: white;
    color: var(--primary-navy);
    padding: 15px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 15px rgba(30, 58, 95, 0.1);
    transition: all 0.3s ease;
    position: sticky;
    top: 0;
    z-index: 100;
    width: calc(102% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
    border-bottom: 1px solid rgba(30, 58, 95, 0.1);
}

body.sidebar-collapsed .top-navbar {
    width: calc(102% - var(--sidebar-collapsed-width));
    margin-left: var(--sidebar-collapsed-width);
}

.search-bar-container {
    position: relative;
    width: 300px;
    margin: auto;
}

.search-input {
    background-color: var(--light-cream);
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 10px 20px 10px 40px;
    width: 100%;
    outline: none;
    color: var(--primary-navy);
    transition: all 0.3s ease;
}

.search-input:focus {
    background-color: white;
    box-shadow: 0 0 0 2px var(--accent-turquoise);
    border-color: var(--accent-turquoise);
}

.search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--primary-navy);
    opacity: 0.5;
    transition: all 0.3s ease;
}

.search-bar-container:hover .search-icon {
    color: var(--accent-turquoise);
    opacity: 1;
}

/* --- SIDEBAR GAUCHE --- */
.sidebar-left {
    background: linear-gradient(180deg, var(--primary-navy) 0%, #152642 100%);
    min-height: 100vh;
    color: white;
    padding: 0;
    transition: all 0.3s ease;
    position: fixed;
    left: 0;
    top: 0;
    width: var(--sidebar-width);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-left.collapsed {
    width: var(--sidebar-collapsed-width);
}

.sidebar-toggle {
    position: absolute;
    top: 20px;
    right: 15px;
    left: auto;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.sidebar-toggle:hover {
    background: var(--sidebar-accent);
    transform: scale(1.1);
}

/* --- CONTENU SIDEBAR AVEC SCROLL --- */
.sidebar-content {
    transition: all 0.3s ease;
    opacity: 1;
    visibility: visible;
    padding: 60px 20px 20px 20px;
    flex: 1;
    overflow-y: auto; /* Activation du scroll vertical */
    max-height: calc(100vh - 80px); /* Hauteur maximale avec espace pour le toggle */
    scrollbar-width: thin;
    scrollbar-color: var(--sidebar-accent) rgba(255, 255, 255, 0.1);
}

/* Scrollbar personnalisée pour Webkit (Chrome, Safari, Edge) */
.sidebar-content::-webkit-scrollbar {
    width: 6px;
}

.sidebar-content::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
}

.sidebar-content::-webkit-scrollbar-thumb {
    background: var(--sidebar-accent);
    border-radius: 3px;
    transition: all 0.3s ease;
}

.sidebar-content::-webkit-scrollbar-thumb:hover {
    background: #6d28d9; /* Violet plus clair au survol */
}

.sidebar-left.collapsed .sidebar-content {
    opacity: 0;
    visibility: hidden;
    display: none;
}

.sidebar-left.collapsed.open {
    width: var(--sidebar-width);
    box-shadow: 4px 0 18px rgba(0, 0, 0, 0.25);
    z-index: 1100;
}

.sidebar-left.collapsed.open .sidebar-content {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* --- MENU DÉPLIANT --- */
.menu-header {
    background-color: rgba(255, 255, 255, 0.1);
    color: white;
    padding: 15px;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 15px 0;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(124, 58, 237, 0.3);
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
    cursor: pointer;
    text-align: center;
    padding-right: 40px;
}

.menu-header:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.4);
}

.menu-header::after {
    content: '\f078';
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}

.menu-header.expanded::after {
    content: '\f077';
    transform: translateY(-50%) rotate(180deg);
}

.menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: none;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
}

.menu-list.expanded {
    display: block;
    opacity: 1;
    max-height: 500px;
}

.menu-list li {
    padding: 12px 15px;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    border-left: 3px solid var(--sidebar-accent);
    margin-bottom: 5px;
    border-radius: 0 5px 5px 0;
}

.menu-list li:hover {
    background-color: rgba(124, 58, 237, 0.1);
    padding-left: 20px;
    color: white;
}

.menu-list li i {
    color: var(--light-cream);
    width: 20px;
    text-align: center;
    font-size: 1.3rem;
}

/* Mini menu pour l'état réduit */
.mini-menu {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 80px 0 20px 0;
    height: 100%;
    justify-content: flex-start;
    overflow-y: auto; /* Scroll aussi pour le mini-menu au cas où */
    max-height: calc(100vh - 100px);
}

.sidebar-left.collapsed .mini-menu {
    display: flex;
}

.mini-menu-item {
    width: 50px;
    height: 50px;
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.mini-menu-item:hover {
    background-color: var(--sidebar-accent);
    transform: scale(1.1);
}

.mini-menu-item i {
    color: white;
    font-size: 1.5rem;
}

.mini-menu-tooltip {
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--sidebar-accent);
    color: white;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 100;
    margin-right: 10px;
    font-weight: 600;
}

.mini-menu-item:hover .mini-menu-tooltip {
    opacity: 1;
    visibility: visible;
}

/* --- GRILLE DES CERCLES - ICÔNES TRÈS AGRANDIES --- */
.shortcut-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(140px, 1fr));
    gap: 30px 20px;
    margin-bottom: 50px;
    max-width: 100%;
    align-items: start;
}

.circle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.circle-icon {
    background-color: transparent;
    border: none;
    width: 140px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 0;
}

.circle-icon i {
    font-size: 3rem;
    color: var(--primary-navy);
    transition: all 0.3s ease;
}

.circle-icon:hover i {
    transform: scale(1.2);
    color: var(--sidebar-accent);
}

.circle-icon.active i {
    color: var(--sidebar-accent);    transform: scale(1.1);
}

.circle-text {
    color: var(--primary-navy);
    font-size: 0.95rem;
    margin-top: 12px;
    transition: all 0.3s ease;
    text-align: center;
    font-weight: 500;
}

.circle-wrapper:hover .circle-text {
    color: var(--sidebar-accent);    transform: translateY(-2px);
}

/* --- WIDGET CA --- */
.card-ca {
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    color: white;
    border: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.card-ca:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(30, 58, 95, 0.25);
}

.card-ca .card-body {
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 1;
}

.ca-label {
    font-size: 3rem;
    font-weight: 700;
    transition: all 0.3s ease;
    color: var(--accent-turquoise);
}

.card-ca:hover .ca-label {
    transform: scale(1.05);
}

.ca-value {
    font-size: 1.4rem;
    text-align: right;
    transition: all 0.3s ease;
    font-weight: 600;
}

.card-ca:hover .ca-value {
    transform: translateX(5px);
}

.card-ca-footer {
    background-color: rgba(0, 212, 170, 0.1);
    padding: 12px 20px;
    text-align: center;
    cursor: pointer;
    font-size: 0.9rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
    color: var(--accent-turquoise);
    font-weight: 600;
}

.card-ca-footer:hover {
    background-color: rgba(0, 212, 170, 0.2);
    gap: 15px;
}

.card-ca-footer i {
    transition: transform 0.3s ease;
    font-size: 1.1rem;
}

.card-ca-footer:hover i {
    transform: translateX(5px);
}

/* --- WIDGET GRAPHIQUE --- */
.card-chart {
    background-color: white;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
    min-height: 260px;
    max-height: 360px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s ease;
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.card-chart:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(30, 58, 95, 0.25);
}

.card-chart canvas {
    width: 100% !important;
    height: 100% !important;
}

/* Styles pour la modal des raccourcis - ICÔNES TRÈS AGRANDIES */
.modal-shortcuts .modal-content {
    border-radius: 12px;
    border: none;
    box-shadow: 0 20px 40px rgba(30, 58, 95, 0.2);
}

.modal-shortcut-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
    padding: 25px 0;
}

.modal-circle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    transition: transform 0.3s ease;
    padding: 20px;
    border-radius: 10px;
}

.modal-circle-wrapper:hover {
    transform: translateY(-5px);
    background-color: var(--light-cream);
}

.modal-circle-icon {
    width: 100px;
    height: 100px;
    background-color: transparent;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.modal-circle-icon i {
    font-size: 3.5rem;
    color: var(--primary-navy);
    transition: all 0.3s ease;
}

.modal-circle-wrapper:hover .modal-circle-icon i {
    transform: scale(1.2);
    color: var(--sidebar-accent);
}

.modal-circle-text {
    font-size: 1rem;
    text-align: center;
    color: var(--primary-navy);
    font-weight: 500;
}

/* Icônes dans les en-têtes de menu de la sidebar */
.menu-header i {
    font-size: 1.3rem;
    margin-right: 8px;
}

/* --- MEDIA QUERIES AVEC LES NOUVELLES TAILLES --- */
@media (max-width: 1200px) {
    .shortcut-grid {
        grid-template-columns: repeat(4, minmax(130px, 1fr));
    }
    .modal-shortcut-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .circle-icon {
        width: 120px;
        height: 120px;
    }
    .circle-icon i {
        font-size: 4rem;
    }
    .modal-circle-icon {
        width: 90px;
        height: 90px;
    }
    .modal-circle-icon i {
        font-size: 3rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

@media (max-width: 992px) {
    .shortcut-grid {
        grid-template-columns: repeat(3, minmax(120px, 1fr));
        gap: 25px 15px;
    }
    .modal-shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .circle-icon {
        width: 110px;
        height: 110px;
    }
    .circle-icon i {
        font-size: 3.5rem;
    }
    .modal-circle-icon {
        width: 85px;
        height: 85px;
    }
    .modal-circle-icon i {
        font-size: 2.8rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

@media (max-width: 768px) {
    .sidebar-left {
        transform: translateX(-100%);
    }

    .sidebar-left.collapsed {
        transform: translateX(0);
        width: var(--sidebar-collapsed-width);
    }

    .main-content {
        width: 100% !important;
        padding: 20px;
    }

    .top-navbar {
        width: 100% !important;
        padding: 15px 20px;
    }

    .search-bar-container {
        width: 200px;
    }

    .modal-shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .circle-icon {
        width: 100px;
        height: 100px;
    }
    .circle-icon i {
        font-size: 3rem;
    }
    .modal-circle-icon {
        width: 80px;
        height: 80px;
    }
    .modal-circle-icon i {
        font-size: 2.5rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

@media (max-width: 768px) {
    .dashboard-container {
        padding-top: 0;
    }

    .main-content {
        width: 100% !important;
        margin-left: 0 !important;
        padding: 24px 20px 40px;
    }

    .top-navbar {
        width: 100% !important;
        margin-left: 0 !important;
        padding: 12px 20px;
    }

    .shortcut-grid {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
        gap: 18px;
    }

    .card-ca,
    .card-chart,
    .card {
        width: 100%;
        margin-bottom: 20px;
    }

    .card-chart {
        max-height: 320px;
    }

    .page-header {
        padding: 24px 20px;
    }

    .data-table-card {
        margin-bottom: 20px;
    }
}

@media (max-width: 480px) {
    .shortcut-grid {
        grid-template-columns: repeat(2, minmax(100px, 1fr));
        gap: 20px 10px;
    }

    .circle-icon {
        width: 90px;
        height: 90px;
    }
    .circle-icon i {
        font-size: 2.8rem;
    }

    .modal-shortcut-grid {
        grid-template-columns: 1fr;
    }

    .modal-circle-icon {
        width: 70px;
        height: 70px;
    }
    .modal-circle-icon i {
        font-size: 2.2rem;
    }

    .ca-label {
        font-size: 2.5rem;
    }

    .ca-value {
        font-size: 1.2rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

/* Adaptation pour la sidebar réduite en responsive */
@media (max-width: 1200px) {
            .sidebar-left:not(.collapsed) {
        width: var(--sidebar-collapsed-width);
    }
    
            .sidebar-left:not(.collapsed) .sidebar-content {
        display: none;
    }
    
            .sidebar-left:not(.collapsed) .mini-menu {
        display: flex;
    }
    
    .main-content {
        width: calc(100% - var(--sidebar-collapsed-width));
                margin-left: var(--sidebar-collapsed-width);
        padding: 30px 15px 30px 30px;
    }
    
    .top-navbar {
        width: calc(100% - var(--sidebar-collapsed-width));
                margin-left: var(--sidebar-collapsed-width);
        padding: 12px 25px;
    }
}/* --- CORRECTIFS RESPONSIVE SIDEBAR --- */

/* Pour les très petits écrans */
@media (max-width: 480px) {
            .sidebar-left {
        width: 100vw;
    }
    
            .sidebar-left.collapsed {
        width: var(--sidebar-collapsed-width);
    }
    
            .sidebar-left.collapsed.open {
        width: 100vw;
    }
    
    .sidebar-content {
        padding: 60px 15px 20px 15px;
    }
                .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

/* Assure que le toggle est toujours visible en responsive */
.sidebar-toggle {
    display: flex !important;
    z-index: 1002;
}

/* État ouvert de la sidebar en responsive */
.sidebar-left.open .sidebar-content {
    display: block;
    opacity: 1;
    visibility: visible;
}

.sidebar-left.open .mini-menu {
    display: none;
}
/* Styles pour la modal d'inscription */
.modal-about .modal-content {
    border-radius: 12px;
    border: none;
    box-shadow: 0 20px 40px rgba(30, 58, 95, 0.2);
    background: linear-gradient(135deg, #f8fafc 0%, #e8ecef 100%);
}

.modal-about .modal-header {
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    color: white;
    border-radius: 12px 12px 0 0;
    padding: 20px 25px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.modal-about .modal-title {
    font-weight: 600;
    font-size: 1.3rem;
}

.modal-about .modal-body {
    padding: 25px;
    color: var(--primary-navy);
}

.modal-about .form-label {
    font-weight: 600;
    color: var(--primary-navy);
    margin-bottom: 8px;
    font-size: 0.95rem;
}

.modal-about .form-control {
    background-color: white;
    border: 1px solid rgba(30, 58, 95, 0.2);
    border-radius: 8px;
    padding: 12px 15px;
    color: var(--primary-navy);
    transition: all 0.3s ease;
    font-size: 0.95rem;
}

.modal-about .form-control:focus {
    background-color: white;
    border-color: var(--accent-turquoise);
    box-shadow: 0 0 0 3px rgba(0, 212, 170, 0.1);
    color: var(--primary-navy);
}

.modal-about .form-check-input {
    width: 18px;
    height: 18px;
    margin-top: 0.2em;
    border: 2px solid var(--primary-navy);
}

.modal-about .form-check-input:checked {
    background-color: var(--accent-turquoise);
    border-color: var(--accent-turquoise);
}

.modal-about .form-check-label {
    color: var(--primary-navy);
    font-weight: 500;
    margin-left: 8px;
}

.modal-about .btn {
    padding: 12px 25px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    border: none;
}

.modal-about .btn-primary {
    background: linear-gradient(135deg, var(--accent-turquoise) 0%, #00b894 100%);
    color: white;
}

.modal-about .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 212, 170, 0.3);
}

.text-primary {
    color: var(--accent-turquoise) !important;
    text-decoration: none;
    font-weight: 500;
}

.text-primary:hover {
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 768px) {
    .modal-about .modal-body {
        padding: 20px 15px;
    }
    
    .modal-about .modal-header {
        padding: 15px 20px;
    }
}
/* Styles pour les menus avec couleurs différentes */
#menuHeader1 {
    background-color: var(--menu-1-color);
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

#menuHeader2 {
    background-color: var(--menu-2-color);
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

#menuHeader3 {
    background-color: var(--menu-3-color);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

#menuHeader4 {
    background-color: var(--menu-4-color);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

#menuHeader5 {
    background-color: var(--menu-5-color);
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
}

/* Effets de survol pour les menus */
#menuHeader1:hover {
    background-color: var(--menu-1-hover);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

#menuHeader2:hover {
    background-color: var(--menu-2-hover);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
}

#menuHeader3:hover {
    background-color: var(--menu-3-hover);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4);
}

#menuHeader4:hover {
    background-color: var(--menu-4-hover);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

#menuHeader5:hover {
    background-color: var(--menu-5-hover);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.4);
}

/* Bordures colorées pour les éléments de menu */
#menuList1 li {
    border-left-color: var(--menu-1-color);
}

#menuList2 li {
    border-left-color: var(--menu-2-color);
}

#menuList3 li {
    border-left-color: var(--menu-3-color);
}

#menuList4 li {
    border-left-color: var(--menu-4-color);
}

#menuList5 li {
    border-left-color: var(--menu-5-color);
}

/* Effets de survol pour les éléments de menu */
#menuList1 li:hover {
    background-color: rgba(59, 130, 246, 0.1);
}

#menuList2 li:hover {
    background-color: rgba(16, 185, 129, 0.1);
}

#menuList3 li:hover {
    background-color: rgba(245, 158, 11, 0.1);
}

#menuList4 li:hover {
    background-color: rgba(239, 68, 68, 0.1);
}

#menuList5 li:hover {
    background-color: rgba(139, 92, 246, 0.1);
}
/* Styles pour les mini-menus avec les mêmes couleurs */
.mini-menu-item[data-menu="1"] {
    background-color: var(--menu-1-color);
}

.mini-menu-item[data-menu="2"] {
    background-color: var(--menu-2-color);
}

.mini-menu-item[data-menu="3"] {
    background-color: var(--menu-3-color);
}

.mini-menu-item[data-menu="4"] {
    background-color: var(--menu-4-color);
}

.mini-menu-item[data-menu="5"] {
    background-color: var(--menu-5-color);
}

/* Effets de survol pour les mini-menus */
.mini-menu-item[data-menu="1"]:hover {
    background-color: var(--menu-1-hover);
}

.mini-menu-item[data-menu="2"]:hover {
    background-color: var(--menu-2-hover);
}

.mini-menu-item[data-menu="3"]:hover {
    background-color: var(--menu-3-hover);
}

.mini-menu-item[data-menu="4"]:hover {
    background-color: var(--menu-4-hover);
}

.mini-menu-item[data-menu="5"]:hover {
    background-color: var(--menu-5-hover);
}

/* Tooltips colorés pour les mini-menus */
.mini-menu-item[data-menu="1"] .mini-menu-tooltip {
    background-color: var(--menu-1-color);
}

.mini-menu-item[data-menu="2"] .mini-menu-tooltip {
    background-color: var(--menu-2-color);
}

.mini-menu-item[data-menu="3"] .mini-menu-tooltip {
    background-color: var(--menu-3-color);
}

.mini-menu-item[data-menu="4"] .mini-menu-tooltip {
    background-color: var(--menu-4-color);
}

.mini-menu-item[data-menu="5"] .mini-menu-tooltip {
    background-color: var(--menu-5-color);
}

/* Tooltips au survol */
.mini-menu-item[data-menu="1"]:hover .mini-menu-tooltip {
    background-color: var(--menu-1-hover);
}

.mini-menu-item[data-menu="2"]:hover .mini-menu-tooltip {
    background-color: var(--menu-2-hover);
}

.mini-menu-item[data-menu="3"]:hover .mini-menu-tooltip {
    background-color: var(--menu-3-hover);
}

.mini-menu-item[data-menu="4"]:hover .mini-menu-tooltip {
    background-color: var(--menu-4-hover);
}

.mini-menu-item[data-menu="5"]:hover .mini-menu-tooltip {
    background-color: var(--menu-5-hover);
}
/* Couleurs différentes pour les icônes des éléments de liste (optionnel) */
#menuList1 li i {
    color: var(--menu-1-color) !important;
}

#menuList2 li i {
    color: var(--menu-2-color) !important;
}

#menuList3 li i {
    color: var(--menu-3-color) !important;
}

#menuList4 li i {
    color: var(--menu-4-color) !important;
}

#menuList5 li i {
    color: var(--menu-5-color) !important;
}

/* Icônes au survol */
#menuList1 li:hover i {
    color: var(--menu-1-hover) !important;
}

#menuList2 li:hover i {
    color: var(--menu-2-hover) !important;
}

#menuList3 li:hover i {
    color: var(--menu-3-hover) !important;
}

#menuList4 li:hover i {
    color: var(--menu-4-hover) !important;
}

#menuList5 li:hover i {
    color: var(--menu-5-hover) !important;
}
/* Styles pour les liens dans les menus */
.menu-link {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    height: 100%;
    padding: 12px 15px;
    margin: -12px -15px;
    transition: all 0.3s ease;
}

.menu-link:hover {
    color: inherit;
    text-decoration: none;
}

/* Assurer que le hover fonctionne sur le lien */
.menu-list li:hover .menu-link {
    background-color: inherit;
    padding-left: 20px;
    color: inherit;
}

/* Couleurs spécifiques pour chaque menu */
#menuList1 .menu-link {
    border-left-color: var(--menu-1-color);
}

#menuList2 .menu-link {
    border-left-color: var(--menu-2-color);
}

#menuList3 .menu-link {
    border-left-color: var(--menu-3-color);
}

#menuList4 .menu-link {
    border-left-color: var(--menu-4-color);
}

#menuList5 .menu-link {
    border-left-color: var(--menu-5-color);
}
/* Styles pour la page liste */
.page-header {
    background: white;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(30, 58, 95, 0.1);
    margin-bottom: 30px;
}

.page-title {
    color: var(--primary-navy);
    font-weight: 700;
    margin-bottom: 10px;
    font-size: 2rem;
}

.page-subtitle {
    color: var(--primary-navy);
    opacity: 0.8;
    font-size: 1.1rem;
    margin-bottom: 0;
}

/* Bouton retour */
.btn-back {
    background: var(--accent-turquoise);
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.btn-back:hover {
    background: #00b894;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 212, 170, 0.3);
}

/* Carte de la datatable */
.data-table-card {
    border: none;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
    overflow: hidden;
}

.data-table-card .card-header {
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    color: white;
    border-bottom: none;
    padding: 20px 25px;
}

.data-table-card .card-title {
    color: white;
    margin-bottom: 0;
    font-weight: 600;
}

/* Boutons d'action */
.btn-primary {
    background: var(--accent-turquoise);
    border: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background: #00b894;
    transform: translateY(-2px);
}

.btn-export {
    background: var(--primary-navy);
    color: white;
    border: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-export:hover {
    background: #152642;
    color: white;
    transform: translateY(-2px);
}

/* Styles pour la datatable */
#usersTable {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}

#usersTable thead th {
    background-color: var(--light-cream);
    color: var(--primary-navy);
    font-weight: 600;
    border-bottom: 2px solid var(--accent-turquoise);
    padding: 15px 12px;
}

#usersTable tbody td {
    padding: 12px;
    border-bottom: 1px solid rgba(30, 58, 95, 0.1);
    vertical-align: middle;
}

#usersTable tbody tr:hover {
    background-color: rgba(0, 212, 170, 0.05);
    transform: translateY(-1px);
    transition: all 0.2s ease;
}

/* Badges */
.badge {
    padding: 6px 12px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 0.75rem;
}

.role-admin {
    background-color: #dc2626;
    color: white;
}

.role-manager {
    background-color: #f59e0b;
    color: white;
}

.role-user {
    background-color: #10b981;
    color: white;
}

.status-active {
    background-color: #10b981;
    color: white;
}

.status-inactive {
    background-color: #6b7280;
    color: white;
}

.status-pending {
    background-color: #f59e0b;
    color: white;
}

/* Boutons d'actions dans le tableau */
.btn-action {
    border: none;
    background: transparent;
    padding: 6px 8px;
    border-radius: 6px;
    transition: all 0.3s ease;
    margin: 0 2px;
}

.btn-edit {
    color: var(--accent-turquoise);
}

.btn-edit:hover {
    background-color: var(--accent-turquoise);
    color: white;
}

.btn-delete {
    color: #dc2626;
}

.btn-delete:hover {
    background-color: #dc2626;
    color: white;
}

.btn-view {
    color: var(--primary-navy);
}

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

/* Cartes de statistiques */
.stats-card {
    background: white;
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(30, 58, 95, 0.1);
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.stats-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
}

.stats-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--accent-turquoise) 0%, #00b894 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
}

.stats-content h3 {
    color: var(--primary-navy);
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 5px;
}

.stats-content p {
    color: var(--primary-navy);
    opacity: 0.8;
    margin-bottom: 0;
    font-weight: 500;
}

/* Responsive */
@media (max-width: 768px) {
    .page-header {
        padding: 20px;
    }
    
    .page-title {
        font-size: 1.5rem;
    }
    
    .data-table-card .card-header {
        padding: 15px 20px;
    }
    
    .stats-card {
        padding: 20px;
        margin-bottom: 15px;
    }
    
    .btn-back {
        padding: 8px 15px;
        font-size: 0.9rem;
    }
}

/* Personnalisation DataTables */
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border: none !important;
    background: transparent !important;
    color: var(--primary-navy) !important;
    border-radius: 6px;
    margin: 0 2px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--accent-turquoise) !important;
    color: white !important;
    border: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--primary-navy) !important;
    color: white !important;
    border: none !important;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin-bottom: 15px;
}

.dataTables_wrapper .dataTables_filter input {
    border: 1px solid rgba(30, 58, 95, 0.2);
    border-radius: 6px;
    padding: 8px 12px;
    background: white;
}

.dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--accent-turquoise);
    box-shadow: 0 0 0 2px rgba(0, 212, 170, 0.1);
}
/* --- NAVBAR RESPONSIVE AVEC MENU BURGER --- */
.navbar-mobile {
    display: none;
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    padding: 15px 20px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    box-shadow: 0 2px 15px rgba(30, 58, 95, 0.2);
}

.navbar-mobile-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.navbar-brand {
    color: white;
    font-size: 1.3rem;
    font-weight: 700;
    text-decoration: none;
}

.menu-burger {
    background: none;
    border: none;
    color: white;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 8px;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.menu-burger:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: scale(1.1);
}

/* Menu mobile déroulant */
.mobile-menu {
    position: fixed;
    top: 0;
    left: -100%;
    width: 280px;
    height: 100vh;
    background: linear-gradient(180deg, var(--primary-navy) 0%, #152642 100%);
    z-index: 1200;
    transition: left 0.3s ease;
    overflow-y: auto;
    padding: 60px 20px 20px 20px;
}

.mobile-menu.open {
    left: 0;
}

.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 20px;
}

.mobile-menu-title {
    color: white;
    font-size: 1.2rem;
    font-weight: 600;
}

.close-mobile-menu {
    background: none;
    border: none;
    color: white;
    font-size: 1.3rem;
    cursor: pointer;
    padding: 5px;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.close-mobile-menu:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: scale(1.1);
}

/* Adaptation du contenu principal pour le menu mobile */
body.mobile-menu-open {
    overflow: hidden;
}

body.mobile-menu-open .main-content,
body.mobile-menu-open .top-navbar {
    filter: blur(2px);
    pointer-events: none;
}

/* Overlay pour le menu mobile */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1150;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Styles pour les menus dans la version mobile */
.mobile-menu .menu-header {
    background-color: rgba(255, 255, 255, 0.1);
    margin: 15px 0 10px 0;
}

.mobile-menu .menu-list {
    margin-bottom: 10px;
}

/* Cacher la sidebar en responsive */
@media (max-width: 1200px) {
    .navbar-mobile {
        display: block;
    }
    
    .sidebar-left {
        display: none;
    }
    
    .main-content {
        width: 100% !important;
        margin-top: 70px; /* Espace pour la navbar mobile */
        margin-left: 0;
        padding: 20px 15px;
    }
    
    .top-navbar {
        display: none; /* On cache la top-navbar en responsive */
    }
    
    .shortcut-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
    
    .circle-icon {
        width: 100px;
        height: 100px;
    }
    
    .circle-icon i {
        font-size: 2.5rem;
    }
}

@media (max-width: 768px) {
    .shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .circle-icon {
        width: 90px;
        height: 90px;
    }
    
    .circle-icon i {
        font-size: 2.2rem;
    }
}

@media (max-width: 480px) {
    .shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    
    .circle-icon {
        width: 80px;
        height: 80px;
    }
    
    .circle-icon i {
        font-size: 2rem;
    }
    
    .navbar-mobile {
        padding: 12px 15px;
    }
    
    .main-content {
        margin-top: 60px;
        padding: 15px 10px;
    }
}
/* --- COULEURS POUR LES MENUS MOBILES --- */

/* Appliquer les mêmes couleurs aux en-têtes de menu mobile */
#mobileMenuHeader1 {
    background-color: var(--menu-1-color);
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

#mobileMenuHeader2 {
    background-color: var(--menu-2-color);
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

#mobileMenuHeader3 {
    background-color: var(--menu-3-color);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

#mobileMenuHeader4 {
    background-color: var(--menu-4-color);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

#mobileMenuHeader5 {
    background-color: var(--menu-5-color);
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
}

/* Effets de survol pour les menus mobiles */
#mobileMenuHeader1:hover {
    background-color: var(--menu-1-hover);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

#mobileMenuHeader2:hover {
    background-color: var(--menu-2-hover);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
}

#mobileMenuHeader3:hover {
    background-color: var(--menu-3-hover);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4);
}

#mobileMenuHeader4:hover {
    background-color: var(--menu-4-hover);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

#mobileMenuHeader5:hover {
    background-color: var(--menu-5-hover);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.4);
}

/* Bordures colorées pour les éléments de menu mobile */
#mobileMenuList1 li {
    border-left-color: var(--menu-1-color);
}

#mobileMenuList2 li {
    border-left-color: var(--menu-2-color);
}

#mobileMenuList3 li {
    border-left-color: var(--menu-3-color);
}

#mobileMenuList4 li {
    border-left-color: var(--menu-4-color);
}

#mobileMenuList5 li {
    border-left-color: var(--menu-5-color);
}

/* Effets de survol pour les éléments de menu mobile */
#mobileMenuList1 li:hover {
    background-color: rgba(59, 130, 246, 0.1);
}

#mobileMenuList2 li:hover {
    background-color: rgba(16, 185, 129, 0.1);
}

#mobileMenuList3 li:hover {
    background-color: rgba(245, 158, 11, 0.1);
}

#mobileMenuList4 li:hover {
    background-color: rgba(239, 68, 68, 0.1);
}

#mobileMenuList5 li:hover {
    background-color: rgba(139, 92, 246, 0.1);
}

/* Couleurs différentes pour les icônes des éléments de liste mobile */
#mobileMenuList1 li i {
    color: var(--menu-1-color) !important;
}

#mobileMenuList2 li i {
    color: var(--menu-2-color) !important;
}

#mobileMenuList3 li i {
    color: var(--menu-3-color) !important;
}

#mobileMenuList4 li i {
    color: var(--menu-4-color) !important;
}

#mobileMenuList5 li i {
    color: var(--menu-5-color) !important;
}

/* Icônes au survol pour mobile */
#mobileMenuList1 li:hover i {
    color: var(--menu-1-hover) !important;
}

#mobileMenuList2 li:hover i {
    color: var(--menu-2-hover) !important;
}

#mobileMenuList3 li:hover i {
    color: var(--menu-3-hover) !important;
}

#mobileMenuList4 li:hover i {
    color: var(--menu-4-hover) !important;
}

#mobileMenuList5 li:hover i {
    color: var(--menu-5-hover) !important;
}
/* Styles pour la barre de recherche dans la navbar mobile */
.navbar-mobile-search {
    flex: 1;
    max-width: 200px;
    margin: 0 15px;
}

.navbar-mobile-search .search-bar-container {
    width: 100%;
    position: relative;
}

.navbar-mobile-search .search-input {
    width: 100%;
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    padding: 8px 15px 8px 35px;
    border-radius: 20px;
    font-size: 0.9rem;
}

.navbar-mobile-search .search-input::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

.navbar-mobile-search .search-input:focus {
    background-color: rgba(255, 255, 255, 0.15);
    border-color: var(--accent-turquoise);
    box-shadow: 0 0 0 2px rgba(0, 212, 170, 0.1);
    color: white;
}

.navbar-mobile-search .search-icon {
    color: rgba(255, 255, 255, 0.7);
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
}

.navbar-mobile-search .search-bar-container:hover .search-icon {
    color: var(--accent-turquoise);
    opacity: 1;
}

/* Ajustements responsive pour la navbar mobile */
@media (max-width: 768px) {
    .navbar-mobile-search {
        max-width: 180px;
        margin: 0 10px;
    }
    
    .navbar-mobile-search .search-input {
        padding: 7px 12px 7px 32px;
        font-size: 0.85rem;
    }
}

@media (max-width: 480px) {
    .navbar-mobile-search {
        max-width: 150px;
        margin: 0 8px;
    }
    
    .navbar-mobile-search .search-input {
        padding: 6px 10px 6px 30px;
        font-size: 0.8rem;
    }
    
    .navbar-mobile-search .search-input::placeholder {
        font-size: 0.8rem;
    }
}
/* Style pour le bouton de déconnexion */
.btn-logout {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.btn-logout:hover {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Style pour l'élément de déconnexion dans les menus */
.logout-item .logout-link {
    color: #ef4444 !important;
    border-left-color: #ef4444 !important;
}

.logout-item:hover .logout-link {
    background-color: rgba(239, 68, 68, 0.1) !important;
    color: #ef4444 !important;
}

.logout-item .logout-link i {
    color: #ef4444 !important;
}
/* Styles pour la navbar mobile et le bouton déconnexion responsive */
.navbar-mobile-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.logout-mobile-icon {
    color: white;
    font-size: 1.2rem;
    padding: 8px;
    border-radius: 6px;
    transition: all 0.3s ease;
    background: rgba(239, 68, 68, 0.2);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.logout-mobile-icon:hover {
    background: rgba(239, 68, 68, 0.3);
    transform: scale(1.1);
    color: white;
}

/* Cacher le bouton déconnexion desktop en mobile */
@media (max-width: 1200px) {
    .navbar-actions {
        display: none;
    }
    
    .navbar-mobile-actions {
        display: flex;
    }
}

/* Afficher le bouton déconnexion desktop en desktop */
@media (min-width: 1201px) {
    .navbar-mobile-actions {
        display: none;
    }
    
    .navbar-actions {
        display: block;
    }
}

/* Styles pour les éléments de déconnexion dans les menus */
.logout-item .logout-link {
    color: #ef4444 !important;
    border-left-color: #ef4444 !important;
}

.logout-item:hover .logout-link {
    background-color: rgba(239, 68, 68, 0.1) !important;
    color: #ef4444 !important;
}

.logout-item .logout-link i {
    color: #ef4444 !important;
}

/* Style pour le bouton de déconnexion desktop */
.btn-logout {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    font-size: 0.9rem;
}

.btn-logout:hover {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Adaptation responsive pour les très petits écrans */
@media (max-width: 480px) {
    .logout-mobile-icon {
        padding: 6px;
        font-size: 1.1rem;
    }
    
    .navbar-mobile-actions {
        gap: 8px;
    }
}
/*!*********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/layout/dashboard-shell.css ***!
  \*********************************************************************************************************************************/
:root {
    --primary: #42A5F5;
    --primary-dark: #1565C0;
    --primary-light: #90CAF9;
    --accent: #E1F5FE;
    --app-bg: #F5FBFF;
    --surface: #FFFFFF;
    --surface-variant: #EAF6FF;
    --text-primary: #0D47A1;
    --text-secondary: #455A64;
    --text-hint: #90A4AE;
    --border: #DDEEF9;
    --error: #D32F2F;

    --sidebar-bg: #ed3188;
    --sidebar-hover: #42A5F5;
    --sidebar-active: #90CAF9;
    --sidebar-text: #E3F2FD;
    --sidebar-w: 230px;
    --sidebar-w-sm: 64px;
    --sidebar-width: 230px;
    --sidebar-collapsed-width: 64px;
    --header-h: 64px;
    --transition: 0.22s ease;
}

html,
body {
    min-height: 100%;
    background: var(--app-bg);
}

/* Shell layout */
.dashboard-shell {
    min-height: auto;
}

/* When there is no sidebar (e.g. ROLE_CAISSIER), make main/topbar full width */
.dashboard-shell.no-sidebar .topbar {
    left: 0;
    width: 100%;
}

.dashboard-shell.no-sidebar .main-content {
    margin-left: 0 !important;
    width: 100% !important;
    min-height: auto !important;
    padding: calc(var(--header-h) + 20px) 28px 48px;
}

.dashboard-shell.no-sidebar {
    min-height: auto;
}

.topbar {
    position: fixed;
    top: 0;
    height: var(--header-h);
    display: flex;
    align-items: center;
    padding: 0 20px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 10px 30px rgba(11,20,47,0.06);
    z-index: 1100;
    left: var(--sidebar-width);
    width: calc(100% - var(--sidebar-width));
    transition: left var(--transition), width var(--transition), background var(--transition), box-shadow var(--transition);
}

.topbar .btn-hamburger {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
    flex-shrink: 0;
}

.topbar .btn-hamburger:hover {
    background: var(--primary);
    color: #fff;
}

.topbar .brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: 14px;
}

.topbar .brand .app-icon {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--primary-dark), var(--primary));
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    flex-shrink: 0;
}

.topbar .brand .app-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
}

.topbar .brand .app-sub {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 1px;
}

/* Topbar search styles */
.topbar-search-wrapper {
    display: flex;
    align-items: center;
    margin-left: 18px;
}

/* Search card - use sidebar background color */
.topbar-search-card {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--surface);
    border: 1.5px solid var(--sidebar-bg);
    padding: 6px 8px;
    border-radius: 999px;
    box-shadow: 0 6px 16px rgba(11,20,47,0.08);
    transition: box-shadow var(--transition), transform 0.12s ease;
}

/* Button matching sidebar color for file inputs */
.btn-sidebar {
    display: inline-block;
    background: var(--sidebar-bg);
    color: var(--sidebar-text);
    border: none;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
}

.btn-sidebar:hover {
    filter: brightness(0.95);
}

/* Hide native file input but keep it accessible */
.file-input-hidden {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.topbar-search-card .search-icon {
    color: var(--sidebar-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 4px;
    font-size: 16px;
}

.topbar-search-card .search-input {
    border: none;
    outline: none;
    width: 360px;
    padding: 6px 8px;
    font-size: 14px;
    color: var(--text-primary);
    background: transparent;
    transition: width 0.22s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.topbar-search-card .search-input::placeholder { color: var(--text-secondary); opacity: 0.75; }

.topbar-search-card .btn-search-clear {
    border: none;
    background: transparent;
    color: var(--sidebar-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
}

.topbar-search-card:hover { box-shadow: 0 10px 24px rgba(11,20,47,0.12); transform: translateY(-1px); }
.topbar-search-card:focus-within { box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.15); border-color: var(--sidebar-bg); }

.btn-search-mobile {
    border: none;
    background: transparent;
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    margin-left: 8px;
}

@media (max-width: 991.98px) {
    .topbar-search-card .search-input { width: 220px; }
}

@media (max-width: 767.98px) {
    .topbar-search-wrapper { display: none; }
    .topbar-search-mobile-row { position: fixed; top: var(--header-h); left: 0; right: 0; padding: 8px; z-index: 1000; display: flex; justify-content: center; background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); }
    .topbar-search-card-mobile { width: calc(100% - 28px); max-width: 980px; padding: 6px 10px; background: var(--surface); border: 1.5px solid var(--sidebar-bg); border-radius: 999px; box-shadow: 0 8px 18px rgba(11,20,47,0.1); display: flex; align-items: center; gap:8px; }
    .topbar-search-card-mobile .search-input-mobile { width: 100%; border: none; outline: none; background: transparent; color: var(--text-primary); padding: 6px 8px; }
    .topbar { top: 0; left: 0; width: 100%; }
}

/* When the sidebar is collapsed (body class toggled), expand topbar to fill available space */
body.sidebar-collapsed .topbar {
    left: var(--sidebar-collapsed-width);
    width: calc(100% - var(--sidebar-collapsed-width));
}

.sidebar.collapsed ~ .main-content .topbar {
    left: var(--sidebar-collapsed-width);
    width: calc(100% - var(--sidebar-collapsed-width));
}

/* When mobile menu open or sidebar overlay, keep topbar full width */
@media (max-width: 991.98px) {
    .topbar { left: 0; width: 100%; }
}

.topbar .topbar-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* kept original topbar-actions then icon-btn follows */

.topbar .icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition);
    font-size: 16px;
}

.topbar .icon-btn:hover {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.topbar .user-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px 4px 4px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    cursor: pointer;
    transition: background var(--transition);
}

.topbar .user-chip:hover {
    background: var(--surface-variant);
}

.topbar .user-chip .avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-dark), var(--primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.topbar .user-chip .uname {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100vh;        /* fallback for older browsers */
    height: 100dvh;       /* dynamic viewport: excludes Android bottom nav bar */
    width: var(--sidebar-w);
    background: var(--sidebar-bg);
    display: flex;
    flex-direction: column;
    z-index: 1030;
    overflow: hidden;
    transition: width var(--transition), transform var(--transition);
}

.sidebar.collapsed {
    width: var(--sidebar-w-sm);
}

@media (max-width: 991.98px) {
    .sidebar {
        transform: translateX(-100%);
        width: var(--sidebar-w);
    }

    .sidebar.open {
        transform: translateX(0);
        z-index: 2100;
    }
}

.sidebar-header {
    height: var(--header-h);
    display: flex;
    align-items: center;
    padding: 0 14px;
    flex-shrink: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.sidebar-header .s-logo {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    flex-shrink: 0;
}

.sidebar-header .s-appname {
    margin-left: 12px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    opacity: 1;
    transition: opacity var(--transition);
}

.sidebar-header .btn-collapse {
    margin-left: auto;
    width: 30px;
    height: 30px;
    background: rgba(255, 255, 255, 0.12);
    border: none;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 16px;
    transition: background var(--transition), transform var(--transition);
    flex-shrink: 0;
}

.sidebar-header .btn-collapse:hover {
    background: rgba(255, 255, 255, 0.22);
}

.sidebar.collapsed .s-appname {
    opacity: 0;
    width: 0;
    margin: 0;
}

.sidebar.collapsed .btn-collapse {
    transform: rotate(180deg);
}

.sidebar.collapsed .menu-label {
    opacity: 0;
    width: 0;
    overflow: hidden;
}

.sidebar.collapsed .menu-item,
.sidebar.collapsed .menu-accordion .accordion-btn {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
}

.sidebar.collapsed .menu-item .mi-icon,
.sidebar.collapsed .menu-accordion .accordion-btn .mi-icon {
    margin-right: 0;
}

.sidebar.collapsed .menu-accordion .chevron,
.sidebar.collapsed .menu-accordion .sub-items {
    display: none;
}

.sidebar-menu {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 10px;
}

.sidebar-menu::-webkit-scrollbar {
    width: 3px;
}

.sidebar-menu::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
}

.menu-item {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--sidebar-text);
    text-decoration: none;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), transform 0.12s ease;
    white-space: nowrap;
    margin-bottom: 4px;
    user-select: none;
    position: relative;
}

.menu-item .mi-icon {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
    margin-right: 12px;
}

.menu-label {
    font-size: 14px;
    font-weight: 600;
    transition: opacity var(--transition);
}

.menu-item:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    transform: translateX(2px);
}

.menu-item.active {
    background: rgba(144, 202, 249, 0.18);
    color: var(--sidebar-active);
}

.menu-item.active .mi-icon {
    color: var(--sidebar-active);
}

.menu-item.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--sidebar-active);
}

.menu-accordion .accordion-btn {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--sidebar-text);
    cursor: pointer;
    white-space: nowrap;
    margin-bottom: 4px;
    user-select: none;
    transition: background var(--transition);
}

.menu-accordion .accordion-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.menu-accordion .accordion-btn .mi-icon {
    width: 22px;
    font-size: 18px;
    flex-shrink: 0;
    margin-right: 12px;
}

.menu-accordion .chevron {
    margin-left: auto;
    font-size: 12px;
    transition: transform 0.2s ease;
}

.menu-accordion.open .chevron {
    transform: rotate(90deg);
}

.menu-accordion .sub-items {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.25s ease;
}

.menu-accordion.open .sub-items {
    max-height: 300px;
}

.sub-item {
    display: flex;
    align-items: center;
    padding: 8px 12px 8px 42px;
    border-radius: 10px;
    color: rgba(227, 242, 253, 0.75);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    margin-bottom: 2px;
    transition: background var(--transition), color var(--transition);
}

.sub-item:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.sub-item .si-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    margin-right: 10px;
    opacity: 0.6;
}

.sidebar-bottom {
    padding: 10px;
    /* Fallback hardcodé pour la bottom nav Android (56px typique) */
    padding-bottom: 66px;
    /* Safe area inset si disponible (iOS/Android gesture nav) */
    padding-bottom: calc(10px + max(env(safe-area-inset-bottom, 0px), 0px));
    flex-shrink: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

@media (max-width: 991.98px) {
    /* Sur mobile : padding-bottom minimum de 66px pour couvrir la barre Android */
    .sidebar-bottom {
        padding-bottom: 66px;
        padding-bottom: max(66px, calc(10px + env(safe-area-inset-bottom, 56px)));
    }
}

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 2040;
}

.sidebar-overlay.visible {
    display: block;
    z-index: 2040;
}

.main-content {
    margin-top: 0;
    margin-left: var(--sidebar-w);
    padding: calc(var(--header-h) + 20px) 28px 48px;
    min-height: auto;
    width: calc(100% - var(--sidebar-w));
    transition: margin-left var(--transition), width var(--transition);
}

.sidebar.collapsed ~ .main-content {
    margin-left: var(--sidebar-w-sm);
    width: calc(100% - var(--sidebar-w-sm));
}

@media (max-width: 991.98px) {
    .main-content {
        margin-left: 0 !important;
        padding: calc(var(--header-h) + 20px) 16px 48px;
    }
}

@media (max-width: 767.98px) {
    .main-content {
        padding: calc(var(--header-h) + 76px) 16px 48px;
    }
}

/* User dropdown */
.user-dropdown {
    position: relative;
    display: inline-block;
}

.user-dropdown-menu {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    min-width: 170px;
    z-index: 2200;
    overflow: hidden;
}

.user-dropdown.open .user-dropdown-menu {
    display: block;
}

.user-dropdown-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    transition: background var(--transition);
}

.user-dropdown-menu a:hover {
    background: var(--surface-variant);
}

.user-dropdown-menu a.danger {
    color: var(--error);
}

/* Ensure bootstrap modals appear above the fixed topbar */
.modal {
    z-index: 2260 !important;
}
.modal-backdrop {
    z-index: 2250 !important;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-thumb {
    background: rgba(66, 165, 245, 0.25);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(66, 165, 245, 0.5);
}

/*!*************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/pages/shortcut.css ***!
  \*************************************************************************************************************************/
/* Page shortcut: style strictement calqué sur la maquette HTML source */
.page-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 32px;
}

.page-header .page-icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(66, 165, 245, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    font-size: 24px;
    flex-shrink: 0;
}

.page-header h1 {
    font-size: 26px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}

.page-header .page-sub {
    font-size: 14px;
    color: var(--text-secondary);
    margin-top: 4px;
}

.section-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--text-secondary);
    text-transform: uppercase;
    margin-bottom: 14px;
}

.shortcuts-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    margin-bottom: 28px;
}

@media (max-width: 900px) {
    .shortcuts-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
    }
}

@media (max-width: 540px) {
    .shortcuts-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }
}

.sc-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    outline: none;
    transform-origin: center;
    transition: transform 0.18s cubic-bezier(.34, 1.56, .64, 1);
}

.sc-card:hover {
    transform: scale(1.05);
}

.sc-card:active {
    transform: scale(0.92);
}

.sc-tile {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
    box-shadow: var(--sc-shadow-default, 0 6px 16px rgba(0, 0, 0, 0.18));
}

.sc-card:hover .sc-tile {
    box-shadow: 0 16px 36px -4px var(--sc-shadow, rgba(0, 0, 0, 0.25));
}

.sc-tile::before {
    content: '';
    position: absolute;
    top: -12px;
    right: -12px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
}

.sc-tile::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: -10px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
}

.sc-tile .tile-icon {
    font-size: clamp(28px, 8vw, 52px);
    color: #fff;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.2));
    position: relative;
    z-index: 1;
}

.sc-label {
    margin-top: 10px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    text-align: center;
    line-height: 1.25;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.featured-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.featured-card {
    width: 100%;
    height: 110px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    padding: 16px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.featured-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -8px var(--fc-shadow, rgba(0, 0, 0, 0.25));
}

.featured-card:active {
    transform: scale(0.98);
}

.fc-icon-wrap {
    width: 88px;
    height: 88px;
    flex-shrink: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.fc-icon-wrap .fc-icon {
    font-size: 46px;
    color: #fff;
}

.fc-text {
    flex: 1;
    padding: 0 16px;
}

.fc-text .fc-title {
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
}

.fc-text .fc-sub {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.75);
    margin-top: 6px;
}

.fc-chevron {
    color: rgba(255, 255, 255, 0.85);
    font-size: 18px;
    flex-shrink: 0;
}

.featured-card::before {
    content: '';
    position: absolute;
    top: -20px;
    right: -20px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 575.98px) {
    .page-header h1 {
        font-size: 20px;
    }

    .page-header .page-icon-wrap {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }

    .featured-card {
        height: 96px;
    }

    .fc-icon-wrap {
        width: 72px;
        height: 72px;
    }

    .fc-icon-wrap .fc-icon {
        font-size: 36px;
    }

    .fc-text .fc-title {
        font-size: 15px;
    }
}


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