/*==========================*\
  TABLE OF CONTENTS
  --------------------------
  Layout
  Typography
  General
  Components
  Playground <body>
  App Header <header>
  Content <main>
  Article <article>
  Editors 
  Results
  Overrides
      -CodeMirror
      -Spectrum
  webdesignplayground.io

\*==========================*/
html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

/*==========================*\
  LAYOUT
\*==========================*/
/* ------------ */
/* Mobile-first */
/* ------------ */
.playground {
    overflow: auto;
}

.header {
    float: none;
    height: 50px;
    width: 100%;
}

.site-logo {
    display: none;
}

.site-title {
    display: inline-block;
    height: 100%;
    width: 50%;
    font-size: 1rem;
}

.nav-toggle {
    display: inline-block;
    float: right;
    width: 20%;
    padding-top: .8rem;
    padding-right: 1rem;
    text-align: right;
}

.article {
    float: none;
    height: auto;
    width: 100%;
    min-width: 22rem;
    overflow-x: hidden;
    overflow-y: visible;
}

.editor-wrapper {
    float: none;
    height: 400px;
    min-height: 125px;
    width: 100%;
}

.results-wrapper {
    float: none;
    height: auto;
    width: 100%;
}

.CodeMirror {
    height: 355px;
    width: 100%;
}

.footer {
    float: none;
    height: 40px;
    width: 100%;
}

@supports (display: flex) {
    .article,
    .editor-wrapper,
    .results-wrapper {
        width: auto;
        height: auto;
    }
    .playground {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        height: 100vh;
        max-height: 100vh;
    }
    .header {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        height: 50px;
    }
    /* ---------------------------------------------------------------*/
    /* The content flex items are indented from their flex containers */
    /* ---------------------------------------------------------------*/
    .content {
        flex: 1;
        display: flex;
        flex-wrap: wrap;
        overflow-y: auto;
    }
    .article {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        min-height: 0;
    }
    .sandbox {
        width: 100%;
        display: flex;
        flex-direction: column;
        max-height: 100%;
    }
    .sandbox-editors-wrapper {
        display: flex;
        align-items: stretch;
        height: 33%;
        width: 100%;
    }
    .editor-wrapper {
        height: 100%;
        width: 100%;
    }
    .code-wrapper {
        height: calc(100% - 30px - 25px);
    }
    .editor-header {
        height: 30px;
    }
    .CodeMirror {
        width: auto;
        height: 100% !important;
    }
    .editor-footer {
        height: 25px;
    }
    .results-wrapper {
        width: 100%;
        height: 33%;
        display: flex;
    }
    .results-iframe {
        flex: 1;
    }
    .footer {
        flex: 0 0 40px;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        clear: none;
    }
    .site-title {
        flex: 3;
        height: auto;
    }
    .nav-toggle {
        flex: 0 1 6rem;
        padding-top: 0;
    }
    .sandbox-editors-wrapper {
        flex-wrap: wrap;
    }
}

/* @supports (display: flex) */
/* --------------- */
/* Everything else */
/* --------------- */
@media (min-width: 501px) {
    .app {
        min-height: 100vh;
    }
    .site-logo {
        display: inline-block;
    }
    .article {
        float: left;
        height: calc(100vh - 50px - 40px);
        width: 34%;
    }
    .editor-wrapper--html {
        float: left;
        width: 33%;
    }
    .editor-wrapper--css {
        float: left;
        width: 33%;
    }
    .CodeMirror {
        width: 32vw;
    }
    .results-wrapper {
        clear: right;
        float: left;
        height: calc(100vh - 50px - 40px - 400px);
        width: 66%;
    }
    .footer {
        clear: all;
        position: fixed;
        bottom: 0;
    }
    @supports (display: flex) and (not (display: gridd)) {
        .article,
        .editor-wrapper,
        .results-wrapper {
            width: auto;
            height: auto;
        }
        .playground {
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            height: 100vh;
            max-height: 100vh;
            min-height: 500px;
        }
        .header {
            flex: 0 0 50px;
            display: flex;
            justify-content: flex-start;
            align-items: center;
        }
        /* ---------------------------------------------------------------*/
        /* The content flex items are indented from their flex containers */
        /* ---------------------------------------------------------------*/
        .content {
            flex: 1;
            display: flex;
            flex-wrap: wrap;
            max-height: calc(100vh - 50px - 40px);
        }
        .article {
            width: 100%;
            height: auto;
            min-height: 0;
        }
        .sandbox {
            width: 100%;
            display: flex;
            flex-direction: column;
            max-height: 100%;
        }
        .sandbox-editors-wrapper {
            display: flex;
            align-items: stretch;
            height: 33%;
            width: 100%;
        }
        .editor-wrapper {
            height: 100%;
            width: 50%;
        }
        .code-wrapper {
            height: calc(100% - 30px - 25px);
        }
        .editor-header {
            height: 30px;
        }
        .CodeMirror {
            width: auto;
            height: 100% !important;
        }
        .editor-footer {
            height: 25px;
        }
        .results-wrapper {
            width: 100%;
            height: 33%;
            display: flex;
        }
        .results-iframe {
            flex: 1;
        }
        .footer {
            flex: 0 0 40px;
            display: flex;
            justify-content: flex-end;
            align-items: center;
            clear: none;
            position: static;
            bottom: auto;
        }
    }
    /* @supports (display: flex) */
    @supports (display: gridd) {
        /* ---------------------------------------------------------------*/
        /* The .content grid is 2 rows and 96 columns.
        /* Having so many columns allows for fine-tuned width adjustments
        /* of the editors and the Lessons and Results windows.
        /* ---------------------------------------------------------------*/
        .article,
        .editor-wrapper,
        .results-wrapper {
            float: none;
            clear: none;
            width: auto;
            height: auto;
        }
        .playground {
            display: grid;
            grid-template-columns: 1fr;
            grid-template-rows: 50px 1fr 40px;
            width: 100vw;
            height: 100vh;
        }
        .header {
            grid-column: 1;
            grid-row: 1;
            display: flex;
            justify-content: flex-start;
            align-items: center;
        }
        .footer {
            grid-column: 1;
            grid-row: 3;
            display: flex;
            justify-content: flex-end;
            align-items: center;
        }
        .content {
            grid-column: 1;
            grid-row: 2;
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            grid-template-rows: 1fr 1fr;
        }
        .article {
            grid-column: 1;
            grid-row: 1 / end;
            width: auto;
        }
        .sandbox {
            grid-column: 2 / end;
            grid-row: 1 / span 2;
            width: auto;
            display: grid;
            grid-template-columns: 1fr 1fr;
            grid-template-rows: 1fr 1fr;
        }
        .sandbox-editors-wrapper {
            grid-column: 1 / end;
            grid-row: 1;
            display: grid;
            grid-template-columns: repeat(64, 1fr);
            grid-template-rows: 1fr;
        }
        .editor-wrapper {
            display: flex;
            flex-direction: column;
        }
        .editor-wrapper--html {
            grid-column: 1 / span 32;
            grid-row: 1;
        }
        .editor-wrapper--css {
            grid-column: 33 / end;
            grid-row: 1;
        }
        .editor-header {
            flex-grow: 0;
        }
        .CodeMirror {
            flex-grow: 1;
            width: auto;
        }
        .editor-footer {
            flex-grow: 0;
        }
        .results-wrapper {
            grid-column: 1 / end;
            grid-row: 2;
        }
    }
    /* @supports (display: grid) */
}

/* @supports (min-width: 45em) */
@media (min-width: 45rem) {
    @supports (display: flex) and (not (display: gridd)) {
        /* ---------------------------------------------------------------*/
        /* The content flex items are indented from their flex containers */
        /* ---------------------------------------------------------------*/
        .content {
            flex-wrap: nowrap;
        }
        .article {
            width: 33%;
        }
        .sandbox {
            width: 67%;
        }
        .sandbox-editors-wrapper {
            height: 50%;
        }
        .results-wrapper {
            width: auto;
            height: 50%;
        }
    }
    /* @supports (display: flex) */
}

/* @supports (min-width: 45em) */
/*==========================*\
  TYPOGRAPHY
\*==========================*/
html, body {
    color: #444;
    font-family: 'Source Sans Pro', Verdana, Helvetica, sans-serif;
    font-size: 1em;
    line-height: 1.3;
    overflow: hidden;
}

a,
a:visited {
    color: inherit;
}

strong, b {
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
}

em, i {
    font-family: 'Source Sans Pro Italic', Verdana, Helvetica, sans-serif;
}

code {
    background-color: #fcfcfc;
    color: #444;
    font-family: 'Source Code Pro', "Courier New", monospace;
    font-size: 1.125rem;
    border: 1px solid #ccc;
    border-radius: 5%;
    padding: 0 .25rem;
}

mark {
    background-color: yellow;
}

pre {
    font-family: 'Source Code Pro', Courier, monospace;
    white-space: nowrap;
    overflow-x: auto;
}

.playground-select {
    font-family: 'Source Sans Pro', Verdana, Helvetica, sans-serif;
    font-size: 3em;
}

ol > li {
    padding-top: .5em;
}

ul > li {
    padding-bottom: .5em;
}

/*==========================*\
  GENERAL RULES
\*==========================*/
.clearme:after {
    content: "";
    display: block;
    clear: both;
}

/*==========================*\
  COMPONENTS
\*==========================*/
/* ------- */
/* Buttons */
/* ------- */
.btn {
    margin-left: .5rem;
    background-color: #fff;
    border: 1px solid #000;
    border-radius: 5px;
    color: #e8e8e8;
    letter-spacing: .5px;
}

.btn:hover {
    background-color: #ccc;
    color: #333;
}

.btn.disabled {
    background-color: #ddd;
}

.btn-link {
    margin-top: 1rem;
    padding: 1rem;
    text-decoration: none;
}

.btn:focus,
.btn:active:focus {
    outline: none;
}

.btn-icon {
    margin: 0 .5rem 0 0;
    padding-top: .4rem;
    vertical-align: baseline;
    width: 2rem;
}

.run-triangle {
    border-top: 7px solid transparent;
    border-right: 0px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 12px solid #f8d030;
    display: inline-block;
    height: 0px;
    width: 0px;
    margin-left: .25rem;
}

/* ---- */
/* Tabs */
/* ---- */
.tool-tabs {
    list-style-type: none;
    border-bottom: 1px solid #ccc;
    padding-left: 1rem;
}

.tool-tab {
    display: inline-block;
    border-top: 1px solid #ccc;
    border-right: 1px solid #ccc;
    border-bottom: none;
    border-left: 1px solid #ccc;
    border-radius: 1rem 1rem 0 0;
    margin-right: -3px;
    padding: .5rem 1rem;
    background-color: white;
    cursor: pointer;
}

.tool-tab.active {
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
    cursor: default;
}

.tool-box {
    display: none;
    opacity: 1;
    transition: opacity 1.5s ease;
}

.tool-box.active {
    display: block;
    animation: fade-in 1s;
}

.tool-related-tools {
    display: none;
    margin-top: 1rem;
    opacity: 1;
}

.tool-related-tools.active {
    display: block;
    animation: fade-in 1s;
}

.related-tools-list {
    list-style-type: none;
    padding-left: 0;
}

.related-tools-list li a {
    color: #d93b30;
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
    font-size: 1.1rem;
    text-decoration: none;
}

.related-tools-list li a:hover {
    color: #f8d030;
    text-decoration: underline;
    text-decoration-skip: ink;
    text-decoration-skip-ink: auto;
}

.user-sandbox-thumbnail-wrapper {
    position: relative;
}

.user-sandbox-thumbnail-wrapper > a:last-child {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-block;
    width: 300px;
    height: 256px;
    z-index: 5;
}

.user-sandbox-thumbnail,
.related-tools-iframe {
    float: left;
    width: 1200px;
    height: 1024px;
    border: none;
    margin-bottom: -750px;
    transform: scale(0.25);
    transform-origin: 0 0;
}

