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

:root {
    --login-bg-start: #0a1020;
    --login-bg-end: #060812;
    --login-surface: rgba(22, 21, 38, 0.65);
    --login-border: #7cc4c47c;
    --login-text-primary: #F2F2F2;
    --login-text-secondary: #A4A3B4;
    --login-accent-1: #091e41; /* Blue principal */
    --login-accent-2: #060a1b; /* Azul eléctrico */
    --login-accent-3: #00ead3; /* Toque cian */
    --login-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
    --login-glow-focus: 0 0 0 3px rgba(47, 128, 255, 0.3);
}

@keyframes move-aurora {
    0% { transform: translate(0%, 0%) rotate(0deg); }
    25% { transform: translate(5%, 10%) rotate(10deg); }
    50% { transform: translate(10%, 5%) rotate(20deg); }
    75% { transform: translate(5%, -10%) rotate(10deg); }
    100% { transform: translate(0%, 0%) rotate(0deg); }
}

html,
body {
    min-height: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: "Space Grotesk", "Inter", sans-serif;
    color: var(--login-text-primary);
    background:
        radial-gradient(circle at 18% 18%, rgba(47, 128, 255, 0.18), transparent 24%),
        radial-gradient(circle at 82% 14%, rgba(0, 234, 211, 0.1), transparent 20%),
        radial-gradient(circle at 50% 100%, rgba(77, 107, 255, 0.08), transparent 30%),
        linear-gradient(135deg, #0a1020 0%, #101a31 38%, #16243d 64%, #0a1020 100%);
    position: relative;
    overflow-x: hidden;
    overflow-y: auto;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input {
    color-scheme: dark;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--login-text-primary) !important;
    caret-color: var(--login-text-primary) !important;
    border: 1px solid var(--login-border) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--login-surface) inset !important;
    box-shadow: 0 0 0 1000px var(--login-surface) inset !important;
    transition: background-color 5000s ease-in-out 0s;
}

.login-password-group .form-control {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.login-password-toggle {
    border-color: var(--login-border);
    color: var(--login-text-primary);
    background: rgba(10, 16, 32, 0.72);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.login-password-toggle:hover,
.login-password-toggle:focus {
    color: #ffffff;
    background: rgba(0, 234, 211, 0.18);
    border-color: rgba(0, 234, 211, 0.62);
    box-shadow: none;
}

body::before {
    content: '';
    position: fixed;
    top: -20%;
    left: -20%;
    width: 140%;
    height: 140%;
    background:
        radial-gradient(circle at 20% 20%, rgba(47, 128, 255, 0.24), transparent 35%),
        radial-gradient(circle at 80% 30%, rgba(6, 10, 27, 0.36), transparent 35%),
        radial-gradient(circle at 50% 80%, rgba(0, 234, 211, 0.12), transparent 35%);
    filter: blur(120px);
    opacity: 0.1;
    animation: move-aurora 30s ease-in-out infinite;
    z-index: 0;
}

.login-wrapper {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100svh;
    padding: 16px 20px 22px;
    box-sizing: border-box;
    gap: 10px;
}

.login-stage {
    position: relative;
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    transition: transform 0.3s ease, filter 0.3s ease;
}

.login-card {
    position: relative;
    width: 100%;
    padding: 32px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(15, 18, 32, 0.98), rgba(9, 11, 20, 0.98));
    border: 1px solid rgb(0 234 211 / 76%);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow:
        0 22px 72px rgba(0, 0, 0, 0.58),
        0 0 0 1px rgba(0, 226, 255, 0.1),
        0 0 0 2px rgba(0, 234, 211, 0.04),
        0 0 24px rgba(0, 234, 211, 0.08);
    z-index: 1;
    overflow: hidden;
    transition:
        border-color 0.4s ease,
        transform 0.35s ease,
        box-shadow 0.35s ease;
    transform: translateY(-2px);
    isolation: isolate;
}

.login-card:hover {
    transform: translateY(-4px);
    box-shadow:
        0 24px 72px rgba(0, 0, 0, 0.6),
        0 0 0 1px rgba(0, 226, 255, 0.08),
        0 0 30px rgba(0, 234, 211, 0.1);
}

.login-card > * {
    position: relative;
    z-index: 1;
}

.login-card::after {
    content: '';
    position: absolute;
    inset: 1px;
    border-radius: 23px;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 20%),
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.05), transparent 24%),
        radial-gradient(circle at 50% 108%, rgba(0, 234, 211, 0.14), transparent 40%),
        linear-gradient(180deg, transparent 62%, rgba(0, 234, 211, 0.04) 100%);
    opacity: 0.72;
    mix-blend-mode: screen;
    filter: saturate(1.02);
    z-index: 0;
}

