/*!****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/style.css ***!
  \****************************************************************************************************************/
/**
* Template Name: NiceAdmin - v2.5.0
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
*/

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/
#ui-id-1 {
    position: absolute;
}


:root {
    scroll-behavior: smooth;
}

body {
    font-family: "Open Sans", sans-serif;
    background: #f6f9ff;
    color: #444444;
}

a {
    color: #4154f1;
    text-decoration: none;
}

a:hover {
    color: #717ff5;
    text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Nunito", sans-serif;
}

/*--------------------------------------------------------------
# Main
--------------------------------------------------------------*/
#main {
    background-color: #ffffff;
    margin-top: 60px;
    padding: 20px 30px;
    transition: all 0.3s;
}

@media (max-width: 1199px) {
    #main {
        padding: 20px;
    }
}

/*--------------------------------------------------------------
# Page Title
--------------------------------------------------------------*/
.pagetitle {
    margin-bottom: 10px;
}

.pagetitle h1 {
    font-size: 24px;
    margin-bottom: 0;
    font-weight: 600;
    color: #012970;
}

/*--------------------------------------------------------------
# Back to top button
--------------------------------------------------------------*/
.back-to-top {
    position: fixed;
    visibility: hidden;
    opacity: 0;
    right: 15px;
    bottom: 15px;
    z-index: 99999;
    background: #4154f1;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    transition: all 0.4s;
}

.back-to-top i {
    font-size: 24px;
    color: #fff;
    line-height: 0;
}

.back-to-top:hover {
    background: #6776f4;
    color: #fff;
}

.back-to-top.active {
    visibility: visible;
    opacity: 1;
}

/*--------------------------------------------------------------
# Override some default Bootstrap stylings
--------------------------------------------------------------*/
/* Dropdown menus */
.dropdown-menu {
    border-radius: 4px;
    padding: 10px 0;
    -webkit-animation-name: dropdown-animate;
    animation-name: dropdown-animate;
    -webkit-animation-duration: 0.2s;
    animation-duration: 0.2s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    border: 0;
    box-shadow: 0 5px 30px 0 rgba(82, 63, 105, 0.2);
}

.dropdown-menu .dropdown-header,
.dropdown-menu .dropdown-footer {
    text-align: center;
    font-size: 15px;
    padding: 10px 25px;
}

.dropdown-menu .dropdown-footer a {
    color: #444444;
    text-decoration: underline;
}

.dropdown-menu .dropdown-footer a:hover {
    text-decoration: none;
}

.dropdown-menu .dropdown-divider {
    color: #a5c5fe;
    margin: 0;
}

.dropdown-menu .dropdown-item {
    font-size: 14px;
    padding: 10px 15px;
    transition: 0.3s;
}

.dropdown-menu .dropdown-item i {
    margin-right: 10px;
    font-size: 18px;
    line-height: 0;
}

.dropdown-menu .dropdown-item:hover {
    background-color: #f6f9ff;
}

@media (min-width: 768px) {
    .dropdown-menu-arrow::before {
        content: "";
        width: 13px;
        height: 13px;
        background: #fff;
        position: absolute;
        top: -7px;
        right: 20px;
        transform: rotate(45deg);
        border-top: 1px solid #eaedf1;
        border-left: 1px solid #eaedf1;
    }
}

@-webkit-keyframes dropdown-animate {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

    0% {
        opacity: 0;
    }
}

@keyframes dropdown-animate {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }

    0% {
        opacity: 0;
    }
}

/* Light Backgrounds */
.bg-primary-light {
    background-color: #cfe2ff;
    border-color: #cfe2ff;
}

.bg-secondary-light {
    background-color: #e2e3e5;
    border-color: #e2e3e5;
}

.bg-success-light {
    background-color: #d1e7dd;
    border-color: #d1e7dd;
}

.bg-danger-light {
    background-color: #f8d7da;
    border-color: #f8d7da;
}

.bg-warning-light {
    background-color: #fff3cd;
    border-color: #fff3cd;
}

.bg-info-light {
    background-color: #cff4fc;
    border-color: #cff4fc;
}

.bg-dark-light {
    background-color: #d3d3d4;
    border-color: #d3d3d4;
}

/* Card */
.card {
    margin-bottom: 30px;
    /*border: none;*/
    /*border-radius: 5px;*/
    /*box-shadow: 0px 0 30px rgba(1, 41, 112, 0.1);*/
}

/*.card-header,*/
.card-footer {
    border-color: #ebeef4;
    background-color: #fff;
    color: #798eb3;
    padding: 15px;
}

.card-title {
    padding: 20px 0 15px 0;
    font-size: 18px;
    font-weight: 500;
    /*color: #012970;*/
    font-family: "Poppins", sans-serif;
}

.card-title span {
    color: #899bbd;
    font-size: 14px;
    font-weight: 400;
}

.card-body {
    padding: 0 20px 20px 20px;
}

.card-img-overlay {
    background-color: rgba(255, 255, 255, 0.6);
}

/* Alerts */
.alert-heading {
    font-weight: 500;
    font-family: "Poppins", sans-serif;
    font-size: 20px;
}

/* Close Button */
.btn-close {
    background-size: 25%;
}

.btn-close:focus {
    outline: 0;
    box-shadow: none;
}

/* Accordion */
.accordion-item {
    border: 1px solid #ebeef4;
}

.accordion-button:focus {
    outline: 0;
    box-shadow: none;
}

.accordion-button:not(.collapsed) {
    color: #012970;
    background-color: #f6f9ff;
}

.accordion-flush .accordion-button {
    padding: 15px 0;
    background: none;
    border: 0;
}

.accordion-flush .accordion-button:not(.collapsed) {
    box-shadow: none;
    color: #4154f1;
}

.accordion-flush .accordion-body {
    padding: 0 0 15px 0;
    color: #3e4f6f;
    font-size: 15px;
}

/* Breadcrumbs */
.breadcrumb {
    font-size: 14px;
    font-family: "Nunito", sans-serif;
    color: #899bbd;
    font-weight: 600;
}

.breadcrumb a {
    color: #899bbd;
    transition: 0.3s;
}

.breadcrumb a:hover {
    color: #51678f;
}

.breadcrumb .breadcrumb-item::before {
    color: #899bbd;
}

.breadcrumb .active {
    color: #51678f;
    font-weight: 600;
}

/* Bordered Tabs */
.nav-tabs-bordered {
    border-bottom: 2px solid #ebeef4;
}

.nav-tabs-bordered .nav-link {
    margin-bottom: -2px;
    border: none;
    color: #2c384e;
}

.nav-tabs-bordered .nav-link:hover,
.nav-tabs-bordered .nav-link:focus {
    color: #4154f1;
}

.nav-tabs-bordered .nav-link.active {
    background-color: #fff;
    color: #4154f1;
    border-bottom: 2px solid #4154f1;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.logo {
    line-height: 1;
}

@media (min-width: 1200px) {
    .logo {
        width: 280px;
    }
}

.logo img {
    max-height: 50px;
    margin-right: 6px;
}

.logo span {
    font-size: 26px;
    font-weight: 700;
    color: #000; /* Texto negro para el logo */
    font-family: "Nunito", sans-serif;
}

.header {
    transition: all 0.5s;
    z-index: 997;
    height: 60px;
    box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.1);
    background-color: #4e8e37; /* Verde oscuro profesional */
    padding-left: 20px;
}

.header .toggle-sidebar-btn {
    font-size: 32px;
    padding-left: 10px;
    cursor: pointer;
    color: #000; /* Icono negro */
}

.header .search-bar {
    min-width: 360px;
    padding: 0 20px;
    background: #4e8e37; /* Verde muy claro para la barra de búsqueda */
}

@media (max-width: 1199px) {
    .header .search-bar {
        position: fixed;
        top: 50px;
        left: 0;
        right: 0;
        padding: 20px;
        box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
        background: #fff; /* Fondo blanco cuando está visible */
        z-index: 9999;
        transition: 0.3s;
        visibility: hidden;
        opacity: 0;
    }

    .header .search-bar-show {
        top: 60px;
        visibility: visible;
        opacity: 1;
    }
}

.header .search-form {
    width: 100%;
}

.header .search-form input {
    border: 1px solid rgba(0, 0, 0, 0.2); /* Borde negro claro */
    font-size: 14px;
    color: #040404; /* Texto gris oscuro en el input */
    padding: 7px 38px 7px 8px;
    border-radius: 3px;
    transition: 0.3s;
    width: 100%;
}

.header .search-form input:focus,
.header .search-form input:hover {
    outline: none;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); /* Sombra negra clara */
    border: 1px solid rgba(0, 0, 0, 0.3); /* Borde negro claro */
}

.header .search-form button {
    border: 0;
    padding: 0;
    margin-left: -30px;
    background: none;
}

.header .search-form button i {
    color: #333; /* Icono gris oscuro */
}


/*--------------------------------------------------------------
# Header Nav
--------------------------------------------------------------*/
.header-nav ul {
    list-style: none;
}

.header-nav > ul {
    margin: 0;
    padding: 0;
}

.header-nav .nav-icon {
    font-size: 22px;
    color: #333; /* Gris oscuro */
    margin-right: 25px;
    position: relative;
}

.header-nav .nav-profile {
    color: #040404; /* Gris oscuro */
}

.header-nav .nav-profile img {
    max-height: 36px;
}

.header-nav .nav-profile span {
    font-size: 14px;
    font-weight: 600;
}

.header-nav .badge-number {
    position: absolute;
    inset: -2px -5px auto auto;
    font-weight: normal;
    font-size: 12px;
    padding: 3px 6px;
}

.header-nav .notifications {
    inset: 8px -15px auto auto !important;
}

.header-nav .notifications .notification-item {
    display: flex;
    align-items: center;
    padding: 15px 10px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .notifications .notification-item i {
    margin: 0 20px 0 10px;
    font-size: 24px;
    color: #333; /* Gris oscuro */
}

.header-nav .notifications .notification-item h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #333; /* Gris oscuro */
}

.header-nav .notifications .notification-item p {
    font-size: 13px;
    margin-bottom: 3px;
    color: #666; /* Gris medio */
}

.header-nav .notifications .notification-item:hover {
    background-color: #eaeaea; /* Gris claro */
}

.header-nav .messages {
    inset: 8px -15px auto auto !important;
}

.header-nav .messages .message-item {
    padding: 15px 10px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .messages .message-item a {
    display: flex;
}

.header-nav .messages .message-item img {
    margin: 0 20px 0 10px;
    max-height: 40px;
}

.header-nav .messages .message-item h4 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 5px;
    color: #333; /* Gris oscuro */
}

.header-nav .messages .message-item p {
    font-size: 13px;
    margin-bottom: 3px;
    color: #666; /* Gris medio */
}

.header-nav .messages .message-item:hover {
    background-color: #eaeaea; /* Gris claro */
}

.header-nav .profile {
    min-width: 240px;
    padding-bottom: 0;
    top: 8px !important;
}

.header-nav .profile .dropdown-header h6 {
    font-size: 18px;
    margin-bottom: 0;
    font-weight: 600;
    color: #333; /* Gris oscuro */
}

.header-nav .profile .dropdown-header span {
    font-size: 14px;
}

.header-nav .profile .dropdown-item {
    font-size: 14px;
    padding: 10px 15px;
    background-color: #f9f9f9; /* Fondo gris muy claro */
    transition: 0.3s;
}

.header-nav .profile .dropdown-item i {
    margin-right: 10px;
    font-size: 18px;
    line-height: 0;
    color: #333; /* Gris oscuro */
}

.header-nav .profile .dropdown-item:hover {
    background-color: #eaeaea; /* Gris claro */
}


/*--------------------------------------------------------------
# Sidebar
--------------------------------------------------------------*/
.sidebar {
    position: fixed;
    top: 60px;
    left: 0;
    bottom: 0;
    width: 300px;
    z-index: 996;
    transition: all 0.3s;
    padding: 20px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #4b8a2e transparent; /* Verde oscuro para el scrollbar */
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.4); /* Sombra negra más pronunciada */
    background-color: #e5f2e5; /* Verde muy claro */
}

@media (max-width: 1199px) {
    .sidebar {
        left: -300px; /* Oculta la barra lateral en pantallas pequeñas */
    }
}

.sidebar::-webkit-scrollbar {
    width: 5px;
    height: 8px;
    background-color: #e5f2e5; /* Verde muy claro para el fondo del scrollbar */
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #4b8a2e; /* Verde oscuro para el pulgar del scrollbar */
}

@media (min-width: 1200px) {
    #main,
    #footer {
        margin-left: 300px; /* Ajusta el margen del contenido principal para hacer espacio para la barra lateral */
    }
}

@media (max-width: 1199px) {
    .toggle-sidebar .sidebar {
        left: 0; /* Muestra la barra lateral en pantallas pequeñas cuando se activa el toggle */
    }
}

@media (min-width: 1200px) {
    .toggle-sidebar #main,
    .toggle-sidebar #footer {
        margin-left: 0; /* Restablece el margen cuando se oculta la barra lateral */
    }

    .toggle-sidebar .sidebar {
        left: -300px; /* Oculta la barra lateral cuando se activa el toggle en pantallas grandes */
    }
}

/* Sidebar Navigation */
.sidebar-nav {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar-nav li {
    padding: 0;
    margin: 0;
    list-style: none;
}

.sidebar-nav .nav-item {
    margin-bottom: 5px; /* Espacio entre los ítems de navegación */
}

.sidebar-nav .nav-heading {
    font-size: 12px;
    text-transform: uppercase;
    color: #333; /* Gris oscuro */
    padding: 10px;
    font-weight: 600;
}

.sidebar-nav .nav-link {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    color: #2c6b2f; /* Verde oscuro para texto de enlaces */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces */
    border-radius: 3px;
    transition: 0.3s;
    font-size: 16px;
    font-weight: bold;
}

.sidebar-nav .nav-link i {
    font-size: 18px;
    margin-right: 10px;
    color: #4b8a2e; /* Verde oscuro para los íconos */
}

.sidebar-nav .nav-link:hover {
    color: #1a1a1a; /* Gris oscuro para el texto de enlaces al pasar el mouse */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces al pasar el mouse */
}

.sidebar-nav .nav-content a {
    display: block;
    padding: 10px 20px;
    color: #2c6b2f; /* Verde oscuro para texto de enlaces en contenido de navegación */
    background: #e5f2e5; /* Verde muy claro para el fondo de enlaces en contenido de navegación */
    border-radius: 3px;
    font-size: 14px;
    font-weight: bold;
}

.sidebar-nav .nav-content a i {
    font-size: 6px;
    margin-right: 8px;
    line-height: 0;
    border-radius: 50%;
}


.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #1a1a1a; /* Gris oscuro para texto de enlaces activos y al pasar el mouse */
    background: #d6f0d6; /* Verde muy claro para el fondo de enlaces activos y al pasar el mouse */
}

.sidebar-nav .nav-content a.active i {
    background-color: #d6f0d6; /* Verde muy claro para el fondo de íconos activos */

}


/*--------------------------------------------------------------
# Dashboard
--------------------------------------------------------------*/

.dashboard .filter {
    position: absolute;
    right: 0px;
    top: 15px;
}

.dashboard .filter .icon {
    color: #000;
    padding-right: 20px;
    padding-bottom: 5px;
    transition: 0.3s;
    font-size: 16px;
}

.dashboard .filter .icon:hover,
.dashboard .filter .icon:focus {
    color: #4154f1;
}

.dashboard .filter .dropdown-header {
    padding: 8px 15px;
}

.dashboard .filter .dropdown-header h6 {
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #aab7cf;
    margin-bottom: 0;
    padding: 0;
}

.dashboard .filter .dropdown-item {
    padding: 8px 15px;
}

/* Info Cards */
.dashboard .info-card {
    padding-bottom: 10px;
}

.dashboard .info-card h6 {
    font-size: 28px;
    color: #012970;
    font-weight: 700;
    margin: 0;
    padding: 0;
}

.dashboard .card-icon {
    font-size: 32px;
    line-height: 0;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    flex-grow: 0;
}

.dashboard .sales-card .card-icon {
    color: #4154f1;
    background: #f6f6fe;
}

.dashboard .revenue-card .card-icon {
    color: #2eca6a;
    background: #e0f8e9;
}

.dashboard .customers-card .card-icon {
    color: #ff771d;
    background: #ffecdf;
}

/* Activity */
.dashboard .activity {
    font-size: 14px;
}

.dashboard .activity .activity-item .activite-label {
    color: #888;
    position: relative;
    flex-shrink: 0;
    flex-grow: 0;
    min-width: 64px;
}

.dashboard .activity .activity-item .activite-label::before {
    content: "";
    position: absolute;
    right: -11px;
    width: 4px;
    top: 0;
    bottom: 0;
    background-color: #eceefe;
}

.dashboard .activity .activity-item .activity-badge {
    margin-top: 3px;
    z-index: 1;
    font-size: 11px;
    line-height: 0;
    border-radius: 50%;
    flex-shrink: 0;
    border: 3px solid #fff;
    flex-grow: 0;
}

.dashboard .activity .activity-item .activity-content {
    padding-left: 10px;
    padding-bottom: 20px;
}

.dashboard .activity .activity-item:first-child .activite-label::before {
    top: 5px;
}

.dashboard .activity .activity-item:last-child .activity-content {
    padding-bottom: 0;
}

/* News & Updates */
.dashboard .news .post-item + .post-item {
    margin-top: 15px;
}

.dashboard .news img {
    width: 80px;
    float: left;
    border-radius: 5px;
}