.user-sandbox-thumbnail {
    border: 2rem outset lightgray;
}

@keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* ------------ */
/* Modal Dialog */
/* ------------ */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20;
    width: 100%;
    height: 100%;
    background-color: black;
    opacity: .5;
}

.modal-dialog {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20;
    padding: 1rem;
    height: auto;
    width: auto;
    border-radius: .25rem;
    box-shadow: .25rem .25rem .25rem #333;
    background-color: #ccc;
}

.modal-content {
    padding: .5rem;
    color: #333;
}

.modal-title {
    font-size: 1.5rem;
    color: #a30f0f;
    text-align: center;
}

.modal-message {
    padding: 1rem;
    font-size: 1.25rem;
    color: #333;
}

.modal-buttons {
    text-align: center;
}

.modal-accept {
    border-width: 2px;
    margin-right: 2rem;
    padding: .5rem;
}

.modal-cancel {
    padding: .5rem;
}

/* ------*/
/* Table */
/* ------*/
.table-wrapper {
    display: table;
    border-spacing: 2rem .5rem;
}

.table-header {
    display: table-header-group;
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
}

.table-row {
    display: table-row;
}

.table-cell {
    display: table-cell;
}

/*==========================*\
  PLAYGROUND <body>
\*==========================*/
.playground {
    margin: 0;
    padding: 0;
}

/*==========================*\
  APP HEADER <header>
\*==========================*/
.header {
    z-index: 15;
    background-color: #f8d030;
}

.site-title {
    margin: 0;
    padding: .4rem 0 0 .75rem;
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1;
}

.site-logo {
    padding-top: .25rem;
}

.site-title--o {
    display: inline-block;
    text-decoration: underline;
    text-decoration-skip: ink;
    text-decoration-skip-ink: auto;
}

.nav-sandbox-save {
    display: inline-block;
    text-align: right;
    vertical-align: top;
}

.nav-sandbox-save-wrapper {
    display: none;
}

@media (min-width: 30rem) {
    .site-title a {
        font-size: 1.25rem;
    }
    .site-title--o {
        font-size: .6em;
        transform: translateY(-0.35rem);
    }
}

@media (min-width: 45rem) {
    .site-title a {
        font-size: 1.25rem;
    }
    .site-title--o {
        font-size: .6em;
        transform: translateY(-0.45rem);
    }
    @supports (display: flex) {
        .site-title {
            flex: 3 1;
        }
        .nav-sandbox-save {
            flex: 3 1;
            margin-right: 1rem;
        }
        .nav-toggle {
            flex: 0 1 6rem;
            padding-top: 0;
        }
    }
}

@media (min-width: 55rem) {
    .site-title a {
        font-size: 1.5rem;
    }
    .site-title--o {
        font-size: .6em;
        transform: translateY(-0.45rem);
    }
}

@media (min-width: 65rem) {
    .site-title a {
        font-size: 1.75rem;
    }
    .site-title--o {
        font-size: .6em;
        transform: translateY(-0.45rem);
    }
    @supports (display: flex) {
        .nav-sandbox-save {
            flex: 1 1 20rem;
            margin-right: 2rem;
        }
    }
}

/*
.article,
.sandbox {
    display: none;
}
*/
.editor-wrapper--js {
    display: none;
}

/*==========================*\
  CONTENT <main>
\*==========================*/
/*==========================*\
  ARTICLE NAVIGATION <nav>
\*==========================*/
/* ------------------------- */
/* Article Header Navigation */
/* ------------------------- */
.article-nav {
    display: none;
    top: 0;
    height: 7rem;
    margin: .5rem;
    border-bottom: 1px solid #ddd;
}

.article-nav--container {
    width: 100%;
}

.ui-selectmenu-button.ui-button {
    width: 98% !important;
}

.ui-selectmenu-text {
    font-size: .9rem;
}

.article-nav--item {
    width: 100%;
    padding-top: 0;
    padding-right: .5rem;
}

@supports (display: flex) {
    .article-nav {
        display: flex;
        flex-direction: column;
    }
    .article-nav--container {
        flex: 1;
    }
    .article-nav--item {
        flex: 1;
        padding: 0;
        display: flex;
        align-items: flex-start;
    }
    .article-nav--item-left {
        flex: 1;
        text-align: left;
    }
    .article-nav--item-right {
        flex: 1;
        text-align: right;
    }
}

.article-nav-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 2rem;
    margin: 0 .5rem 0 0;
    padding: 0 .25rem 0 .25rem;
    opacity: 1;
    cursor: pointer;
}

.article-nav-button:nth-child(2) {
    text-align: end;
}

.article-nav-button.disabled {
    opacity: .4;
    cursor: not-allowed;
}

.article-nav-button img {
    display: inline-block;
    height: 1rem;
    width: 1.25rem;
    margin: .5rem .25rem;
    vertical-align: middle;
}

/*==========================*\
  ARTICLE <article>
\*==========================*/
.article {
    padding: 0 1rem 40px 1rem;
    font-size: 1rem;
    overflow-y: auto;
}

.article-surtitle {
    padding-left: .5rem;
    margin: 0;
    font-size: 1.25em;
}

.article-title {
    padding: 0 .5rem;
    margin: .5rem 0 0 0;
    font-size: 1.75em;
}

.article-subtitle {
    padding: 0 .5rem 0 .5rem;
    margin: 0 0 1rem 0;
    font-size: 1.5em;
}

.article-text {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
    font-size: 1.25rem;
}

.article-heading {
    margin: 1rem 0;
    font-size: 1.5rem;
    font-weight: bold;
}

.article-code {
    margin-top: .5rem;
    background-color: #f5f5f5;
    white-space: pre-line;
    overflow-x: auto;
    overflow-y: hidden;
}

.article-code--html {
    border: 1px solid #1dafec;
    box-shadow: 1px 1px 1px #333;
    margin-top: .5rem;
    font-family: 'Source Code Pro', Courier, monospace;
    background-color: #f5f5f5;
    white-space: pre;
}

.article-code--html::before {
    content: 'HTML';
    display: block;
    margin-bottom: .5rem;
    padding: .25rem .5rem;
    border-bottom: 1px solid #1dafec;
    color: #1dafec;
    font-weight: bold;
    background-color: #f4fbfe;
}

.article-code--html-footer {
    margin-top: .5rem;
    padding: .5rem;
    border: 1px solid #1dafec;
    background-color: #f4fbfe;
    color: #1dafec;
    font-weight: bold;
    text-align: right;
}

.article-code--css {
    border: 1px solid #ea2c93;
    box-shadow: 1px 1px 1px #333;
    font-family: 'Source Code Pro', Courier, monospace;
    background-color: #f5f5f5;
    white-space: pre;
}

.article-code--css::before {
    content: 'CSS';
    display: block;
    margin-bottom: .5rem;
    padding: .25rem .5rem;
    border-bottom: 1px solid #ea2c93;
    color: #ea2c93;
    font-weight: bold;
    background-color: #fef7fa;
}

.article-code--css-footer {
    margin-top: .5rem;
    padding: .5rem;
    border-top: 1px solid #ea2c93;
    background-color: #fef7fa;
    color: #ea2c93;
    font-weight: bold;
    text-align: right;
}

.article-code--js {
    border: 1px solid #2b4521;
    box-shadow: 1px 1px 1px #333;
    font-family: 'Source Code Pro', Courier, monospace;
    background-color: #f5f5f5;
    white-space: pre;
}

.article-code--js::before {
    content: 'JavaScript';
    display: block;
    margin-bottom: .5rem;
    padding: .25rem .5rem;
    border-bottom: 1px solid #2b4521;
    color: #2b4521;
    font-weight: bold;
    background-color: #d8e9d2;
}

.article-code--js-footer {
    margin-top: .5rem;
    padding: .5rem;
    border-top: 1px solid #2b4521;
    background-color: #d8e9d2;
    color: #2b4521;
    font-weight: bold;
    text-align: right;
}

.article-code-wrapper {
    display: block;
    font-size: .9rem;
    padding-left: .5rem;
    padding-right: .5rem;
    overflow-x: auto;
    overflow-y: hidden;
}

.article-code--tag {
    color: #1dafec;
}

.article-code--property {
    color: #ea2c93;
}

.article-code--copy-button {
    margin-right: .5rem;
    padding: .5rem .75rem;
    font-size: 1rem;
}

.article-sidebar {
    margin: 1rem .5rem 1rem .5rem;
    padding: 0.5em;
    background-color: #f5f5f5;
    border-radius: .75rem;
}

.article-sidebar--note {
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
    color: #1c4587;
    /* dark blue */
}

.article-sidebar--tip {
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
    color: #69a64e;
}

.article-sidebar--beware {
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
    color: red;
}

.article-show-answer {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #999;
    width: 100%;
}

.article-show-answer-button-wrapper {
    margin: 1rem;
    text-align: center;
}

.article-show-answer-button {
    padding: .5rem;
}

.article-answer-text {
    display: block;
    margin-top: 1rem;
    opacity: 0;
    transition: opacity .5s ease-out;
}

.article-answer-text.active {
    opacity: 1;
}

.article-show-it--button {
    margin-left: 0;
    padding: .5rem;
}

.article-show-it--progress,
.article-show-it--progress1,
.article-show-it--progress2 {
    margin-top: 1rem;
}

.article-control-label {
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
}

.article-control-label:not:first-child {
    margin-top: 1rem;
}

.article-text-box {
    height: 2rem;
    width: 2.5rem;
    margin-left: .5rem;
}

.article-select,
.tool-select {
    margin-left: .5em;
    font-size: 1rem;
}

.article-toc {
    list-style-type: none;
}