.login-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 24px;
    padding: 2px; /* border width */
    background:
        radial-gradient(circle at 0% 50%, rgba(0, 234, 211, 0.4), transparent 46%) left center / 34% 100% no-repeat,
        radial-gradient(circle at 100% 50%, rgba(0, 234, 211, 0.4), transparent 46%) right center / 34% 100% no-repeat,
        linear-gradient(
            90deg,
            rgba(0, 234, 211, 0.2) 0%,
            var(--login-accent-3) 16%,
            rgba(0, 234, 211, 0.6) 33%,
            rgba(0, 234, 211, 0.6) 67%,
            var(--login-accent-3) 84%,
            rgba(0, 234, 211, 0.2) 100%
        );
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    opacity: 0.98;
    transition: opacity 0.4s ease;
    box-shadow:
        0 0 0 1px rgba(0, 234, 211, 0.22),
        0 0 28px rgba(0, 234, 211, 0.24);
    z-index: 0;
}

.login-card:hover::before {
    opacity: 1;
}

.login-logo-container {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 24px;
    text-align: center;
}

.login-logo-container img {
    width: 84px;
    height: 84px;
    object-fit: cover;
    display: block;
    border-radius: 16px;
    transition: transform 0.3s ease;
}

.login-logo-container img:hover {
    transform: translateY(-2px) scale(1.03);
}

.login-mobile-brand {
    display: none;
    width: 100%;
    justify-content: center;
    align-items: center;
    margin-bottom: 10px;
}

.login-mobile-brand img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    display: block;
    border-radius: 14px;
}

.login-brand-title {
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.05;
}

.login-hero-title {
    font-size: 1.85rem;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.login-hero-copy {
    font-size: 0.92rem;
    line-height: 1.55;
}

.login-title {
    margin: 0 0 16px;
    text-align: center;
    font-size: 1.75rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--login-text-primary);
}

.login-card .form-floating {
    margin-bottom: 20px !important;
}

.login-card .form-floating label {
    color: var(--login-text-secondary);
    font-weight: 500;
    font-size: 0.9rem;
}

.login-card .form-control {
    min-height: 46px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--login-border);
    color: var(--login-text-primary);
    padding: 1rem;
    font-size: 1rem;
    box-shadow: none;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

.login-card .form-control:hover {
    border-color: rgba(255, 255, 255, 0.2);
}

.login-card .form-control:focus {
    background: rgba(0, 0, 0, 0.35);
    border-color: var(--login-accent-2);
    box-shadow:
        0 0 0 2px rgba(0, 234, 211, 0.18),
        var(--login-glow-focus);
    outline: none;
}

.login-remember-row {
    justify-content: space-between;
    gap: 1rem;
}

.login-remember-check {
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.login-remember-check .form-check-label {
    margin-bottom: 0;
    line-height: 1.2;
}

#reset-password {
    flex-shrink: 0;
    white-space: nowrap;
    text-align: right;
}

.form-floating > .form-control:not(:placeholder-shown) {
    background: rgba(0, 0, 0, 0.3) !important;
    color: var(--login-text-primary) !important;
}

.login-card .btn-submit {
    width: 100%;
    margin-top: 12px;
    padding: 13px 18px;
    border: none;
    border-radius: 14px;
    background: linear-gradient(
        135deg,
        rgba(0, 234, 211, 0.9) 0%,
        rgba(30, 130, 217, 0.96) 52%,
        rgba(13, 77, 194, 0.98) 100%
    );
    background-size: 200% 100%;
    color: white;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.04em;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.22),
        0 0 0 1px rgba(0, 234, 211, 0.08);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background-position 0.4s ease,
        filter 0.3s ease;
    cursor: pointer;
}