.dashboard .news h4 {
    font-size: 15px;
    margin-left: 95px;
    font-weight: bold;
    margin-bottom: 5px;
}

.dashboard .news h4 a {
    color: #012970;
    transition: 0.3s;
}

.dashboard .news h4 a:hover {
    color: #4154f1;
}

.dashboard .news p {
    font-size: 14px;
    color: #777777;
    margin-left: 95px;
}

/* Recent Sales */
.dashboard .recent-sales {
    font-size: 14px;
}

.dashboard .recent-sales .table thead {
    background: #f6f6fe;
}

.dashboard .recent-sales .table thead th {
    border: 0;
}

.dashboard .recent-sales .dataTable-top {
    padding: 0 0 10px 0;
}

.dashboard .recent-sales .dataTable-bottom {
    padding: 10px 0 0 0;
}

/* Top Selling */
.dashboard .top-selling {
    font-size: 14px;
}

.dashboard .top-selling .table thead {
    background: #f6f6fe;
}

.dashboard .top-selling .table thead th {
    border: 0;
}

.dashboard .top-selling .table tbody td {
    vertical-align: middle;
}

.dashboard .top-selling img {
    border-radius: 5px;
    max-width: 60px;
}

/*--------------------------------------------------------------
# Icons list page
--------------------------------------------------------------*/
.iconslist {
    display: grid;
    max-width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1.25rem;
    padding-top: 15px;
}

.iconslist .icon {
    background-color: #fff;
    border-radius: 0.25rem;
    text-align: center;
    color: #012970;
    padding: 15px 0;
}

.iconslist i {
    margin: 0.25rem;
    font-size: 2.5rem;
}

.iconslist .label {
    font-family: var(--bs-font-monospace);
    display: inline-block;
    width: 100%;
    overflow: hidden;
    padding: 0.25rem;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #666;
}

/*--------------------------------------------------------------
# Profie Page
--------------------------------------------------------------*/
.profile .profile-card img {
    max-width: 120px;
}

.profile .profile-card h2 {
    font-size: 24px;
    font-weight: 700;
    color: #2c384e;
    margin: 10px 0 0 0;
}

.profile .profile-card h3 {
    font-size: 18px;
}

.profile .profile-card .social-links a {
    font-size: 20px;
    display: inline-block;
    color: rgba(1, 41, 112, 0.5);
    line-height: 0;
    margin-right: 10px;
    transition: 0.3s;
}

.profile .profile-card .social-links a:hover {
    color: #012970;
}

.profile .profile-overview .row {
    margin-bottom: 20px;
    font-size: 15px;
}

.profile .profile-overview .card-title {
    color: #012970;
}

.profile .profile-overview .label {
    font-weight: 600;
    color: rgba(1, 41, 112, 0.6);
}

.profile .profile-edit label {
    font-weight: 600;
    color: rgba(1, 41, 112, 0.6);
}

.profile .profile-edit img {
    max-width: 120px;
}

/*--------------------------------------------------------------
# F.A.Q Page
--------------------------------------------------------------*/
.faq .basic h6 {
    font-size: 18px;
    font-weight: 600;
    color: #4154f1;
}

.faq .basic p {
    color: #6980aa;
}

/*--------------------------------------------------------------
# Contact
--------------------------------------------------------------*/
.contact .info-box {
    padding: 28px 30px;
}

.contact .info-box i {
    font-size: 38px;
    line-height: 0;
    color: #4154f1;
}

.contact .info-box h3 {
    font-size: 20px;
    color: #012970;
    font-weight: 700;
    margin: 20px 0 10px 0;
}

.contact .info-box p {
    padding: 0;
    line-height: 24px;
    font-size: 14px;
    margin-bottom: 0;
}

.contact .php-email-form .error-message {
    display: none;
    color: #fff;
    background: #ed3c0d;
    text-align: left;
    padding: 15px;
    margin-bottom: 24px;
    font-weight: 600;
}

.contact .php-email-form .sent-message {
    display: none;
    color: #fff;
    background: #18d26e;
    text-align: center;
    padding: 15px;
    margin-bottom: 24px;
    font-weight: 600;
}

.contact .php-email-form .loading {
    display: none;
    background: #fff;
    text-align: center;
    padding: 15px;
    margin-bottom: 24px;
}

.contact .php-email-form .loading:before {
    content: "";
    display: inline-block;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    margin: 0 10px -6px 0;
    border: 3px solid #18d26e;
    border-top-color: #eee;
    -webkit-animation: animate-loading 1s linear infinite;
    animation: animate-loading 1s linear infinite;
}

.contact .php-email-form input,
.contact .php-email-form textarea {
    border-radius: 0;
    box-shadow: none;
    font-size: 14px;
    border-radius: 0;
}

.contact .php-email-form input:focus,
.contact .php-email-form textarea:focus {
    border-color: #4154f1;
}

.contact .php-email-form input {
    padding: 10px 15px;
}

.contact .php-email-form textarea {
    padding: 12px 15px;
}

.contact .php-email-form button[type=submit] {
    background: #4154f1;
    border: 0;
    padding: 10px 30px;
    color: #fff;
    transition: 0.4s;
    border-radius: 4px;
}

.contact .php-email-form button[type=submit]:hover {
    background: #5969f3;
}

@-webkit-keyframes animate-loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes animate-loading {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/*--------------------------------------------------------------
# Error 404
--------------------------------------------------------------*/
.error-404 {
    padding: 30px;
}

.error-404 h1 {
    font-size: 180px;
    font-weight: 700;
    color: #4154f1;
    margin-bottom: 0;
    line-height: 150px;
}

.error-404 h2 {
    font-size: 24px;
    font-weight: 700;
    color: #012970;
    margin-bottom: 30px;
}

.error-404 .btn {
    background: #51678f;
    color: #fff;
    padding: 8px 30px;
}

.error-404 .btn:hover {
    background: #3e4f6f;
}

@media (min-width: 992px) {
    .error-404 img {
        max-width: 50%;
    }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
    padding: 20px 0;
    font-size: 14px;
    transition: all 0.3s;
    border-top: 1px solid #cddfff;
}

.footer .copyright {
    text-align: center;
    color: #012970;
}

.footer .credits {
    padding-top: 5px;
    text-align: center;
    font-size: 13px;
    color: #012970;
}

/* --------------------------------------------------------------
# Navbar + Sidebar Refresh
-------------------------------------------------------------- */
:root {
    --header-height: 64px;
    --sidebar-width: 300px;
    --brand-900: #0f2f4a;
    --brand-800: #174264;
    --brand-700: #2f6b96;
    --brand-100: #ecf4fb;
    --surface-0: #ffffff;
    --surface-1: #f4f7fb;
    --text-900: #1f2d3d;
    --text-700: #4d5f73;
    --text-on-brand: #f4f9ff;
}

body {
    background: linear-gradient(180deg, #f6f9ff 0%, #f1f5fa 100%);
}

#main {
    margin-top: var(--header-height);
}

.header {
    height: var(--header-height);
    padding-left: 16px;
    padding-right: 16px;
    background: linear-gradient(120deg, var(--brand-900) 0%, var(--brand-700) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 10px 26px rgba(10, 31, 52, 0.28);
}

.logo img {
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.24);
}

.logo span {
    color: var(--text-on-brand);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.header .toggle-sidebar-btn {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    font-size: 26px;
    margin-left: 8px;
    border-radius: 10px;
    color: var(--text-on-brand);
    background: rgba(255, 255, 255, 0.14);
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.header .toggle-sidebar-btn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.22);
    box-shadow: 0 8px 14px rgba(0, 0, 0, 0.16);
}

.header .search-bar {
    min-width: 340px;
    max-width: 460px;
    background: transparent;
}

.header .search-form input {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 10px;
    color: #1b334a;
}

.header .search-form input::placeholder {
    color: #667a8f;
}

.header .search-form input:focus,
.header .search-form input:hover {
    background: #fff;
    border-color: rgba(56, 106, 148, 0.68);
    box-shadow: 0 0 0 3px rgba(109, 151, 186, 0.3);
}

.header .search-form button i {
    color: #274866;
}

.header-nav .nav-icon {
    width: 38px;
    height: 38px;
    margin-right: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    color: var(--text-on-brand);
    background: rgba(255, 255, 255, 0.12);
    transition: all 0.2s ease;
}

.header-nav .nav-link:hover .nav-icon,
.header-nav .nav-link:focus .nav-icon {
    background: rgba(255, 255, 255, 0.22);
    transform: translateY(-1px);
}

.header-nav .nav-profile {
    color: var(--text-on-brand);
    padding: 6px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    transition: all 0.2s ease;
}

.header-nav .nav-profile:hover {
    background: rgba(255, 255, 255, 0.2);
}

.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.76);
}

.header-nav .profile {
    border-radius: 14px;
    border: 1px solid #d9e4f0;
    box-shadow: 0 14px 28px rgba(19, 39, 61, 0.16);
}

.header-nav .profile .dropdown-item {
    border-radius: 8px;
    margin: 2px 8px;
}

.header-nav .profile .dropdown-item i {
    color: #2d4f6f;
}

.header-nav .profile .dropdown-item:hover {
    background-color: #ebf3fb;
}

.sidebar {
    top: var(--header-height);
    width: var(--sidebar-width);
    padding: 16px 14px 24px;
    background: linear-gradient(180deg, #f2f6fb 0%, #e9f0f8 52%, #e1eaf5 100%);
    border-right: 1px solid #c8d6e6;
    box-shadow: 8px 0 24px rgba(21, 43, 67, 0.16);
    scrollbar-color: #7390ad transparent;
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #7390ad;
    border-radius: 999px;
}

@media (max-width: 1199px) {
    .sidebar {
        left: calc(var(--sidebar-width) * -1);
    }
}

@media (min-width: 1200px) {
    #main,
    #footer {
        margin-left: var(--sidebar-width);
    }
}

@media (min-width: 1200px) {
    .toggle-sidebar #main,
    .toggle-sidebar #footer {
        margin-left: 0;
    }

    .toggle-sidebar .sidebar {
        left: calc(var(--sidebar-width) * -1);
    }
}

.sidebar-nav .nav-item {
    margin-bottom: 8px;
}

.sidebar-nav .nav-heading {
    color: #4c6076;
    letter-spacing: 0.08em;
}

.sidebar-nav .nav-link {
    gap: 8px;
    padding: 11px 14px;
    border-radius: 12px;
    border: 1px solid rgba(128, 148, 172, 0.34);
    background: rgba(255, 255, 255, 0.56);
    color: var(--text-900);
    font-size: 15px;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(21, 43, 68, 0.08);
    transition: all 0.2s ease;
}

.sidebar-nav .nav-link i {
    color: var(--brand-700);
}

.sidebar-nav .nav-link:hover {
    color: #10273d;
    background: #f8fbff;
    border-color: rgba(86, 123, 159, 0.44);
    transform: translateX(2px);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-800), var(--brand-700));
    border-color: rgba(33, 79, 118, 0.92);
    box-shadow: 0 8px 16px rgba(18, 50, 77, 0.22);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #fff;
}

.sidebar-nav .nav-link .bi-chevron-down {
    margin-left: auto;
    transition: transform 0.2s ease;
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) .bi-chevron-down {
    transform: rotate(180deg);
}

.sidebar-nav .nav-content {
    padding-top: 6px;
}

.sidebar-nav .nav-content a {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 2px 0;
    padding: 9px 12px 9px 16px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-700);
    font-size: 14px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.sidebar-nav .nav-content a i {
    margin-right: 0;
    font-size: 7px;
    color: var(--brand-700);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #10273d;
    background: #f2f7fd;
    border-color: rgba(94, 128, 160, 0.32);
    transform: translateX(2px);
}

.sidebar-nav .nav-content a.active {
    color: #fff;
    background: linear-gradient(135deg, #25537b, #3f739f);
    border-color: rgba(32, 73, 110, 0.9);
    box-shadow: 0 8px 14px rgba(22, 56, 86, 0.2);
}

.sidebar-nav .nav-content a.active i {
    color: #fff;
}

/* --------------------------------------------------------------
# Professional UI Polish (Navbar, Sidebar, Buttons)
-------------------------------------------------------------- */
:root {
    --ui-brand-950: #2f1e16;
    --ui-brand-900: #4a2f22;
    --ui-brand-800: #6b412d;
    --ui-brand-700: #865338;
    --ui-accent-600: #b06d3b;
    --ui-accent-500: #c8844f;
    --ui-bg-app: #f6efe7;
    --ui-bg-surface: #ffffff;
    --ui-border-soft: #e3d4c5;
    --ui-text-900: #3b2b21;
    --ui-text-700: #6b5748;
    --ui-text-on-dark: #fff5eb;
}

body {
    background: linear-gradient(180deg, #fbf6ef 0%, var(--ui-bg-app) 100%);
    color: var(--ui-text-900);
}

#main {
    border-radius: 16px 0 0 0;
}

.header {
    background: linear-gradient(110deg, var(--ui-brand-950) 0%, var(--ui-brand-800) 100%);
    box-shadow: 0 10px 26px rgba(34, 20, 13, 0.36);
}

.logo span {
    color: var(--ui-text-on-dark);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.header .toggle-sidebar-btn {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
}

.header .toggle-sidebar-btn:hover {
    background: rgba(255, 250, 241, 0.24);
}

.header .search-form input {
    border-radius: 12px;
    background: #fffaf3;
    border-color: rgba(177, 132, 88, 0.52);
    color: #4b3628;
}

.header .search-form input::placeholder {
    color: #8e735d;
}

.header-nav .nav-icon {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
}

.header-nav .nav-profile {
    color: var(--ui-text-on-dark);
    background: rgba(255, 250, 241, 0.14);
    border-color: rgba(255, 250, 241, 0.28);
}

.sidebar {
    background: linear-gradient(180deg, #3a251a 0%, #503223 58%, #65412d 100%);
    border-right: 1px solid rgba(255, 245, 232, 0.16);
    box-shadow: 10px 0 26px rgba(36, 22, 15, 0.34);
}

.sidebar-nav .nav-heading {
    color: rgba(255, 241, 224, 0.86);
}

.sidebar-nav .nav-link {
    border: 1px solid rgba(255, 245, 232, 0.22);
    background: rgba(255, 245, 232, 0.1);
    color: var(--ui-text-on-dark);
    box-shadow: none;
}

.sidebar-nav .nav-link i {
    color: rgba(255, 220, 182, 0.96);
}

.sidebar-nav .nav-link:hover {
    color: #ffffff;
    background: rgba(255, 245, 232, 0.2);
    border-color: rgba(255, 245, 232, 0.38);
    transform: translateX(2px);
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--ui-accent-600), var(--ui-accent-500));
    border-color: rgba(145, 88, 47, 0.95);
    box-shadow: 0 10px 18px rgba(72, 43, 23, 0.3);
}

.sidebar-nav .nav-content a {
    color: rgba(255, 241, 224, 0.94);
    border: 1px solid transparent;
    background: transparent;
}

.sidebar-nav .nav-content a i {
    color: rgba(255, 216, 167, 0.96);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    color: #ffffff;
    background: rgba(255, 245, 232, 0.2);
    border-color: rgba(255, 245, 232, 0.38);
}

.sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--ui-accent-600), var(--ui-accent-500));
    border-color: rgba(145, 88, 47, 0.95);
    box-shadow: 0 10px 18px rgba(72, 43, 23, 0.3);
}


/* --------------------------------------------------------------
   ENTERPRISE MINIMAL - FINAL (Professional, sober, low color)
-------------------------------------------------------------- */
body #header.header,
body .header {
    background: #edf5fb !important;
    border-bottom: 1px solid #cfe0ec !important;
    box-shadow: 0 2px 8px rgba(20, 49, 72, 0.1) !important;
}

body #header .logo span,
body .header .logo span,
body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .header-nav .nav-icon {
    color: #000000 !important;
}

body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn,
body .header-nav .nav-icon {
    border-radius: 2px !important;
    border: 1px solid #c7d8e5 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile {
    border-radius: 2px !important;
    background: #ffffff !important;
    border: 1px solid #c7d8e5 !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 2px !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 2px !important;
    background: #ffffff !important;
    border: 1px solid #cdddea !important;
    box-shadow: 0 8px 18px rgba(20, 49, 72, 0.14) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 2px !important;
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eef5fb !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #cdddea !important;
    border-left: 1px solid #cdddea !important;
}

body #sidebar.sidebar,
body .sidebar {
    background: #2c4d63 !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 4px 0 14px rgba(16, 40, 60, 0.2) !important;
}

body .sidebar-nav .nav-heading {
    color: rgba(226, 239, 248, 0.72) !important;
}

