/*!*********************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/chatbot/styles/ChatbotWidget.css ***!
  \*********************************************************************************************************************************************************************/
/* ================================================================ */
/* CHATBOT WIDGET - FICHIER CSS UNIFIÉ                             */
/* Fusion de: ChatbotWidget.css + ChatbotHeader.css + ChatbotEmbed.css + ChatbotWidgetCore.css */
/* ================================================================ */


/* === VARIABLES CSS DYNAMIQUES === */
:root {
    --chatbot-primary: #007bff !important;
    --chatbot-primary-dark: #0056b3 !important;
}

/* === STYLES POUR CUSTOM ICON === */
.custom-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.custom-icon:hover {
    transform: scale(1.1) !important;
}

/* Styles spécifiques pour chaque type d'icône */
.custom-icon.xkz-phone-icon {
    color: currentColor !important;
}

.custom-icon.phone-slash-icon {
    color: currentColor !important;
}

.custom-icon.send-icon {
    color: currentColor !important;
}

.custom-icon.robot-icon {
    color: currentColor !important;
}

.custom-icon.chevron-up-icon,
.custom-icon.chevron-down-icon {
    color: currentColor !important;
}

/* === CONTAINER PRINCIPAL === */
.xkz-chatbot-widget-container {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    z-index: 10000 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* ================================================================ */
/* BULLE DE DÉMARRAGE - STYLES PRIORITAIRES                        */
/* ================================================================ */

.xkz-chatbot-widget-container .xkz-chatbot-bubble {
    all: initial !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    min-width: 200px !important;
    max-width: 380px !important;
    padding: 12px !important;
    gap: 12px !important;
    background: white !important;
    border: 4px solid white !important;
    border-radius: 24px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

.xkz-chatbot-widget-container .xkz-chatbot-bubble:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

/* === PREMIÈRE LIGNE : AVATAR + TEXTE === */
.xkz-chatbot-widget-container .xkz-bubble-header {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
}

.xkz-chatbot-widget-container .xkz-bubble-avatar-circle {
    width: 36px !important;
    height: 36px !important;
    background: white !important;
    border: none !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
}

.xkz-chatbot-widget-container .xkz-bubble-avatar-circle img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

/* Styles pour l'icône de fallback - COULEUR DYNAMIQUE */
.xkz-chatbot-widget-container .xkz-bubble-avatar-circle .custom-icon {
    color: var(--chatbot-primary) !important;
    width: 25px !important;
    height: 25px !important;
}

.xkz-chatbot-widget-container .xkz-bubble-help-text {
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #2c3e50 !important;
    flex: 1 !important;
    margin: 0 !important;
}

/* === DEUXIÈME LIGNE : BOUTON NOIR === */
.xkz-chatbot-widget-container .xkz-bubble-action {
    display: flex !important;
    justify-content: stretch !important;
    width: 100% !important;
}

.xkz-chatbot-widget-container .xkz-start-conversation-btn {
    all: initial !important;
    background: #000000 !important;
    color: white !important;
    border: none !important;
    border-radius: 20px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    width: 100% !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

.xkz-chatbot-widget-container .xkz-start-conversation-btn:hover {
    background: #333333 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

.xkz-chatbot-widget-container .xkz-start-conversation-btn:active {
    transform: translateY(0) !important;
}

.xkz-chatbot-widget-container .xkz-start-conversation-btn .custom-icon {
    color: white !important;
    width: 21px !important;
    height: 21px !important;
}

.xkz-chatbot-widget-container .xkz-start-conversation-btn span {
    color: white !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

/* ================================================================ */
/* FENÊTRE CHATBOT                                                  */
/* ================================================================ */

.xkz-chatbot-window {
    width: 380px !important;
    background: white !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.15) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    margin-bottom: 20px !important;
    animation: slideUp 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    transition: height 0.3s ease !important;
}

.xkz-chatbot-window.full {
    height: 520px !important;
    max-height: 520px !important;
}

.xkz-chatbot-window.minimized {
    height: 100px !important;
}

/* === AVATAR MINIMISÉ (remplace la fenêtre quand minimisée) === */
.xkz-minimized-avatar {
    width: 60px !important;
    height: 60px !important;
    border-radius: 50% !important;
    background: white !important;
    border: 3px solid var(--chatbot-primary) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    margin-bottom: 20px !important;
}

.xkz-minimized-avatar:hover {
    transform: scale(1.1) !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2) !important;
    border-color: var(--chatbot-primary-dark) !important;
}

.xkz-minimized-avatar img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.xkz-minimized-avatar .custom-icon {
    width: 35px !important;
    height: 35px !important;
    color: var(--chatbot-primary) !important;
}

@keyframes slideUp {
    from {
        opacity: 0 !important;
        transform: translateY(20px) scale(0.95) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
    }
}

/* === HEADER UNIFORME AVEC COULEURS DYNAMIQUES === */
.xkz-chatbot-header-uniform {
    background: linear-gradient(135deg, var(--chatbot-primary), var(--chatbot-primary-dark)) !important;
    color: white !important;
    padding: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-radius: 20px 20px 0 0 !important;
    height: 100px !important;
    min-height: 100px !important;
    flex-shrink: 0 !important;
}

.xkz-header-left {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    flex: 1 !important;
}

.xkz-bot-avatar-container {
    width: 50px !important;
    height: 50px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 3px solid rgba(255, 255, 255, 0.8) !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    position: relative !important;
}

.xkz-bot-avatar-img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

/* Icône de fallback dans l'avatar */
.xkz-bot-avatar-container .custom-icon {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    color: rgba(255, 255, 255, 0.8) !important;
    width: 33px !important;
    height: 33px !important;
}

.xkz-header-text {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.xkz-header-title {
    font-weight: 600 !important;
    font-size: 16px !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.xkz-header-subtitle {
    font-size: 13px !important;
    opacity: 0.9 !important;
    line-height: 1.2 !important;
}

.xkz-status-thinking, .xkz-status-speaking {
    color: rgba(255, 255, 255, 0.95) !important;
    font-weight: 500 !important;
}

.xkz-status-ready {
    color: rgba(255, 255, 255, 0.8) !important;
}

.xkz-status-connecting {
    color: rgba(255, 255, 0, 0.9) !important;
    font-weight: 500 !important;
}

.xkz-status-error, .xkz-status-disconnected {
    color: rgba(255, 200, 200, 0.9) !important;
    font-weight: 500 !important;
}

.xkz-header-right {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.xkz-header-btn {
    width: 40px !important;
    height: 40px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    border-radius: 50% !important;
    color: white !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.xkz-header-btn:hover {
    background: rgba(255, 255, 255, 0.3) !important;
    transform: scale(1.1) !important;
}

/* Icônes dans les boutons header - TAILLES CORRIGÉES */
.xkz-header-btn .custom-icon {
    color: white !important;
    width: 27px !important;
    height: 27px !important;
}

.xkz-close-btn {
    background: rgba(220, 53, 69, 0.8) !important;
}

.xkz-close-btn:hover {
    background: rgba(220, 53, 69, 1) !important;
}

/* === CONTENU CHAT === */
.xkz-chat-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    height: 500px !important;
}

.xkz-messages-container {
    flex: 1 1 auto !important;
    padding: 16px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background-color:white !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    scroll-behavior: smooth !important;
    -webkit-overflow-scrolling: touch !important;
}

.xkz-message {
    display: flex !important;
    flex-direction: column !important;
    max-width: 85% !important;
    animation: messageSlide 0.3s ease-out !important;
}

.xkz-message.user {
    animation: none !important;
    align-self: flex-end !important;
}

.xkz-message.bot {
    align-self: flex-start !important;
}

@keyframes messageSlide {
    from {
        opacity: 0 !important;
        transform: translateY(10px) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}

/* Désactiver l'animation pour les messages déjà affichés */
.xkz-message[data-confirmed="true"] {
    animation: none !important;
}

.xkz-message-bubble {
    padding: 12px 16px !important;
    border-radius: 18px !important;
    word-wrap: break-word !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    margin-bottom: 4px !important;
}

.xkz-message.bot .xkz-message-bubble {
    background: white !important;
    color: #2c3e50 !important;
    border-radius: 18px 18px 18px 4px !important;
}

/* MESSAGE UTILISATEUR AVEC COULEUR DYNAMIQUE */
.xkz-message.user .xkz-message-bubble {
    background: var(--chatbot-primary) !important;
    color: white !important;
    border-radius: 18px 18px 4px 18px !important;
}

.xkz-message-time {
    font-size: 11px !important;
    color: #7f8c8d !important;
    opacity: 0.7 !important;
    padding: 0 4px !important;
}

.xkz-message.user .xkz-message-time {
    text-align: right !important;
}

.xkz-message.bot .xkz-message-time {
    text-align: left !important;
}

/* === INPUT SECTION === */
.xkz-input-section {
    padding: 16px !important;
    background: white !important;
    border-top: 1px solid #ecf0f1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    flex-shrink: 0 !important;
}

.xkz-input-row {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}

.xkz-text-input {
    flex: 1 !important;
    padding: 10px 14px !important;
    border: 2px solid #ecf0f1 !important;
    border-radius: 20px !important;
    outline: none !important;
    font-size: 14px !important;
}

/* FOCUS INPUT AVEC COULEUR DYNAMIQUE */
.xkz-text-input:focus {
    border: 2px solid var(--chatbot-primary) !important;
    outline: none !important;
    box-shadow: none !important;
}

.xkz-text-input:disabled {
    background: #f8f9fa !important;
    color: #6c757d !important;
}

.xkz-input-button {
    width: 40px !important;
    height: 40px !important;
    border: none !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

/* BOUTON ENVOI AVEC COULEUR DYNAMIQUE */
.xkz-send-button {
    background: var(--chatbot-primary) !important;
    color: white !important;
}

.xkz-send-button:hover:not(:disabled) {
    background: var(--chatbot-primary-dark) !important;
    transform: scale(1.05) !important;
}

.xkz-send-button:disabled {
    background: #bdc3c7 !important;
    cursor: not-allowed !important;
}

.xkz-send-button.enabled {
    background: var(--chatbot-primary) !important;
}

/* Icône dans le bouton d'envoi - TAILLE CORRIGÉE */
.xkz-send-button .custom-icon {
    color: white !important;
    width: 27px !important;
    height: 27px !important;
}

.xkz-send-button:disabled .custom-icon {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* === INDICATEUR CHARGEMENT === */
.xkz-loading-indicator {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #7f8c8d !important;
    font-size: 12px !important;
    padding: 8px 12px !important;
}

.xkz-input-status {
    padding: 4px 8px !important;
    font-size: 11px !important;
    color: #666 !important;
    text-align: center !important;
}

/* ================================================================ */
/* RESPONSIVE DESIGN                                                */
/* ================================================================ */

@media (max-width: 768px) {
    .xkz-chatbot-widget-container {
        bottom: 15px !important;
        right: 15px !important;
    }

    /* MOBILE: Avatar seul sans cercle blanc - 60x60px */
    .xkz-chatbot-widget-container .xkz-chatbot-bubble {
        min-width: 60px !important;
        max-width: 60px !important;
        width: 60px !important;
        height: 60px !important;
        padding: 0 !important;
        gap: 0 !important;
        background: transparent !important;
        border: none !important;
        border-radius: 50% !important;
    }

    /* Masquer le texte d'aide sur mobile */
    .xkz-chatbot-widget-container .xkz-bubble-help-text {
        display: none !important;
    }

    /* Avatar pleine taille sur mobile - 60x60px */
    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle {
        width: 60px !important;
        height: 60px !important;
        background: transparent !important;
        border: none !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle .custom-icon {
        width: 32px !important;
        height: 32px !important;
    }

    /* Masquer le bouton sur mobile */
    .xkz-chatbot-widget-container .xkz-bubble-action {
        display: none !important;
    }

    .xkz-chatbot-widget-container .xkz-start-conversation-btn {
        display: none !important;
    }

    /* Fenêtre chatbot sur mobile */
    .xkz-chatbot-header-uniform {
        padding: 16px !important;
        height: 85px !important;
        min-height: 85px !important;
    }

    .xkz-chatbot-window.minimized {
        height: 85px !important;
    }

    .xkz-bot-avatar-container {
        width: 45px !important;
        height: 45px !important;
    }

    .xkz-bot-avatar-container .custom-icon {
        width: 24px !important;
        height: 24px !important;
    }

    .xkz-header-btn {
        width: 36px !important;
        height: 36px !important;
    }

    .xkz-header-btn .custom-icon {
        width: 20px !important;
        height: 20px !important;
    }

    .xkz-header-title {
        font-size: 15px !important;
    }

    .xkz-header-subtitle {
        font-size: 12px !important;
    }

    .xkz-send-button .custom-icon {
        width: 20px !important;
        height: 20px !important;
    }
}

@media (max-width: 480px) {
    .xkz-chatbot-widget-container {
        bottom: 10px !important;
        right: 10px !important;
    }

    .xkz-chatbot-widget-container .xkz-chatbot-bubble {
        min-width: 280px !important;
        max-width: 320px !important;
        padding: 18px !important;
        gap: 16px !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-header {
        gap: 12px !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-help-text {
        font-size: 15px !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle {
        width: 42px !important;
        height: 42px !important;
        border-width: 2px !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle .custom-icon {
        width: 20px !important;
        height: 20px !important;
    }

    .xkz-chatbot-widget-container .xkz-start-conversation-btn {
        font-size: 11px !important;
        padding: 8px 16px !important;
        gap: 5px !important;
        min-width: 110px !important;
    }

    .xkz-chatbot-widget-container .xkz-start-conversation-btn .custom-icon {
        width: 14px !important;
        height: 14px !important;
    }

    .xkz-chatbot-window {
        width: calc(100vw - 20px) !important;
        max-height: 600px !important;
    }

    .xkz-chatbot-window.full {
        height: calc(100vh - 100px) !important;
        max-height: 600px !important;
    }

    .xkz-chatbot-header-uniform {
        padding: 12px !important;
        height: 75px !important;
        min-height: 75px !important;
    }

    .xkz-chatbot-window.minimized {
        height: 75px !important;
    }

    .xkz-header-left {
        gap: 12px !important;
    }

    .xkz-bot-avatar-container {
        width: 40px !important;
        height: 40px !important;
    }

    .xkz-bot-avatar-container .custom-icon {
        width: 22px !important;
        height: 22px !important;
    }

    .xkz-header-btn {
        width: 32px !important;
        height: 32px !important;
    }

    .xkz-header-btn .custom-icon {
        width: 18px !important;
        height: 18px !important;
    }

    .xkz-header-title {
        font-size: 14px !important;
    }

    .xkz-header-subtitle {
        font-size: 11px !important;
    }

    .xkz-send-button .custom-icon {
        width: 18px !important;
        height: 18px !important;
    }
}

.xkz-chatbot-widget-container .xkz-start-conversation-btn:focus,
.xkz-header-btn:focus,
.xkz-input-button:focus {
    outline: 2px solid var(--chatbot-primary) !important;
    outline-offset: 2px !important;
}

/* INPUT - PAS D'OUTLINE, JUSTE LA BORDURE */
.xkz-text-input:focus {
    outline: none !important;
}

/* Focus pour les icônes personnalisées */
.custom-icon:focus {
    outline: 2px solid var(--chatbot-primary) !important;
    outline-offset: 2px !important;
    border-radius: 2px !important;
}

@media (prefers-reduced-motion: reduce) {
    .xkz-chatbot-widget-container .xkz-chatbot-bubble,
    .xkz-chatbot-window,
    .xkz-message,
    .xkz-chatbot-widget-container .xkz-start-conversation-btn,
    .xkz-header-btn,
    .xkz-input-button,
    .custom-icon {
        animation: none !important;
        transition: none !important;
    }
}

@media (hover: none) and (pointer: coarse) {
    .xkz-chatbot-widget-container .xkz-chatbot-bubble:active {
        transform: scale(0.98) !important;
    }

    .xkz-chatbot-widget-container .xkz-start-conversation-btn:active {
        transform: scale(0.98) !important;
    }

    .xkz-header-btn:active {
        transform: scale(0.95) !important;
    }

    .custom-icon:active {
        transform: scale(0.95) !important;
    }
}

/* === PRINT - MASQUER EN IMPRESSION === */
@media print {
    .xkz-chatbot-widget-container {
        display: none !important;
    }
}

/* === QUESTIONS SUGGÉRÉES === */
.xkz-suggested-questions {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 8px 0 !important;
    animation: fadeIn 0.4s ease-in !important;
}

@keyframes fadeIn {
    from {
        opacity: 0 !important;
        transform: translateY(10px) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}

.xkz-suggested-question-btn {
    background: white !important;
    border: 2px solid var(--chatbot-primary) !important;
    color: var(--chatbot-primary) !important;
    padding: 10px 14px !important;
    border-radius: 18px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    text-align: left !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    line-height: 1.4 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 300px !important;
}

.xkz-suggested-question-btn:hover:not(:disabled) {
    background: var(--chatbot-primary) !important;
    color: white !important;
    transform: translateX(4px) !important;
}

.xkz-suggested-question-btn:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}
/* ================================================================ */
/* CHATBOT HEADER - STYLES ADDITIONNELS                            */
/* ================================================================ */
/* === CONTAINER WIDGET === */
.xkz-chatbot-widget-container {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    z-index: 10000 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* === BULLE FERMÉE === */
.xkz-chatbot-bubble {
    background: white !important;
    border-radius: 24px !important;
    padding: 16px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 200px !important;
    max-width: 280px !important;
    transition: all 0.3s ease !important;
}

.xkz-chatbot-bubble:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

.xkz-bubble-phone-icon {
    width: 48px !important;
    height: 48px !important;
    background: linear-gradient(135deg, var(--chatbot-primary), var(--chatbot-primary-dark)) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.xkz-phone-icon {
    font-size: 24px !important;
    color: white !important;
}

.xkz-header-btn i {
    font-size: 18px !important;
}

.xkz-button-icon {
    font-size: 16px !important;
}

.xkz-bubble-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}

.xkz-bubble-title {
    font-weight: 600 !important;
    font-size: 15px !important;
    color: #2c3e50 !important;
    margin-bottom: 2px !important;
}

.xkz-bubble-subtitle {
    font-size: 13px !important;
    color: #7f8c8d !important;
}

/* === FENÊTRE CHATBOT === */
.xkz-chatbot-window {
    width: 380px !important;
    background: white !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.15) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    margin-bottom: 20px !important;
    animation: slideUp 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* VERSION COMPLÈTE : header + messages + input */
.xkz-chatbot-window.full {
    height: 520px !important;
}

/* VERSION MINIMISÉE : header seulement */
.xkz-chatbot-window.minimized {
    height: 100px !important;
}

@keyframes slideUp {
    from {
        opacity: 0 !important;
        transform: translateY(20px) scale(0.95) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
    }
}

/* === HEADER UNIFORME AVEC COULEURS DYNAMIQUES === */
.xkz-chatbot-header-uniform {
    background: linear-gradient(135deg, var(--chatbot-primary), var(--chatbot-primary-dark)) !important;
    color: white !important;
    padding: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-radius: 20px 20px 0 0 !important;
    height: 100px !important;
    min-height: 100px !important;
    max-height: 100px !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
}

.xkz-header-left {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    flex: 1 !important;
}

.xkz-bot-avatar-container {
    width: 50px !important;
    height: 50px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 3px solid rgba(255, 255, 255, 0.8) !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

.xkz-bot-avatar-img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.xkz-header-text {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.xkz-header-title {
    font-weight: 600 !important;
    font-size: 16px !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.xkz-header-subtitle {
    font-size: 13px !important;
    opacity: 0.9 !important;
    line-height: 1.2 !important;
}

.xkz-status-thinking, .xkz-status-speaking {
    color: rgba(255, 255, 255, 0.95) !important;
    font-weight: 500 !important;
}

.xkz-status-ready {
    color: rgba(255, 255, 255, 0.8) !important;
}

.xkz-status-connecting {
    color: rgba(255, 255, 0, 0.9) !important;
    font-weight: 500 !important;
}

.xkz-status-error, .xkz-status-disconnected {
    color: rgba(255, 200, 200, 0.9) !important;
    font-weight: 500 !important;
}

.xkz-header-right {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.xkz-header-btn {
    width: 40px !important;
    height: 40px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    border-radius: 50% !important;
    color: white !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.xkz-header-btn:hover {
    background: rgba(255, 255, 255, 0.3) !important;
    transform: scale(1.1) !important;
}

.xkz-header-btn i {
    font-size: 18px !important;
}

.xkz-close-btn {
    background: rgba(220, 53, 69, 0.8) !important;
}

.xkz-close-btn:hover {
    background: rgba(220, 53, 69, 1) !important;
}

/* === CONTENU (visible uniquement quand pas minimisé) === */
.xkz-chat-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
    overflow: hidden !important;
}

.xkz-messages-container {
    flex: 1 !important;
    padding: 16px !important;
    overflow-y: auto !important;
    /*background: #f8f9fa !important;*/
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    /*width: 400px !important;*/
    /*height: 400px !important;*/
}

.xkz-message {
    display: flex !important;
    flex-direction: column !important;
    max-width: 85% !important;
    animation: messageSlide 0.3s ease-out !important;
}

.xkz-message.user {
    align-self: flex-end !important;
}

.xkz-message.bot {
    align-self: flex-start !important;
}

@keyframes messageSlide {
    from {
        opacity: 0 !important;
        transform: translateY(10px) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}

.xkz-message-bubble {
    padding: 12px 16px !important;
    border-radius: 18px !important;
    word-wrap: break-word !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    margin-bottom: 4px !important;
    font-size:15px !important;
}

.xkz-message.bot .xkz-message-bubble {
    background: white !important;
    color: #2c3e50 !important;
    border-radius: 18px 18px 18px 4px !important;
    font-size:15px !important;
}

/* MESSAGE UTILISATEUR AVEC COULEUR DYNAMIQUE */
.xkz-message.user .xkz-message-bubble {
    background: var(--chatbot-primary) !important;
    color: white !important;
    border-radius: 18px 18px 4px 18px !important;
    font-size:15px !important;
}

.xkz-message-time {
    font-size: 11px !important;
    color: #7f8c8d !important;
    opacity: 0.7 !important;
    padding: 0 4px !important;
}

.xkz-message.user .xkz-message-time {
    text-align: right !important;
}

.xkz-message.bot .xkz-message-time {
    text-align: left !important;
}

.xkz-input-section {
    padding: 16px !important;
    background: white !important;
    border-top: 1px solid #ecf0f1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.xkz-input-row {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}

.xkz-text-input {
    flex: 1 !important;
    padding: 10px 14px !important;
    border: 2px solid #ecf0f1 !important;
    border-radius: 20px !important;
    outline: none !important;
    font-size: 14px !important;
}

/* FOCUS INPUT AVEC COULEUR DYNAMIQUE */
.xkz-text-input:focus {
    border-color: var(--chatbot-primary) !important;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1) !important;
}

.xkz-text-input:disabled {
    background: #f8f9fa !important;
    color: #6c757d !important;
}

.xkz-input-button {
    width: 40px !important;
    height: 40px !important;
    border: none !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

/* BOUTON ENVOI AVEC COULEUR DYNAMIQUE */
.xkz-send-button {
    background: var(--chatbot-primary) !important;
    color: white !important;
}

.xkz-send-button:hover:not(:disabled) {
    background: var(--chatbot-primary-dark) !important;
    transform: scale(1.05) !important;
}

.xkz-send-button:disabled {
    background: #bdc3c7 !important;
    cursor: not-allowed !important;
}

.xkz-button-icon {
    width: 18px !important;
    height: 18px !important;
}

.xkz-loading-indicator {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #7f8c8d !important;
    font-size: 12px !important;
    padding: 8px 12px !important;
}

.xkz-input-status {
    padding: 4px 8px !important;
    font-size: 11px !important;
    color: #666 !important;
    text-align: center !important;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .xkz-chatbot-header-uniform {
        padding: 16px !important;
        height: 85px !important;
        min-height: 85px !important;
        max-height: 85px !important;
    }

    .xkz-chatbot-window.minimized {
        height: 85px !important;
    }

    .xkz-bot-avatar-container {
        width: 45px !important;
        height: 45px !important;
    }

    .xkz-header-btn {
        width: 36px !important;
        height: 36px !important;
    }

    .xkz-header-btn i {
        font-size: 16px !important;
    }

    .xkz-header-title {
        font-size: 15px !important;
    }

    .xkz-header-subtitle {
        font-size: 12px !important;
    }
}

@media (max-width: 480px) {
    .xkz-chatbot-window {
        width: calc(100vw - 20px) !important;
        max-width: 380px !important;
    }

    .xkz-chatbot-window.full {
        height: calc(100vh - 100px) !important;
        max-height: 600px !important;
    }

    .xkz-chatbot-bubble {
        min-width: 160px !important;
        max-width: 240px !important;
    }

    .xkz-chatbot-header-uniform {
        padding: 12px !important;
        height: 75px !important;
        min-height: 75px !important;
        max-height: 75px !important;
    }

    .xkz-chatbot-window.minimized {
        height: 75px !important;
    }

    .xkz-header-left {
        gap: 12px !important;
    }

    .xkz-bot-avatar-container {
        width: 40px !important;
        height: 40px !important;
    }

    .xkz-header-btn {
        width: 32px !important;
        height: 32px !important;
    }

    .xkz-header-btn i {
        font-size: 14px !important;
    }

    .xkz-phone-icon {
        font-size: 20px !important;
    }

    .xkz-button-icon {
        font-size: 14px !important;
    }

    .xkz-header-title {
        font-size: 14px !important;
    }

    .xkz-header-subtitle {
        font-size: 11px !important;
    }
}

/* ================================================================ */
/* CHATBOT EMBED - STYLES ADDITIONNELS                             */
/* ================================================================ */

/* === CONTENEUR EXTERNE === */
.xkz-chatbot-external-container {
    position: fixed !important;
    z-index: 999999 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* === POSITIONS === */
.xkz-chatbot-external-container.position-bottom-right {
    bottom: 20px !important;
    right: 20px !important;
}

.xkz-chatbot-external-container.position-bottom-left {
    bottom: 20px !important;
    left: 20px !important;
}

.xkz-chatbot-external-container.position-top-right {
    top: 20px !important;
    right: 20px !important;
}

.xkz-chatbot-external-container.position-top-left {
    top: 20px !important;
    left: 20px !important;
}

/* === BOX-SIZING GLOBAL === */
.xkz-chatbot-external-container * {
    box-sizing: border-box !important;
}

/* === STYLES SPÉCIFIQUES PHONE MODE === */
.xkz-chatbot-external-container.phone-mode .xkz-chatbot-bubble {
    background: white !important;
    border-radius: 24px !important;
    padding: 16px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 200px !important;
    max-width: 280px !important;
    transition: all 0.3s ease !important;
}

/* === THÈMES COULEURS === */
.xkz-chatbot-external-container.theme-blue {
    --chatbot-primary: #007bff !important;
    --chatbot-primary-dark: #0056b3 !important;
}

.xkz-chatbot-external-container.theme-green {
    --chatbot-primary: #28a745 !important;
    --chatbot-primary-dark: #218838 !important;
}

.xkz-chatbot-external-container.theme-red {
    --chatbot-primary: #dc3545 !important;
    --chatbot-primary-dark: #c82333 !important;
}

.xkz-chatbot-external-container.theme-purple {
    --chatbot-primary: #6f42c1 !important;
    --chatbot-primary-dark: #5a32a3 !important;
}

.xkz-chatbot-external-container.theme-orange {
    --chatbot-primary: #fd7e14 !important;
    --chatbot-primary-dark: #e55a00 !important;
}

/* === ÉTAT OUVERT/FERMÉ === */
.xkz-chatbot-external-container.chatbot-open {
    /* États spéciaux quand ouvert */
}

/* === ISOLATION CSS POUR ÉVITER CONFLITS === */
.xkz-chatbot-external-container {
    /* Reset de base pour éviter les interférences */
    all: initial !important;
    position: fixed !important;
    z-index: 999999 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* === ANTI-INTERFÉRENCE AVEC SITE PARENT === */
.xkz-chatbot-external-container,
.xkz-chatbot-external-container * {
    /* Empêcher l'héritage de styles du site parent */
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: initial !important;
    background: initial !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    word-spacing: normal !important;
    text-shadow: none !important;
    box-shadow: none !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
}

/* === RÉACTIVATION SÉLECTIVE DES STYLES === */
.xkz-chatbot-external-container .xkz-chatbot-widget-container,
.xkz-chatbot-external-container .xkz-chatbot-widget-container * {
    /* Réactiver les styles spécifiques du chatbot */
    all: revert !important;
}

/* === PROTECTION CONTRE LES FRAMEWORKS CSS === */
.xkz-chatbot-external-container {
    /* Protection Bootstrap */
    --bs-gutter-x: initial !important;
    --bs-gutter-y: initial !important;

    /* Protection Tailwind */
    --tw-space-x-reverse: initial !important;
    --tw-space-y-reverse: initial !important;

    /* Protection Foundation */
    --foundation-palette-primary: initial !important;
}

/* === RESPONSIVE EMBED === */
@media (max-width: 768px) {
    .xkz-chatbot-external-container.position-bottom-right,
    .xkz-chatbot-external-container.position-bottom-left {
        bottom: 15px !important;
    }

    .xkz-chatbot-external-container.position-bottom-right {
        right: 15px !important;
    }

    .xkz-chatbot-external-container.position-bottom-left {
        left: 15px !important;
    }
}

@media (max-width: 480px) {
    .xkz-chatbot-external-container.position-bottom-right,
    .xkz-chatbot-external-container.position-bottom-left {
        bottom: 10px !important;
    }

    .xkz-chatbot-external-container.position-bottom-right {
        right: 10px !important;
    }

    .xkz-chatbot-external-container.position-bottom-left {
        left: 10px !important;
    }
}

/* === MODE PLEIN ÉCRAN (mobile) === */
@media (max-width: 480px) {
    .xkz-chatbot-external-container.fullscreen-mobile {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
    }

    .xkz-chatbot-external-container.fullscreen-mobile .xkz-chatbot-window {
        width: 100% !important;
        height: 100% !important;
        border-radius: 0 !important;
        margin: 0 !important;
    }
}

/* === ACCESSIBILITÉ === */
.xkz-chatbot-external-container {
    /* Focus visible */
    --focus-ring: 0 0 0 3px rgba(0, 123, 255, 0.25) !important;
}

.xkz-chatbot-external-container *:focus {
    outline: 2px solid #007bff !important;
    outline-offset: 2px !important;
}

/* === MODE SOMBRE SYSTÈME === */
@media (prefers-color-scheme: dark) {
    .xkz-chatbot-external-container {
        /* Variables pour mode sombre si supporté */
        --chatbot-bg-dark: #1a1a1a !important;
        --chatbot-text-dark: #ffffff !important;
    }
}

/* === PRINT (masquer lors de l'impression) === */
@media print {
    .xkz-chatbot-external-container {
        display: none !important;
    }
}

/* === ANIMATION SÉCURISÉE === */
@media (prefers-reduced-motion: reduce) {
    .xkz-chatbot-external-container *,
    .xkz-chatbot-external-container *::before,
    .xkz-chatbot-external-container *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
/* ================================================================ */
/* CHATBOT WIDGET CORE - STYLES ADDITIONNELS                       */
/* ================================================================ */

.xkz-chatbot-widget-container {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    z-index: 10000 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* === BULLE PRINCIPALE === */
.xkz-chatbot-bubble {
    background: white !important;
    border-radius: 24px !important;
    padding: 16px !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 200px !important;
    max-width: 280px !important;
    transition: all 0.3s ease !important;
}

.xkz-chatbot-bubble:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

.xkz-bubble-phone-icon {
    width: 48px !important;
    height: 48px !important;
    background: linear-gradient(135deg, #007bff, #0056b3) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.xkz-phone-icon {
    width: 24px !important;
    height: 24px !important;
    color: white !important;
}

.xkz-bubble-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}

.xkz-bubble-title {
    font-weight: 600 !important;
    font-size: 15px !important;
    color: #2c3e50 !important;
    margin-bottom: 2px !important;
}

.xkz-bubble-subtitle {
    font-size: 13px !important;
    color: #7f8c8d !important;
}

/* === FENÊTRE CHATBOT === */
.xkz-chatbot-window {
    width: 380px !important;
    height: 520px !important;
    background: white !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.15) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    margin-bottom: 20px !important;
    animation: slideUp 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    transition: height 0.3s ease !important;
}

.xkz-chatbot-window.minimized {
    height: 60px !important;
}

.xkz-chatbot-window.minimized .xkz-chatbot-header {
    padding: 12px 16px !important;
}

.xkz-chatbot-window.minimized .xkz-bot-bubble-avatar {
    width: 35px !important;
    height: 35px !important;
}

.xkz-chatbot-window.minimized .xkz-header-title {
    font-size: 14px !important;
}

.xkz-chatbot-window.minimized .xkz-header-invite-message {
    font-size: 11px !important;
}

.xkz-chatbot-window.minimized .xkz-header-button {
    width: 32px !important;
    height: 32px !important;
}

@keyframes slideUp {
    from {
        opacity: 0 !important;
        transform: translateY(20px) scale(0.95) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) scale(1) !important;
    }
}

/* === HEADER SIMPLIFIÉ === */
.xkz-chatbot-header.phone-header-redesigned {
    background: linear-gradient(135deg, #007bff, #0056b3) !important;
    color: white !important;
    padding: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-radius: 20px 20px 0 0 !important;
}

.xkz-header-left-section {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    flex: 1 !important;
}

.xkz-bot-bubble-avatar {
    width: 50px !important;
    height: 50px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    transition: all 0.3s ease !important;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
    overflow: hidden !important;
}

.xkz-header-text-section {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.xkz-header-title {
    font-weight: 600 !important;
    font-size: 16px !important;
    margin: 0 !important;
}

.xkz-header-invite-message {
    font-size: 13px !important;
    opacity: 0.9 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.xkz-speaking-status, .xkz-thinking-status {
    color: rgba(255, 255, 255, 0.95) !important;
    font-weight: 500 !important;
}

.xkz-error-status {
    color: rgba(255, 200, 200, 0.9) !important;
    font-weight: 500 !important;
}

.xkz-connecting-status {
    color: rgba(255, 255, 0, 0.9) !important;
    font-weight: 500 !important;
}

.xkz-invite-text {
    color: rgba(255, 255, 255, 0.8) !important;
}

.xkz-header-right-section {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.xkz-header-button {
    width: 40px !important;
    height: 40px !important;
    background: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    border-radius: 50% !important;
    color: white !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.xkz-header-button:hover {
    background: rgba(255, 255, 255, 0.3) !important;
    transform: scale(1.1) !important;
}

.xkz-header-button.xkz-minimize-button {
    background: rgba(255, 255, 255, 0.2) !important;
}

.xkz-header-button.xkz-minimize-button:hover {
    background: rgba(255, 255, 255, 0.3) !important;
}

.xkz-header-button.xkz-hang-up-button {
    background: rgba(220, 53, 69, 0.8) !important;
}

.xkz-header-button.xkz-hang-up-button:hover {
    background: rgba(220, 53, 69, 1) !important;
    transform: scale(1.1) !important;
}

/* === ANIMATION BARRES AUDIO CONTENUES === */
.xkz-audio-bars {
    display: flex !important;
    gap: 3px !important;
    justify-content: center !important;
    align-items: center !important;
    height: 100% !important;
    width: 100% !important;
}

.xkz-audio-bar {
    width: 4px !important;
    background: white !important;
    border-radius: 2px !important;
    transition: height 0.1s ease !important;
}

.xkz-audio-bar.bar-1 {
    height: 15px !important;
    animation: audioBar1 1.2s ease-in-out infinite alternate !important;
    animation-play-state: paused !important;
}

.xkz-audio-bar.bar-2 {
    height: 22px !important;
    animation: audioBar2 1.0s ease-in-out infinite alternate !important;
    animation-play-state: paused !important;
    animation-delay: 0.1s !important;
}

.xkz-audio-bar.bar-3 {
    height: 12px !important;
    animation: audioBar3 1.4s ease-in-out infinite alternate !important;
    animation-play-state: paused !important;
    animation-delay: 0.2s !important;
}

.xkz-audio-bar.bar-4 {
    height: 18px !important;
    animation: audioBar4 1.1s ease-in-out infinite alternate !important;
    animation-play-state: paused !important;
    animation-delay: 0.3s !important;
}

.xkz-audio-bar.bar-5 {
    height: 16px !important;
    animation: audioBar5 1.3s ease-in-out infinite alternate !important;
    animation-play-state: paused !important;
    animation-delay: 0.4s !important;
}

.xkz-audio-bars.active .xkz-audio-bar {
    animation-play-state: running !important;
}

@keyframes audioBar1 {
    0% { height: 8px !important; }
    100% { height: 20px !important; }
}

@keyframes audioBar2 {
    0% { height: 12px !important; }
    100% { height: 28px !important; }
}

@keyframes audioBar3 {
    0% { height: 6px !important; }
    100% { height: 15px !important; }
}

@keyframes audioBar4 {
    0% { height: 10px !important; }
    100% { height: 24px !important; }
}

@keyframes audioBar5 {
    0% { height: 8px !important; }
    100% { height: 22px !important; }
}

/* === MESSAGES SANS ICÔNES === */
.xkz-messages-container {
    flex: 1 !important;
    padding: 16px !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    background-color:white !important;
}

.xkz-message {
    display: flex !important;
    flex-direction: column !important;
    max-width: 85% !important;
    animation: messageSlide 0.3s ease-out !important;
}

.xkz-message.user {
    align-self: flex-end !important;
}

.xkz-message.bot {
    align-self: flex-start !important;
}

@keyframes messageSlide {
    from {
        opacity: 0 !important;
        transform: translateY(10px) !important;
    }
    to {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}

.xkz-message-bubble {
    padding: 12px 16px !important;
    border-radius: 18px !important;
    word-wrap: break-word !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    margin-bottom: 4px !important;
}

.xkz-message.bot .xkz-message-bubble {
    background: white !important;
    color: #2c3e50 !important;
    border-radius: 18px 18px 18px 4px !important;
}

.xkz-message.user .xkz-message-bubble {
    background: var(--chatbot-primary) !important;
    color: white !important;
    border-radius: 18px 18px 4px 18px !important;
}

.xkz-message-time {
    font-size: 11px !important;
    color: #7f8c8d !important;
    opacity: 0.7 !important;
    padding: 0 4px !important;
}

.xkz-message.user .xkz-message-time {
    text-align: right !important;
}

.xkz-message.bot .xkz-message-time {
    text-align: left !important;
}

/* === INPUT === */
.xkz-input-section {
    padding: 16px !important;
    background: white !important;
    border-top: 1px solid #ecf0f1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.xkz-input-row {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}

.xkz-text-input {
    flex: 1 !important;
    padding: 10px 14px !important;
    border: 2px solid #ecf0f1 !important;
    border-radius: 20px !important;
    outline: none !important;
    font-size: 14px !important;
}

.xkz-text-input:focus {
    border-color: var(--chatbot-primary) !important;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1) !important;
}

.xkz-text-input:disabled {
    background: #f8f9fa !important;
    color: #6c757d !important;
}

.xkz-input-button {
    width: 40px !important;
    height: 40px !important;
    border: none !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.xkz-send-button {
    background: var(--chatbot-primary) !important;
    color: white !important;
}

.xkz-send-button:hover:not(:disabled) {
    background: var(--chatbot-primary-dark) !important;
    transform: scale(1.05) !important;
}

.xkz-send-button:disabled {
    background: #bdc3c7 !important;
    cursor: not-allowed !important;
}

.xkz-send-button.enabled {
    background: var(--chatbot-primary) !important;
}

.xkz-button-icon {
    width: 18px !important;
    height: 18px !important;
}

/* === INDICATEUR CHARGEMENT === */
.xkz-loading-indicator {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: #7f8c8d !important;
    font-size: 12px !important;
    padding: 8px 12px !important;
}

/* OPTION: Utiliser un GIF au lieu des dots */
.xkz-loading-gif {
    width: 30px !important;
    height: 30px !important;
    display: inline-block !important;
    flex-shrink: 0 !important;
}

.xkz-loading-gif img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}

/* Animation du texte de chargement */
.xkz-loading-indicator span {
    animation: loadingTextPulse 2s ease-in-out infinite !important;
    display: inline-block !important;
}

.xkz-loading-dots {
    display: flex !important;
    gap: 4px !important;
}

/* DOTS AVEC ANIMATION PULSE AMÉLIORÉE */
.xkz-loading-dot {
    width: 8px !important;
    height: 8px !important;
    background: var(--chatbot-primary) !important;
    border-radius: 50% !important;
    animation: loadingDotPulse 1.4s ease-in-out infinite !important;
}

.xkz-loading-dot:nth-child(1) {
    animation-delay: 0s !important;
}

.xkz-loading-dot:nth-child(2) {
    animation-delay: 0.2s !important;
}

.xkz-loading-dot:nth-child(3) {
    animation-delay: 0.4s !important;
}

/* Animation principale des dots - PULSE */
@keyframes loadingDotPulse {
    0%, 80%, 100% {
        transform: scale(0.8) !important;
        opacity: 0.4 !important;
    }
    40% {
        transform: scale(1.4) !important;
        opacity: 1 !important;
    }
}

/* Animation pour le texte de chargement */
@keyframes loadingTextPulse {
    0%, 100% {
        opacity: 0.5 !important;
        transform: scale(1) !important;
    }
    50% {
        opacity: 1 !important;
        transform: scale(1.02) !important;
    }
}

/* === STATUT === */
.xkz-input-status {
    padding: 4px 8px !important;
    font-size: 11px !important;
    color: #666 !important;
    text-align: center !important;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .xkz-chatbot-header.phone-header-redesigned {
        padding: 16px !important;
    }

    .xkz-bot-bubble-avatar {
        width: 45px !important;
        height: 45px !important;
    }

    .xkz-header-button {
        width: 36px !important;
        height: 36px !important;
    }

    .xkz-header-title {
        font-size: 15px !important;
    }

    .xkz-header-invite-message {
        font-size: 12px !important;
    }
}

/* MOBILE - FENÊTRE À 100% ET BULLE SIMPLIFIÉE */
@media (max-width: 480px) {
    /* Container positionné en bas à droite */
    .xkz-chatbot-widget-container {
        bottom: 10px !important;
        right: 10px !important;
    }

    /* FENÊTRE OUVERTE : 100% de la largeur et hauteur optimisée pour mobile */
    .xkz-chatbot-window {
        width: 100vw !important;
        height: calc(100vh - 100px) !important;
        max-height: calc(100vh - 100px) !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }

    .xkz-chatbot-window.full {
        height: calc(100vh - 100px) !important;
        max-height: calc(100vh - 100px) !important;
    }

    /* Limiter la hauteur du messages-container sur mobile */
    .xkz-messages-container {
        max-height: calc(100vh - 260px) !important;
        overflow-y: auto !important;
    }

    /* Header mobile optimisé */
    .xkz-chatbot-header-uniform {
        height: 80px !important;
        min-height: 80px !important;
        padding: 16px !important;
    }

    /* BULLE FERMÉE : Juste le logo, sans bordure, sans effet */
    .xkz-chatbot-widget-container .xkz-chatbot-bubble {
        min-width: 60px !important;
        max-width: 60px !important;
        width: 60px !important;
        height: 60px !important;
        padding: 0 !important;
        gap: 0 !important;
        background: transparent !important;
        border: none !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    }

    .xkz-chatbot-widget-container .xkz-chatbot-bubble:hover {
        transform: scale(1.05) !important;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2) !important;
    }

    /* Masquer le texte et le bouton sur mobile */
    .xkz-chatbot-widget-container .xkz-bubble-help-text,
    .xkz-chatbot-widget-container .xkz-bubble-action {
        display: none !important;
    }

    /* Avatar occupe tout l'espace de la bulle */
    .xkz-chatbot-widget-container .xkz-bubble-header {
        width: 100% !important;
        height: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle {
        width: 60px !important;
        height: 60px !important;
        background: white !important;
        border: none !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle img {
        width: 100% !important;
        height: 100% !important;
    }

    .xkz-chatbot-widget-container .xkz-bubble-avatar-circle .custom-icon {
        width: 35px !important;
        height: 35px !important;
    }

    /* Header adapté pour mobile */
    .xkz-chatbot-header.phone-header-redesigned {
        padding: 12px !important;
    }

    .xkz-header-left-section {
        gap: 12px !important;
    }

    .xkz-bot-bubble-avatar {
        width: 40px !important;
        height: 40px !important;
    }

    .xkz-header-button {
        width: 32px !important;
        height: 32px !important;
    }

    .xkz-header-title {
        font-size: 14px !important;
    }

    .xkz-header-invite-message {
        font-size: 11px !important;
    }
}
/* Support pour les environnements avec safe-area-inset (iPhone X et plus récents) */
@supports (padding: max(0px)) {
    @media (max-width: 480px) {
        .xkz-chatbot-window,
        .xkz-chatbot-window.full {
            height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 100px) !important;
            max-height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 100px) !important;
            padding-top: env(safe-area-inset-top) !important;
            padding-bottom: env(safe-area-inset-bottom) !important;
        }

        .xkz-messages-container {
            max-height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 280px) !important;
        }
    }
}

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