.login-card .btn-submit:hover {
    transform: translateY(-2px);
    box-shadow:
        0 10px 24px rgba(0, 0, 0, 0.26),
        0 0 0 1px rgba(0, 234, 211, 0.14);
    background-position: 100% 0;
    filter: brightness(1.01);
}

.login-card .btn-submit:focus,
.login-card .btn-submit:active {
    transform: translateY(0);
    box-shadow: var(--login-glow-focus), 0 6px 18px rgba(0, 0, 0, 0.2);
    outline: none;
}

.login-options {
    text-align: right;
    margin-top: 16px;
}

.btn-link {
    display: block;
    color: var(--login-text-secondary);
    font-size: 0.9rem;
    text-decoration: none;
    transition: color 0.3s ease;
}

.btn-link:hover {
    color: var(--login-text-primary);
    text-decoration: underline;
}

.auth-separator {
    border: 0;
    height: 1px;
    margin: 28px 0 !important;
    background: linear-gradient(90deg, transparent, var(--login-border), transparent);
}

.auth-google-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    border-radius: 12px;
    border: 1px solid var(--login-border) !important;
    background: transparent;
    color: var(--login-text-primary) !important;
    font-weight: 500;
    padding: 12px 16px;
    box-shadow: none;
    transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
    text-decoration: none;
}

.auth-google-btn:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.2) !important;
    box-shadow: none;
    transform: translateY(-2px);
}

.auth-google-btn .google-mark {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    color: #1a73e8;
    background: #ffffff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.login-footer {
    margin-top: 24px;
    text-align: center;
}

.login-footer .text-muted {
    color: var(--login-text-secondary) !important;
    font-size: 0.95rem;
}

.btn-link-register {
    color: var(--login-text-primary);
    font-weight: 700;
    text-decoration: none;
    transition: color 0.3s ease;
}

.btn-link-register:hover {
    color: var(--login-accent-3);
    text-decoration: underline;
}

.login-card .alert,
.login-card .alert-danger,
.login-card .alert-warning,
.login-card .alert-success {
    padding: 12px 16px;
    border-radius: 12px;
    border: 1px solid transparent;
    background: rgba(0, 0, 0, 0.3);
    color: var(--login-text-primary);
    font-size: 0.9rem;
}

.login-card .alert-danger {
    background-color: rgba(218, 54, 51, 0.15);
    border-color: rgba(218, 54, 51, 0.4);
}

.login-card .alert-warning {
    background-color: rgba(187, 128, 9, 0.15);
    border-color: rgba(187, 128, 9, 0.4);
}

.login-card .alert-success {
    background-color: rgba(35, 134, 54, 0.15);
    border-color: rgba(35, 134, 54, 0.4);
}

.login-card .invalid-feedback {
    color: #ff9a9e;
    font-size: 0.9rem;
    font-weight: 500;
}

html,
body {
    scrollbar-width: thin;
    scrollbar-color: var(--login-accent-2) transparent;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
    background: var(--login-accent-2) !important;
    border-radius: 999px;
    border: 3px solid transparent;
    background-clip: content-box;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
    background: transparent !important;
}

@media (max-width: 768px) {
    .login-wrapper {
        justify-content: center;
        padding: 10px 12px 12px;
        gap: 6px;
    }

    .login-stage {
        max-width: 100%;
        transform: none;
        width: 100%;
    }

    .login-card.split-card {
        max-height: none;
        flex-direction: column;
    }

    .login-form-panel {
        padding: 20px 16px !important;
    }

    .login-mobile-brand {
        display: flex;
    }

    .login-info-panel {
        display: none !important;
    }

    .login-card {
        max-height: none;
    }

    .login-page-footer {
        display: none;
    }
}