body .sidebar-nav .nav-link {
    border-radius: 2px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-link i {
    color: #ffffff !important;
}

body .sidebar-nav .nav-link:hover {
    background: #365f7b !important;
    border-color: rgba(255, 255, 255, 0.16) !important;
    transform: none !important;
}

body .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar-nav .nav-link.active {
    background: #4f87ad !important;
    border-color: #4f87ad !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: #ffffff !important;
}

body .sidebar-nav .nav-content a:hover {
    background: #3a6784 !important;
    border-color: transparent !important;
}

body .sidebar-nav .nav-content a.active {
    background: rgba(96, 154, 193, 0.28) !important;
    border-color: rgba(96, 154, 193, 0.5) !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   UI LOCK - Professional Final Layer (EOF)
-------------------------------------------------------------- */
#header.header,
body .header {
    background: linear-gradient(180deg, #f7f5f2 0%, #f1ece5 100%) !important;
    border-bottom: 1px solid #d7ccbf !important;
    box-shadow: 0 6px 16px rgba(60, 46, 32, 0.14) !important;
}

#header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn {
    border-radius: 3px !important;
    background: #f8f4ee !important;
    border: 1px solid #cfc2b3 !important;
    color: #2f2a25 !important;
    box-shadow: none !important;
}

#header .toggle-sidebar-btn:hover,
body .header .toggle-sidebar-btn:hover,
body .bi.bi-list.toggle-sidebar-btn:hover {
    background: #efe7dd !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

body .header-nav .nav-icon {
    border-radius: 3px !important;
    background: #f8f4ee !important;
    border: 1px solid #d5c9bc !important;
    color: #2f2a25 !important;
}

body .header-nav .nav-profile {
    border-radius: 3px !important;
    background: #f8f3ec !important;
    border: 1px solid #d8ccbf !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 3px !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 3px !important;
    background: #fffdfb !important;
    border: 1px solid #d9ccbe !important;
    box-shadow: 0 12px 24px rgba(52, 39, 27, 0.16) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 2px !important;
    color: #3a3129 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #7a5a3d !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #ede4d9 !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffdfb !important;
    border-top: 1px solid #d9ccbe !important;
    border-left: 1px solid #d9ccbe !important;
}

#sidebar.sidebar,
body .sidebar {
    background: linear-gradient(180deg, #52473d 0%, #43392f 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 8px 0 20px rgba(28, 21, 15, 0.22) !important;
}

body .sidebar-nav .nav-heading {
    color: rgba(244, 239, 233, 0.72) !important;
}

body .sidebar-nav .nav-link {
    border-radius: 3px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    color: #f4efe9 !important;
    box-shadow: none !important;
}

body .sidebar-nav .nav-link i {
    color: rgba(244, 239, 233, 0.9) !important;
}

body .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    transform: none !important;
}

body .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar-nav .nav-link.active {
    background: linear-gradient(135deg, #8c6642, #7a5a3d) !important;
    border-color: rgba(170, 129, 93, 0.95) !important;
    color: #fff !important;
    box-shadow: 0 8px 14px rgba(44, 32, 22, 0.22) !important;
}

body .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: rgba(247, 242, 236, 0.94) !important;
}

body .sidebar-nav .nav-content a:hover {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
}

body .sidebar-nav .nav-content a.active {
    background: rgba(206, 173, 140, 0.2) !important;
    border-color: rgba(206, 173, 140, 0.36) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   FINAL PROFESSIONAL THEME - NAVBAR + SIDEBAR
   (suave, corporativo, sin redondeos excesivos)
-------------------------------------------------------------- */
:root {
    --ui-nav-bg-1: #f7f5f2;
    --ui-nav-bg-2: #f1ece5;
    --ui-nav-border: #d7ccbf;
    --ui-nav-text: #2f2a25;
    --ui-nav-muted: #6b6259;
    --ui-nav-accent: #7a5a3d;
    --ui-nav-accent-soft: #ede4d9;

    --ui-side-bg-1: #52473d;
    --ui-side-bg-2: #43392f;
    --ui-side-border: rgba(255, 255, 255, 0.12);
    --ui-side-text: #f4efe9;
    --ui-side-muted: rgba(244, 239, 233, 0.72);
    --ui-side-item: rgba(255, 255, 255, 0.06);
    --ui-side-item-hover: rgba(255, 255, 255, 0.12);
    --ui-side-active-1: #8c6642;
    --ui-side-active-2: #7a5a3d;
}

#header.header,
.header {
    background: linear-gradient(180deg, var(--ui-nav-bg-1) 0%, var(--ui-nav-bg-2) 100%) !important;
    border-bottom: 1px solid var(--ui-nav-border) !important;
    box-shadow: 0 6px 16px rgba(60, 46, 32, 0.14) !important;
}

#header .logo span,
.header .logo span {
    color: var(--ui-nav-text) !important;
    letter-spacing: 0.2px;
}

#header .toggle-sidebar-btn,
.header .toggle-sidebar-btn {
    color: var(--ui-nav-text) !important;
    border: 1px solid #cfc2b3 !important;
    background: #f8f4ee !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

#header .toggle-sidebar-btn:hover,
.header .toggle-sidebar-btn:hover {
    background: #efe7dd !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

#header .search-form input,
.header .search-form input {
    background: #fbfaf8 !important;
    border: 1px solid #d8cec2 !important;
    color: var(--ui-nav-text) !important;
    border-radius: 3px !important;
}

#header .search-form button,
.header .search-form button {
    color: var(--ui-nav-muted) !important;
}

.header-nav .nav-icon {
    color: var(--ui-nav-text) !important;
    border: 1px solid #d5c9bc !important;
    background: #f8f4ee !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

.header-nav .nav-icon:hover,
.header-nav .nav-icon.show {
    background: #eee5da !important;
    border-color: #bea98f !important;
    color: #3a312a !important;
}

.header-nav .nav-profile {
    background: #f8f3ec !important;
    border: 1px solid #d8ccbf !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

.header-nav .nav-profile span {
    color: var(--ui-nav-text) !important;
}

.header-nav .nav-profile img {
    border-radius: 3px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show,
.header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile {
    background: #fffdfb !important;
    border: 1px solid #d9ccbe !important;
    border-radius: 3px !important;
    box-shadow: 0 12px 24px rgba(52, 39, 27, 0.16) !important;
    padding-top: 0.3rem !important;
    padding-bottom: 0.3rem !important;
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2f2a25 !important;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f675f !important;
}

.header-nav .dropdown-menu.profile .dropdown-divider {
    border-top-color: #e8ddd2 !important;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    color: #3a3129 !important;
    border-radius: 2px !important;
    margin: 1px 4px !important;
    padding-top: 0.48rem !important;
    padding-bottom: 0.48rem !important;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #7a5a3d !important;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: var(--ui-nav-accent-soft) !important;
    color: #2c241e !important;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffdfb !important;
    border-top: 1px solid #d9ccbe !important;
    border-left: 1px solid #d9ccbe !important;
}

#sidebar.sidebar,
.sidebar {
    background: linear-gradient(180deg, var(--ui-side-bg-1) 0%, var(--ui-side-bg-2) 100%) !important;
    border-right: 1px solid var(--ui-side-border) !important;
    box-shadow: 8px 0 20px rgba(28, 21, 15, 0.22) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: var(--ui-side-muted) !important;
    letter-spacing: 0.35px;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    color: var(--ui-side-text) !important;
    background: var(--ui-side-item) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}

#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link i {
    color: rgba(244, 239, 233, 0.9) !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: var(--ui-side-item-hover) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
    transform: none !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
#sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link.active {
    background: linear-gradient(135deg, var(--ui-side-active-1), var(--ui-side-active-2)) !important;
    border-color: rgba(170, 129, 93, 0.95) !important;
    color: #fff !important;
    box-shadow: 0 8px 14px rgba(44, 32, 22, 0.22) !important;
}

#sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a {
    color: rgba(247, 242, 236, 0.94) !important;
    border-radius: 2px !important;
    border: 1px solid transparent !important;
}

#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a i {
    color: #d7bfa5 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a:hover {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
    color: #fff !important;
}

#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(206, 173, 140, 0.2) !important;
    border-color: rgba(206, 173, 140, 0.36) !important;
    color: #fff !important;
}

/* --------------------------------------------------------------
   Ultimate Soft Professional Theme
   (highest-priority visual override)
-------------------------------------------------------------- */
body #header.header {
    background: linear-gradient(125deg, #4b5865 0%, #5d6d7d 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 8px 18px rgba(34, 45, 56, 0.22) !important;
}

body #header .logo span,
body #header .header-nav .nav-profile,
body #header .header-nav .nav-icon,
body #header .toggle-sidebar-btn {
    color: #eef3f8 !important;
}

body #header .toggle-sidebar-btn {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.26) !important;
    border-radius: 4px !important;
}

body #header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
}

body #header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
}

body #header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 4px !important;
}

body #header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

body #header .search-form input {
    background: #f9fbfd !important;
    border: 1px solid #b5c1cd !important;
    color: #2c3e50 !important;
    border-radius: 4px !important;
}

body #header .search-form input::placeholder {
    color: #728395 !important;
}

body #header .header-nav .dropdown-menu.profile,
body #header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d6dee7 !important;
    border-radius: 4px !important;
    box-shadow: 0 14px 30px rgba(30, 41, 53, 0.18) !important;
    padding: 8px !important;
    min-width: 275px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2d4258 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f8296 !important;
    font-size: 12px !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #304860 !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #687f98 !important;
}

body #header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f2f6fa !important;
}

body #header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d6dee7 !important;
    border-left: 1px solid #d6dee7 !important;
}

body #sidebar.sidebar {
    background: linear-gradient(180deg, #566476 0%, #64758a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.16) !important;
    box-shadow: 8px 0 16px rgba(36, 49, 63, 0.18) !important;
}

body #sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.85) !important;
}

body #sidebar .sidebar-nav .nav-link {
    color: #eef3f8 !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 4px !important;
}

body #sidebar .sidebar-nav .nav-link i {
    color: #d8e3ee !important;
}

body #sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.32) !important;
}

body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #7b8fa6, #8ea3ba) !important;
    border-color: rgba(152, 201, 232, 0.92) !important;
    box-shadow: 0 8px 14px rgba(52, 68, 85, 0.18) !important;
}

body #sidebar .sidebar-nav .nav-content a {
    color: rgba(235, 241, 248, 0.95) !important;
    border-radius: 3px !important;
}

body #sidebar .sidebar-nav .nav-content a i {
    color: #d2ddea !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body #sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #7b8fa6, #8ea3ba) !important;
    border-color: rgba(152, 201, 232, 0.92) !important;
}

/* --------------------------------------------------------------
   Final Override - Soft Professional Navbar + Sidebar
   (No cambia estructura, solo apariencia)
-------------------------------------------------------------- */
:root {
    --final-nav-1: #3f4955;
    --final-nav-2: #4d5a68;
    --final-side-1: #465463;
    --final-side-2: #556577;
    --final-side-active-1: #6b7f95;
    --final-side-active-2: #7e92a8;
    --final-text-light: #eef3f8;
}

#header.header {
    background: linear-gradient(120deg, var(--final-nav-1) 0%, var(--final-nav-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 8px 20px rgba(33, 43, 54, 0.22) !important;
}

#header .logo span {
    color: var(--final-text-light) !important;
}

#header .toggle-sidebar-btn {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 4px !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
}

#header .search-form input {
    border-radius: 4px !important;
    background: #f9fbfd !important;
    border: 1px solid #b8c4d0 !important;
    color: #2b3b4b !important;
}

#header .search-form input::placeholder {
    color: #708293 !important;
}

#header .header-nav .nav-icon {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d6dee7 !important;
    border-radius: 4px !important;
    box-shadow: 0 14px 30px rgba(30, 41, 53, 0.18) !important;
    min-width: 270px !important;
    padding: 8px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #2b3d4f !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6f8296 !important;
    font-size: 12px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #30465d !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #688099 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f1f5f9 !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d6dee7 !important;
    border-left: 1px solid #d6dee7 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--final-side-1) 0%, var(--final-side-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 8px 0 18px rgba(33, 43, 54, 0.2) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.82) !important;
}

#sidebar .sidebar-nav .nav-link {
    color: var(--final-text-light) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 4px !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: #d9e3ed !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--final-side-active-1), var(--final-side-active-2)) !important;
    border-color: rgba(132, 151, 172, 0.9) !important;
    box-shadow: 0 8px 14px rgba(46, 60, 75, 0.18) !important;
}

#sidebar .sidebar-nav .nav-content a {
    color: rgba(234, 240, 247, 0.94) !important;
    border-radius: 3px !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #cdd9e6 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.26) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--final-side-active-1), var(--final-side-active-2)) !important;
    border-color: rgba(132, 151, 172, 0.9) !important;
}

/* --------------------------------------------------------------
   Final Soft Professional Theme (Navbar + Sidebar only)
   Nota: override final, no toca tablas ni logica.
-------------------------------------------------------------- */
:root {
    --soft-nav-1: #2f3a46;
    --soft-nav-2: #3f4c5b;
    --soft-side-1: #364251;
    --soft-side-2: #425162;
    --soft-accent: #7a8fa6;
    --soft-accent-2: #8ea3ba;
    --soft-text: #eef3f8;
    --soft-border: rgba(238, 243, 248, 0.24);
}

#header.header {
    background: linear-gradient(120deg, var(--soft-nav-1) 0%, var(--soft-nav-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 8px 18px rgba(21, 29, 39, 0.24) !important;
}

#header .logo span {
    color: var(--soft-text) !important;
}

#header .toggle-sidebar-btn {
    color: var(--soft-text) !important;
    border: 1px solid var(--soft-border) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-radius: 3px !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
}

#header .search-form input {
    border-radius: 4px !important;
    background: #f8fafc !important;
    border: 1px solid #b6c1cd !important;
    color: #263443 !important;
}

#header .search-form input::placeholder {
    color: #708191 !important;
}

#header .header-nav .nav-icon {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 4px !important;
}

#header .header-nav .nav-profile img {
    border-radius: 4px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    background: #ffffff !important;
    border: 1px solid #d8e0e8 !important;
    border-radius: 4px !important;
    box-shadow: 0 12px 28px rgba(25, 35, 48, 0.18) !important;
    padding: 8px !important;
    min-width: 270px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #253343 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    color: #687b8f !important;
    font-size: 12px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    color: #2d3f52 !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    font-weight: 600 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #607488 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f1f5f9 !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d8e0e8 !important;
    border-left: 1px solid #d8e0e8 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--soft-side-1) 0%, var(--soft-side-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 8px 0 18px rgba(25, 35, 48, 0.2) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(238, 243, 248, 0.8) !important;
}

#sidebar .sidebar-nav .nav-link {
    color: var(--soft-text) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 4px !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: #d6e0ea !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.13) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, var(--soft-accent), var(--soft-accent-2)) !important;
    border-color: rgba(128, 147, 168, 0.9) !important;
    box-shadow: 0 8px 16px rgba(44, 58, 75, 0.2) !important;
}

#sidebar .sidebar-nav .nav-content a {
    color: rgba(232, 239, 247, 0.94) !important;
    border-radius: 3px !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #c9d7e5 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, var(--soft-accent), var(--soft-accent-2)) !important;
    border-color: rgba(128, 147, 168, 0.9) !important;
}

/* --------------------------------------------------------------
# Hard Override - Navbar/Sidebar Professional
-------------------------------------------------------------- */
:root {
    --hard-nav-bg-1: #12161c;
    --hard-nav-bg-2: #232b35;
    --hard-side-bg-1: #161b22;
    --hard-side-bg-2: #262f3a;
    --hard-accent: #c18a4a;
    --hard-text: #edf2f7;
    --hard-border: rgba(237, 242, 247, 0.2);
}

#header.header {
    background: linear-gradient(115deg, var(--hard-nav-bg-1) 0%, var(--hard-nav-bg-2) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 10px 24px rgba(9, 13, 19, 0.28) !important;
}

#header .logo span {
    color: var(--hard-text) !important;
}

#header .toggle-sidebar-btn {
    border-radius: 0 !important;
    width: 36px !important;
    height: 36px !important;
    border: 1px solid var(--hard-border) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: var(--hard-text) !important;
}

#header .toggle-sidebar-btn:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
}

#header .search-form input {
    border-radius: 3px !important;
    background: #f8fafc !important;
    border: 1px solid #adb8c4 !important;
    color: #1f2937 !important;
}

#header .search-form input::placeholder {
    color: #6b7280 !important;
}

#header .header-nav .nav-icon {
    border-radius: 3px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--hard-text) !important;
}

#header .header-nav .nav-profile {
    border-radius: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--hard-text) !important;
}

#header .header-nav .nav-profile img {
    border-radius: 2px !important;
}

#header .header-nav .dropdown-menu.profile,
#header .header-nav .dropdown-menu.profile.show {
    border-radius: 3px !important;
    border: 1px solid #d4dce5 !important;
    background: #ffffff !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.22) !important;
    min-width: 270px !important;
    padding: 8px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left !important;
    padding: 8px 10px 10px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header h6 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
    margin-bottom: 2px !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-header span {
    font-size: 12px !important;
    color: #6b7280 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-divider {
    border-top: 1px solid #e6edf4 !important;
    margin: 6px 0 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    border-radius: 3px !important;
    padding: 9px 10px !important;
    margin: 2px 0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #243446 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #4b5563 !important;
}

#header .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f3f6fa !important;
    color: #1d2a3a !important;
}

#header .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #d4dce5 !important;
    border-left: 1px solid #d4dce5 !important;
}

#sidebar.sidebar {
    background: linear-gradient(180deg, var(--hard-side-bg-1) 0%, var(--hard-side-bg-2) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 8px 0 20px rgba(15, 23, 42, 0.24) !important;
}

#sidebar .sidebar-nav .nav-heading {
    color: rgba(237, 242, 247, 0.76) !important;
}

#sidebar .sidebar-nav .nav-link {
    border-radius: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: rgba(255, 255, 255, 0.05) !important;
    color: var(--hard-text) !important;
}

#sidebar .sidebar-nav .nav-link i {
    color: rgba(223, 232, 242, 0.94) !important;
}

#sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #8f653d, var(--hard-accent)) !important;
    border-color: rgba(150, 108, 67, 0.95) !important;
}

