/*!*************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/overflow-fixes.css ***!
  \*************************************************************************************************************************/
/* ===== OVERFLOW FIXES CSS ===== */
/* Corrections spécifiques pour éliminer les débordements */

/* ===== RÈGLES GLOBALES ANTI-DÉBORDEMENT ===== */

/* Prévention globale des débordements */
* {
    box-sizing: border-box !important;
}

html {
    overflow-x: hidden !important;
}

body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

/* Containers principaux */
.container,
.container-fluid,
.main-content,
.documentation-container,
.file-viewer,
.documentation-section {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* ===== CORRECTIONS SPÉCIFIQUES PAR ÉLÉMENT ===== */

/* Tables responsives */
table {
    max-width: 100% !important;
    table-layout: auto !important;
    word-wrap: break-word !important;
}

.table-responsive {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

/* Wrapper pour tables non-responsive */
table:not(.table-responsive table) {
    display: block !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    max-width: 100% !important;
}

/* Code et Pre */
pre,
code {
    max-width: 100% !important;
    overflow-x: auto !important;
    word-wrap: break-word !important;
    white-space: pre-wrap !important;
    box-sizing: border-box !important;
}

.code-content,
.code-lines {
    max-width: 100% !important;
    overflow-x: auto !important;
}

/* Images responsives */
img {
    max-width: 100% !important;
    height: auto !important;
    box-sizing: border-box !important;
}

/* Iframes responsives */
iframe {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* ===== CORRECTIONS POUR DOCUMENTATION ===== */

/* Headers de documentation */
.doc-header,
.section-header,
.file-header {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Grilles de documentation */
.doc-sections,
.files-grid,
.stats-grid {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Sections individuelles */
.doc-section,
.file-item,
.stat-item {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
}

/* Navigation et breadcrumbs */
.breadcrumb-nav,
.breadcrumb {
    max-width: 100% !important;
    overflow-x: auto !important;
    box-sizing: border-box !important;
}

/* Content containers */
.content-container,
.rendered-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Corrections spécifiques pour le contenu de documentation */
.markdown-content,
.file-content,
.section-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}

/* Paragraphes et texte long */
.markdown-content p,
.rendered-content p,
.file-content p,
.section-description,
.file-description {
    max-width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
}

/* URLs et liens longs */
.markdown-content a,
.rendered-content a,
.file-path,
.breadcrumb-item a {
    max-width: 100% !important;
    word-break: break-all !important;
    overflow-wrap: break-word !important;
    display: inline-block !important;
}

/* Listes et éléments de liste */
.markdown-content ul,
.markdown-content ol,
.markdown-content li {
    max-width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}

/* Titres longs */
.markdown-content h1,
.markdown-content h2,
.markdown-content h3,
.markdown-content h4,
.markdown-content h5,
.markdown-content h6,
.section-title,
.file-title {
    max-width: 100% !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
}

/* ===== CORRECTIONS POUR HEADER ===== */

.app-header,
.header-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

.logo-section,
.nav-section {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Correction spécifique pour l'email admin */
.auth-section,
.nav-section .d-flex {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

.auth-nav-btn {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Email utilisateur dans header */
.text-muted.small strong {
    max-width: 150px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    display: inline-block !important;
}

/* ===== CORRECTIONS POUR SIDEBAR ===== */

.admin-sidebar {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

.nav-link {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    word-wrap: break-word !important;
}

/* ===== BREAKPOINTS SPÉCIFIQUES ANTI-DÉBORDEMENT ===== */

/* JioPhone 2 et ultra-compacts (240px) */
@media (max-width: 240px) {
    * {
        max-width: 240px !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    .container,
    .container-fluid {
        padding: 0.125rem !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 240px !important;
    }

    /* Header ultra-compact */
    .header-content {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.25rem !important;
        padding: 0.25rem !important;
    }

    .logo-section,
    .nav-section {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: space-between !important;
    }

    /* Email admin ultra-compact */
    .text-muted.small strong {
        max-width: 120px !important;
        font-size: 0.6rem !important;
    }

    /* Boutons ultra-compacts */
    .auth-nav-btn {
        padding: 0.25rem 0.375rem !important;
        font-size: 0.6rem !important;
        max-width: 80px !important;
    }

    .auth-nav-btn span {
        display: none !important;
    }

    .auth-nav-btn i {
        margin: 0 !important;
    }
    
    .doc-sections {
        grid-template-columns: 1fr !important;
        gap: 0.25rem !important;
    }
    
    .files-grid {
        grid-template-columns: 1fr !important;
        gap: 0.25rem !important;
    }
    
    .stats-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 0.25rem !important;
    }
    
    /* Forcer la largeur des éléments problématiques */
    .section-header,
    .file-header,
    .doc-header {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0.5rem !important;
    }
    
    /* Tables ultra-compactes */
    table {
        font-size: 0.6rem !important;
        display: block !important;
        overflow-x: auto !important;
    }
    
    th, td {
        padding: 2px 4px !important;
        min-width: 40px !important;
    }
    
    /* Code ultra-compact */
    pre, code {
        font-size: 0.6rem !important;
        padding: 0.25rem !important;
    }
    
    /* Boutons ultra-compacts */
    .btn, button {
        padding: 0.25rem 0.375rem !important;
        font-size: 0.6rem !important;
        max-width: 100% !important;
    }
}

/* Nokia Lumia et petits écrans (320px) */
@media (max-width: 320px) and (min-width: 241px) {
    * {
        max-width: 320px !important;
    }
    
    .container,
    .container-fluid {
        padding: 0.25rem !important;
        margin: 0 !important;
    }
    
    .doc-sections,
    .files-grid {
        grid-template-columns: 1fr !important;
        gap: 0.5rem !important;
    }
    
    .stats-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 0.5rem !important;
    }
    
    table {
        font-size: 0.7rem !important;
    }
    
    th, td {
        padding: 3px 6px !important;
        min-width: 50px !important;
    }
    
    pre, code {
        font-size: 0.7rem !important;
        padding: 0.375rem !important;
    }
}

/* Google Pixel 4 et écrans moyens (353px) */
@media (max-width: 353px) and (min-width: 321px) {
    * {
        max-width: 353px !important;
    }
    
    .doc-sections,
    .files-grid {
        grid-template-columns: 1fr !important;
    }
    
    .stats-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* Samsung Galaxy et iPhone (360-375px) */
@media (max-width: 375px) and (min-width: 354px) {
    * {
        max-width: 375px !important;
    }

    /* Corrections spécifiques pour iPhone débordements */
    .flex-grow-1,
    .admin-header,
    .admin-content,
    .documentation-section {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }

    .section-header,
    .breadcrumb-nav,
    .stats-bar,
    .file-tree-container,
    .tree-header,
    .tree-content {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }

    /* Containers flex problématiques */
    .d-flex.justify-content-between,
    .d-flex.align-items-center {
        width: 100% !important;
        max-width: 100% !important;
        flex-wrap: wrap !important;
        gap: 0.25rem !important;
    }

    /* Header admin spécifique */
    .admin-header.p-3 {
        padding: 0.5rem !important;
    }

    .doc-sections,
    .files-grid {
        grid-template-columns: 1fr !important;
    }

    .stats-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    table {
        font-size: 0.8rem !important;
    }

    th, td {
        padding: 4px 8px !important;
    }
}

/* Android Medium et LG Optimus (384px) */
@media (max-width: 384px) and (min-width: 376px) {
    * {
        max-width: 384px !important;
    }
    
    .doc-sections,
    .files-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Google Pixel 3 XL (393px) */
@media (max-width: 393px) and (min-width: 385px) {
    * {
        max-width: 393px !important;
    }
    
    .doc-sections,
    .files-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Nokia Lumia Landscape (520px) */
@media (max-width: 520px) and (min-width: 394px) and (max-height: 400px) {
    * {
        max-width: 520px !important;
    }
    
    .doc-sections {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .files-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .stats-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ===== CORRECTIONS POUR ÉLÉMENTS SPÉCIFIQUES ===== */

/* Correction pour les longs mots */
.section-title,
.file-name,
.doc-section h3,
.file-item h4 {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
}

/* Correction pour les URLs et chemins */
.file-path,
.breadcrumb-item,
.file-meta {
    word-break: break-all !important;
    overflow-wrap: break-word !important;
}

/* Correction pour le contenu Markdown */
.markdown-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

.markdown-content h1,
.markdown-content h2,
.markdown-content h3,
.markdown-content h4,
.markdown-content h5,
.markdown-content h6 {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

.markdown-content p,
.markdown-content li {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

.markdown-content code {
    word-break: break-all !important;
    overflow-wrap: break-word !important;
}

/* Correction pour les badges et labels */
.badge,
.label,
.tag {
    max-width: 100% !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

/* ===== CORRECTIONS D'URGENCE ===== */

/* Corrections spécifiques pour les débordements détectés */
.flex-grow-1,
.admin-header,
.admin-content,
.documentation-section,
.section-header,
.breadcrumb-nav,
.stats-bar,
.file-tree-container,
.tree-header,
.tree-content {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Correction pour les containers flex */
.d-flex.justify-content-between,
.d-flex.align-items-center {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    flex-wrap: wrap !important;
}

/* Correction pour les éléments avec padding */
.admin-header.p-3,
.section-header,
.documentation-section {
    padding-left: clamp(0.5rem, 2vw, 1rem) !important;
    padding-right: clamp(0.5rem, 2vw, 1rem) !important;
}

/* Si tout le reste échoue, forcer la largeur maximale */
@media (max-width: 520px) {
    body > *,
    .main-content > *,
    .documentation-container > *,
    .file-viewer > * {
        max-width: 100% !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }
    
    /* Forcer le word-wrap sur tous les textes */
    * {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Masquer les scrollbars horizontales indésirables */
    ::-webkit-scrollbar:horizontal {
        height: 0px !important;
    }
    
    /* Sauf pour les éléments qui en ont besoin */
    .code-content::-webkit-scrollbar:horizontal,
    .table-responsive::-webkit-scrollbar:horizontal,
    pre::-webkit-scrollbar:horizontal {
        height: 8px !important;
    }
}

/* ===== DEBUG MODE ===== */
.debug-overflow * {
    outline: 1px solid rgba(255, 0, 0, 0.3) !important;
}

.debug-overflow .overflow-detected {
    background: rgba(255, 0, 0, 0.2) !important;
    outline: 2px solid red !important;
}



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