@media (max-width: 480px) {
    .login-wrapper {
        justify-content: center;
        padding: 8px 10px 10px;
    }

    .login-stage.split-stage {
        max-width: 100%;
        transform: none;
    }

    .login-card {
        padding: 14px 12px;
        border-radius: 18px;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .login-card::before {
        display: none; /* Disable gradient border on mobile for performance/simplicity */
    }

    .login-logo-container {
        margin-bottom: 10px;
    }

    .login-logo-container img {
        width: 68px;
        height: 68px;
    }

    .login-mobile-brand img {
        width: 52px;
        height: 52px;
    }

    .login-brand-title {
        font-size: 1.1rem;
    }

    .login-title {
        font-size: 1.15rem;
        margin-bottom: 8px;
    }

    .login-hero-title {
        font-size: 1.45rem;
        line-height: 1.18;
        margin-bottom: 10px !important;
    }

    .login-hero-copy {
        font-size: 0.86rem;
        line-height: 1.5;
        margin-bottom: 14px !important;
    }

    .login-card .btn-submit,
    .auth-google-btn {
        font-size: 0.95rem;
        padding: 11px 16px;
    }

    .login-card .form-control {
        min-height: 40px;
    }

    .login-form-panel {
        padding: 16px 12px !important;
    }

    .login-remember-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    #reset-password {
        white-space: normal;
        text-align: left;
    }
}


/* --- Añadir a login.css --- */

/* 1. Expansión del contenedor principal */
.login-stage.split-stage {
    max-width: 1060px;
    transform: translateY(-10px);
}

/* 2. Modificaciones a la tarjeta para soportar grid */
.login-card.split-card {
    padding: 0; /* Quitamos el padding global porque ahora los paneles internos lo manejan */
    display: flex;
}

/* 3. Panel Izquierdo (Info) */
.login-info-panel {
    position: relative;
    background:
        radial-gradient(circle at 20% 18%, rgba(0, 226, 255, 0.05) 0%, transparent 26%),
        radial-gradient(circle at 84% 82%, rgba(47, 128, 255, 0.08) 0%, transparent 32%),
        linear-gradient(180deg, rgba(10, 12, 22, 0.96), rgba(6, 8, 16, 0.94));
    border-right: 1px solid rgb(0 234 211 / 45%);
    box-shadow: inset -1px 0 0 rgba(47, 128, 255, 0.08);
}

.login-info-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 18%),
        radial-gradient(circle at 50% 50%, rgba(0, 226, 255, 0.05), transparent 58%);
    opacity: 0.85;
    z-index: 0;
}

.login-info-panel > *,
.login-form-panel > * {
    position: relative;
    z-index: 1;
}

.login-form-panel {
    background:
        linear-gradient(180deg, rgba(14, 17, 30, 0.98), rgba(8, 10, 18, 0.96));
    border-left: 1px solid rgba(0, 234, 211, 0.1);
    box-shadow: inset 1px 0 0 rgba(47, 128, 255, 0.07);
}

/* 4. Inputs re-estilizados al modelo de la imagen */
/* En la imagen no usan form-floating, usan labels tradicionales arriba */
.login-form-panel .form-control {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--login-border);
    border-radius: 8px; /* Bordes un poco más rectos como en la referencia */
    min-height: 44px;
    padding: 0.68rem 0.95rem;
}

/* 5. Checkbox personalizado */
.custom-checkbox {
    background-color: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--login-border);
    cursor: pointer;
}
.custom-checkbox:checked {
    background-color: var(--login-accent-3);
    border-color: var(--login-accent-3);
    box-shadow: 0 0 0 2px rgba(0, 234, 211, 0.18);
}

/* 6. Botón de Google en formato ícono simple (como la referencia) */
.auth-google-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--login-border);
    transition: all 0.3s ease;
}
.auth-google-btn-icon:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

/* Ajustes Responsive */
@media (max-width: 991.98px) {
    /* En tablets/móviles, el borde derecho del panel izquierdo desaparece */
    .login-info-panel {
        border-right: none;
        border-bottom: 1px solid var(--login-border);
    }

    .login-card.split-card {
        max-height: calc(100svh - 24px);
    }

    .login-form-panel {
        padding-left: 18px !important;
        padding-right: 18px !important;
        padding-top: 18px !important;
        padding-bottom: 18px !important;
    }
}

.login-page-footer {
    position: relative;
    z-index: 2;
    padding: 0 20px;
    margin-top: 10px;
    text-align: center;
}

.login-page-footer p {
    margin: 0;
    color: rgba(255, 255, 255, 0.5) !important;
    font-weight: 500;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65);
}


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