#sidebar .sidebar-nav .nav-content a {
    border-radius: 2px !important;
    color: rgba(231, 239, 247, 0.92) !important;
}

#sidebar .sidebar-nav .nav-content a i {
    color: #d9ad79 !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #8f653d, var(--hard-accent)) !important;
    border-color: rgba(150, 108, 67, 0.95) !important;
}

/* --------------------------------------------------------------
# Navbar Final Tuning (No Rounded Toggle + Styled Profile Dropdown)
-------------------------------------------------------------- */
.header .toggle-sidebar-btn {
    border-radius: 0;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 245, 232, 0.28);
    background: rgba(255, 245, 232, 0.1);
}

.header .toggle-sidebar-btn:hover {
    background: rgba(255, 245, 232, 0.18);
    border-color: rgba(255, 245, 232, 0.4);
}

.header .toggle-sidebar-btn:focus-visible {
    outline: 2px solid rgba(255, 210, 155, 0.72);
    outline-offset: 1px;
}

.header-nav .nav-profile {
    border-radius: 4px;
}

.header-nav .nav-profile img {
    border-radius: 4px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show {
    border-radius: 4px;
    border: 1px solid #d8c4ad;
    background: #fffaf3;
    box-shadow: 0 12px 26px rgba(50, 32, 20, 0.2);
    padding: 8px;
    min-width: 260px;
}

.header-nav .dropdown-menu.profile .dropdown-header {
    text-align: left;
    padding: 8px 10px 10px;
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #4a2f22;
    font-weight: 700;
    font-size: 15px;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #7a634f;
    font-size: 12px;
}

.header-nav .dropdown-menu.profile .dropdown-divider {
    border-top-color: #eadccc;
    margin: 6px 0;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 4px;
    margin: 2px 0;
    padding: 9px 10px;
    font-weight: 600;
    color: #4a2f22;
    background: transparent;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #9a5c35;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f4e7d8;
    color: #3d261b;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #fffaf3;
    border-top: 1px solid #d8c4ad;
    border-left: 1px solid #d8c4ad;
}

/* --------------------------------------------------------------
# Theme Final (Professional - Navbar/Sidebar)
-------------------------------------------------------------- */
:root {
    --pro-nav-950: #14171c;
    --pro-nav-900: #1d232b;
    --pro-nav-800: #2b343f;
    --pro-side-950: #171c22;
    --pro-side-900: #202730;
    --pro-side-800: #2a333d;
    --pro-accent: #be8549;
    --pro-accent-soft: #d3a16d;
    --pro-text-on-dark: #eef2f6;
    --pro-border-soft: rgba(238, 242, 246, 0.2);
}

body {
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
}

#main {
    border-radius: 10px 0 0 0;
}

.header {
    background: linear-gradient(110deg, var(--pro-nav-950) 0%, var(--pro-nav-800) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 24px rgba(13, 17, 23, 0.28);
}

.logo img {
    border-radius: 4px;
}

.logo span {
    color: var(--pro-text-on-dark);
    font-weight: 700;
}

.header .toggle-sidebar-btn {
    color: var(--pro-text-on-dark);
    border-radius: 2px;
    border: 1px solid var(--pro-border-soft);
    background: rgba(255, 255, 255, 0.06);
}

.header .toggle-sidebar-btn:hover {
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.12);
}

.header .search-form input {
    border-radius: 4px;
    background: #f8fafc;
    border-color: #aab4c0;
    color: #1f2937;
}

.header .search-form input::placeholder {
    color: #6b7280;
}

.header-nav .nav-icon {
    color: var(--pro-text-on-dark);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
}

.header-nav .nav-profile {
    color: var(--pro-text-on-dark);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.18);
}

.header-nav .nav-profile img {
    border-radius: 4px !important;
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show {
    border-radius: 4px;
    border: 1px solid #cfd7e0;
    background: #ffffff;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.18);
}

.header-nav .dropdown-menu.profile .dropdown-header h6 {
    color: #1f2937;
}

.header-nav .dropdown-menu.profile .dropdown-header span {
    color: #6b7280;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 3px;
    color: #243242;
}

.header-nav .dropdown-menu.profile .dropdown-item i {
    color: #4b5563;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #f3f6fa;
}

.header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff;
    border-top: 1px solid #cfd7e0;
    border-left: 1px solid #cfd7e0;
}

.sidebar {
    background: linear-gradient(180deg, var(--pro-side-950) 0%, var(--pro-side-800) 100%);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 8px 0 22px rgba(15, 23, 42, 0.22);
}

.sidebar-nav .nav-heading {
    color: rgba(238, 242, 246, 0.76);
}

.sidebar-nav .nav-link {
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.05);
    color: var(--pro-text-on-dark);
}

.sidebar-nav .nav-link i {
    color: rgba(218, 227, 240, 0.95);
}

.sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.24);
    transform: none;
}

.sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(135deg, #8a6238, var(--pro-accent));
    border-color: rgba(146, 106, 64, 0.96);
    box-shadow: 0 8px 16px rgba(58, 36, 21, 0.26);
}

.sidebar-nav .nav-content a {
    border-radius: 3px;
    color: rgba(232, 238, 246, 0.92);
}

.sidebar-nav .nav-content a i {
    color: var(--pro-accent-soft);
}

.sidebar-nav .nav-content a:hover,
.sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.26);
    color: #ffffff;
    transform: none;
}

.sidebar-nav .nav-content a.active {
    background: linear-gradient(135deg, #8a6238, var(--pro-accent));
    border-color: rgba(146, 106, 64, 0.96);
    box-shadow: 0 8px 16px rgba(58, 36, 21, 0.26);
}


/* --------------------------------------------------------------
   ENTERPRISE SKY FINAL END LAYER
-------------------------------------------------------------- */
body #header.header,
body .header {
    background: #0f82cd !important;
    border-bottom: 1px solid #0b6faa !important;
    box-shadow: 0 2px 10px rgba(9, 46, 78, 0.28) !important;
}

body #header .logo span,
body .header .logo span,
body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .header-nav .nav-icon {
    color: #ffffff !important;
}

body #header .toggle-sidebar-btn,
body .header .toggle-sidebar-btn,
body .bi.bi-list.toggle-sidebar-btn,
body .header-nav .nav-icon {
    border-radius: 0 !important;
    border: 1px solid #58a8dd !important;
    background: rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
}

body #header .toggle-sidebar-btn:hover,
body .header .toggle-sidebar-btn:hover,
body .bi.bi-list.toggle-sidebar-btn:hover,
body .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.24) !important;
    border-color: #84c0e7 !important;
    color: #ffffff !important;
}

body .header-nav .nav-profile {
    border-radius: 0 !important;
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid #63afe0 !important;
    box-shadow: none !important;
}

body .header-nav .nav-profile img {
    border-radius: 0 !important;
}

body .header-nav .nav-profile span,
body .header-nav .nav-profile i {
    color: #ffffff !important;
}

body .header-nav .dropdown-menu.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile,
body .header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile.show {
    border-radius: 0 !important;
    background: #ffffff !important;
    border: 1px solid #b8d7ec !important;
    box-shadow: 0 8px 18px rgba(24, 54, 79, 0.14) !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 0 !important;
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item i {
    color: #000000 !important;
}

body .header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eaf4fc !important;
}

body .header-nav .dropdown-menu.profile.dropdown-menu-arrow::before {
    background: #ffffff !important;
    border-top: 1px solid #b8d7ec !important;
    border-left: 1px solid #b8d7ec !important;
}

body #sidebar.sidebar,
body .sidebar {
    background: #1b6f9f !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 4px 0 14px rgba(10, 44, 71, 0.22) !important;
}

body #sidebar .sidebar-nav .nav-heading,
body .sidebar .sidebar-nav .nav-heading {
    color: rgba(255, 255, 255, 0.72) !important;
}

body #sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link {
    border-radius: 0 !important;
    background: #257aae !important;
    border: 1px solid #4d97c4 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #sidebar .sidebar-nav .nav-link i,
body .sidebar .sidebar-nav .nav-link i {
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-link:hover,
body .sidebar .sidebar-nav .nav-link:hover {
    background: #2f89c1 !important;
    border-color: #78b5d8 !important;
    transform: none !important;
}

body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body #sidebar .sidebar-nav .nav-link.active,
body .sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar .sidebar-nav .nav-link.active {
    background: #3c9fdc !important;
    border-color: #98c9e8 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #sidebar .sidebar-nav .nav-content a,
body .sidebar .sidebar-nav .nav-content a {
    border-radius: 0 !important;
    color: #ffffff !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body .sidebar .sidebar-nav .nav-content a:hover {
    background: #2f89c1 !important;
    border-color: transparent !important;
}

body #sidebar .sidebar-nav .nav-content a.active,
body .sidebar .sidebar-nav .nav-content a.active {
    background: #3c9fdc !important;
    border-color: #98c9e8 !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   CRUD FORM BUTTONS - FINAL (por ID, sin afectar todo el sistema)
-------------------------------------------------------------- */
body #btn_guardar_form.btn,
body #btn_guardar_form.btn-outline-success,
body #btn_guardar_form.btn-success {
    border-radius: 2px !important;
    font-weight: 600 !important;
    background: #0a9772 !important;
    border-color: #0a9772 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #btn_guardar_form.btn:hover,
body #btn_guardar_form.btn-outline-success:hover,
body #btn_guardar_form.btn-success:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
    color: #ffffff !important;
}

body #btn_reset_form.btn,
body #btn_reset_form.btn-outline-secondary,
body #btn_reset_form.btn-secondary {
    border-radius: 2px !important;
    font-weight: 600 !important;
    background: #1f7fb8 !important;
    border-color: #1f7fb8 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body #btn_reset_form.btn:hover,
body #btn_reset_form.btn-outline-secondary:hover,
body #btn_reset_form.btn-secondary:hover {
    background: #1a6e9e !important;
    border-color: #1a6e9e !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   Navbar - Alerta Stock Minimo
-------------------------------------------------------------- */
body #header .header-nav .stock-alerts {
    min-width: 320px !important;
    max-width: 360px !important;
    max-height: 420px !important;
    overflow-y: auto !important;
}

body #header .header-nav .stock-alerts .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .header-nav .stock-alerts .stock-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px 12px !important;
}

body #header .header-nav .stock-alerts .stock-item i {
    margin-top: 2px !important;
    margin-right: 0 !important;
    font-size: 12px !important;
}

body #header .header-nav .stock-alerts .stock-item h4 {
    margin: 0 0 2px 0 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #111827 !important;
}

body #header .header-nav .stock-alerts .stock-item p {
    margin: 0 !important;
    font-size: 12px !important;
    color: #4b5563 !important;
    line-height: 1.3 !important;
}

body #header .header-nav .stock-alerts .stock-critico i {
    color: #dc2626 !important;
}

body #header .header-nav .stock-alerts .stock-bajo i {
    color: #d97706 !important;
}

body #header .header-nav .stock-alerts .stock-minimo i {
    color: #0284c7 !important;
}

body #header .header-nav .stock-alerts .stock-ok i {
    color: #16a34a !important;
}

/* --------------------------------------------------------------
   Navbar - Dropdown Notificaciones
-------------------------------------------------------------- */
body #header .search-bar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

body #header .search-bar .search-form {
    flex: 1 1 auto !important;
    width: auto !important;
}

body #header .search-notify-trigger {
    margin-right: 0 !important;
    position: relative !important;
}

body #header .search-notify-dropdown .notify-summary {
    min-width: 360px !important;
    max-width: 380px !important;
    padding: 8px !important;
}

body #header .search-notify-dropdown .notify-summary .dropdown-header {
    text-align: left !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line {
    padding: 8px 10px !important;
    background: #f8fbff !important;
    border: 1px solid #e2e8f0 !important;
    margin: 4px 0 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line .notify-line-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    color: inherit !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line .notify-line-link:hover {
    text-decoration: none !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line span {
    font-size: 12px !important;
    color: #334155 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-line strong {
    font-size: 13px !important;
    font-weight: 700 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-optimo strong {
    color: #16a34a !important;
}

body #header .search-notify-dropdown .notify-summary .notify-medio strong {
    color: #d97706 !important;
}

body #header .search-notify-dropdown .notify-summary .notify-minimo strong {
    color: #dc2626 !important;
}

@media (max-width: 1199px) {
    body #header .search-notify-dropdown {
        display: none !important;
    }
}

/* ===== Inventory Theme Override (moved from inventory-theme.css) ===== */
/* Inventory Theme: visual refresh focused on clarity + hierarchy */
:root {
    --inv-bg: #f3efe7;
    --inv-surface: #fffdf9;
    --inv-surface-soft: #f8f4ec;
    --inv-border: #d8d0c2;
    --inv-text: #1f2a33;
    --inv-text-soft: #5c6d79;
    --inv-primary: #17475b;
    --inv-primary-strong: #103544;
    --inv-accent: #d97732;
    --inv-success: #2f8f6a;
    --inv-danger: #c4453c;
    --inv-shadow: 0 14px 30px rgba(16, 31, 41, 0.12);
}

body {
    font-family: "Ubuntu", "Segoe UI", sans-serif !important;
    color: var(--inv-text) !important;
    background:
        radial-gradient(1100px 420px at 8% -8%, rgba(217, 119, 50, 0.12), transparent 64%),
        radial-gradient(900px 400px at 96% -16%, rgba(23, 71, 91, 0.15), transparent 60%),
        var(--inv-bg) !important;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.navbar-brand,
.sidebar-nav .nav-link {
    font-family: "Montserrat", "Segoe UI", sans-serif !important;
}

#main {
    margin-top: 74px !important;
    padding: 22px 26px !important;
    border-radius: 22px 22px 0 0;
    background: rgba(255, 253, 249, 0.96) !important;
}

#header.header,
.header {
    height: 64px !important;
    background: rgba(255, 252, 247, 0.93) !important;
    border-bottom: 1px solid var(--inv-border) !important;
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 24px rgba(23, 71, 91, 0.1) !important;
}

.header .toggle-sidebar-btn,
.bi.bi-list.toggle-sidebar-btn,
.header-nav .nav-icon {
    color: var(--inv-primary) !important;
}

.header .toggle-sidebar-btn:hover,
.bi.bi-list.toggle-sidebar-btn:hover,
.header-nav .nav-icon:hover {
    color: var(--inv-accent) !important;
}

#sidebar.sidebar,
.sidebar {
    top: 64px !important;
    background:
        linear-gradient(175deg, #173f51 0%, #123646 62%, #102e3c 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 10px 0 28px rgba(8, 25, 34, 0.24) !important;
}

.sidebar .sidebar-nav .nav-heading {
    color: #c7d7df !important;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.sidebar .sidebar-nav .nav-link {
    color: #ebf3f7 !important;
    background: transparent !important;
    border-radius: 12px;
    margin: 4px 10px;
    transition: all 0.2s ease;
}

.sidebar .sidebar-nav .nav-link i {
    color: #d7e8ef !important;
}

.sidebar .sidebar-nav .nav-link:hover {
    color: #ffffff !important;
    background: rgba(217, 119, 50, 0.2) !important;
}

.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #fff !important;
    background: linear-gradient(90deg, rgba(217, 119, 50, 0.96), rgba(194, 95, 36, 0.96)) !important;
    box-shadow: 0 8px 16px rgba(176, 88, 31, 0.34);
}

.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #fff !important;
}

.sidebar .sidebar-nav .nav-content a {
    color: #cde0e8 !important;
    border-radius: 10px;
}

.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1) !important;
}

.card,
.modal-content {
    border: 1px solid var(--inv-border) !important;
    border-radius: 16px !important;
    background: var(--inv-surface) !important;
    box-shadow: var(--inv-shadow) !important;
}

.modal-header,
.modal-footer {
    border-color: #e2dbcf !important;
    background: #fcf8f1 !important;
}

.form-control,
.form-select {
    border: 1px solid #cfc6b8 !important;
    border-radius: 10px !important;
    background: #fffcf7 !important;
    color: var(--inv-text) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--inv-accent) !important;
    box-shadow: 0 0 0 0.2rem rgba(217, 119, 50, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--inv-primary) !important;
    --bs-btn-border-color: var(--inv-primary) !important;
    --bs-btn-hover-bg: var(--inv-primary-strong) !important;
    --bs-btn-hover-border-color: var(--inv-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--inv-success) !important;
    --bs-btn-border-color: var(--inv-success) !important;
    --bs-btn-hover-bg: #257254 !important;
    --bs-btn-hover-border-color: #257254 !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--inv-danger) !important;
    --bs-btn-border-color: var(--inv-danger) !important;
}

.btn-warning,
.btn-outline-warning {
    --bs-btn-bg: var(--inv-accent) !important;
    --bs-btn-border-color: var(--inv-accent) !important;
    --bs-btn-color: #fff !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid #d7cfbf !important;
    border-radius: 14px !important;
    box-shadow: 0 10px 22px rgba(16, 31, 41, 0.12) !important;
    background: #fffdf9 !important;
}