/* ----- */
/* Tools */
/* ----- */
.tool-box {
    padding: 0 1rem;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.tool-header {
    color: #333;
    margin-top: 0;
    margin-left: 0;
    width: auto;
}

.tool-heading {
    font-size: 1.5rem;
}

.tool-wrapper {
    margin-top: 1rem;
}

.tool-label {
    margin-top: 1rem;
    margin-bottom: .5rem;
    padding-right: 1rem;
    font-family: 'Source Sans Pro Bold', Verdana, Helvetica, sans-serif;
}

.tool-label:not(first-child) {
    margin-top: 1.5rem;
}

.tool-controls-wrapper {
    margin-left: 2rem;
}

.tool-radio {
    display: block;
    margin-top: .25rem;
}

.tool-radio-inline {
    display: inline-block;
    margin: .25rem .5rem 0;
}

.tool-text {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    font-weight: 300;
}

.tool-text-box {
    width: 3em;
}

.tool-control-wrapper {
    margin-bottom: 1rem;
}

.tool-control-addon {
    display: inline-block;
    border: 1px solid #aaa;
    padding: .25rem;
    font-size: .9rem;
    background-color: #eee;
    vertical-align: bottom;
}

@supports (display: flexy) {
    .tool-wrapper {
        display: flex;
        align-items: center;
    }
    .tool-label {
        flex: 1;
        margin: 0;
        padding-left: 0;
        font-weight: bold;
    }
    .tool-control {
        flex: 6;
    }
}

/*==========================*\
  SANDBOX
\*==========================*/
.editor-wrapper {
    border: 1px solid #ccc;
    background-color: #f5f5f5;
}

.editor-header {
    height: 30px;
    padding: 0 0 .1rem 1rem;
    font-size: 1.1rem;
    font-weight: bold;
    letter-spacing: .05rem;
}

.editor-footer {
    height: 25px;
    padding: 0 0 .1rem 0rem;
    font-size: 1.1rem;
    font-weight: bold;
    letter-spacing: .05rem;
}

.editor-resize-button {
    border: none;
    padding: .4rem 0 0 .25rem;
    font-size: 1.5rem;
    line-height: .75;
    color: #1dafec;
    background-color: #f4fbfe;
}

.editor-title {
    display: inline-block;
    width: 50%;
    margin: .5rem 0 0 0;
    text-align: left;
}

.editor-toggle {
    display: inline-block;
    width: 45%;
    text-align: left;
    vertical-align: top;
}

.editor-menu {
    position: absolute;
    top: 30px;
    z-index: -1;
    padding: 0;
    opacity: 0;
    transition: opacity .5s ease-out;
}

.editor-menu.active {
    opacity: 1;
    z-index: 10;
}

.editor-menu-list {
    padding: 0 1rem;
    list-style-type: none;
    cursor: pointer;
}

.editor-menu-item {
    width: 100%;
    padding: .33rem .5rem 0;
}

.editor-menu-item.disabled {
    cursor: not-allowed;
}

.editor-menu-copied {
    display: inline-block;
    margin: .75rem 0 0 .5rem;
    font-size: .9rem;
    opacity: 0;
}

/* ------------------ */
/* Editor Menu Toggle */
/* ------------------ */
.editor-toggle {
    cursor: pointer;
}

.editor-toggle-hamburger {
    display: inline-block;
    vertical-align: text-top;
    width: 15px;
    height: 15px;
    z-index: 10;
}

/*==========================*\
  SANDBOX HTML EDITOR
\*==========================*/
.editor-header--html,
.editor-footer--html,
.editor-wrapper--html {
    color: #1dafec;
    background-color: #f4fbfe;
}

.editor-wrapper--html .CodeMirror-gutter-background.CodeMirror-activeline-gutter {
    background-color: #f4fbfe;
}

.editor-wrapper--html .CodeMirror-gutters {
    background-color: #f4fbfe !important;
}

.editor-menu--html {
    background-color: #f4fbfe;
    border-right: 1px solid #1dafec;
    border-bottom: 1px solid #1dafec;
    box-shadow: 1px 1px 1px #1dafec;
}

.editor-menu--html .editor-menu-item:hover {
    background-color: #1dafec;
    color: #f4fbfe;
}

.editor-menu--html .editor-menu-item.disabled:hover {
    background-color: #f4fbfe;
    color: #1dafec;
}

.editor-toggle-hamburger-line--html {
    display: block;
    height: 3px;
    margin-top: 3px;
    background-color: #1dafec;
    opacity: 1;
    transition: background-color .5s ease-in, opacity .5s ease-in, transform .5s ease-out;
}

.editor-toggle-hamburger-line--html:nth-child(1).active {
    transform: rotate(45deg) translate(4px, 3px);
}

.editor-toggle-hamburger-line--html:nth-child(2).active {
    opacity: 0;
}

.editor-toggle-hamburger-line--html:nth-child(3).active {
    transform: rotate(-45deg) translate(5px, -5px);
}

/*==========================*\
  SANDBOX CSS EDITOR
\*==========================*/
.editor-header--css,
.editor-footer--css,
.editor-wrapper--css {
    color: #ea2c93;
    background-color: #fef7fa;
}

.editor-wrapper--css .CodeMirror-gutter-background.CodeMirror-activeline-gutter {
    background-color: #fef7fa;
}

.editor-wrapper--css .CodeMirror-gutters {
    background-color: #fef7fa !important;
}

.editor-menu--css {
    background-color: #fef7fa;
    border-right: 1px solid #ea2c93;
    border-bottom: 1px solid #ea2c93;
    box-shadow: 1px 1px 3px #ea2c93;
}

.editor-menu--css .editor-menu-item:hover {
    background-color: #ea2c93;
    color: #fef7fa;
}

.editor-menu--css .editor-menu-item.disabled:hover {
    background-color: #fef7fa;
    color: #ea2c93;
}

.editor-toggle-hamburger-line--css {
    display: block;
    height: 3px;
    margin-top: 3px;
    background-color: #ea2c93;
    opacity: 1;
    transition: background-color .5s ease-in, opacity .5s ease-in, transform .5s ease-out;
}

.editor-toggle-hamburger-line--css:nth-child(1).active {
    transform: rotate(45deg) translate(4px, 3px);
}

.editor-toggle-hamburger-line--css:nth-child(2).active {
    opacity: 0;
}

.editor-toggle-hamburger-line--css:nth-child(3).active {
    transform: rotate(-45deg) translate(5px, -5px);
}

/*==========================*\
  SANDBOX JS EDITOR
\*==========================*/
.editor-header--js,
.editor-footer--js,
.editor-wrapper--js {
    color: #2b4521;
    background-color: #d8e9d2;
}

.editor-wrapper--js .CodeMirror-gutter-background.CodeMirror-activeline-gutter {
    background-color: #d8e9d2;
}

.editor-wrapper--js .CodeMirror-gutters {
    background-color: #d8e9d2 !important;
}

.editor-menu--js {
    background-color: #d8e9d2;
    border-right: 1px solid #2b4521;
    border-bottom: 1px solid #2b4521;
    box-shadow: 1px 1px 3px #2b4521;
}

.editor-menu--js .editor-menu-item:hover {
    background-color: #2b4521;
    color: #d8e9d2;
}

.editor-menu--js .editor-menu-item.disabled:hover {
    background-color: #d8e9d2;
    color: #2b4521;
}

.editor-toggle-hamburger-line--js {
    display: block;
    height: 3px;
    margin-top: 3px;
    background-color: #2b4521;
    opacity: 1;
    transition: background-color .5s ease-in, opacity .5s ease-in, transform .5s ease-out;
}

.editor-toggle-hamburger-line--js:nth-child(1).active {
    transform: rotate(45deg) translate(4px, 3px);
}

.editor-toggle-hamburger-line--js:nth-child(2).active {
    opacity: 0;
}

.editor-toggle-hamburger-line--js:nth-child(3).active {
    transform: rotate(-45deg) translate(5px, -5px);
}

/*==========================*\
  SANDBOX RESULTS
\*==========================*/
.results-wrapper {
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
}

.results {
    width: 100%;
    height: 100%;
    border-width: 0;
    overflow: auto;
}

/*==========================*\
  APP FOOTER
\*==========================*/
.footer {
    background-color: #f8d030;
}

/*==========================*\
  GENERAL FORM STYLES
\*==========================*/
.form-wrapper {
    margin-bottom: 1rem;
    max-width: 400px;
}

.control-wrapper {
    flex: 1;
    margin-top: 1rem;
}

.form-control {
    height: 2rem;
    width: 100%;
}

textarea.form-control {
    height: auto;
    width: 100%;
}

.form-control[name='password'] {
    margin-bottom: .25rem;
}

label {
    display: block;
    margin-bottom: .2rem;
}

.label-horizontal {
    display: inline;
    margin-left: .25rem;
}

input[type='checkbox'] {
    margin-left: 0;
    height: auto;
    width: auto;
}

.form-wrapper button {
    margin: 1rem 1rem 1rem 0;
}

.error-message {
    display: none;
    color: red;
}

.form-message {
    display: none;
}

.error {
    border-color: rgba(255, 0, 0, 0.5);
    box-shadow: 0 0 10px 2px rgba(255, 0, 0, 0.8);
}

input:valid {
    border-color: lightgrey;
    box-shadow: none;
}

/*==========================*\
  THIRD-PARTY OVERRIDES
\*==========================*/
/* ---------- */
/* Codemirror */
/* ---------- */
.CodeMirror {
    background-color: #ffffff;
    color: #222;
    line-height: 1.4375;
    overflow-y: auto;
    overflow-x: hidden !important;
}

.cm-comment {
    color: #75787b;
}

.cm-keyword, .cm-property {
    color: #1d75b3 !important;
}

.cm-atom, .cm-number {
    color: #75438a;
}

.cm-node, .cm-tag {
    color: #1dafec !important;
}

.cm-string {
    color: #b35e14;
}

.cm-variable, .cm-qualifier {
    color: #047d65;
}

.cm-s-base16-light span.cm-string {
    color: #000 !important;
}

.cm-error {
    background-color: #f5b7b8 !important;
}

/* Editor styling */
.CodeMirror-gutters {
    border: none;
    border-right: 10px solid transparent;
    background-color: transparent;
}

.CodeMirror-linenumber {
    padding: 0;
    color: #e0e2e5;
}

.CodeMirror-guttermarker {
    color: #1d75b3;
}

.CodeMirror-guttermarker-subtle {
    color: #e0e2e5;
}

.CodeMirror-cursor {
    width: auto;
    border: 0;
    background: rgba(155, 157, 162, 0.37);
    z-index: 1;
}

/* --------- */
/* jQuery UI */
/* --------- */
.ui-tooltip {
    box-shadow: 3px 3px 6px #999 !important;
    font-size: .9rem !important;
}

.ui-icon-info {
    margin-top: -1rem !important;
    margin-left: .25rem !important;
}

/* -------- */
/* Spectrum */
/* -------- */
.sp-container {
    z-index: 1;
}

.sp-input {
    font-size: 11.5px !important;
    padding: 4px 0 4px 1px;
}

/* ---------------------- */
/* webcodingplayground.io */
/* ---------------------- */
.example-select-wrapper {
    margin: 1rem .5rem;
}

.example-select-label {
    display: inline-block;
    min-width: 8rem;
    font-size: 1rem;
    font-weight: bold;
}

.example-select {
    width: 100%;
    font-size: .9rem;
}

/* ---------------------- */
/* webdesignplayground.io */
/* ---------------------- */
/*==========================*\
  FONTS
\*==========================*/
@font-face {
    font-family: 'MuseoSlab-500';
    src: url("/fonts/33407A_0_0.woff2") format("woff2"), url("/fonts/33407A_0_0.woff") format("woff");
}

@font-face {
    font-family: 'Source Code Pro';
    src: url("/fonts/sourcecodepro-regular-webfont.woff2") format("woff2"), url("/fonts/sourcecodepro-regular-webfont.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Source Sans Pro Bold';
    src: url("/fonts/sourcesanspro-bold-webfont.woff2") format("woff2"), url("/fonts/sourcesanspro-bold-webfont.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Source Sans Pro Bold Italic';
    src: url("/fonts/sourcesanspro-bolditalic-webfont.woff2") format("woff2"), url("/fonts/sourcesanspro-bolditalic-webfont.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Source Sans Pro Italic';
    src: url("/fonts/sourcesanspro-italic-webfont.woff2") format("woff2"), url("/fonts/sourcesanspro-italic-webfont.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Source Sans Pro';
    src: url("/fonts/sourcesanspro-regular-webfont.woff2") format("woff2"), url("/fonts/sourcesanspro-regular-webfont.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}

/*==========================*\
  GENERAL STYLES
\*==========================*/
body {
    color: #4c3e01;
}

/*==========================*\
  LAYOUT OVERRIDES
\*==========================*/
@media (min-width: 45rem) {
    @supports (display: flex) {
        .article {
            width: 33%;
        }
        .editor-wrapper {
            width: 50%;
            min-width: 40px;
        }
        .sandbox-editors-wrapper {
            flex-wrap: nowrap;
        }
    }
}

/*==========================*\
  COMPONENTS
\*==========================*/
/* ------- */
/* Buttons */
/* ------- */
.btn {
    background-color: #181818;
    border: 1px solid #181818;
    color: #f8f8f8;
}

.btn:hover {
    background-color: #181818;
    color: #ffde5c;
}

.btn.disabled {
    background-color: #666;
    color: #ccc;
}

.btn-group button {
    height: 2rem;
    width: 2rem;
    margin: 0 -.2rem 0 0;
}

.btn-group button.active {
    box-shadow: inset 0 3px 5px #999;
    background-color: #ffe98f;
    background-image: -webkit-linear-gradient(top, #ffde5c 0%, #ffe98f 100%);
    background-image: linear-gradient(to bottom, #ffde5c 0%, #ffe98f 100%);
}

.cancel-button {
    background-color: #fff5cc;
    background-image: -webkit-linear-gradient(top, #ffe98f 0%, #fff5cc 100%);
    background-image: linear-gradient(to bottom, #fff5cc 0%, #ffe98f 100%);
}

/* -------- */
/* Tooltips */
/* -------- */
.tooltip {
    position: relative;
}

.tooltip::before {
    content: attr(data-tooltip);
    position: absolute;
    top: -150%;
    left: 0;
    z-index: 11;
    height: 1.5em;
    padding: 0 .5em;
    white-space: nowrap;
    font-family: "Source Sans Pro", sans-serif;
    font-size: .9rem;
    line-height: 1.5em;
    color: black;
    background-color: #ffde5c;
    background-image: -webkit-linear-gradient(top, #ffe98f 0%, #ffde5c 100%);
    background-image: linear-gradient(to bottom, #ffe98f 0%, #ffde5c 100%);
    visibility: hidden;
}

.tooltip:hover::before {
    visibility: visible;
}

.tooltip::before {
    border: 1px solid #ae8c04;
    box-shadow: 1px 1px 1px #4c3e01;
    color: #4c3e01;
}

/* ---- */
/* Tabs */
/* ---- */
.tool-tabs {
    border-color: #f8d030;
}

.tool-tab {
    border-color: #ae8c04;
    color: #ae8c04;
}

.tool-tab.active {
    border-color: #4c3e01;
    background-color: #f8d030;
    color: #4c3e01;
}

/*==========================*\
  APP HEADER <header>
\*==========================*/
.header {
    border-bottom: 2px solid #ae8c04;
    background-color: #f8d030;
}

.site-logo {
    margin-left: .75rem;
}

.site-title a {
    color: #4c3e01;
    font-family: "MuseoSlab-500";
    text-decoration: none;
}

.header-buttons--sandbox {
    margin-right: 1rem;
}

.header-button {
    height: calc(50px * .7);
    margin-left: .2rem;
    padding: 0 .25rem;
    font-size: .75rem;
}

@media (min-width: 501px) {
    .header-button {
        margin-left: .25rem;
        padding: 0 .5rem;
        font-size: .9rem;
    }
}

/*          -----------------------          */
/* ======== Header Sandbox controls ======== */
/*          -----------------------          */
.nav-sandbox-title-label {
    display: inline-block;
    margin-right: .5rem;
    font-size: 1.1rem;
    font-weight: bold;
    color: #4c3e01;
}

input.nav-sandbox-title-textbox[type="text"] {
    display: none;
    width: 1rem;
    font-family: 'Source Sans Pro', Verdana, Helvetica, sans-serif;
    background-color: #ffde5c;
}

.nav-sandbox-title-display {
    display: inline-block;
    width: auto;
    font-size: 1.1rem;
}

.nav-sandbox-title-edit {
    display: inline-block;
    height: 1.25rem;
    width: 1.25rem;
    margin-left: .5rem;
    color: #ae8c04;
    cursor: pointer;
}

.nav-button {
    height: calc(50px - 1rem);
}

/*          ------------------          */
/* ======== Off-canvas results ======== */
/*          ------------------          */
.ajax-result {
    position: absolute;
    top: 0;
    left: calc(100vw / 2 - 50px);
    z-index: 10;
    width: 8rem;
    height: auto;
    border-radius: 0 0 7px 7px;
    font-size: .9rem;
    background-color: white;
    text-align: center;
    overflow-y: auto;
    opacity: 0;
    transform: translate3d(100vw, -100vh, 0);
}

.ajax-result.active {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition: opacity .5s ease-out, transform .5s ease-out;
}

/*          ----------------          */
/* ======== Off-canvas menus ======== */
/*          ----------------          */
.nav-menu {
    position: absolute;
    top: 50px;
    left: 0;
    top: 50px;
    z-index: 10;
    width: 100vw;
    height: calc(100vh - 50px);
    font-size: .9rem;
    background-color: #f8f8f8;
    color: #181818;
    text-align: center;
    overflow-y: auto;
    visibility: hidden;
    opacity: 0;
    transition: opacity .5s ease-out;
}

.nav-menu.active {
    opacity: 1;
    visibility: visible;
    transition: opacity .5s ease-out;
}

.nav-menu-slice {
    display: inline-block;
    vertical-align: top;
    margin-right: 5rem;
    text-align: left;
}

.nav-menu-slice--chapters {
    width: 23rem;
}

.nav-menu-slice--other {
    width: 12rem;
}

.nav-menu-header {
    width: 100%;
    padding-top: 1.5rem;
    color: #181818;
}

.nav-menu-heading {
    margin-bottom: 0;
}

.nav-menu-list {
    padding-left: 0;
    margin: 0;
    list-style-type: none;
    position: relative;
}

.nav-menu-list--sandbox li {
    transition-delay: .7s;
}

.nav-menu-item {
    display: block;
    width: 100%;
    padding: .5em;
    cursor: pointer;
}

.nav-menu-item:focus,
.nav-submenu-item:focus {
    outline: 2px dotted #4c3e01;
}

.nav-menu-item.disabled:hover {
    background: #ae8c04;
    cursor: not-allowed;
}

.nav-menu-item--chapter::after {
    content: '\00a0\00a0\02304';
}

.nav-submenu {
    list-style-type: none;
    display: none;
    z-index: 15;
    padding-left: 1.5rem;
    cursor: pointer;
    opacity: 0;
    transition: opacity 2.5s ease-in;
}

.nav-submenu.active {
    opacity: 1;
    display: block;
}

.nav-submenu-item code {
    color: #f5f5f5;
}

.nav-menu-item:hover,
.nav-submenu-item:hover {
    background: rgba(0, 0, 0, 0.15);
    color: #4c3e01;
}

/*          ----------------------          */
/* ======== Off-canvas menu toggle ======== */
/*          ----------------------          */
.nav-toggle {
    cursor: pointer;
}

.nav-toggle-hamburger {
    display: inline-block;
    vertical-align: middle;
    width: 25px;
    height: 25px;
    cursor: pointer;
    z-index: 10;
}

.nav-toggle-hamburger:focus {
    outline: none;
}

.nav-toggle-hamburger-line {
    display: block;
    height: 4px;
    margin-top: 4px;
    background-color: #4c3e01;
    opacity: 1;
    transition: background-color .5s ease-in, opacity .5s ease-in, transform .5s ease-out;
}

.nav-toggle-hamburger-line:nth-child(1).active {
    transform: rotate(45deg) translate(7px, 6px);
}

.nav-toggle-hamburger-line:nth-child(2).active {
    opacity: 0;
}

.nav-toggle-hamburger-line:nth-child(3).active {
    transform: rotate(-45deg) translate(5px, -5px);
}

.nav-toggle-text {
    display: none;
    vertical-align: bottom;
    padding-right: .4rem;
    color: #4c3e01;
    font-size: .9rem;
    font-weight: bold;
    letter-spacing: .05rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color .5s ease-in;
}

/*==========================*\
  ARTICLE <article>
\*==========================*/
.article-surtitle {
    color: #ae8c04;
}

.article-title,
.article-subtitle {
    color: #4c3e01;
}

.article-sidebar {
    background-color: #fff5cc;
}

.article-show-it--button {
    margin-left: 0;
}

.article-control-label {
    color: #ae8c04;
}

/*          -----          */
/* ======== Tools ======== */
/*          -----          */
.related-tools-list li a {
    color: #4c3e01;
}

.related-tools-list li a:hover {
    color: #f8d030;
}

/*==========================*\
  SANDBOX
\*==========================*/
.editor-wrapper {
    border-color: #ccc;
}

/*==========================*\
  SANDBOX RESULTS
\*==========================*/
.results-wrapper {
    border-left: 1px solid #ccc;
}

.footer {
    background-color: #f8d030;
    border-top: 2px solid #ae8c04;
}

/*==========================*\
  FOOTER
\*==========================*/
.footer-buttons--user {
    flex: 1;
    margin-left: 1rem;
}

.footer-buttons--sandbox {
    margin-right: 1rem;
}

.footer-button {
    height: calc(40px * .8);
    margin-left: .2rem;
    padding: 0 .25rem;
    font-size: .75rem;
}

@media (min-width: 501px) {
    .footer-button {
        margin-left: .25rem;
        padding: 0 .5rem;
        font-size: .9rem;
    }
}

@media (min-width: 50rem) {
    .nav-toggle-text {
        display: inline-block;
    }
}

/*# sourceMappingURL=data:application/json;base64,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SUFDSSw0QkFBNEI7Q0FDL0I7O0FBRUQ7SUFDSSwwQkFBMEI7SUFDMUIsOEJBQThCO0NBQ2pDOztBQUVEOzs4QkFFOEI7QUFDOUI7SUFDSSxRQUFRO0lBQ1Isa0JBQWtCO0NBQ3JCOztBQUVEO0lBQ0ksbUJBQW1CO0NBQ3RCOztBQUVEO0lBQ0ksd0JBQXdCO0lBQ3hCLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsa0JBQWtCO0NBQ3JCOztBQUVEO0lBQ0k7UUFDSSxvQkFBb0I7UUFDcEIsaUJBQWlCO1FBQ2pCLGlCQUFpQjtLQUNwQjtDQUNKOztBQUVEO0lBQ0k7UUFDSSxzQkFBc0I7S0FDekI7Q0FDSiIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBUQUJMRSBPRiBDT05URU5UU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBMYXlvdXRcbiAgVHlwb2dyYXBoeVxuICBHZW5lcmFsXG4gIENvbXBvbmVudHNcbiAgUGxheWdyb3VuZCA8Ym9keT5cbiAgQXBwIEhlYWRlciA8aGVhZGVyPlxuICBDb250ZW50IDxtYWluPlxuICBBcnRpY2xlIDxhcnRpY2xlPlxuICBFZGl0b3JzIFxuICBSZXN1bHRzXG4gIE92ZXJyaWRlc1xuICAgICAgLUNvZGVNaXJyb3JcbiAgICAgIC1TcGVjdHJ1bVxuICB3ZWJkZXNpZ25wbGF5Z3JvdW5kLmlvXG5cblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbmh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBMQVlPVVRcblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qIC0tLS0tLS0tLS0tLSAqL1xuLyogTW9iaWxlLWZpcnN0ICovXG4vKiAtLS0tLS0tLS0tLS0gKi9cbi5wbGF5Z3JvdW5kIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmhlYWRlciB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uc2l0ZS1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2l0ZS10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLm5hdi10b2dnbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBwYWRkaW5nLXRvcDogLjhyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmFydGljbGUge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDIycmVtO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xufVxuXG4uZWRpdG9yLXdyYXBwZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGhlaWdodDogNDAwcHg7XG4gICAgbWluLWhlaWdodDogMTI1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5yZXN1bHRzLXdyYXBwZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLkNvZGVNaXJyb3Ige1xuICAgIGhlaWdodDogMzU1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5mb290ZXIge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gICAgLmFydGljbGUsXG4gICAgLmVkaXRvci13cmFwcGVyLFxuICAgIC5yZXN1bHRzLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAucGxheWdyb3VuZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgfVxuICAgIC5oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICB9XG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgICAvKiBUaGUgY29udGVudCBmbGV4IGl0ZW1zIGFyZSBpbmRlbnRlZCBmcm9tIHRoZWlyIGZsZXggY29udGFpbmVycyAqL1xuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICAgIC5hcnRpY2xlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gICAgLnNhbmRib3gge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLnNhbmRib3gtZWRpdG9ycy13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogMzMlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmVkaXRvci13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmNvZGUtd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMzBweCAtIDI1cHgpO1xuICAgIH1cbiAgICAuZWRpdG9yLWhlYWRlciB7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICB9XG4gICAgLkNvZGVNaXJyb3Ige1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5lZGl0b3ItZm9vdGVyIHtcbiAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgIH1cbiAgICAucmVzdWx0cy13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMzMlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICAucmVzdWx0cy1pZnJhbWUge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cbiAgICAuZm9vdGVyIHtcbiAgICAgICAgZmxleDogMCAwIDQwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cbiAgICAuc2l0ZS10aXRsZSB7XG4gICAgICAgIGZsZXg6IDM7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLm5hdi10b2dnbGUge1xuICAgICAgICBmbGV4OiAwIDEgNnJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICAgIC5zYW5kYm94LWVkaXRvcnMtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG59XG5cbi8qIEBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRXZlcnl0aGluZyBlbHNlICovXG4vKiAtLS0tLS0tLS0tLS0tLS0gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA1MDFweCkge1xuICAgIC5hcHAge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICB9XG4gICAgLnNpdGUtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgLmFydGljbGUge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTBweCAtIDQwcHgpO1xuICAgICAgICB3aWR0aDogMzQlO1xuICAgIH1cbiAgICAuZWRpdG9yLXdyYXBwZXItLWh0bWwge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG4gICAgLmVkaXRvci13cmFwcGVyLS1jc3Mge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDMzJTtcbiAgICB9XG4gICAgLkNvZGVNaXJyb3Ige1xuICAgICAgICB3aWR0aDogMzJ2dztcbiAgICB9XG4gICAgLnJlc3VsdHMtd3JhcHBlciB7XG4gICAgICAgIGNsZWFyOiByaWdodDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDUwcHggLSA0MHB4IC0gNDAwcHgpO1xuICAgICAgICB3aWR0aDogNjYlO1xuICAgIH1cbiAgICAuZm9vdGVyIHtcbiAgICAgICAgY2xlYXI6IGFsbDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkgYW5kIChub3QgKGRpc3BsYXk6IGdyaWRkKSkge1xuICAgICAgICAuYXJ0aWNsZSxcbiAgICAgICAgLmVkaXRvci13cmFwcGVyLFxuICAgICAgICAucmVzdWx0cy13cmFwcGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5wbGF5Z3JvdW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgNTBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgICAgIC8qIFRoZSBjb250ZW50IGZsZXggaXRlbXMgYXJlIGluZGVudGVkIGZyb20gdGhlaXIgZmxleCBjb250YWluZXJzICovXG4gICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDUwcHggLSA0MHB4KTtcbiAgICAgICAgfVxuICAgICAgICAuYXJ0aWNsZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnNhbmRib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLnNhbmRib3gtZWRpdG9ycy13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICAgIGhlaWdodDogMzMlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLmVkaXRvci13cmFwcGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICAgICAgLmNvZGUtd3JhcHBlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHggLSAyNXB4KTtcbiAgICAgICAgfVxuICAgICAgICAuZWRpdG9yLWhlYWRlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLkNvZGVNaXJyb3Ige1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuZWRpdG9yLWZvb3RlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnJlc3VsdHMtd3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMzMlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgICAucmVzdWx0cy1pZnJhbWUge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuICAgICAgICAuZm9vdGVyIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qIEBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkgKi9cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWRkKSB7XG4gICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgICAgIC8qIFRoZSAuY29udGVudCBncmlkIGlzIDIgcm93cyBhbmQgOTYgY29sdW1ucy5cbiAgICAgICAgLyogSGF2aW5nIHNvIG1hbnkgY29sdW1ucyBhbGxvd3MgZm9yIGZpbmUtdHVuZWQgd2lkdGggYWRqdXN0bWVudHNcbiAgICAgICAgLyogb2YgdGhlIGVkaXRvcnMgYW5kIHRoZSBMZXNzb25zIGFuZCBSZXN1bHRzIHdpbmRvd3MuXG4gICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgICAgIC5hcnRpY2xlLFxuICAgICAgICAuZWRpdG9yLXdyYXBwZXIsXG4gICAgICAgIC5yZXN1bHRzLXdyYXBwZXIge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5wbGF5Z3JvdW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNTBweCAxZnIgNDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLmZvb3RlciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbiAgICAgICAgfVxuICAgICAgICAuYXJ0aWNsZSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAxIC8gZW5kO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLnNhbmRib3gge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyBlbmQ7XG4gICAgICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbiAgICAgICAgfVxuICAgICAgICAuc2FuZGJveC1lZGl0b3JzLXdyYXBwZXIge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBlbmQ7XG4gICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2NCwgMWZyKTtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgICAgICB9XG4gICAgICAgIC5lZGl0b3Itd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgICAgICAuZWRpdG9yLXdyYXBwZXItLWh0bWwge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDMyO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmVkaXRvci13cmFwcGVyLS1jc3Mge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDMzIC8gZW5kO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmVkaXRvci1oZWFkZXIge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG4gICAgICAgIC5Db2RlTWlycm9yIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIC5lZGl0b3ItZm9vdGVyIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuICAgICAgICAucmVzdWx0cy13cmFwcGVyIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gZW5kO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyogQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSAqL1xufVxuXG4vKiBAc3VwcG9ydHMgKG1pbi13aWR0aDogNDVlbSkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA0NXJlbSkge1xuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkgYW5kIChub3QgKGRpc3BsYXk6IGdyaWRkKSkge1xuICAgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAgICAgICAvKiBUaGUgY29udGVudCBmbGV4IGl0ZW1zIGFyZSBpbmRlbnRlZCBmcm9tIHRoZWlyIGZsZXggY29udGFpbmVycyAqL1xuICAgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgICAgICAuYXJ0aWNsZSB7XG4gICAgICAgICAgICB3aWR0aDogMzMlO1xuICAgICAgICB9XG4gICAgICAgIC5zYW5kYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiA2NyU7XG4gICAgICAgIH1cbiAgICAgICAgLnNhbmRib3gtZWRpdG9ycy13cmFwcGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICB9XG4gICAgICAgIC5yZXN1bHRzLXdyYXBwZXIge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBAc3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpICovXG59XG5cbi8qIEBzdXBwb3J0cyAobWluLXdpZHRoOiA0NWVtKSAqL1xuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBUWVBPR1JBUEhZXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5odG1sLCBib2R5IHtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmEsXG5hOnZpc2l0ZWQge1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG5zdHJvbmcsIGIge1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvIEJvbGQnLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbmVtLCBpIHtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybyBJdGFsaWMnLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbmNvZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgQ29kZSBQcm8nLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNSU7XG4gICAgcGFkZGluZzogMCAuMjVyZW07XG59XG5cbm1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cblxucHJlIHtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBDb2RlIFBybycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5wbGF5Z3JvdW5kLXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAzZW07XG59XG5cbm9sID4gbGkge1xuICAgIHBhZGRpbmctdG9wOiAuNWVtO1xufVxuXG51bCA+IGxpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBHRU5FUkFMIFJVTEVTXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4uY2xlYXJtZTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBDT01QT05FTlRTXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAtLS0tLS0tICovXG4vKiBCdXR0b25zICovXG4vKiAtLS0tLS0tICovXG4uYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBjb2xvcjogI2U4ZThlODtcbiAgICBsZXR0ZXItc3BhY2luZzogLjVweDtcbn1cblxuLmJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICBjb2xvcjogIzMzMztcbn1cblxuLmJ0bi5kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbn1cblxuLmJ0bi1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYnRuOmZvY3VzLFxuLmJ0bjphY3RpdmU6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5idG4taWNvbiB7XG4gICAgbWFyZ2luOiAwIC41cmVtIDAgMDtcbiAgICBwYWRkaW5nLXRvcDogLjRyZW07XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIHdpZHRoOiAycmVtO1xufVxuXG4ucnVuLXRyaWFuZ2xlIHtcbiAgICBib3JkZXItdG9wOiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkICNmOGQwMzA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMHB4O1xuICAgIHdpZHRoOiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC4yNXJlbTtcbn1cblxuLyogLS0tLSAqL1xuLyogVGFicyAqL1xuLyogLS0tLSAqL1xuLnRvb2wtdGFicyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLnRvb2wtdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtIDFyZW0gMCAwO1xuICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRvb2wtdGFiLmFjdGl2ZSB7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8gQm9sZCcsIFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi50b29sLWJveCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMS41cyBlYXNlO1xufVxuXG4udG9vbC1ib3guYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBhbmltYXRpb246IGZhZGUtaW4gMXM7XG59XG5cbi50b29sLXJlbGF0ZWQtdG9vbHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4udG9vbC1yZWxhdGVkLXRvb2xzLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYW5pbWF0aW9uOiBmYWRlLWluIDFzO1xufVxuXG4ucmVsYXRlZC10b29scy1saXN0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ucmVsYXRlZC10b29scy1saXN0IGxpIGEge1xuICAgIGNvbG9yOiAjZDkzYjMwO1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvIEJvbGQnLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ucmVsYXRlZC10b29scy1saXN0IGxpIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZjhkMDMwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi1za2lwOiBpbms7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBhdXRvO1xufVxuXG4udXNlci1zYW5kYm94LXRodW1ibmFpbC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51c2VyLXNhbmRib3gtdGh1bWJuYWlsLXdyYXBwZXIgPiBhOmxhc3QtY2hpbGQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGhlaWdodDogMjU2cHg7XG4gICAgei1pbmRleDogNTtcbn1cblxuLnVzZXItc2FuZGJveC10aHVtYm5haWwsXG4ucmVsYXRlZC10b29scy1pZnJhbWUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMjAwcHg7XG4gICAgaGVpZ2h0OiAxMDI0cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IC03NTBweDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbn1cblxuLnVzZXItc2FuZGJveC10aHVtYm5haWwge1xuICAgIGJvcmRlcjogMnJlbSBvdXRzZXQgbGlnaHRncmF5O1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGUtaW4ge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0gKi9cbi8qIE1vZGFsIERpYWxvZyAqL1xuLyogLS0tLS0tLS0tLS0tICovXG4ubW9kYWwtb3ZlcmxheSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IC41O1xufVxuXG4ubW9kYWwtZGlhbG9nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgei1pbmRleDogMjA7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgIGJveC1zaGFkb3c6IC4yNXJlbSAuMjVyZW0gLjI1cmVtICMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIGNvbG9yOiAjMzMzO1xufVxuXG4ubW9kYWwtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGNvbG9yOiAjYTMwZjBmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1vZGFsLW1lc3NhZ2Uge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjMzMzO1xufVxuXG4ubW9kYWwtYnV0dG9ucyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubW9kYWwtYWNjZXB0IHtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgcGFkZGluZzogLjVyZW07XG59XG5cbi5tb2RhbC1jYW5jZWwge1xuICAgIHBhZGRpbmc6IC41cmVtO1xufVxuXG4vKiAtLS0tLS0qL1xuLyogVGFibGUgKi9cbi8qIC0tLS0tLSovXG4udGFibGUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJyZW0gLjVyZW07XG59XG5cbi50YWJsZS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybyBCb2xkJywgVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4udGFibGUtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG5cbi50YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIFBMQVlHUk9VTkQgPGJvZHk+XG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ucGxheWdyb3VuZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQVBQIEhFQURFUiA8aGVhZGVyPlxuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmhlYWRlciB7XG4gICAgei1pbmRleDogMTU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDAzMDtcbn1cblxuLnNpdGUtdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuNHJlbSAwIDAgLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnNpdGUtbG9nbyB7XG4gICAgcGFkZGluZy10b3A6IC4yNXJlbTtcbn1cblxuLnNpdGUtdGl0bGUtLW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rO1xuICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bztcbn1cblxuLm5hdi1zYW5kYm94LXNhdmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ubmF2LXNhbmRib3gtc2F2ZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzByZW0pIHtcbiAgICAuc2l0ZS10aXRsZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIH1cbiAgICAuc2l0ZS10aXRsZS0tbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjZlbTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjM1cmVtKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0NXJlbSkge1xuICAgIC5zaXRlLXRpdGxlIGEge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgfVxuICAgIC5zaXRlLXRpdGxlLS1vIHtcbiAgICAgICAgZm9udC1zaXplOiAuNmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNDVyZW0pO1xuICAgIH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpIHtcbiAgICAgICAgLnNpdGUtdGl0bGUge1xuICAgICAgICAgICAgZmxleDogMyAxO1xuICAgICAgICB9XG4gICAgICAgIC5uYXYtc2FuZGJveC1zYXZlIHtcbiAgICAgICAgICAgIGZsZXg6IDMgMTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgICAgICAubmF2LXRvZ2dsZSB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgNnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTVyZW0pIHtcbiAgICAuc2l0ZS10aXRsZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgfVxuICAgIC5zaXRlLXRpdGxlLS1vIHtcbiAgICAgICAgZm9udC1zaXplOiAuNmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNDVyZW0pO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gICAgLnNpdGUtdGl0bGUgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICB9XG4gICAgLnNpdGUtdGl0bGUtLW8ge1xuICAgICAgICBmb250LXNpemU6IC42ZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC40NXJlbSk7XG4gICAgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZmxleCkge1xuICAgICAgICAubmF2LXNhbmRib3gtc2F2ZSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMjByZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qXG4uYXJ0aWNsZSxcbi5zYW5kYm94IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuKi9cbi5lZGl0b3Itd3JhcHBlci0tanMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQ09OVEVOVCA8bWFpbj5cblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQVJUSUNMRSBOQVZJR0FUSU9OIDxuYXY+XG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBBcnRpY2xlIEhlYWRlciBOYXZpZ2F0aW9uICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXJ0aWNsZS1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogN3JlbTtcbiAgICBtYXJnaW46IC41cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uYXJ0aWNsZS1uYXYtLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS1idXR0b24ge1xuICAgIHdpZHRoOiA5OCUgIWltcG9ydGFudDtcbn1cblxuLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbn1cblxuLmFydGljbGUtbmF2LS1pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSB7XG4gICAgLmFydGljbGUtbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgLmFydGljbGUtbmF2LS1jb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cbiAgICAuYXJ0aWNsZS1uYXYtLWl0ZW0ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gICAgLmFydGljbGUtbmF2LS1pdGVtLWxlZnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuYXJ0aWNsZS1uYXYtLWl0ZW0tcmlnaHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG59XG5cbi5hcnRpY2xlLW5hdi1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIG1hcmdpbjogMCAuNXJlbSAwIDA7XG4gICAgcGFkZGluZzogMCAuMjVyZW0gMCAuMjVyZW07XG4gICAgb3BhY2l0eTogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hcnRpY2xlLW5hdi1idXR0b246bnRoLWNoaWxkKDIpIHtcbiAgICB0ZXh0LWFsaWduOiBlbmQ7XG59XG5cbi5hcnRpY2xlLW5hdi1idXR0b24uZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IC40O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5hcnRpY2xlLW5hdi1idXR0b24gaW1nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIG1hcmdpbjogLjVyZW0gLjI1cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQVJUSUNMRSA8YXJ0aWNsZT5cblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5hcnRpY2xlIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gNDBweCAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uYXJ0aWNsZS1zdXJ0aXRsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjI1ZW07XG59XG5cbi5hcnRpY2xlLXRpdGxlIHtcbiAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgIG1hcmdpbjogLjVyZW0gMCAwIDA7XG4gICAgZm9udC1zaXplOiAxLjc1ZW07XG59XG5cbi5hcnRpY2xlLXN1YnRpdGxlIHtcbiAgICBwYWRkaW5nOiAwIC41cmVtIDAgLjVyZW07XG4gICAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG59XG5cbi5hcnRpY2xlLXRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5hcnRpY2xlLWhlYWRpbmcge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uYXJ0aWNsZS1jb2RlIHtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuLmFydGljbGUtY29kZS0taHRtbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzFkYWZlYztcbiAgICBib3gtc2hhZG93OiAxcHggMXB4IDFweCAjMzMzO1xuICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIENvZGUgUHJvJywgQ291cmllciwgbW9ub3NwYWNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbn1cblxuLmFydGljbGUtY29kZS0taHRtbDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnSFRNTCc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgcGFkZGluZzogLjI1cmVtIC41cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMWRhZmVjO1xuICAgIGNvbG9yOiAjMWRhZmVjO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGZiZmU7XG59XG5cbi5hcnRpY2xlLWNvZGUtLWh0bWwtZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMWRhZmVjO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGZiZmU7XG4gICAgY29sb3I6ICMxZGFmZWM7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5hcnRpY2xlLWNvZGUtLWNzcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VhMmM5MztcbiAgICBib3gtc2hhZG93OiAxcHggMXB4IDFweCAjMzMzO1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIENvZGUgUHJvJywgQ291cmllciwgbW9ub3NwYWNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbn1cblxuLmFydGljbGUtY29kZS0tY3NzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdDU1MnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhMmM5MztcbiAgICBjb2xvcjogI2VhMmM5MztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmN2ZhO1xufVxuXG4uYXJ0aWNsZS1jb2RlLS1jc3MtZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VhMmM5MztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmN2ZhO1xuICAgIGNvbG9yOiAjZWEyYzkzO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYXJ0aWNsZS1jb2RlLS1qcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJiNDUyMTtcbiAgICBib3gtc2hhZG93OiAxcHggMXB4IDFweCAjMzMzO1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIENvZGUgUHJvJywgQ291cmllciwgbW9ub3NwYWNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbn1cblxuLmFydGljbGUtY29kZS0tanM6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ0phdmFTY3JpcHQnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzJiNDUyMTtcbiAgICBjb2xvcjogIzJiNDUyMTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhlOWQyO1xufVxuXG4uYXJ0aWNsZS1jb2RlLS1qcy1mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMmI0NTIxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOGU5ZDI7XG4gICAgY29sb3I6ICMyYjQ1MjE7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5hcnRpY2xlLWNvZGUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4uYXJ0aWNsZS1jb2RlLS10YWcge1xuICAgIGNvbG9yOiAjMWRhZmVjO1xufVxuXG4uYXJ0aWNsZS1jb2RlLS1wcm9wZXJ0eSB7XG4gICAgY29sb3I6ICNlYTJjOTM7XG59XG5cbi5hcnRpY2xlLWNvZGUtLWNvcHktYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgIHBhZGRpbmc6IC41cmVtIC43NXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5cbi5hcnRpY2xlLXNpZGViYXIge1xuICAgIG1hcmdpbjogMXJlbSAuNXJlbSAxcmVtIC41cmVtO1xuICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogLjc1cmVtO1xufVxuXG4uYXJ0aWNsZS1zaWRlYmFyLS1ub3RlIHtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybyBCb2xkJywgVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGNvbG9yOiAjMWM0NTg3O1xuICAgIC8qIGRhcmsgYmx1ZSAqL1xufVxuXG4uYXJ0aWNsZS1zaWRlYmFyLS10aXAge1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvIEJvbGQnLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICM2OWE2NGU7XG59XG5cbi5hcnRpY2xlLXNpZGViYXItLWJld2FyZSB7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8gQm9sZCcsIFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogcmVkO1xufVxuXG4uYXJ0aWNsZS1zaG93LWFuc3dlciB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzk5OTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmFydGljbGUtc2hvdy1hbnN3ZXItYnV0dG9uLXdyYXBwZXIge1xuICAgIG1hcmdpbjogMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hcnRpY2xlLXNob3ctYW5zd2VyLWJ1dHRvbiB7XG4gICAgcGFkZGluZzogLjVyZW07XG59XG5cbi5hcnRpY2xlLWFuc3dlci10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZS1vdXQ7XG59XG5cbi5hcnRpY2xlLWFuc3dlci10ZXh0LmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmFydGljbGUtc2hvdy1pdC0tYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbn1cblxuLmFydGljbGUtc2hvdy1pdC0tcHJvZ3Jlc3MsXG4uYXJ0aWNsZS1zaG93LWl0LS1wcm9ncmVzczEsXG4uYXJ0aWNsZS1zaG93LWl0LS1wcm9ncmVzczIge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5hcnRpY2xlLWNvbnRyb2wtbGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvIEJvbGQnLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbi5hcnRpY2xlLWNvbnRyb2wtbGFiZWw6bm90OmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4uYXJ0aWNsZS10ZXh0LWJveCB7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHdpZHRoOiAyLjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xufVxuXG4uYXJ0aWNsZS1zZWxlY3QsXG4udG9vbC1zZWxlY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmFydGljbGUtdG9jIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8qIC0tLS0tICovXG4vKiBUb29scyAqL1xuLyogLS0tLS0gKi9cbi50b29sLWJveCB7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnRvb2wtaGVhZGVyIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4udG9vbC1oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuLnRvb2wtd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLnRvb2wtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybyBCb2xkJywgVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4udG9vbC1sYWJlbDpub3QoZmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5cbi50b29sLWNvbnRyb2xzLXdyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xufVxuXG4udG9vbC1yYWRpbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLjI1cmVtO1xufVxuXG4udG9vbC1yYWRpby1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IC4yNXJlbSAuNXJlbSAwO1xufVxuXG4udG9vbC10ZXh0IHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi50b29sLXRleHQtYm94IHtcbiAgICB3aWR0aDogM2VtO1xufVxuXG4udG9vbC1jb250cm9sLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi50b29sLWNvbnRyb2wtYWRkb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICAgIHBhZGRpbmc6IC4yNXJlbTtcbiAgICBmb250LXNpemU6IC45cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4eSkge1xuICAgIC50b29sLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICAudG9vbC1sYWJlbCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLnRvb2wtY29udHJvbCB7XG4gICAgICAgIGZsZXg6IDY7XG4gICAgfVxufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIFNBTkRCT1hcblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5lZGl0b3Itd3JhcHBlciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuXG4uZWRpdG9yLWhlYWRlciB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmc6IDAgMCAuMXJlbSAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDVyZW07XG59XG5cbi5lZGl0b3ItZm9vdGVyIHtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgcGFkZGluZzogMCAwIC4xcmVtIDByZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcbn1cblxuLmVkaXRvci1yZXNpemUtYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogLjRyZW0gMCAwIC4yNXJlbTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogLjc1O1xuICAgIGNvbG9yOiAjMWRhZmVjO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGZiZmU7XG59XG5cbi5lZGl0b3ItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbjogLjVyZW0gMCAwIDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmVkaXRvci10b2dnbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNDUlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmVkaXRvci1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzMHB4O1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cyBlYXNlLW91dDtcbn1cblxuLmVkaXRvci1tZW51LmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxMDtcbn1cblxuLmVkaXRvci1tZW51LWxpc3Qge1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZWRpdG9yLW1lbnUtaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogLjMzcmVtIC41cmVtIDA7XG59XG5cbi5lZGl0b3ItbWVudS1pdGVtLmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZWRpdG9yLW1lbnUtY29waWVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAuNzVyZW0gMCAwIC41cmVtO1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBFZGl0b3IgTWVudSBUb2dnbGUgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVkaXRvci10b2dnbGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmVkaXRvci10b2dnbGUtaGFtYnVyZ2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICB6LWluZGV4OiAxMDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBTQU5EQk9YIEhUTUwgRURJVE9SXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4uZWRpdG9yLWhlYWRlci0taHRtbCxcbi5lZGl0b3ItZm9vdGVyLS1odG1sLFxuLmVkaXRvci13cmFwcGVyLS1odG1sIHtcbiAgICBjb2xvcjogIzFkYWZlYztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmYmZlO1xufVxuXG4uZWRpdG9yLXdyYXBwZXItLWh0bWwgLkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQuQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZmJmZTtcbn1cblxuLmVkaXRvci13cmFwcGVyLS1odG1sIC5Db2RlTWlycm9yLWd1dHRlcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGZiZmUgIWltcG9ydGFudDtcbn1cblxuLmVkaXRvci1tZW51LS1odG1sIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmYmZlO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMxZGFmZWM7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMxZGFmZWM7XG4gICAgYm94LXNoYWRvdzogMXB4IDFweCAxcHggIzFkYWZlYztcbn1cblxuLmVkaXRvci1tZW51LS1odG1sIC5lZGl0b3ItbWVudS1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRhZmVjO1xuICAgIGNvbG9yOiAjZjRmYmZlO1xufVxuXG4uZWRpdG9yLW1lbnUtLWh0bWwgLmVkaXRvci1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGZiZmU7XG4gICAgY29sb3I6ICMxZGFmZWM7XG59XG5cbi5lZGl0b3ItdG9nZ2xlLWhhbWJ1cmdlci1saW5lLS1odG1sIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFkYWZlYztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjVzIGVhc2UtaW4sIG9wYWNpdHkgLjVzIGVhc2UtaW4sIHRyYW5zZm9ybSAuNXMgZWFzZS1vdXQ7XG59XG5cbi5lZGl0b3ItdG9nZ2xlLWhhbWJ1cmdlci1saW5lLS1odG1sOm50aC1jaGlsZCgxKS5hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoNHB4LCAzcHgpO1xufVxuXG4uZWRpdG9yLXRvZ2dsZS1oYW1idXJnZXItbGluZS0taHRtbDpudGgtY2hpbGQoMikuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4uZWRpdG9yLXRvZ2dsZS1oYW1idXJnZXItbGluZS0taHRtbDpudGgtY2hpbGQoMykuYWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIFNBTkRCT1ggQ1NTIEVESVRPUlxuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmVkaXRvci1oZWFkZXItLWNzcyxcbi5lZGl0b3ItZm9vdGVyLS1jc3MsXG4uZWRpdG9yLXdyYXBwZXItLWNzcyB7XG4gICAgY29sb3I6ICNlYTJjOTM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZjdmYTtcbn1cblxuLmVkaXRvci13cmFwcGVyLS1jc3MgLkNvZGVNaXJyb3ItZ3V0dGVyLWJhY2tncm91bmQuQ29kZU1pcnJvci1hY3RpdmVsaW5lLWd1dHRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZjdmYTtcbn1cblxuLmVkaXRvci13cmFwcGVyLS1jc3MgLkNvZGVNaXJyb3ItZ3V0dGVycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZjdmYSAhaW1wb3J0YW50O1xufVxuXG4uZWRpdG9yLW1lbnUtLWNzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZjdmYTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWEyYzkzO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWEyYzkzO1xuICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICNlYTJjOTM7XG59XG5cbi5lZGl0b3ItbWVudS0tY3NzIC5lZGl0b3ItbWVudS1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWEyYzkzO1xuICAgIGNvbG9yOiAjZmVmN2ZhO1xufVxuXG4uZWRpdG9yLW1lbnUtLWNzcyAuZWRpdG9yLW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZjdmYTtcbiAgICBjb2xvcjogI2VhMmM5Mztcbn1cblxuLmVkaXRvci10b2dnbGUtaGFtYnVyZ2VyLWxpbmUtLWNzcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYTJjOTM7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC41cyBlYXNlLWluLCBvcGFjaXR5IC41cyBlYXNlLWluLCB0cmFuc2Zvcm0gLjVzIGVhc2Utb3V0O1xufVxuXG4uZWRpdG9yLXRvZ2dsZS1oYW1idXJnZXItbGluZS0tY3NzOm50aC1jaGlsZCgxKS5hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoNHB4LCAzcHgpO1xufVxuXG4uZWRpdG9yLXRvZ2dsZS1oYW1idXJnZXItbGluZS0tY3NzOm50aC1jaGlsZCgyKS5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5lZGl0b3ItdG9nZ2xlLWhhbWJ1cmdlci1saW5lLS1jc3M6bnRoLWNoaWxkKDMpLmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBTQU5EQk9YIEpTIEVESVRPUlxuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmVkaXRvci1oZWFkZXItLWpzLFxuLmVkaXRvci1mb290ZXItLWpzLFxuLmVkaXRvci13cmFwcGVyLS1qcyB7XG4gICAgY29sb3I6ICMyYjQ1MjE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZTlkMjtcbn1cblxuLmVkaXRvci13cmFwcGVyLS1qcyAuQ29kZU1pcnJvci1ndXR0ZXItYmFja2dyb3VuZC5Db2RlTWlycm9yLWFjdGl2ZWxpbmUtZ3V0dGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhlOWQyO1xufVxuXG4uZWRpdG9yLXdyYXBwZXItLWpzIC5Db2RlTWlycm9yLWd1dHRlcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOGU5ZDIgIWltcG9ydGFudDtcbn1cblxuLmVkaXRvci1tZW51LS1qcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q4ZTlkMjtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMmI0NTIxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMmI0NTIxO1xuICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICMyYjQ1MjE7XG59XG5cbi5lZGl0b3ItbWVudS0tanMgLmVkaXRvci1tZW51LWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjQ1MjE7XG4gICAgY29sb3I6ICNkOGU5ZDI7XG59XG5cbi5lZGl0b3ItbWVudS0tanMgLmVkaXRvci1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOGU5ZDI7XG4gICAgY29sb3I6ICMyYjQ1MjE7XG59XG5cbi5lZGl0b3ItdG9nZ2xlLWhhbWJ1cmdlci1saW5lLS1qcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyYjQ1MjE7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC41cyBlYXNlLWluLCBvcGFjaXR5IC41cyBlYXNlLWluLCB0cmFuc2Zvcm0gLjVzIGVhc2Utb3V0O1xufVxuXG4uZWRpdG9yLXRvZ2dsZS1oYW1idXJnZXItbGluZS0tanM6bnRoLWNoaWxkKDEpLmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSg0cHgsIDNweCk7XG59XG5cbi5lZGl0b3ItdG9nZ2xlLWhhbWJ1cmdlci1saW5lLS1qczpudGgtY2hpbGQoMikuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4uZWRpdG9yLXRvZ2dsZS1oYW1idXJnZXItbGluZS0tanM6bnRoLWNoaWxkKDMpLmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBTQU5EQk9YIFJFU1VMVFNcblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5yZXN1bHRzLXdyYXBwZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbn1cblxuLnJlc3VsdHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQVBQIEZPT1RFUlxuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDAzMDtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBHRU5FUkFMIEZPUk0gU1RZTEVTXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4uZm9ybS13cmFwcGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG59XG5cbi5jb250cm9sLXdyYXBwZXIge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmZvcm0tY29udHJvbFtuYW1lPSdwYXNzd29yZCddIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuMjVyZW07XG59XG5cbmxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAuMnJlbTtcbn1cblxuLmxhYmVsLWhvcml6b250YWwge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tbGVmdDogLjI1cmVtO1xufVxuXG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5mb3JtLXdyYXBwZXIgYnV0dG9uIHtcbiAgICBtYXJnaW46IDFyZW0gMXJlbSAxcmVtIDA7XG59XG5cbi5lcnJvci1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGNvbG9yOiByZWQ7XG59XG5cbi5mb3JtLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5lcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC41KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCAycHggcmdiYSgyNTUsIDAsIDAsIDAuOCk7XG59XG5cbmlucHV0OnZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6IGxpZ2h0Z3JleTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIFRISVJELVBBUlRZIE9WRVJSSURFU1xuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogLS0tLS0tLS0tLSAqL1xuLyogQ29kZW1pcnJvciAqL1xuLyogLS0tLS0tLS0tLSAqL1xuLkNvZGVNaXJyb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMyMjI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDM3NTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uY20tY29tbWVudCB7XG4gICAgY29sb3I6ICM3NTc4N2I7XG59XG5cbi5jbS1rZXl3b3JkLCAuY20tcHJvcGVydHkge1xuICAgIGNvbG9yOiAjMWQ3NWIzICFpbXBvcnRhbnQ7XG59XG5cbi5jbS1hdG9tLCAuY20tbnVtYmVyIHtcbiAgICBjb2xvcjogIzc1NDM4YTtcbn1cblxuLmNtLW5vZGUsIC5jbS10YWcge1xuICAgIGNvbG9yOiAjMWRhZmVjICFpbXBvcnRhbnQ7XG59XG5cbi5jbS1zdHJpbmcge1xuICAgIGNvbG9yOiAjYjM1ZTE0O1xufVxuXG4uY20tdmFyaWFibGUsIC5jbS1xdWFsaWZpZXIge1xuICAgIGNvbG9yOiAjMDQ3ZDY1O1xufVxuXG4uY20tcy1iYXNlMTYtbGlnaHQgc3Bhbi5jbS1zdHJpbmcge1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5jbS1lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1YjdiOCAhaW1wb3J0YW50O1xufVxuXG4vKiBFZGl0b3Igc3R5bGluZyAqL1xuLkNvZGVNaXJyb3ItZ3V0dGVycyB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yaWdodDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLkNvZGVNaXJyb3ItbGluZW51bWJlciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogI2UwZTJlNTtcbn1cblxuLkNvZGVNaXJyb3ItZ3V0dGVybWFya2VyIHtcbiAgICBjb2xvcjogIzFkNzViMztcbn1cblxuLkNvZGVNaXJyb3ItZ3V0dGVybWFya2VyLXN1YnRsZSB7XG4gICAgY29sb3I6ICNlMGUyZTU7XG59XG5cbi5Db2RlTWlycm9yLWN1cnNvciB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTU1LCAxNTcsIDE2MiwgMC4zNyk7XG4gICAgei1pbmRleDogMTtcbn1cblxuLyogLS0tLS0tLS0tICovXG4vKiBqUXVlcnkgVUkgKi9cbi8qIC0tLS0tLS0tLSAqL1xuLnVpLXRvb2x0aXAge1xuICAgIGJveC1zaGFkb3c6IDNweCAzcHggNnB4ICM5OTkgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IC45cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51aS1pY29uLWluZm8ge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4vKiAtLS0tLS0tLSAqL1xuLyogU3BlY3RydW0gKi9cbi8qIC0tLS0tLS0tICovXG4uc3AtY29udGFpbmVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4uc3AtaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4IDAgNHB4IDFweDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogd2ViY29kaW5ncGxheWdyb3VuZC5pbyAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmV4YW1wbGUtc2VsZWN0LXdyYXBwZXIge1xuICAgIG1hcmdpbjogMXJlbSAuNXJlbTtcbn1cblxuLmV4YW1wbGUtc2VsZWN0LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWluLXdpZHRoOiA4cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmV4YW1wbGUtc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IC45cmVtO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiB3ZWJkZXNpZ25wbGF5Z3JvdW5kLmlvICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIEZPTlRTXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ011c2VvU2xhYi01MDAnO1xuICAgIHNyYzogdXJsKFwiL2ZvbnRzLzMzNDA3QV8wXzAud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi9mb250cy8zMzQwN0FfMF8wLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgQ29kZSBQcm8nO1xuICAgIHNyYzogdXJsKFwiL2ZvbnRzL3NvdXJjZWNvZGVwcm8tcmVndWxhci13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIvZm9udHMvc291cmNlY29kZXByby1yZWd1bGFyLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybyBCb2xkJztcbiAgICBzcmM6IHVybChcIi9mb250cy9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiL2ZvbnRzL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8gQm9sZCBJdGFsaWMnO1xuICAgIHNyYzogdXJsKFwiL2ZvbnRzL3NvdXJjZXNhbnNwcm8tYm9sZGl0YWxpYy13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIvZm9udHMvc291cmNlc2Fuc3Byby1ib2xkaXRhbGljLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybyBJdGFsaWMnO1xuICAgIHNyYzogdXJsKFwiL2ZvbnRzL3NvdXJjZXNhbnNwcm8taXRhbGljLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi9mb250cy9zb3VyY2VzYW5zcHJvLWl0YWxpYy13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nO1xuICAgIHNyYzogdXJsKFwiL2ZvbnRzL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIvZm9udHMvc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIEdFTkVSQUwgU1RZTEVTXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5ib2R5IHtcbiAgICBjb2xvcjogIzRjM2UwMTtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBMQVlPVVQgT1ZFUlJJREVTXG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AbWVkaWEgKG1pbi13aWR0aDogNDVyZW0pIHtcbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGZsZXgpIHtcbiAgICAgICAgLmFydGljbGUge1xuICAgICAgICAgICAgd2lkdGg6IDMzJTtcbiAgICAgICAgfVxuICAgICAgICAuZWRpdG9yLXdyYXBwZXIge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICAgICAgfVxuICAgICAgICAuc2FuZGJveC1lZGl0b3JzLXdyYXBwZXIge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQ09NUE9ORU5UU1xuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLyogLS0tLS0tLSAqL1xuLyogQnV0dG9ucyAqL1xuLyogLS0tLS0tLSAqL1xuLmJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTgxODE4O1xuICAgIGNvbG9yOiAjZjhmOGY4O1xufVxuXG4uYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4O1xuICAgIGNvbG9yOiAjZmZkZTVjO1xufVxuXG4uYnRuLmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2O1xuICAgIGNvbG9yOiAjY2NjO1xufVxuXG4uYnRuLWdyb3VwIGJ1dHRvbiB7XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIG1hcmdpbjogMCAtLjJyZW0gMCAwO1xufVxuXG4uYnRuLWdyb3VwIGJ1dHRvbi5hY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCAjOTk5O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmU5OGY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZkZTVjIDAlLCAjZmZlOThmIDEwMCUpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZmRlNWMgMCUsICNmZmU5OGYgMTAwJSk7XG59XG5cbi5jYW5jZWwtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWNjO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZTk4ZiAwJSwgI2ZmZjVjYyAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmNWNjIDAlLCAjZmZlOThmIDEwMCUpO1xufVxuXG4vKiAtLS0tLS0tLSAqL1xuLyogVG9vbHRpcHMgKi9cbi8qIC0tLS0tLS0tICovXG4udG9vbHRpcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udG9vbHRpcDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTE1MCU7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMTtcbiAgICBoZWlnaHQ6IDEuNWVtO1xuICAgIHBhZGRpbmc6IDAgLjVlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZTVjO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZTk4ZiAwJSwgI2ZmZGU1YyAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZlOThmIDAlLCAjZmZkZTVjIDEwMCUpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnRvb2x0aXA6aG92ZXI6OmJlZm9yZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnRvb2x0aXA6OmJlZm9yZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FlOGMwNDtcbiAgICBib3gtc2hhZG93OiAxcHggMXB4IDFweCAjNGMzZTAxO1xuICAgIGNvbG9yOiAjNGMzZTAxO1xufVxuXG4vKiAtLS0tICovXG4vKiBUYWJzICovXG4vKiAtLS0tICovXG4udG9vbC10YWJzIHtcbiAgICBib3JkZXItY29sb3I6ICNmOGQwMzA7XG59XG5cbi50b29sLXRhYiB7XG4gICAgYm9yZGVyLWNvbG9yOiAjYWU4YzA0O1xuICAgIGNvbG9yOiAjYWU4YzA0O1xufVxuXG4udG9vbC10YWIuYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6ICM0YzNlMDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDAzMDtcbiAgICBjb2xvcjogIzRjM2UwMTtcbn1cblxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSpcXFxuICBBUFAgSEVBREVSIDxoZWFkZXI+XG5cXCo9PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4uaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2FlOGMwNDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhkMDMwO1xufVxuXG4uc2l0ZS1sb2dvIHtcbiAgICBtYXJnaW4tbGVmdDogLjc1cmVtO1xufVxuXG4uc2l0ZS10aXRsZSBhIHtcbiAgICBjb2xvcjogIzRjM2UwMTtcbiAgICBmb250LWZhbWlseTogXCJNdXNlb1NsYWItNTAwXCI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uaGVhZGVyLWJ1dHRvbnMtLXNhbmRib3gge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLmhlYWRlci1idXR0b24ge1xuICAgIGhlaWdodDogY2FsYyg1MHB4ICogLjcpO1xuICAgIG1hcmdpbi1sZWZ0OiAuMnJlbTtcbiAgICBwYWRkaW5nOiAwIC4yNXJlbTtcbiAgICBmb250LXNpemU6IC43NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDUwMXB4KSB7XG4gICAgLmhlYWRlci1idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgICAgICBmb250LXNpemU6IC45cmVtO1xuICAgIH1cbn1cblxuLyogICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgKi9cbi8qID09PT09PT09IEhlYWRlciBTYW5kYm94IGNvbnRyb2xzID09PT09PT09ICovXG4vKiAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAqL1xuLm5hdi1zYW5kYm94LXRpdGxlLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzRjM2UwMTtcbn1cblxuaW5wdXQubmF2LXNhbmRib3gtdGl0bGUtdGV4dGJveFt0eXBlPVwidGV4dFwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZTVjO1xufVxuXG4ubmF2LXNhbmRib3gtdGl0bGUtZGlzcGxheSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4ubmF2LXNhbmRib3gtdGl0bGUtZWRpdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgY29sb3I6ICNhZThjMDQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubmF2LWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBjYWxjKDUwcHggLSAxcmVtKTtcbn1cblxuLyogICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICovXG4vKiA9PT09PT09PSBPZmYtY2FudmFzIHJlc3VsdHMgPT09PT09PT0gKi9cbi8qICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAqL1xuLmFqYXgtcmVzdWx0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IGNhbGMoMTAwdncgLyAyIC0gNTBweCk7XG4gICAgei1pbmRleDogMTA7XG4gICAgd2lkdGg6IDhyZW07XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCA3cHggN3B4O1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMHZ3LCAtMTAwdmgsIDApO1xufVxuXG4uYWpheC1yZXN1bHQuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAuNXMgZWFzZS1vdXQ7XG59XG5cbi8qICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgKi9cbi8qID09PT09PT09IE9mZi1jYW52YXMgbWVudXMgPT09PT09PT0gKi9cbi8qICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgKi9cbi5uYXYtbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogNTBweDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTBweCk7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICAgIGNvbG9yOiAjMTgxODE4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2Utb3V0O1xufVxuXG4ubmF2LW1lbnUuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZS1vdXQ7XG59XG5cbi5uYXYtbWVudS1zbGljZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5uYXYtbWVudS1zbGljZS0tY2hhcHRlcnMge1xuICAgIHdpZHRoOiAyM3JlbTtcbn1cblxuLm5hdi1tZW51LXNsaWNlLS1vdGhlciB7XG4gICAgd2lkdGg6IDEycmVtO1xufVxuXG4ubmF2LW1lbnUtaGVhZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgIGNvbG9yOiAjMTgxODE4O1xufVxuXG4ubmF2LW1lbnUtaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm5hdi1tZW51LWxpc3Qge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm5hdi1tZW51LWxpc3QtLXNhbmRib3ggbGkge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IC43cztcbn1cblxuLm5hdi1tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IC41ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubmF2LW1lbnUtaXRlbTpmb2N1cyxcbi5uYXYtc3VibWVudS1pdGVtOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggZG90dGVkICM0YzNlMDE7XG59XG5cbi5uYXYtbWVudS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjYWU4YzA0O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5uYXYtbWVudS1pdGVtLS1jaGFwdGVyOjphZnRlciB7XG4gICAgY29udGVudDogJ1xcMDBhMFxcMDBhMFxcMDIzMDQnO1xufVxuXG4ubmF2LXN1Ym1lbnUge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDE1O1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMi41cyBlYXNlLWluO1xufVxuXG4ubmF2LXN1Ym1lbnUuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubmF2LXN1Ym1lbnUtaXRlbSBjb2RlIHtcbiAgICBjb2xvcjogI2Y1ZjVmNTtcbn1cblxuLm5hdi1tZW51LWl0ZW06aG92ZXIsXG4ubmF2LXN1Ym1lbnUtaXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBjb2xvcjogIzRjM2UwMTtcbn1cblxuLyogICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAqL1xuLyogPT09PT09PT0gT2ZmLWNhbnZhcyBtZW51IHRvZ2dsZSA9PT09PT09PSAqL1xuLyogICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAqL1xuLm5hdi10b2dnbGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm5hdi10b2dnbGUtaGFtYnVyZ2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDEwO1xufVxuXG4ubmF2LXRvZ2dsZS1oYW1idXJnZXI6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5uYXYtdG9nZ2xlLWhhbWJ1cmdlci1saW5lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRjM2UwMTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjVzIGVhc2UtaW4sIG9wYWNpdHkgLjVzIGVhc2UtaW4sIHRyYW5zZm9ybSAuNXMgZWFzZS1vdXQ7XG59XG5cbi5uYXYtdG9nZ2xlLWhhbWJ1cmdlci1saW5lOm50aC1jaGlsZCgxKS5hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoN3B4LCA2cHgpO1xufVxuXG4ubmF2LXRvZ2dsZS1oYW1idXJnZXItbGluZTpudGgtY2hpbGQoMikuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4ubmF2LXRvZ2dsZS1oYW1idXJnZXItbGluZTpudGgtY2hpbGQoMykuYWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSg1cHgsIC01cHgpO1xufVxuXG4ubmF2LXRvZ2dsZS10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgcGFkZGluZy1yaWdodDogLjRyZW07XG4gICAgY29sb3I6ICM0YzNlMDE7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjVzIGVhc2UtaW47XG59XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qXFxcbiAgQVJUSUNMRSA8YXJ0aWNsZT5cblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5hcnRpY2xlLXN1cnRpdGxlIHtcbiAgICBjb2xvcjogI2FlOGMwNDtcbn1cblxuLmFydGljbGUtdGl0bGUsXG4uYXJ0aWNsZS1zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICM0YzNlMDE7XG59XG5cbi5hcnRpY2xlLXNpZGViYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY1Y2M7XG59XG5cbi5hcnRpY2xlLXNob3ctaXQtLWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5hcnRpY2xlLWNvbnRyb2wtbGFiZWwge1xuICAgIGNvbG9yOiAjYWU4YzA0O1xufVxuXG4vKiAgICAgICAgICAtLS0tLSAgICAgICAgICAqL1xuLyogPT09PT09PT0gVG9vbHMgPT09PT09PT0gKi9cbi8qICAgICAgICAgIC0tLS0tICAgICAgICAgICovXG4ucmVsYXRlZC10b29scy1saXN0IGxpIGEge1xuICAgIGNvbG9yOiAjNGMzZTAxO1xufVxuXG4ucmVsYXRlZC10b29scy1saXN0IGxpIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZjhkMDMwO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIFNBTkRCT1hcblxcKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5lZGl0b3Itd3JhcHBlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIFNBTkRCT1ggUkVTVUxUU1xuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLnJlc3VsdHMtd3JhcHBlciB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4uZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhkMDMwO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjYWU4YzA0O1xufVxuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09KlxcXG4gIEZPT1RFUlxuXFwqPT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmZvb3Rlci1idXR0b25zLS11c2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4uZm9vdGVyLWJ1dHRvbnMtLXNhbmRib3gge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLmZvb3Rlci1idXR0b24ge1xuICAgIGhlaWdodDogY2FsYyg0MHB4ICogLjgpO1xuICAgIG1hcmdpbi1sZWZ0OiAuMnJlbTtcbiAgICBwYWRkaW5nOiAwIC4yNXJlbTtcbiAgICBmb250LXNpemU6IC43NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDUwMXB4KSB7XG4gICAgLmZvb3Rlci1idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgICAgICBmb250LXNpemU6IC45cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDUwcmVtKSB7XG4gICAgLm5hdi10b2dnbGUtdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG59XG4iXX0= */