.bootstrap-table .table thead th {
    background: linear-gradient(180deg, #f0e8db 0%, #e9dece 100%) !important;
    color: #193443 !important;
    border-bottom: 1px solid #d4c7b2 !important;
}

.bootstrap-table .table tbody td {
    color: #243745 !important;
    border-bottom: 1px solid #ede5d7 !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td {
    background: #fdf9f1 !important;
}

.bootstrap-table .table tbody tr:hover td {
    background: #f4ede0 !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f8f2e7 !important;
    border-top: 1px solid #e0d5c3 !important;
}

.pagination .page-link {
    color: var(--inv-primary) !important;
    border-color: #d8cfbf !important;
    background: #fffdf8 !important;
}

.pagination .page-item.active .page-link {
    background: var(--inv-primary) !important;
    border-color: var(--inv-primary) !important;
    color: #fff !important;
}

#footer.footer,
.footer {
    background: #f7f1e6 !important;
    border-top: 1px solid #ddcfba !important;
    color: #4a5a66 !important;
}

@media (max-width: 1199px) {
    #main {
        padding: 18px 14px !important;
        border-radius: 14px 14px 0 0;
    }

    #header.header,
    .header {
        height: 60px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 60px !important;
    }
}

/* ===== Inventory Pro Navbar + Sidebar Refresh ===== */
:root {
    --inv-nav-bg: linear-gradient(120deg, #0f3443 0%, #14495d 55%, #19566f 100%);
    --inv-nav-surface: rgba(255, 255, 255, 0.08);
    --inv-nav-border: rgba(255, 255, 255, 0.14);
    --inv-nav-text: #e9f4fa;
    --inv-nav-text-soft: #c4dbe6;
    --inv-nav-accent: #e4883c;
    --inv-nav-accent-soft: rgba(228, 136, 60, 0.22);
    --inv-nav-shadow: 0 14px 30px rgba(7, 28, 38, 0.35);
}

#header.header,
.header {
    height: 66px !important;
    background: var(--inv-nav-bg) !important;
    border-bottom: 1px solid var(--inv-nav-border) !important;
    box-shadow: var(--inv-nav-shadow) !important;
    backdrop-filter: blur(6px);
}

.header .logo span,
.header-nav .nav-profile span,
.header-nav .nav-icon,
#header .toggle-sidebar-btn,
.header .toggle-sidebar-btn {
    color: var(--inv-nav-text) !important;
}

.header-nav .nav-profile {
    padding: 6px 10px !important;
    border: 1px solid var(--inv-nav-border) !important;
    background: var(--inv-nav-surface) !important;
    border-radius: 12px !important;
}

.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.35) !important;
}

.header-nav .nav-icon:hover,
.header .toggle-sidebar-btn:hover,
#header .toggle-sidebar-btn:hover {
    color: #ffffff !important;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.35);
}

.header-nav .dropdown-menu.profile,
.header-nav .dropdown-menu.profile.show,
.header-nav .dropdown-menu.dropdown-menu-end.dropdown-menu-arrow.profile {
    border: 1px solid #d4e3eb !important;
    border-radius: 14px !important;
    box-shadow: 0 16px 36px rgba(13, 37, 50, 0.2) !important;
    padding: 8px !important;
}

.header-nav .dropdown-menu.profile .dropdown-item {
    border-radius: 8px !important;
}

.header-nav .dropdown-menu.profile .dropdown-item:hover {
    background: #eef6fb !important;
    color: #123d50 !important;
}

#sidebar.sidebar,
.sidebar {
    top: 66px !important;
    background:
        radial-gradient(700px 320px at -10% 0%, rgba(228, 136, 60, 0.16), transparent 60%),
        linear-gradient(185deg, #102f3d 0%, #123a4b 62%, #143f52 100%) !important;
    border-right: 1px solid var(--inv-nav-border) !important;
    box-shadow: 10px 0 24px rgba(8, 25, 34, 0.34) !important;
}

.sidebar .sidebar-nav .nav-heading {
    color: var(--inv-nav-text-soft) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    margin: 14px 12px 8px !important;
}

.sidebar .sidebar-nav .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    color: var(--inv-nav-text) !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    transition: all 0.2s ease !important;
}

.sidebar .sidebar-nav .nav-link i {
    color: #d8eaf2 !important;
}

.sidebar .sidebar-nav .nav-link:hover {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    transform: translateX(2px);
}

.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    background:
        linear-gradient(90deg, rgba(228, 136, 60, 0.96), rgba(198, 104, 38, 0.96)) !important;
    box-shadow: 0 10px 18px rgba(176, 88, 31, 0.35) !important;
}

.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #ffffff !important;
}

.sidebar .sidebar-nav .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.14) !important;
}

.sidebar .sidebar-nav .nav-content a {
    color: #cae2ec !important;
    border-radius: 8px !important;
}

.sidebar .sidebar-nav .nav-content a:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
}

.sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: var(--inv-nav-accent-soft) !important;
    border-left: 2px solid var(--inv-nav-accent) !important;
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        height: 60px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 60px !important;
    }
}


/* ==============================================================
   INVENTORY THEME 2026 - DIGITAL PROFESSIONAL FINAL
============================================================== */
:root {
    --inv-font-body: "Inter", "Work Sans", "Segoe UI", sans-serif;
    --inv-font-title: "Montserrat", "Inter", sans-serif;

    --inv-bg: #eef3f9;
    --inv-bg-soft: #f7fafe;
    --inv-surface: #ffffff;
    --inv-border: #d9e3ee;
    --inv-text: #1a2f3f;
    --inv-text-soft: #61778b;

    --inv-primary: #1b84c6;
    --inv-primary-strong: #116294;
    --inv-accent: #27a2e6;

    --inv-shell-dark: #0d2738;
    --inv-shell-mid: #11415d;
    --inv-shell-light: #1a6d99;

    --inv-success: #10835f;
    --inv-danger: #c84a4a;
    --inv-warning: #cc8a1f;

    --inv-shadow-sm: 0 6px 14px rgba(12, 36, 52, 0.1);
    --inv-shadow-md: 0 14px 30px rgba(12, 36, 52, 0.14);
    --inv-radius: 14px;
}

html,
body {
    font-family: var(--inv-font-body) !important;
    color: var(--inv-text) !important;
    background:
        radial-gradient(900px 380px at -5% -10%, rgba(39, 162, 230, 0.16), transparent 62%),
        radial-gradient(850px 360px at 105% -10%, rgba(27, 132, 198, 0.14), transparent 62%),
        var(--inv-bg) !important;
}

h1, h2, h3, h4, h5, h6,
.card-title,
.pagetitle h1 {
    font-family: var(--inv-font-title) !important;
    color: #12364b !important;
}

/* Header */
.inventory-header {
    min-height: 68px !important;
    background: linear-gradient(115deg, var(--inv-shell-dark) 0%, var(--inv-shell-mid) 56%, var(--inv-shell-light) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(8, 27, 39, 0.3) !important;
    backdrop-filter: blur(8px);
}

.inventory-header .logo,
.inventory-header .logo span,
.inventory-header .toggle-sidebar-btn,
.inventory-header .header-nav .nav-icon,
.inventory-header .header-nav .nav-profile span,
.inventory-header .header-nav .nav-profile i,
.inventory-header .header-nav .nav-link,
.inventory-header .header-nav .bi {
    color: #f2f9ff !important;
}

.inventory-header .toggle-sidebar-btn,
.inventory-header .header-nav .nav-icon {
    width: 39px !important;
    height: 39px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

.inventory-header .toggle-sidebar-btn:hover,
.inventory-header .header-nav .nav-icon:hover {
    transform: translateY(-1px) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

.inventory-header .inventory-search-bar .search-form input {
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

.inventory-header .inventory-search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

.inventory-header .inventory-search-bar .search-form button i {
    color: #ffffff !important;
}

.inventory-header .inventory-header-nav .nav-profile {
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    padding: 6px 12px !important;
}

.inventory-header .inventory-header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.38) !important;
}

.inventory-header .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--inv-border) !important;
    box-shadow: var(--inv-shadow-md) !important;
}

.inventory-header .dropdown-item {
    border-radius: 8px !important;
}

.inventory-header .dropdown-item:hover {
    background: #edf5fc !important;
}

/* Sidebar */
.inventory-sidebar {
    top: 68px !important;
    background:
        radial-gradient(560px 260px at -8% 0%, rgba(39, 162, 230, 0.18), transparent 66%),
        linear-gradient(185deg, #102d3f 0%, #12465f 62%, #155f82 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 10px 0 24px rgba(7, 23, 34, 0.34) !important;
}

.inventory-sidebar .nav-heading {
    color: rgba(219, 241, 255, 0.82) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 700 !important;
}

.inventory-sidebar .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #f2f9ff !important;
    font-weight: 600 !important;
}

.inventory-sidebar .nav-link i {
    color: #d8ecf9 !important;
}

.inventory-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    transform: translateX(2px) !important;
}

.inventory-sidebar .nav-link.active,
.inventory-sidebar .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--inv-primary) 0%, var(--inv-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(21, 110, 163, 0.34) !important;
}

.inventory-sidebar .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.15) !important;
}

.inventory-sidebar .nav-content a {
    color: #d8edf8 !important;
    border-radius: 8px !important;
}

.inventory-sidebar .nav-content a:hover,
.inventory-sidebar .nav-content a.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

/* Main area */
#main.main {
    margin-top: 74px !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border-radius: 16px 16px 0 0 !important;
}

#footer.footer,
.footer {
    background: #f0f5fa !important;
    border-top: 1px solid var(--inv-border) !important;
    color: #5c7488 !important;
}

.card,
.modal-content {
    border: 1px solid var(--inv-border) !important;
    border-radius: var(--inv-radius) !important;
    background: var(--inv-surface) !important;
    box-shadow: var(--inv-shadow-sm) !important;
}

.card-title {
    font-weight: 700 !important;
}

.form-control,
.form-select {
    border: 1px solid #c9d8e6 !important;
    border-radius: 10px !important;
    color: #15384e !important;
    background: #ffffff !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--inv-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(27, 132, 198, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--inv-primary) !important;
    --bs-btn-border-color: var(--inv-primary) !important;
    --bs-btn-hover-bg: var(--inv-primary-strong) !important;
    --bs-btn-hover-border-color: var(--inv-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--inv-success) !important;
    --bs-btn-border-color: var(--inv-success) !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--inv-danger) !important;
    --bs-btn-border-color: var(--inv-danger) !important;
}

/* Login */
.inventory-auth {
    min-height: 100vh !important;
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(39, 162, 230, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(27, 132, 198, 0.16), transparent 66%),
        linear-gradient(180deg, #edf4fc 0%, #e4edf8 100%) !important;
}

.inventory-auth .logo span {
    color: #114463 !important;
    font-weight: 800 !important;
}

.inventory-auth-card {
    border-radius: 16px !important;
    border: 1px solid #d1e1ee !important;
    box-shadow: 0 16px 30px rgba(12, 37, 53, 0.18) !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.inventory-auth .card-title {
    color: #114665 !important;
}

.inventory-auth a {
    color: var(--inv-primary) !important;
    font-weight: 600 !important;
}

.inventory-auth a:hover {
    color: var(--inv-primary-strong) !important;
}

/* Mobile */
@media (min-width: 1200px) {
    .inventory-header {
        min-height: 70px !important;
    }

    .inventory-sidebar {
        top: 70px !important;
        width: 292px !important;
    }

    #main.main,
    #footer.footer,
    .footer {
        margin-left: 292px !important;
    }

    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer.footer,
    body.toggle-sidebar .footer {
        margin-left: 0 !important;
    }

    body.toggle-sidebar .inventory-sidebar {
        left: -292px !important;
    }
}

@media (max-width: 1199px) {
    .inventory-header {
        min-height: 64px !important;
        padding: 0 12px !important;
    }

    .inventory-sidebar {
        top: 64px !important;
        left: -292px !important;
        width: 292px !important;
        max-width: calc(100vw - 24px) !important;
        border-radius: 0 14px 14px 0 !important;
        z-index: 1055 !important;
    }

    body.toggle-sidebar .inventory-sidebar {
        left: 0 !important;
    }

    body.toggle-sidebar {
        overflow: hidden !important;
    }

    body.toggle-sidebar::before {
        content: "" !important;
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(9, 29, 43, 0.52) !important;
        z-index: 1050 !important;
    }

    #main.main {
        margin-top: 70px !important;
        margin-left: 0 !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 14px !important;
    }

    #footer.footer,
    .footer {
        margin-left: 0 !important;
    }

    .inventory-header .inventory-search-bar {
        position: fixed !important;
        top: 66px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        background: rgba(11, 43, 62, 0.96) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        border-radius: 12px !important;
        padding: 10px !important;
        z-index: 1060 !important;
    }
}

@media (max-width: 991px) {
    .inventory-header .logo span,
    .inventory-header .inventory-header-nav .nav-profile span {
        display: none !important;
    }

    .inventory-header .inventory-header-nav .nav-profile {
        padding: 5px 8px !important;
    }

    .inventory-auth {
        padding: 20px 12px !important;
    }

    .inventory-auth-card {
        margin-bottom: 12px !important;
    }

    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

@media (max-width: 575px) {
    #main.main {
        padding: 12px 10px !important;
    }

    .pagetitle h1 {
        font-size: 20px !important;
    }

    .inventory-auth {
        min-height: 100dvh !important;
        padding: 14px 8px !important;
    }

    .inventory-auth-card .card-body {
        padding: 16px !important;
    }

    .modal-dialog {
        margin: 0.5rem !important;
    }

    .bootstrap-table .fixed-table-container,
    .bootstrap-table .fixed-table-body {
        overflow-x: auto !important;
    }
}

/* ==============================================================
   INVENTORY THEME - DIGITAL PROFESSIONAL (CSS ONLY FINAL LAYER)
============================================================== */
:root {
    --invx-bg: #eef3f9;
    --invx-bg-soft: #f7fafe;
    --invx-surface: #ffffff;
    --invx-border: #d7e2ee;
    --invx-text: #1c3040;
    --invx-text-soft: #657b8f;

    --invx-primary: #1c86c8;
    --invx-primary-strong: #146493;
    --invx-accent: #2da8ea;

    --invx-shell-1: #0d2838;
    --invx-shell-2: #11425d;
    --invx-shell-3: #1a6d98;

    --invx-success: #128261;
    --invx-danger: #c84a4a;

    --invx-shadow-sm: 0 8px 18px rgba(12, 36, 52, 0.1);
    --invx-shadow-md: 0 14px 30px rgba(12, 36, 52, 0.15);
}

html,
body {
    font-family: "Inter", "Work Sans", "Poppins", "Segoe UI", sans-serif !important;
    color: var(--invx-text) !important;
    background:
        radial-gradient(920px 360px at -5% -10%, rgba(45, 168, 234, 0.16), transparent 62%),
        radial-gradient(820px 340px at 105% -10%, rgba(28, 134, 200, 0.14), transparent 62%),
        var(--invx-bg) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.card-title,
.pagetitle h1 {
    font-family: "Montserrat", "Inter", sans-serif !important;
    color: #12394f !important;
}

#header.header,
.header {
    min-height: 68px !important;
    background: linear-gradient(115deg, var(--invx-shell-1) 0%, var(--invx-shell-2) 58%, var(--invx-shell-3) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(8, 27, 39, 0.3) !important;
}

#header .logo,
#header .logo span,
#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
#header .header-nav .nav-profile span,
#header .header-nav .nav-link,
#header .bi {
    color: #f0f8ff !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
.header .toggle-sidebar-btn,
.header-nav .nav-icon {
    width: 39px !important;
    height: 39px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.12) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover,
.header .toggle-sidebar-btn:hover,
.header-nav .nav-icon:hover {
    transform: translateY(-1px) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

#header .search-bar .search-form input,
.header .search-bar .search-form input {
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

#header .search-bar .search-form input::placeholder,
.header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .search-bar .search-form button i,
.header .search-bar .search-form button i {
    color: #ffffff !important;
}

#header .header-nav .nav-profile,
.header-nav .nav-profile {
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    padding: 6px 12px !important;
}

#header .header-nav .nav-profile img,
.header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.38) !important;
}

#header .header-nav .dropdown-menu,
.header-nav .dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--invx-border) !important;
    box-shadow: var(--invx-shadow-md) !important;
}

#header .header-nav .dropdown-menu .dropdown-item,
.header-nav .dropdown-menu .dropdown-item {
    border-radius: 8px !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
.header-nav .dropdown-menu .dropdown-item:hover {
    background: #edf5fc !important;
}

#sidebar.sidebar,
.sidebar {
    top: 68px !important;
    background:
        radial-gradient(560px 270px at -8% 0%, rgba(45, 168, 234, 0.18), transparent 66%),
        linear-gradient(185deg, #102d3f 0%, #12455f 62%, #155f82 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 10px 0 24px rgba(8, 23, 34, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(219, 241, 255, 0.84) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 700 !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    margin: 5px 10px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #f2f9ff !important;
    font-weight: 600 !important;
}

#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link i {
    color: #d8ecf9 !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    transform: translateX(2px) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--invx-primary) 0%, var(--invx-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: 0 9px 18px rgba(21, 111, 164, 0.34) !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    margin: 0 10px 8px !important;
    padding: 4px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.15) !important;
}

#sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a {
    color: #d8edf8 !important;
    border-radius: 8px !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

#main.main,
#main {
    margin-top: 74px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-radius: 16px 16px 0 0 !important;
}

#footer.footer,
.footer {
    background: #f0f5fa !important;
    border-top: 1px solid var(--invx-border) !important;
    color: #5d7488 !important;
}

.card,
.modal-content {
    border: 1px solid var(--invx-border) !important;
    border-radius: 14px !important;
    background: var(--invx-surface) !important;
    box-shadow: var(--invx-shadow-sm) !important;
}

.form-control,
.form-select {
    border: 1px solid #c8d8e7 !important;
    border-radius: 10px !important;
    color: #15384e !important;
    background: #ffffff !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--invx-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(28, 134, 200, 0.18) !important;
}

.btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--invx-primary) !important;
    --bs-btn-border-color: var(--invx-primary) !important;
    --bs-btn-hover-bg: var(--invx-primary-strong) !important;
    --bs-btn-hover-border-color: var(--invx-primary-strong) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--invx-success) !important;
    --bs-btn-border-color: var(--invx-success) !important;
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-bg: var(--invx-danger) !important;
    --bs-btn-border-color: var(--invx-danger) !important;
}

.section.register {
    min-height: 100vh !important;
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(45, 168, 234, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(28, 134, 200, 0.16), transparent 66%),
        linear-gradient(180deg, #edf4fc 0%, #e4edf8 100%) !important;
}

.section.register .card {
    border: 1px solid #d1e1ee !important;
    border-radius: 16px !important;
    box-shadow: 0 16px 30px rgba(12, 37, 53, 0.18) !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.section.register .card-title {
    color: #114665 !important;
}

.section.register a {
    color: var(--invx-primary) !important;
    font-weight: 600 !important;
}

.section.register a:hover {
    color: var(--invx-primary-strong) !important;
}

@media (min-width: 1200px) {
    #header.header,
    .header {
        min-height: 70px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 70px !important;
        width: 292px !important;
    }

    #main,
    #main.main,
    #footer,
    #footer.footer,
    .footer {
        margin-left: 292px !important;
    }

    body.toggle-sidebar #main,
    body.toggle-sidebar #main.main,
    body.toggle-sidebar #footer,
    body.toggle-sidebar #footer.footer,
    body.toggle-sidebar .footer {
        margin-left: 0 !important;
    }

    body.toggle-sidebar #sidebar.sidebar,
    body.toggle-sidebar .sidebar {
        left: -292px !important;
    }
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        min-height: 64px !important;
        padding: 0 12px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 64px !important;
        left: -292px !important;
        width: 292px !important;
        max-width: calc(100vw - 24px) !important;
        border-radius: 0 14px 14px 0 !important;
        z-index: 1055 !important;
    }

    body.toggle-sidebar #sidebar.sidebar,
    body.toggle-sidebar .sidebar {
        left: 0 !important;
    }

    body.toggle-sidebar {
        overflow: hidden !important;
    }

    body.toggle-sidebar::before {
        content: "" !important;
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(9, 29, 43, 0.52) !important;
        z-index: 1050 !important;
    }

    #main,
    #main.main {
        margin-top: 70px !important;
        margin-left: 0 !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 14px !important;
    }

    #footer,
    #footer.footer,
    .footer {
        margin-left: 0 !important;
    }

    #header .search-bar,
    .header .search-bar {
        position: fixed !important;
        top: 66px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        background: rgba(11, 43, 62, 0.96) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        border-radius: 12px !important;
        padding: 10px !important;
        z-index: 1060 !important;
    }
}

@media (max-width: 991px) {
    #header .logo span,
    .header-nav .nav-profile span {
        display: none !important;
    }

    .header-nav .nav-profile {
        padding: 5px 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

@media (max-width: 575px) {
    #main,
    #main.main {
        padding: 12px 10px !important;
    }

    .pagetitle h1 {
        font-size: 20px !important;
    }

    .section.register {
        min-height: 100dvh !important;
        padding: 14px 8px !important;
    }

    .section.register .card-body {
        padding: 16px !important;
    }

    .modal-dialog {
        margin: 0.5rem !important;
    }
}

/* ==============================================================
   INVENTORY THEME - PALETTE 1 "DEEP TECH"
============================================================== */
:root {
    --invx-bg: #e2e8f0 !important;
    --invx-bg-soft: #f1f5f9 !important;
    --invx-surface: #ffffff !important;
    --invx-border: #cbd5e1 !important;
    --invx-text: #0b1220 !important;
    --invx-text-soft: #334155 !important;

    --invx-primary: #2563eb !important;
    --invx-primary-strong: #1e3a8a !important;
    --invx-accent: #38bdf8 !important;

    --invx-shell-1: #0b1220 !important;
    --invx-shell-2: #1e3a8a !important;
    --invx-shell-3: #2563eb !important;
}

body {
    background:
        radial-gradient(920px 360px at -5% -10%, rgba(56, 189, 248, 0.16), transparent 62%),
        radial-gradient(820px 340px at 105% -10%, rgba(37, 99, 235, 0.14), transparent 62%),
        var(--invx-bg) !important;
}

#header.header,
.header {
    background: linear-gradient(115deg, var(--invx-shell-1) 0%, var(--invx-shell-2) 58%, var(--invx-shell-3) 100%) !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 270px at -8% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        linear-gradient(185deg, #0b1220 0%, #1e3a8a 62%, #2563eb 100%) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--invx-primary) 0%, var(--invx-accent) 100%) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--invx-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.18) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--invx-primary) !important;
    --bs-btn-border-color: var(--invx-primary) !important;
    --bs-btn-hover-bg: var(--invx-primary-strong) !important;
    --bs-btn-hover-border-color: var(--invx-primary-strong) !important;
}

.section.register {
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(37, 99, 235, 0.16), transparent 66%),
        linear-gradient(180deg, #e2e8f0 0%, #f1f5f9 100%) !important;
}

/* ==============================================================
   DEEP TECH - HARD LOCK NAVBAR + SIDEBAR (VISIBILIDAD TOTAL)
============================================================== */
#header.header,
.header {
    background: linear-gradient(110deg, #0b1220 0%, #1e3a8a 58%, #2563eb 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 28px rgba(7, 17, 38, 0.34) !important;
}

#header .logo span,
#header .logo i,
#header .toggle-sidebar-btn,
#header .toggle-sidebar-btn i,
#header .header-nav .nav-link,
#header .header-nav .nav-icon,
#header .header-nav .nav-icon i,
#header .header-nav .nav-profile span,
#header .header-nav .nav-profile i,
#header .header-nav .nav-profile .dropdown-toggle {
    color: #f8fbff !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 12px !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .search-bar .search-form button,
#header .search-bar .search-form button i {
    color: #ffffff !important;
}

#header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 14px !important;
}

#header .header-nav .nav-profile img {
    border: 2px solid rgba(255, 255, 255, 0.42) !important;
}

#header .header-nav .dropdown-menu,
#header .search-notify-dropdown .dropdown-menu {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.2) !important;
}

#header .header-nav .dropdown-menu .dropdown-header,
#header .header-nav .dropdown-menu .dropdown-item,
#header .header-nav .dropdown-menu .dropdown-item i,
#header .search-notify-dropdown .dropdown-menu .dropdown-header,
#header .search-notify-dropdown .dropdown-menu .notification-item,
#header .search-notify-dropdown .dropdown-menu .notification-item a,
#header .search-notify-dropdown .dropdown-menu .notification-item span,
#header .search-notify-dropdown .dropdown-menu .notification-item strong {
    color: #0f172a !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
#header .search-notify-dropdown .dropdown-menu .notification-item:hover {
    background: #e0f2fe !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(56, 189, 248, 0.18), transparent 66%),
        linear-gradient(185deg, #0b1220 0%, #1e3a8a 62%, #2563eb 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 10px 0 24px rgba(5, 14, 32, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(233, 245, 255, 0.88) !important;
}

#sidebar .sidebar-nav .nav-link,
#sidebar .sidebar-nav .nav-link span,
#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link span,
.sidebar .sidebar-nav .nav-link i {
    color: #eff8ff !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, #2563eb 0%, #38bdf8 100%) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-link.active span,
#sidebar .sidebar-nav .nav-link.active i,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) span,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i,
.sidebar .sidebar-nav .nav-link.active span,
.sidebar .sidebar-nav .nav-link.active i,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) span,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) i {
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: 10px !important;
}

#sidebar .sidebar-nav .nav-content a,
#sidebar .sidebar-nav .nav-content a span,
#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a span,
.sidebar .sidebar-nav .nav-content a i {
    color: #def0ff !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
}

@media (max-width: 1199px) {
    #header.header,
    .header {
        min-height: 64px !important;
    }

    #sidebar.sidebar,
    .sidebar {
        top: 64px !important;
    }
}

/* ==============================================================
   INVENTORY ELEGANT THEME - FINAL LAYER
============================================================== */
:root {
    --eleg-bg: #edf2f7 !important;
    --eleg-surface: #ffffff !important;
    --eleg-border: #d2dde8 !important;
    --eleg-text: #1f2f3f !important;
    --eleg-text-soft: #5f7387 !important;

    --eleg-primary: #2f5d8a !important;
    --eleg-primary-dark: #254a6d !important;
    --eleg-accent: #2fa58d !important;
    --eleg-accent-soft: #d8f1ea !important;

    --eleg-shell-1: #1a2433 !important;
    --eleg-shell-2: #24364b !important;
    --eleg-shell-3: #2f5d8a !important;
}

body {
    font-family: "Inter", "Work Sans", "Segoe UI", sans-serif !important;
    color: var(--eleg-text) !important;
    background:
        radial-gradient(900px 360px at -6% -14%, rgba(47, 165, 141, 0.13), transparent 62%),
        radial-gradient(860px 340px at 106% -14%, rgba(47, 93, 138, 0.15), transparent 62%),
        var(--eleg-bg) !important;
}

h1, h2, h3, h4, h5, h6, .card-title, .pagetitle h1 {
    color: #1a334a !important;
}

#header.header,
.header {
    background: linear-gradient(108deg, var(--eleg-shell-1) 0%, var(--eleg-shell-2) 56%, var(--eleg-shell-3) 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 14px 30px rgba(18, 30, 46, 0.34) !important;
}

#header .logo span,
#header .toggle-sidebar-btn,
#header .header-nav .nav-icon,
#header .header-nav .nav-profile span,
#header .header-nav .nav-profile i,
#header .header-nav .nav-link,
#header .bi {
    color: #f5f9fd !important;
}

#header .toggle-sidebar-btn,
#header .header-nav .nav-icon {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 12px !important;
}

#header .toggle-sidebar-btn:hover,
#header .header-nav .nav-icon:hover {
    background: rgba(255, 255, 255, 0.2) !important;
}

#header .search-bar .search-form input {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.33) !important;
    color: #ffffff !important;
}

#header .search-bar .search-form input::placeholder {
    color: rgba(255, 255, 255, 0.86) !important;
}

#header .header-nav .nav-profile {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 14px !important;
}

#header .header-nav .dropdown-menu,
#header .search-notify-dropdown .dropdown-menu {
    background: #ffffff !important;
    border: 1px solid var(--eleg-border) !important;
    box-shadow: 0 14px 30px rgba(16, 30, 46, 0.2) !important;
}

#header .header-nav .dropdown-menu .dropdown-item:hover,
#header .search-notify-dropdown .dropdown-menu .notification-item:hover {
    background: #edf5fa !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(47, 165, 141, 0.18), transparent 66%),
        linear-gradient(184deg, #1a2433 0%, #24364b 60%, #2f5d8a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 10px 0 24px rgba(11, 24, 38, 0.34) !important;
}

#sidebar .sidebar-nav .nav-heading,
.sidebar .sidebar-nav .nav-heading {
    color: rgba(233, 244, 252, 0.86) !important;
}

#sidebar .sidebar-nav .nav-link,
#sidebar .sidebar-nav .nav-link span,
#sidebar .sidebar-nav .nav-link i,
.sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link span,
.sidebar .sidebar-nav .nav-link i {
    color: #edf6fd !important;
}

#sidebar .sidebar-nav .nav-link,
.sidebar .sidebar-nav .nav-link {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
    border-radius: 12px !important;
}

#sidebar .sidebar-nav .nav-link:hover,
.sidebar .sidebar-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, var(--eleg-primary) 0%, var(--eleg-accent) 100%) !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    color: #ffffff !important;
}

#sidebar .sidebar-nav .nav-content,
.sidebar .sidebar-nav .nav-content {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: 10px !important;
}

#sidebar .sidebar-nav .nav-content a,
#sidebar .sidebar-nav .nav-content a span,
#sidebar .sidebar-nav .nav-content a i,
.sidebar .sidebar-nav .nav-content a,
.sidebar .sidebar-nav .nav-content a span,
.sidebar .sidebar-nav .nav-content a i {
    color: #dff0fb !important;
}

#sidebar .sidebar-nav .nav-content a:hover,
#sidebar .sidebar-nav .nav-content a.active,
.sidebar .sidebar-nav .nav-content a:hover,
.sidebar .sidebar-nav .nav-content a.active {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
}

#main.main,
#main {
    background: rgba(255, 255, 255, 0.96) !important;
}

.card,
.modal-content {
    border: 1px solid var(--eleg-border) !important;
    border-radius: 14px !important;
    background: var(--eleg-surface) !important;
    box-shadow: 0 10px 22px rgba(18, 36, 54, 0.1) !important;
}

.form-control,
.form-select {
    border: 1px solid #c7d6e4 !important;
    border-radius: 10px !important;
    color: #1f3448 !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--eleg-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(47, 93, 138, 0.18) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: var(--eleg-primary) !important;
    --bs-btn-border-color: var(--eleg-primary) !important;
    --bs-btn-hover-bg: var(--eleg-primary-dark) !important;
    --bs-btn-hover-border-color: var(--eleg-primary-dark) !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: var(--eleg-accent) !important;
    --bs-btn-border-color: var(--eleg-accent) !important;
}

.section.register {
    background:
        radial-gradient(640px 320px at 0% 0%, rgba(47, 165, 141, 0.15), transparent 66%),
        radial-gradient(640px 320px at 100% 0%, rgba(47, 93, 138, 0.16), transparent 66%),
        linear-gradient(180deg, #eef3f8 0%, #e6edf5 100%) !important;
}

/* ==============================================================
   INVENTORY ELEGANT IMPACT - HARD LOCK FINAL
============================================================== */
:root {
    --elegx-shell-1: #141e2c !important;
    --elegx-shell-2: #23354b !important;
    --elegx-shell-3: #2f5d8a !important;
    --elegx-accent: #2fa58d !important;
    --elegx-accent-2: #38b2a0 !important;
    --elegx-border: #d2dde8 !important;
    --elegx-text: #1f3042 !important;
}

#header.header,
.header {
    background: linear-gradient(110deg, var(--elegx-shell-1) 0%, var(--elegx-shell-2) 55%, var(--elegx-shell-3) 100%) !important;
    box-shadow: 0 16px 32px rgba(11, 22, 35, 0.34) !important;
}

#sidebar.sidebar,
.sidebar {
    background:
        radial-gradient(560px 280px at -8% 0%, rgba(56, 178, 160, 0.22), transparent 66%),
        linear-gradient(184deg, #172130 0%, #23354b 60%, #2f5d8a 100%) !important;
}

#sidebar .sidebar-nav .nav-link.active,
#sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
.sidebar .sidebar-nav .nav-link.active,
.sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    background: linear-gradient(90deg, #2f5d8a 0%, #2fa58d 100%) !important;
    box-shadow: 0 10px 20px rgba(35, 84, 122, 0.35) !important;
}

#main.main,
#main {
    background: rgba(255, 255, 255, 0.97) !important;
}

.card,
.modal-content,
.dropdown-menu {
    border: 1px solid var(--elegx-border) !important;
    box-shadow: 0 12px 24px rgba(18, 36, 54, 0.12) !important;
}

.bg-primary {
    background: linear-gradient(110deg, #2f5d8a, #3b78ad) !important;
}

.bg-success {
    background: linear-gradient(110deg, #2fa58d, #3ab69f) !important;
}

.bg-danger {
    background: linear-gradient(110deg, #b85c6a, #d37684) !important;
}

.bg-warning {
    background: linear-gradient(110deg, #b28749, #caa05e) !important;
}

.card-footer.bg-primary,
.card-footer.bg-success,
.card-footer.bg-danger,
.card-footer.bg-warning {
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.btn-primary,
.btn-outline-primary {
    --bs-btn-bg: #2f5d8a !important;
    --bs-btn-border-color: #2f5d8a !important;
    --bs-btn-hover-bg: #254a6d !important;
    --bs-btn-hover-border-color: #254a6d !important;
}

.btn-success,
.btn-outline-success {
    --bs-btn-bg: #2fa58d !important;
    --bs-btn-border-color: #2fa58d !important;
    --bs-btn-hover-bg: #268875 !important;
    --bs-btn-hover-border-color: #268875 !important;
}

a,
.text-primary {
    color: #2f5d8a !important;
}

a:hover {
    color: #254a6d !important;
}

.badge.bg-danger {
    background: #b85c6a !important;
}

.badge.bg-success {
    background: #2fa58d !important;
}

/* ============================================================== 
   INVENTORY NEO - INNOVADOR HARD LOCK V2 (GLOBAL FINAL)
============================================================== */
:root {
    --neo-bg: #0f1722 !important;
    --neo-surface: #f8fbff !important;
    --neo-border: #c8d8e8 !important;
    --neo-text: #112235 !important;
    --neo-cyan: #00b8d9 !important;
    --neo-blue: #2563eb !important;
    --neo-indigo: #4f46e5 !important;
    --neo-lime: #14b8a6 !important;
}

body {
    background:
        radial-gradient(900px 360px at -8% -10%, rgba(0, 184, 217, 0.2), transparent 64%),
        radial-gradient(820px 340px at 108% -10%, rgba(79, 70, 229, 0.18), transparent 64%),
        #edf3fb !important;
    color: var(--neo-text) !important;
}

body #header.header,
body .header {
    min-height: 70px !important;
    background:
        radial-gradient(520px 220px at 0% 0%, rgba(0, 184, 217, 0.28), transparent 66%),
        linear-gradient(108deg, #0c1420 0%, #142136 42%, #1d2f4f 70%, #2b3f68 100%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.26) !important;
    box-shadow: 0 16px 34px rgba(6, 14, 28, 0.46) !important;
}

body #header .logo span,
body #header .toggle-sidebar-btn,
body #header .header-nav .nav-link,
body #header .header-nav .nav-icon,
body #header .header-nav .nav-profile span,
body #header .header-nav .nav-profile i,
body #header .bi {
    color: #f4fbff !important;
}

body #header .toggle-sidebar-btn,
body #header .header-nav .nav-icon {
    width: 40px !important;
    height: 40px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.38) !important;
    background: rgba(255, 255, 255, 0.14) !important;
}

body #header .toggle-sidebar-btn:hover,
body #header .header-nav .nav-icon:hover {
    background: rgba(0, 184, 217, 0.32) !important;
    border-color: rgba(0, 184, 217, 0.75) !important;
}

body #sidebar.sidebar,
body .sidebar {
    background:
        radial-gradient(540px 260px at -10% 0%, rgba(0, 184, 217, 0.24), transparent 66%),
        linear-gradient(186deg, #0d1624 0%, #15253b 58%, #22385a 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 12px 0 28px rgba(6, 14, 26, 0.42) !important;
}

body #sidebar .sidebar-nav .nav-heading,
body .sidebar .sidebar-nav .nav-heading {
    color: rgba(221, 242, 253, 0.92) !important;
    letter-spacing: 0.08em !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

body #sidebar .sidebar-nav .nav-link,
body #sidebar .sidebar-nav .nav-link span,
body #sidebar .sidebar-nav .nav-link i,
body .sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link span,
body .sidebar .sidebar-nav .nav-link i {
    color: #eff9ff !important;
}

body #sidebar .sidebar-nav .nav-link,
body .sidebar .sidebar-nav .nav-link {
    margin: 6px 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.06)) !important;
}

body #sidebar .sidebar-nav .nav-link:hover,
body .sidebar .sidebar-nav .nav-link:hover {
    border-color: rgba(0, 184, 217, 0.55) !important;
    background: linear-gradient(90deg, rgba(0, 184, 217, 0.24), rgba(79, 70, 229, 0.2)) !important;
}

body #sidebar .sidebar-nav .nav-link.active,
body #sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed),
body .sidebar .sidebar-nav .nav-link.active,
body .sidebar .sidebar-nav .nav-link[data-bs-toggle="collapse"]:not(.collapsed) {
    color: #ffffff !important;
    border-color: rgba(0, 184, 217, 0.7) !important;
    background: linear-gradient(90deg, #00b8d9 0%, #2563eb 52%, #4f46e5 100%) !important;
    box-shadow: 0 10px 20px rgba(14, 63, 116, 0.42) !important;
}

body #sidebar .sidebar-nav .nav-content,
body .sidebar .sidebar-nav .nav-content {
    margin: 0 10px 10px !important;
    border-radius: 12px !important;
    background: rgba(0, 0, 0, 0.2) !important;
}

body #sidebar .sidebar-nav .nav-content a,
body #sidebar .sidebar-nav .nav-content a i,
body .sidebar .sidebar-nav .nav-content a,
body .sidebar .sidebar-nav .nav-content a i {
    color: #d9f0ff !important;
}

body #sidebar .sidebar-nav .nav-content a:hover,
body #sidebar .sidebar-nav .nav-content a.active,
body .sidebar .sidebar-nav .nav-content a:hover,
body .sidebar .sidebar-nav .nav-content a.active {
    color: #ffffff !important;
    background: rgba(0, 184, 217, 0.24) !important;
}

body #main.main,
body #main {
    margin-top: 76px !important;
    background: rgba(255, 255, 255, 0.97) !important;
    border-radius: 18px 18px 0 0 !important;
}

body .card,
body .modal-content,
body .dropdown-menu {
    border: 1px solid #d1dfec !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 24px rgba(16, 35, 52, 0.12) !important;
}

body .bg-primary {
    background: linear-gradient(112deg, #2563eb, #4f46e5) !important;
}

body .bg-success {
    background: linear-gradient(112deg, #14b8a6, #2fa58d) !important;
}

body .bg-danger {
    background: linear-gradient(112deg, #e35d7b, #c33d64) !important;
}

body .bg-warning {
    background: linear-gradient(112deg, #f5b642, #d89a2e) !important;
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/tables.css ***!
  \*****************************************************************************************************************/
/* Estilos generales para la tabla */
.estilos_generales {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    display: block;
    margin: auto;
    border-collapse: collapse;
    font-family: 'Roboto', Arial, sans-serif;
    background: #f9fbfc;
    color: #003E51;
    border: 1px solid #c9e7f0;
    border-radius: 8px;
}

.estilos_generales th {
    font-size: 15px;
    font-weight: bold;
    padding: 12px 13px;
    background: #e2f4f9;
    color: #004b60;
    border-bottom: 1px solid #c0e0ea;
    text-align: left;
    white-space: nowrap;
}

.estilos_generales td {
    padding: 8px;
    font-size: 13px;
    background: #ffffff;
    color: #003E51;
    border-bottom: 1px solid #f0f0f0;
    white-space: nowrap;
}

.estilos_generales tbody tr:hover {
    background-color: #f0fbff;
}


/* Scroll para el toolbar */
[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 8px;
    padding: 6px 0;
    max-width: 100%;
    scrollbar-width: thin;
    scrollbar-color: #ccc transparent;
    white-space: nowrap;
}

[id^="toolbar_"] > * {
    flex: 0 0 auto; /* evita que se expandan */
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 6px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}


/* Para pantallas pequeÃ±as */
@media (max-width: 767px) {
    [id^="toolbar_"] {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        width: 100%;
    }

    [id^="toolbar_"] button {
        flex: 0 0 auto;
        font-size: 14px;
    }

    .estilos_generales {
        overflow-x: auto;
        display: block;
        width: 100%;
    }

    .estilos_generales th,
    .estilos_generales td {
        white-space: nowrap;
    }
}


/* Botones generales personalizados */

/* Estilo comÃºn para todos los botones */

/* Hover de botones */

/* Botones deshabilitados */

/* BotÃ³n peligro */

/* BotÃ³n Ã©xito */

/* BotÃ³n advertencia */

/* BotÃ³n secundario */

/* --------------------------------------------------------------
   Ajuste visual profesional (sin cambiar clases)
-------------------------------------------------------------- */
.estilos_generales {
    background: #f8fafc;
    color: #2b3f55;
    border-color: #d4dee9;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.estilos_generales th {
    background: #edf3f9;
    color: #31495f;
    border-bottom-color: #d4dee9;
}

.estilos_generales td {
    color: #2b3f55;
    border-bottom-color: #e8eef5;
}

.estilos_generales tbody tr:nth-child(even) td {
    background: #f9fcff;
}

.estilos_generales tbody tr:hover td {
    background-color: #edf4fb;
}

[id^="toolbar_"] {
    scrollbar-color: #b9c7d6 transparent;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #b9c7d6;
}


/* --------------------------------------------------------------
   Final Override - Full Width + Pleasant Table Layout
   (Mantiene clases existentes)
-------------------------------------------------------------- */
table.estilos_generales {
    width: 100% !important;
    max-width: 100% !important;
    display: table !important;
    margin: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    border-radius: 6px !important;
    border-color: #d4deea !important;
    box-shadow: 0 8px 18px rgba(30, 41, 59, 0.08) !important;
}

.bootstrap-table .table thead th {
    background: #edf3f9 !important;
    color: #334c64 !important;
    border-bottom: 1px solid #d4deea !important;
    text-align: center !important;
}

.bootstrap-table .table tbody td {
    color: #2f455d !important;
    text-align: center !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td {
    background: #f8fbff !important;
}

.bootstrap-table .table tbody tr:hover td {
    background: #edf4fb !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f6f9fd !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: #3f5f80 !important;
    border-color: #3f5f80 !important;
}

/* --------------------------------------------------------------
   Final Professional Tables (sin cambiar clases existentes)
-------------------------------------------------------------- */
:root {
    --tbl-surface: #f6fafd;
    --tbl-head-bg: #e5eef6;
    --tbl-head-text: #000000;
    --tbl-cell-text: #000000;
    --tbl-line: #cfe0ec;
    --tbl-row-alt: #fafdff;
    --tbl-row-hover: #edf5fb;
    --tbl-page-active: #4f87ad;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    background: #ffffff !important;
    border: 1px solid var(--tbl-line) !important;
    border-radius: 3px !important;
    box-shadow: 0 8px 16px rgba(29, 63, 90, 0.1) !important;
}

.estilos_generales {
    background: var(--tbl-surface) !important;
    border-color: var(--tbl-line) !important;
    border-radius: 3px !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tbl-head-bg) !important;
    color: var(--tbl-head-text) !important;
    border-bottom: 1px solid var(--tbl-line) !important;
    font-weight: 700 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tbl-cell-text) !important;
    border-bottom: 1px solid #e5ebf3 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tbl-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tbl-row-hover) !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f2f8fd !important;
    border-top: 1px solid #d5e5f1 !important;
}

.bootstrap-table .fixed-table-pagination .page-link {
    color: #000000 !important;
    border-color: #ccdeeb !important;
    border-radius: 2px !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tbl-page-active) !important;
    border-color: var(--tbl-page-active) !important;
    color: #fff !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    background: #e7f1f9 !important;
    color: #000000 !important;
}

/* --------------------------------------------------------------
   ENTERPRISE SKY TABLES FINAL END LAYER
-------------------------------------------------------------- */
:root {
    --tbl-surface: #f5fafe;
    --tbl-head-bg: #dcecf8;
    --tbl-head-text: #000000;
    --tbl-cell-text: #000000;
    --tbl-line: #c8dced;
    --tbl-row-alt: #fbfdff;
    --tbl-row-hover: #eaf4fc;
    --tbl-page-active: #3380b6;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    background: #ffffff !important;
    border: 1px solid var(--tbl-line) !important;
    border-radius: 3px !important;
    box-shadow: 0 6px 14px rgba(21, 59, 89, 0.1) !important;
}

.estilos_generales {
    background: var(--tbl-surface) !important;
    border-color: var(--tbl-line) !important;
    border-radius: 3px !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tbl-head-bg) !important;
    color: var(--tbl-head-text) !important;
    border-bottom: 1px solid var(--tbl-line) !important;
    font-weight: 700 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tbl-cell-text) !important;
    border-bottom: 1px solid #deebf5 !important;
    text-align: left !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tbl-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tbl-row-hover) !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f1f8fe !important;
    border-top: 1px solid #d2e4f2 !important;
}

.bootstrap-table .fixed-table-pagination .page-link {
    color: #000000 !important;
    border-color: #c8dced !important;
    border-radius: 2px !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    background: #e6f2fb !important;
    color: #000000 !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tbl-page-active) !important;
    border-color: var(--tbl-page-active) !important;
    color: #ffffff !important;
}

/* Botones de tablas y toolbar en línea profesional */
[id^="toolbar_"] .btn,
[id^="toolbar_"] .btn-custom,
[id^="toolbar_"] .btn-custom-text,
.bootstrap-table .fixed-table-toolbar .btn,
table.estilos_generales .btn {
    border-radius: 3px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-width: 1px !important;
}

[id^="toolbar_"] .btn.btn-primary,
[id^="toolbar_"] .btn-custom,
[id^="toolbar_"] .btn-custom-text,
.bootstrap-table .fixed-table-toolbar .btn.btn-primary,
table.estilos_generales .btn.btn-primary {
    background: #0f82cd !important;
    border-color: #0f82cd !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-primary:hover,
[id^="toolbar_"] .btn-custom:hover,
[id^="toolbar_"] .btn-custom-text:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-primary:hover,
table.estilos_generales .btn.btn-primary:hover {
    background: #0d70b0 !important;
    border-color: #0d70b0 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-secondary,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary,
table.estilos_generales .btn.btn-secondary {
    background: #2f78ab !important;
    border-color: #2f78ab !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-secondary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary:hover,
table.estilos_generales .btn.btn-secondary:hover {
    background: #286a97 !important;
    border-color: #286a97 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-success,
.bootstrap-table .fixed-table-toolbar .btn.btn-success,
table.estilos_generales .btn.btn-success {
    background: #0a9772 !important;
    border-color: #0a9772 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-success:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-success:hover,
table.estilos_generales .btn.btn-success:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-warning,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning,
table.estilos_generales .btn.btn-warning {
    background: #ab7624 !important;
    border-color: #ab7624 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-warning:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning:hover,
table.estilos_generales .btn.btn-warning:hover {
    background: #92651f !important;
    border-color: #92651f !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-danger,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger,
table.estilos_generales .btn.btn-danger {
    background: #b54545 !important;
    border-color: #b54545 !important;
    color: #ffffff !important;
}

[id^="toolbar_"] .btn.btn-danger:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger:hover,
table.estilos_generales .btn.btn-danger:hover {
    background: #9b3b3b !important;
    border-color: #9b3b3b !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   TOOLBAR BUTTONS (utilMax) - FINAL por ID
-------------------------------------------------------------- */
#btn_nuevo,
#btn_remove_all,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel {
    border-radius: 2px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-width: 1px !important;
    color: #ffffff !important;
}

#btn_nuevo {
    background: #0f82cd !important;
    border-color: #0f82cd !important;
}

#btn_nuevo:hover {
    background: #0d70b0 !important;
    border-color: #0d70b0 !important;
}

#btn_remove_all {
    background: #c54545 !important;
    border-color: #c54545 !important;
}

#btn_remove_all:hover {
    background: #a93a3a !important;
    border-color: #a93a3a !important;
}

#btn_estado_all {
    background: #1e9ad8 !important;
    border-color: #1e9ad8 !important;
}

#btn_estado_all:hover {
    background: #1a86bc !important;
    border-color: #1a86bc !important;
}

#btn_carga_masiva {
    background: #0a9772 !important;
    border-color: #0a9772 !important;
}

#btn_carga_masiva:hover {
    background: #087f61 !important;
    border-color: #087f61 !important;
}

#btn_descargar_excel {
    background: #148a53 !important;
    border-color: #148a53 !important;
}

#btn_descargar_excel:hover {
    background: #117647 !important;
    border-color: #117647 !important;
}

/* --------------------------------------------------------------
   TABLE TOOLBAR PRO CONTROLS (refresh / columns / search)
   Capa final enfocada en controles de Bootstrap Table
-------------------------------------------------------------- */
.bootstrap-table .fixed-table-toolbar {
    padding: 10px 0 8px !important;
}

.bootstrap-table .fixed-table-toolbar .btn-group,
.bootstrap-table .fixed-table-toolbar .columns,
.bootstrap-table .fixed-table-toolbar .search {
    margin-bottom: 6px !important;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn {
    border-radius: 8px !important;
    border: 1px solid #c7d8e7 !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%) !important;
    color: #1d425c !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 6px 12px !important;
    box-shadow: 0 2px 6px rgba(18, 47, 68, 0.1) !important;
}

.bootstrap-table .fixed-table-toolbar .btn.btn-primary,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary,
.bootstrap-table .fixed-table-toolbar .btn.btn-success,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger {
    border: 1px solid #c7d8e7 !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%) !important;
    color: #1d425c !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover {
    background: linear-gradient(180deg, #f8fcff 0%, #e3eef8 100%) !important;
    border-color: #9fc1dc !important;
    color: #16364c !important;
}

.bootstrap-table .fixed-table-toolbar .btn.btn-primary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-secondary:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-success:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-warning:hover,
.bootstrap-table .fixed-table-toolbar .btn.btn-danger:hover {
    background: linear-gradient(180deg, #f8fcff 0%, #e3eef8 100%) !important;
    border-color: #9fc1dc !important;
    color: #16364c !important;
}

.bootstrap-table .fixed-table-toolbar .btn:focus,
.bootstrap-table .fixed-table-toolbar .columns .btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(22, 111, 168, 0.2) !important;
}

.bootstrap-table .fixed-table-toolbar .search input.form-control,
.bootstrap-table .fixed-table-toolbar .search input[type="search"] {
    height: 36px !important;
    border-radius: 8px !important;
    border: 1px solid #c7d8e7 !important;
    background: #ffffff !important;
    color: #1d425c !important;
    font-size: 13px !important;
    padding: 6px 10px !important;
}

.bootstrap-table .fixed-table-toolbar .search input::placeholder {
    color: #6f8799 !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu {
    border-radius: 10px !important;
    border: 1px solid #c8dced !important;
    box-shadow: 0 12px 22px rgba(14, 44, 64, 0.14) !important;
    padding: 8px !important;
    min-width: 240px !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu label,
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu .dropdown-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #1f3f57 !important;
    border-radius: 6px !important;
    padding: 6px 8px !important;
}

.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu label:hover,
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu .dropdown-item:hover {
    background: #edf5fb !important;
}

.bootstrap-table .fixed-table-toolbar .columns input[type="checkbox"] {
    width: 15px !important;
    height: 15px !important;
    accent-color: #1f87c7 !important;
}

.bootstrap-table .fixed-table-pagination .pagination-info,
.bootstrap-table .fixed-table-pagination .page-list {
    font-size: 13px !important;
    color: #2a4a63 !important;
    font-weight: 600 !important;
}

/* --------------------------------------------------------------
   UNIFORM COLOR + UNDERSTANDABLE CONTROLS (LAST LAYER)
-------------------------------------------------------------- */
:root {
    --tb-brand: #1f87c7;
    --tb-brand-hover: #166fa5;
    --tb-surface: #f3f9ff;
    --tb-border: #bcd4e6;
    --tb-text: #16384e;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    border-radius: 10px !important;
    border: 1px solid var(--tb-border) !important;
    background: var(--tb-surface) !important;
    color: var(--tb-text) !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    padding: 7px 12px !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    border-color: var(--tb-brand) !important;
    background: #e8f3fb !important;
    color: #0f2e40 !important;
}

.bootstrap-table .fixed-table-toolbar .btn:focus,
[id^="toolbar_"] .btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(31, 135, 199, 0.2) !important;
}

/* Mantener botones de acciones internas (CRUD) con color claro y uniforme */
#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro,
#btn_pdf_completo,
#btn_pdf_filtro {
    color: #ffffff !important;
}

/* Botones de bootstrap-table (refresh/columns/export) con color uniforme */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="paginationSwitch"],
.bootstrap-table .fixed-table-toolbar button[name="toggle"],
.bootstrap-table .fixed-table-toolbar button[name="fullscreen"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tb-brand) !important;
    border-color: var(--tb-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="paginationSwitch"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="toggle"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="fullscreen"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tb-brand-hover) !important;
    border-color: var(--tb-brand-hover) !important;
    color: #ffffff !important;
}

/* Hacer controles más entendibles: texto visible en botones de icono */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]::after {
    content: "Refrescar";
}

.bootstrap-table .fixed-table-toolbar button[name="columns"]::after {
    content: "Columnas";
}

.bootstrap-table .fixed-table-toolbar button[name="export"]::after {
    content: "Exportar";
}

/* Barra de búsqueda más legible y pareja */
.bootstrap-table .fixed-table-toolbar .search input.form-control,
.bootstrap-table .fixed-table-toolbar .search input[type="search"] {
    border-radius: 10px !important;
    border: 1px solid var(--tb-border) !important;
    background: #ffffff !important;
    color: #1b3d53 !important;
    height: 38px !important;
}

.bootstrap-table .fixed-table-toolbar .search input::placeholder {
    color: #6c8496 !important;
    font-weight: 600 !important;
}

/* Paginación con color uniforme */
.bootstrap-table .fixed-table-pagination .page-link {
    border-radius: 8px !important;
    border-color: var(--tb-border) !important;
    color: #204963 !important;
    background: #ffffff !important;
}

.bootstrap-table .fixed-table-pagination .page-link:hover {
    border-color: var(--tb-brand) !important;
    color: #0f2e40 !important;
    background: #ecf6fd !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tb-brand) !important;
    border-color: var(--tb-brand) !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------
   BUTTON SIZE NORMALIZER (all same size)
-------------------------------------------------------------- */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    vertical-align: middle !important;
}

/* Botones de controles de bootstrap-table con ancho consistente */
.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    min-width: 118px !important;
}

/* Botones CRUD del toolbar con mismo alto/ancho visual */
#btn_nuevo,
#btn_remove_all,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_pdf_completo,
#btn_excel_completo,
#btn_pdf_filtro,
#btn_excel_filtro {
    min-width: 120px !important;
}

/* Íconos con tamaño uniforme */
.bootstrap-table .fixed-table-toolbar .btn i,
[id^="toolbar_"] .btn i,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .ri {
    font-size: 13px !important;
    line-height: 1 !important;
}

@media (max-width: 767px) {
    .bootstrap-table .fixed-table-toolbar button[name="refresh"],
    .bootstrap-table .fixed-table-toolbar button[name="columns"],
    .bootstrap-table .fixed-table-toolbar button[name="export"],
    #btn_nuevo,
    #btn_remove_all,
    #btn_estado_all,
    #btn_carga_masiva,
    #btn_descargar_excel,
    #btn_pdf_completo,
    #btn_excel_completo,
    #btn_pdf_filtro,
    #btn_excel_filtro {
        min-width: auto !important;
    }
}

/* ==============================================================
   INVENTORY TABLES - DIGITAL PROFESSIONAL FINAL LAYER
============================================================== */
:root {
    --tblx-bg: #f7fbff;
    --tblx-surface: #ffffff;
    --tblx-border: #cfdeec;
    --tblx-head-bg: #e9f2fb;
    --tblx-head-text: #133c54;
    --tblx-text: #213d51;
    --tblx-row-alt: #fbfdff;
    --tblx-row-hover: #edf5fc;
    --tblx-brand: #1c86c8;
    --tblx-brand-hover: #146493;
    --tblx-success: #128261;
    --tblx-danger: #c84a4a;
}

table.estilos_generales,
.bootstrap-table .table.estilos_generales,
.bootstrap-table .table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
    color: var(--tblx-text) !important;
}

.bootstrap-table,
.bootstrap-table .fixed-table-container,
.bootstrap-table .fixed-table-body {
    width: 100% !important;
    max-width: 100% !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    border-radius: 10px !important;
    background: var(--tblx-surface) !important;
    box-shadow: 0 8px 20px rgba(13, 38, 56, 0.11) !important;
}

.estilos_generales,
.bootstrap-table .table {
    background: var(--tblx-bg) !important;
}

.estilos_generales th,
.bootstrap-table .table thead th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
    border-bottom: 1px solid var(--tblx-border) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

.estilos_generales td,
.bootstrap-table .table tbody td {
    color: var(--tblx-text) !important;
    border-bottom: 1px solid #e4edf6 !important;
    font-size: 13px !important;
    vertical-align: middle !important;
}

.estilos_generales tbody tr:nth-child(even) td,
.bootstrap-table .table tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.estilos_generales tbody tr:hover td,
.bootstrap-table .table tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

[id^="toolbar_"] {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 8px 0;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: thin;
    scrollbar-color: #b7ccdd transparent;
}

[id^="toolbar_"] > * {
    flex: 0 0 auto;
}

[id^="toolbar_"]::-webkit-scrollbar {
    height: 7px;
}

[id^="toolbar_"]::-webkit-scrollbar-thumb {
    background: #b7ccdd;
    border-radius: 8px;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    height: 38px !important;
    min-height: 38px !important;
    border-radius: 10px !important;
    border: 1px solid var(--tblx-border) !important;
    background: #ffffff !important;
    color: var(--tblx-text) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    box-shadow: 0 3px 10px rgba(12, 36, 52, 0.08) !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    background: #eef6fd !important;
    border-color: #aac4d8 !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

/* ==============================================================
   INVENTORY TABLES - ELEGANT FINAL LAYER
============================================================== */
:root {
    --tblx-bg: #f6f9fc !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #d2dde8 !important;
    --tblx-head-bg: #e8eef5 !important;
    --tblx-head-text: #1a334a !important;
    --tblx-text: #273d52 !important;
    --tblx-row-alt: #fbfdff !important;
    --tblx-row-hover: #edf5fa !important;
    --tblx-brand: #2f5d8a !important;
    --tblx-brand-hover: #254a6d !important;
    --tblx-success: #2fa58d !important;
    --tblx-danger: #bd5b5b !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    border-radius: 10px !important;
    background: var(--tblx-surface) !important;
    box-shadow: 0 8px 18px rgba(17, 35, 52, 0.1) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
    border-bottom: 1px solid var(--tblx-border) !important;
}

.bootstrap-table .table tbody td,
.estilos_generales td {
    color: var(--tblx-text) !important;
    border-bottom: 1px solid #e4ecf4 !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td,
.estilos_generales tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

/* ==============================================================
   TABLE BUTTONS - HARD LOCK FINAL END
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #143a53 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary,
.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger,
.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
}

/* ==============================================================
   TABLE BUTTONS - LEGIBILIDAD Y UNIFORMIDAD FINAL
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #16384e !important;
}

.bootstrap-table .fixed-table-toolbar .btn i,
.bootstrap-table .fixed-table-toolbar .columns .btn i,
[id^="toolbar_"] .btn i,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .ri {
    font-size: 13px !important;
    line-height: 1 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_nuevo:hover,
#btn_estado_all:hover,
#btn_carga_masiva:hover,
#btn_descargar_excel:hover,
#btn_excel_completo:hover,
#btn_excel_filtro:hover {
    background: #0f6d52 !important;
    border-color: #0f6d52 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

#btn_remove_all:hover,
#btn_pdf_completo:hover,
#btn_pdf_filtro:hover {
    background: #ab3f3f !important;
    border-color: #ab3f3f !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary {
    color: #ffffff !important;
    background: #2563eb !important;
    border-color: #2563eb !important;
}

.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger {
    color: #ffffff !important;
    background: #c84a4a !important;
    border-color: #c84a4a !important;
}

.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
    background: #c58b2d !important;
    border-color: #c58b2d !important;
}

.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    border-color: var(--tblx-border) !important;
    color: #274158 !important;
}

.bootstrap-table .fixed-table-toolbar .btn:hover,
.bootstrap-table .fixed-table-toolbar .columns .btn:hover,
[id^="toolbar_"] .btn:hover {
    background: #eef4f9 !important;
    border-color: #b9ccde !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: var(--tblx-success) !important;
    border-color: var(--tblx-success) !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: var(--tblx-danger) !important;
    border-color: var(--tblx-danger) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-pagination {
    background: #f4f9fe !important;
    border-top: 1px solid var(--tblx-border) !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

@media (max-width: 991px) {
    .bootstrap-table .fixed-table-toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .bootstrap-table .fixed-table-toolbar .search,
    .bootstrap-table .fixed-table-toolbar .search input {
        width: 100% !important;
    }
}

/* ==============================================================
   TABLES - PALETTE 1 "DEEP TECH"
============================================================== */
:root {
    --tblx-bg: #f8fbff !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #cbd5e1 !important;
    --tblx-head-bg: #e2e8f0 !important;
    --tblx-head-text: #0b1220 !important;
    --tblx-text: #0f172a !important;
    --tblx-row-alt: #f8fafc !important;
    --tblx-row-hover: #e0f2fe !important;
    --tblx-brand: #2563eb !important;
    --tblx-brand-hover: #1e3a8a !important;
    --tblx-success: #2563eb !important;
    --tblx-danger: #1e3a8a !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

/* ==============================================================
   INVENTORY TABLES - ELEGANT IMPACT HARD LOCK FINAL
============================================================== */
:root {
    --tblx-bg: #f4f8fc !important;
    --tblx-surface: #ffffff !important;
    --tblx-border: #d2dde8 !important;
    --tblx-head-bg: #e6edf5 !important;
    --tblx-head-text: #1a334a !important;
    --tblx-text: #273d52 !important;
    --tblx-row-alt: #fbfcfe !important;
    --tblx-row-hover: #eaf3f8 !important;
    --tblx-brand: #2f5d8a !important;
    --tblx-brand-hover: #254a6d !important;
    --tblx-success: #2fa58d !important;
    --tblx-danger: #b85c6a !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    box-shadow: 0 10px 22px rgba(16, 33, 49, 0.12) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
}

.bootstrap-table .table tbody td,
.estilos_generales td {
    color: var(--tblx-text) !important;
}

.bootstrap-table .table tbody tr:nth-child(even) td,
.estilos_generales tbody tr:nth-child(even) td {
    background: var(--tblx-row-alt) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"],
.bootstrap-table .fixed-table-toolbar button[name="columns"],
.bootstrap-table .fixed-table-toolbar button[name="export"] {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
    color: #ffffff !important;
}

.bootstrap-table .fixed-table-toolbar button[name="refresh"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="columns"]:hover,
.bootstrap-table .fixed-table-toolbar button[name="export"]:hover {
    background: var(--tblx-brand-hover) !important;
    border-color: var(--tblx-brand-hover) !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: var(--tblx-success) !important;
    border-color: var(--tblx-success) !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: var(--tblx-danger) !important;
    border-color: var(--tblx-danger) !important;
}

.bootstrap-table .fixed-table-pagination .page-item.active .page-link {
    background: var(--tblx-brand) !important;
    border-color: var(--tblx-brand) !important;
}

/* ==============================================================
   INVENTORY TABLES - NEO IMPACT V2 FINAL
============================================================== */
:root {
    --tblx-border: #c8d8e8 !important;
    --tblx-head-bg: #dde8f5 !important;
    --tblx-head-text: #10253a !important;
    --tblx-text: #243a50 !important;
    --tblx-row-hover: #e3f5fb !important;
    --tblx-brand: #2563eb !important;
    --tblx-brand-hover: #1f4eb5 !important;
    --tblx-success: #14b8a6 !important;
    --tblx-danger: #c33d64 !important;
}

.bootstrap-table .fixed-table-container {
    border: 1px solid var(--tblx-border) !important;
    box-shadow: 0 10px 22px rgba(16, 33, 49, 0.14) !important;
}

.bootstrap-table .table thead th,
.estilos_generales th {
    background: var(--tblx-head-bg) !important;
    color: var(--tblx-head-text) !important;
}

.bootstrap-table .table tbody tr:hover td,
.estilos_generales tbody tr:hover td {
    background: var(--tblx-row-hover) !important;
}

/* ==============================================================
   TABLE BUTTONS - HARD LOCK FINAL END V2
============================================================== */
.bootstrap-table .fixed-table-toolbar .btn,
.bootstrap-table .fixed-table-toolbar .columns .btn,
[id^="toolbar_"] .btn {
    min-height: 38px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    color: #143a53 !important;
}

#btn_nuevo,
#btn_estado_all,
#btn_carga_masiva,
#btn_descargar_excel,
#btn_excel_completo,
#btn_excel_filtro {
    background: #128261 !important;
    border-color: #128261 !important;
    color: #ffffff !important;
}

#btn_remove_all,
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c84a4a !important;
    border-color: #c84a4a !important;
    color: #ffffff !important;
}

.bootstrap-table .table .btn,
.estilos_generales .btn {
    min-height: 31px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.bootstrap-table .table .btn-primary,
.estilos_generales .btn-primary,
.bootstrap-table .table .btn-danger,
.estilos_generales .btn-danger,
.bootstrap-table .table .btn-warning,
.estilos_generales .btn-warning {
    color: #ffffff !important;
}

/*!*****************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/vistas.css ***!
  \*****************************************************************************************************************/
/* Estilos para el contenedor de WhatsApp */
.whatsapp-container {
    position: fixed;
    bottom: 20px;
    right: 15px;
    background-color: #25D366; /* Color de fondo de WhatsApp */
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 2; /* Asegura que WhatsApp esté encima de Telegram */
}

/* Estilos para el contenedor de Telegram */
.telegram-container {
    position: fixed;
    bottom: 65px; /* Ajusta la posición para que esté debajo de WhatsApp */
    right: 16px;
    background-color: #0088cc; /* Color de fondo de Telegram */
    padding: 12px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 1; /* Asegura que Telegram esté debajo de WhatsApp */
}

/* Estilos para el enlace de WhatsApp y Telegram */
.whatsapp-link, .telegram-link {
    text-decoration: none;
    color: #fff; /* Color del texto */
    display: flex;
    align-items: center;
}

/* Estilos para el ícono de WhatsApp y Telegram */
.whatsapp-icon, .telegram-icon {
    font-size: 24px; /* Tamaño del ícono */
    margin-right: 10px;
}

/* Estilos para el texto de WhatsApp y Telegram */
.whatsapp-text, .telegram-text {
    font-size: 14px;
}

/* Ocultar los controles de número en Chrome, Safari, Edge y Opera */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Ocultar los controles de número en Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}
/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
/* ================================
   APP.SCSS — ORDEN CORRECTO
================================ */

/* --- Frameworks base --- */

/* --- Plugins de tablas --- */

/* --- jQuery UI --- */

/* --- Alertas & Notificaciones --- */

/* --- Editores --- */

/* --- Iconos extras --- */

/* --- Pickr (Color Picker) --- */

/* --- Estilos personalizados del proyecto --- */

/* --------------------------------------------------------------
   TABLE/UI VISIBILITY FIXES (SAFE LAYER)
   - evita romper diseño global existente
   - corrige texto/íconos invisibles en toolbar y tablas
-------------------------------------------------------------- */
[id^="toolbar_"] .btn,
.bootstrap-table .fixed-table-toolbar .btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-weight: 700 !important;
}

[id^="toolbar_"] .btn i,
.bootstrap-table .fixed-table-toolbar .btn i,
[id^="toolbar_"] .btn .fas,
[id^="toolbar_"] .btn .fa,
[id^="toolbar_"] .btn .ri {
    font-size: 14px !important;
    line-height: 1 !important;
    display: inline-block !important;
}

/* Mantener legibles los outline sin forzar texto blanco global */
[id^="toolbar_"] .btn.btn-outline-primary {
    color: #0d6efd !important;
}
[id^="toolbar_"] .btn.btn-outline-success {
    color: #198754 !important;
}
[id^="toolbar_"] .btn.btn-outline-danger {
    color: #dc3545 !important;
}
[id^="toolbar_"] .btn.btn-outline-secondary {
    color: #6c757d !important;
}
[id^="toolbar_"] .btn.btn-outline-warning {
    color: #8a6d1d !important;
}

/* Botones nuevos de exportación (productos/informes) */
#btn_pdf_completo,
#btn_pdf_filtro {
    background: #c13f3f !important;
    border-color: #c13f3f !important;
    color: #fff !important;
}

#btn_excel_completo,
#btn_excel_filtro,
#btn_descargar_excel {
    background: #0f8a66 !important;
    border-color: #0f8a66 !important;
    color: #fff !important;
}

/* En acciones de tabla, mantener contraste en todos los módulos */
.bootstrap-table .table .btn {
    font-weight: 600 !important;
}


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